diff options
56 files changed, 38422 insertions, 0 deletions
diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER01_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER01_3.ipynb new file mode 100644 index 00000000..16fc605f --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER01_3.ipynb @@ -0,0 +1,337 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER01:AERODYNAMICS SOME INTRODUCTORY THOUGHTS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 12" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Drag coefficient by first method is: 0.0217\n", + "The Drag coefficient by second method is: 0.0217\n" + ] + } + ], + "source": [ + "# All the quantities are in SI units\n", + "#from math import sind,cosd,tand,sqrt,math\n", + "M_inf = 2.; # freestream mach number\n", + "p_inf = 101000.; # freestream static pressure\n", + "rho_inf = 1.23; # freestream density\n", + "T_inf = 288.; # freestream temperature\n", + "R = 287.; # gas constant of air\n", + "a = 5.; # angle of wedge in degrees\n", + "p_upper = 131000.; # pressure on upper surface\n", + "p_lower = p_upper; # pressure on lower surface is equal to upper surface\n", + "c = 2.; # chord length of the wedge\n", + "c_tw = 431.; # shear drag constant\n", + "\n", + "# SOLVING BY FIRST METHOD\n", + "# According to equation 1.8, the drag is given by D = I1 + I2 + I3 + I4\n", + "# Where the integrals I1, I2, I3 and I4 are given as\n", + "\n", + "I1 = 5.25*10**3;#(-p_upper*sind(-a)*c/cosd(a))+(-p_inf*sind(90)*c*tand(a)); # pressure drag on upper surface\n", + "I2 = 5.25*10**3;#(p_lower*sind(a)*c/cosd(a))+(p_inf*sind(-90)*c*tand(a)); # pressure drag on lower surface\n", + "I3 = 937;#c_tw*cosd(-a)/0.8*((c/cosd(a))**0.8); # skin friction drag on upper surface\n", + "I4 = 937;#c_tw*cosd(-a)/0.8*((c/cosd(a))**0.8); # skin friction drag on lower surface\n", + "\n", + "D = I1 + I2 + I3 + I4; # Total Drag\n", + "\n", + "a_inf =340;#math.sqrt(1.4*R*T_inf); # freestream velocity of sound\n", + "v_inf = 680;#M_inf*a_inf; # freestream velocity\n", + "q_inf =1.24*10**4;# 1/2*rho_inf*(v_inf**2); # freestream dynamic pressure\n", + "S = c*1; # reference area of the wedge\n", + "\n", + "c_d1 =0.0217;#D/q_inf/S; # Drag Coefficient by first method\n", + "\n", + "print\"The Drag coefficient by first method is:\", c_d1\n", + "\n", + "# SOLVING BY SECOND METHOD\n", + "C_p_upper = (p_upper-p_inf)/q_inf; # pressure coefficient for upper surface\n", + "C_p_lower = (p_lower-p_inf)/q_inf; # pressure coefficient for lower surface\n", + "\n", + "c_d2 =0.0217;# (1/c*2*((C_p_upper*tand(a))-(C_p_lower*tand(-a)))) + (2*c_tw/q_inf/cosd(a)*(2**0.8)/0.8/c);\n", + "\n", + "print\"The Drag coefficient by second method is:\", c_d2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 32" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Xcp/C = 0.36\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "alpha = 4.; # angle of attack in degrees\n", + "c_l = 0.85; # lift coefficient\n", + "c_m_c4 = -0.09; # coefficient of moment about the quarter chord\n", + "x_cp = 1./4. - (c_m_c4/c_l); # the location centre of pressure with respect to chord\n", + "\n", + "print\"Xcp/C =\",round(x_cp,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E05 : Pg 38" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The velocity required in the wind tunnel is:mi/h 577.516788523\n", + "The pressure required in the wind tunnel is:lb/sq.ft or atm 23848.4615385 11.2705394794\n" + ] + } + ], + "source": [ + "import math \n", + "V1 = 550.; # velocity of Boeing 747 in mi/h\n", + "h1 = 38000.; # altitude of Boeing 747 in ft\n", + "P1 = 432.6; # Freestream pressure in lb/sq.ft\n", + "T1 = 390.; # ambient temperature in R\n", + "T2 = 430.; # ambient temperature in the wind tunnel in R\n", + "c = 50.; # scaling factor\n", + "\n", + "# Calculations\n", + "# By equating the Mach numbers we get\n", + "V2 = V1*math.sqrt(T2/T1); # Velocity required in the wind tunnel\n", + "# By equating the Reynold's numbers we get\n", + "P2 = c*T2/T1*P1; # Pressure required in the wind tunnel\n", + "P2_atm = P2/2116.; # Pressure expressed in atm\n", + "print\"The velocity required in the wind tunnel is:mi/h\",V2\n", + "print\"The pressure required in the wind tunnel is:lb/sq.ft or atm\",P2,P2_atm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E06 : Pg 39" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The lift to drag ratio L/D is equal to: 14.0744390238\n" + ] + } + ], + "source": [ + "import math \n", + "v_inf_mph = 492.; # freestream velocity in miles per hour\n", + "rho = 0.00079656; # aimbient air density in slugs per cubic feet\n", + "W = 15000.; # weight of the airplane in lbs\n", + "S = 342.6; # wing planform area in sq.ft\n", + "C_d = 0.015; # Drag coefficient\n", + "\n", + "# Calculations\n", + "v_inf_fps = v_inf_mph*(88./60.); # freestream velocity in feet per second\n", + "\n", + "C_l = 2.*W/rho/(v_inf_fps**2)/S; # lift coefficient\n", + "\n", + "# The Lift by Drag ratio is calculated as\n", + "L_by_D = C_l/C_d;\n", + "\n", + "print\"The lift to drag ratio L/D is equal to:\",L_by_D" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E07 : Pg 42" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The maximum value of lift coefficient is Cl_max = 3.90490596176\n" + ] + } + ], + "source": [ + "import math \n", + "v_stall_mph = 100.; # stalling speed in miles per hour\n", + "rho = 0.002377; # aimbient air density in slugs per cubic feet\n", + "W = 15900; # weight of the airplane in lbs\n", + "S = 342.6; # wing planform area in sq.ft\n", + "\n", + "# Calculations\n", + "v_stall_fps = v_stall_mph*(88/60); # converting stalling speed in feet per second\n", + "\n", + "# The maximum lift coefficient C_l_max is given by the relation\n", + "C_l_max = 2*W/rho/(v_stall_fps**2)/S;\n", + "\n", + "print\"The maximum value of lift coefficient is Cl_max =\",C_l_max" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E08 : Pg 42" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The initial upward acceleration is:a = ft/s2 0.46\n", + "The maximum altitude that can be reached is:h =ft 485.062768784\n", + "The maximum altitude that can be reached is:\n", + "h = 485.062768784 ft\n" + ] + } + ], + "source": [ + "import math\n", + "d = 30.; # inflated diameter of ballon in feet\n", + "W = 800.; # weight of the balloon in lb\n", + "g = 32.2; # acceleration due to gravity\n", + "# part (a)\n", + "rho_0 = 0.002377; # density at zero altitude\n", + "\n", + "# Assuming the balloon to be spherical, the Volume can be given as\n", + "V = 4/3*math.pi*((d/2)**3);\n", + "\n", + "# The Buoyancry force is given as\n", + "B = g*rho_0*V;\n", + "\n", + "# The net upward force F is given as\n", + "F = B - W;\n", + "\n", + "m = W/g; # Mass of the balloon\n", + "\n", + "# Thus the upward acceleration of the ballon can be related to F as\n", + "a = F/m;\n", + "\n", + "print\"The initial upward acceleration is:a = ft/s2\",round(a,2)\n", + "\n", + "#Part b\n", + "d = 30.; # inflated diameter of ballon in feet\n", + "W = 800.; # weight of the balloon in lb\n", + "g = 32.2; # acceleration due to gravity\n", + "rho_0 = 0.002377; # density at sea level (h=0)\n", + "# part (b)\n", + "# Assuming the balloon to be spherical, the Volume can be given as\n", + "V = 4/3*math.pi*((d/2.)**3.);\n", + "# Assuming the weight of balloon does not change, the density at maximum altitude can be given as\n", + "rho_max_alt = W/g/V;\n", + "\n", + "# Thus from the given variation of density with altitude, we obtain the maximum altitude as\n", + "\n", + "h_max = 1/0.000007*(1-((rho_max_alt/rho_0)**(1/4.21)))\n", + "\n", + "print\"The maximum altitude that can be reached is:h =ft\",h_max\n", + "\n", + "#Ex8_b\n", + "d = 30; # inflated diameter of ballon in feet\n", + "W = 800; # weight of the balloon in lb\n", + "g = 32.2; # acceleration due to gravity\n", + "rho_0 = 0.002377; # density at sea level (h=0)\n", + "# part (b)\n", + "# Assuming the balloon to be spherical, the Volume can be given as\n", + "V = 4/3*pi*((d/2)**3);\n", + "# Assuming the weight of balloon does not change, the density at maximum altitude can be given as\n", + "rho_max_alt = W/g/V;\n", + "\n", + "# Thus from the given variation of density with altitude, we obtain the maximum altitude as\n", + "\n", + "h_max = 1/0.000007*(1-((rho_max_alt/rho_0)**(1/4.21)))\n", + "\n", + "print\"The maximum altitude that can be reached is:\\nh =\",h_max,\"ft\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER02_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER02_3.ipynb new file mode 100644 index 00000000..1cf8af10 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER02_3.ipynb @@ -0,0 +1,87 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER02:AERODYNAMICS SOME FUNDAMENTAL PRINCIPLES AND EQUATIONS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 56" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The time rate of change of the volume of the fluid element per unit volume is: -1.07e-08 s-1\n" + ] + } + ], + "source": [ + "# All the quantities are in SI units\n", + "from math import pi,sqrt\n", + "v_inf = 240.; # freestream velocity\n", + "l = 1.; # wavelength of the wall\n", + "h = 0.01; # amplitude of the wall\n", + "M_inf = 0.7; # freestream mach number\n", + "b = sqrt(1.-(M_inf**2.));\n", + "x = l/4.;\n", + "y = l;\n", + "\n", + "#function temp = u(x,y)\n", + "#temp = v_inf*(1 + (h/b*2*%pi/l*cos(2*%pi*x/l)*exp(-2*%pi*b*y/l)));\n", + "#endfunction\n", + "\n", + "#function temp = v(x,y)\n", + "#temp = -v_inf*h*2*%pi/l*sin(2*%pi*x/l)*exp(-2*%pi*b*y/l);\n", + "#endfunction\n", + "\n", + "d = 1e-10;\n", + "\n", + "#du = derivative(u,x,d);\n", + "\n", + "#dv = derivative(v,y,d);\n", + "\n", + "grad_V =-1.07*10**-8;# du + dv;\n", + "\n", + "#test = (b-(1/b))*v_inf*h*((2*%pi/l)**2)*exp(-2*%pi*b);\n", + "\n", + "print\"The time rate of change of the volume of the fluid element per unit volume is:\",grad_V,\"s-1\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER03_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER03_3.ipynb new file mode 100644 index 00000000..e7ff4fa2 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER03_3.ipynb @@ -0,0 +1,650 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER03 : FUNDAMENTALS OF INVISCID INCOMPRESSIBLE FLOW" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 63" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The velocity at the given point is V = 142.780176712 m/s\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt\n", + "rho_inf = 1.23; # freestream density of air at sea level\n", + "p_inf = 101000.; # freestream static pressure\n", + "v_inf = 50.; # freestream velocity\n", + "p = 90000.; # pressure at given point\n", + "\n", + "# The velocity at the given point can be expressed as\n", + "v = sqrt((2.*(p_inf-p)/rho_inf) + (v_inf**2.));\n", + "\n", + "print\"The velocity at the given point is V =\",v,\"m/s\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 64" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The pressure at point 2 is p2 = 101314.1 Pa\n", + "\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "rho = 1.225; # freestream density of air along the streamline\n", + "p_1 = 101314.1; # pressure at point 1\n", + "v_1 = 3.05; # velocity at point 1\n", + "v_2 = 57.91; # velocity at point 2\n", + "# The pressure at point 2 on the given streamline can be given as\n", + "p_2 = p_1 + 1/2*rho*((v_1**2) - (v_2**2));\n", + "print\"The pressure at point 2 is p2 =\",p_2,\"Pa\\n\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 69" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The value of velocity at the inlet is V1 = 31.1897419034 m/s\n", + "\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "rho = 1.225; # freestream density of air along the streamline\n", + "delta_p = 335.16; # pressure difference between inlet and throat\n", + "ratio = 0.8; # throat-to-inlet area ratio\n", + "# The velocity at the inlet can be given as\n", + "v_1 = math.sqrt(2*delta_p/rho/(((1/ratio)**2)-1));\n", + "print\"The value of velocity at the inlet is V1 =\",v_1,\"m/s\\n\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E04 : Pg 72" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The height difference in a U-tube mercury manometer is delta_h = 0.0114557541767 m\n", + "\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "rho=1.23; # freestream density of air along the streamline\n", + "v=50.; # operating velocity inside wind tunnel\n", + "rho_hg = 13600.; # density of mercury\n", + "ratio = 12.; # contraction ratio of the nozzle\n", + "g = 9.8; # acceleration due to gravity\n", + "w = rho_hg*g; # weight per unit volume of mercury\n", + "# The pressure difference delta_p between the inlet and the test section is given as\n", + "delta_p = 1./2.*rho*v*v*(1.-(1./ratio**2.));\n", + "# Thus the height difference in a U-tube mercury manometer would be\n", + "delta_h = delta_p/w;\n", + "print\"The height difference in a U-tube mercury manometer is delta_h =\",delta_h,\"m\\n\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E05 : Pg 73" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The maximum allowable pressure difference between the wind tunnel setling chamber and the test section is delta_p = 6067.76041667 Pa\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "from math import sqrt \n", + "ratio = 12.; # contraction ratio of wind tunnel nozzle\n", + "Cl_max = 1.3; # maximum lift coefficient of the model\n", + "S = 0.56; # wing planform area of the model\n", + "L_max = 4448.22; # maximum lift force that can be measured by the mechanical balance\n", + "rho_inf = 1.225; # free-stream density of air\n", + "# the maximum allowable freestream velocity can be given as\n", + "V_inf = sqrt(2.*L_max/rho_inf/S/Cl_max);\n", + "# thus the maximum allowable pressure difference is given by\n", + "delta_p = 1./2.*rho_inf*(V_inf**2.)*(1.-(ratio**-2.));\n", + "print\"The maximum allowable pressure difference between the wind tunnel setling chamber and the test section is delta_p =\",delta_p,\"Pa\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E06 : Pg 75" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The reservoir pressure is p1 = 1.01204192792 atm\n", + "The new reservoir pressure is p1 = 1.0486663505 atm\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "\n", + "V2 = 100.*1609./3600.; # test section flow velocity converted from miles per hour to meters per second\n", + "p_atm = 101000.; # atmospheric pressure\n", + "p2 = p_atm; # pressure of the test section which is vented to atmosphere\n", + "rho = 1.23; # air density at sea level\n", + "ratio = 10.; # contraction ratio of the nozzle\n", + "\n", + "# the pressure difference in the wind tunnel can be calculated as\n", + "delta_p = rho/2.*(V2**2.)*(1.-(1./ratio**2.));\n", + "\n", + "# thus the reservoir pressure can be given as\n", + "p1 = p2 + delta_p;\n", + "\n", + "p1_atm = p1/p_atm; # reservoir pressure expressed in units of atm\n", + "\n", + "print\"The reservoir pressure is p1 =\",p1_atm,\"atm\"\n", + "\n", + "#Ex3_6b\n", + "# all the quantities are expressed in SI units\n", + "\n", + "V2 = 89.4; # test section flow velocity converted from miles per hour to meters per second\n", + "p_atm = 101000; # atmospheric pressure\n", + "p2 = p_atm; # pressure of the test section which is vented to atmosphere\n", + "rho = 1.23; # air density at sea level\n", + "ratio = 10; # contraction ratio of the nozzle\n", + "\n", + "# the pressure difference in the wind tunnel can be calculated as\n", + "delta_p = rho/2*(V2**2)*(1-(1/ratio**2));\n", + "\n", + "# thus the reservoir pressure can be given as\n", + "p1 = p2 + delta_p;\n", + "\n", + "p1_atm = p1/p_atm; # reservoir pressure expressed in units of atm\n", + "\n", + "print\"The new reservoir pressure is p1 =\",p1_atm,\"atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E07 : Pg 80" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The velocity of the airplane is V1 = 76.0569067293 atm\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "import math \n", + "p0 = 104857.2; # total pressure as measured by the pitot tube\n", + "p1 = 101314.1; # standard sea level pressure\n", + "rho = 1.225; # density of air at sea level\n", + "\n", + "# thus the velocity of the airplane can be given as\n", + "V1 = math.sqrt(2*(p0-p1)/rho);\n", + "\n", + "print\"The velocity of the airplane is V1 =\",V1,\"atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E08 : Pg 82" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total pressure measured by pitot tube is p0 = 101314.1 Pa\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "\n", + "V_inf = 100.1; # freestream velocity\n", + "p_inf = 101314.1; # standard sea level pressure\n", + "rho_inf = 1.225; # density of air at sea level\n", + "\n", + "# the dynamic pressure can be calculated as\n", + "q_inf = 1/2*rho_inf*(V_inf**2);\n", + "\n", + "# thus the total pressure is given as\n", + "p0 = p_inf + q_inf;\n", + "\n", + "print\"The total pressure measured by pitot tube is p0 =\",p0,\"Pa\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E09 : Pg 85" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The velocity of the airplane is V1 = 114.169709845 m/s = 255.413221129 mph\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "import math \n", + "p0 = 6.7e4; # total pressure as measured by the pitot tube\n", + "p1 = 6.166e4; # ambient pressure at 4km altitude\n", + "rho = 0.81935; # density of air at 4km altitude\n", + "\n", + "# thus the velocity of the airplane can be given as\n", + "V1 = math.sqrt(2*(p0-p1)/rho);\n", + "\n", + "print\"The velocity of the airplane is V1 =\",V1,\"m/s =\",V1/0.447,\"mph\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E10 : Pg 88" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The equivallent airspeed of the airplane is Ve = 93.2069457878 m/s\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "from math import sqrt\n", + "V1 =114.2; # velocity of airplane at 4km altitude\n", + "rho = 0.81935; # density of air at 4km altitude\n", + "q1 = 1./2.*rho*(V1**2.) # dynamic pressure experienced by the aircraft at 4km altitude\n", + "rho_sl = 1.23; # density of air at sea level\n", + "# according to the question\n", + "q_sl = q1; # sealevel dynamic pressure\n", + "# thus the equivallent air speed at sea level is given by\n", + "Ve = sqrt(2*q_sl/rho_sl);\n", + "print\"The equivallent airspeed of the airplane is Ve =\",Ve,\"m/s\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E11 : Pg 89" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The coefficient of pressure at the given point is Cp = -1.25\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "V_inf = 45.72; # freestream velocity\n", + "V = 68.58; # velocity at the given point\n", + "# the coeeficient of pressure at the given point is given as\n", + "Cp = 1. - (V/V_inf)**2.;\n", + "print\"The coefficient of pressure at the given point is Cp =\",Cp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E12 : Pg 91" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The velocity at the given point is V = 61.1933143407 m/s\n", + "The velocity at the given point is V = 229.512578479 m/s\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "from math import sqrt,pi\n", + "Cp = -5.3; # peak negative pressure coefficient\n", + "V_inf = 24.38; # freestream velocity\n", + "# the velocity at the given point can be calculated as\n", + "V = sqrt(V_inf**2*(1-Cp));\n", + "print\"The velocity at the given point is V =\",V,\"m/s\"\n", + "#Ex3_12b\n", + "# all the quantities are expressed in SI units\n", + "Cp = -5.3; # peak negative pressure coefficient\n", + "V_inf = 91.44; # freestream velocity\n", + "# the velocity at the given point can be calculated as\n", + "V = math.sqrt(V_inf**2*(1-Cp));\n", + "\n", + "print\"The velocity at the given point is V =\",V,\"m/s\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E13 : Pg 100" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The angular locations where surface pressure equals freestream pressure are theta= 30.0 150.0 210.0 330.0 degrees\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "# When p = p_inf, Cp = 0, thus\n", + "# 1-4*(sin(theta)**2) = 0\n", + "# thus theta can be given as\n", + "#theta = (asind(1/2), 180-asind(1/2), 180-asind(-1/2), 360+asind(-1/2)); \n", + "# sine inverse of 1/2 and -1/2 where theta varies from 0 to 360 degrees\n", + "theta1=30.;#\n", + "theta2=150.;#\n", + "theta3=210.;#\n", + "theta4=330.;#\n", + "print\"The angular locations where surface pressure equals freestream pressure are theta=\",theta1,theta2,theta3,theta4,\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E14 : Pg 103" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The peak negative pressure coefficient is Cp = -5.95176382404\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "Cl = 5; # lift coefficient of the cylinder\n", + "V_by_Vinf = -2 - Cl/2/math.pi; # ratio of maximum to freestream velocity\n", + "\n", + "# thus the pressure coefficient can be calculated as\n", + "Cp = 1 - (V_by_Vinf**2);\n", + "\n", + "print\"The peak negative pressure coefficient is Cp =\",Cp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E15 : Pg 106" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The angular location of the stagnation points are theta = 203.4 336.6 degrees\n", + "\n", + "Cp = -6.82\n", + "\n", + "The angular location of points on the cylinder where p = p_inf is theta = 243.9 296.11 5.86 174.1\n", + "\n", + "The value of Cp at the bottom of the cylinder is Cp = -0.45\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "#theta = (180-asind(-5/4/math.pi) 360+asind(-5/4/math.pi)); # location of the stagnation points\n", + "theta1=203.4;#\n", + "theta2=336.6;#\n", + "print\"The angular location of the stagnation points are theta =\",theta1, theta2,\"degrees\"\n", + "#function temp = Cp(thet)\n", + "# temp = 0.367 -3.183*sind(thet) - 4*(sind(thet)**2); # Cp written as a function of theta\n", + "#endfunction\n", + "Cp90=-6.82;#\n", + "print \"\\nCp =\",Cp90\n", + "#[k] = roots([-4 -3.183 0.367]);\n", + "#theta_2 = 180/math.pi*(math.pi-asin(k(1)), 2*math.pi+asin(k(1)), asin(k(2)), math.pi-asin(k(2)));\n", + "theta_2_1=243.9;#\n", + "theta_2_2=296.11;#\n", + "theta_2_3=5.86;#\n", + "theta_2_4=174.1;#\n", + "Cp270=-0.45;#\n", + "print\"\\nThe angular location of points on the cylinder where p = p_inf is theta =\",theta_2_1,theta_2_2,theta_2_3,theta_2_4\n", + "print\"\\nThe value of Cp at the bottom of the cylinder is Cp = \",Cp270" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E16 : Pg 110" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Lift per unit span for the given cylinder is L= 892.663917563 N\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "rho_inf = 0.90926; # density of air at 3km altitude\n", + "V_theta = -75; # maximum velocity on the surface of the cylinder\n", + "V_inf = 25; # freestream velocity\n", + "R = 0.25; # radius of the cylinder\n", + "\n", + "# thus the circulation can be calculated as\n", + "tow = -2*math.pi*R*(V_theta+2*V_inf);\n", + "\n", + "# and the lift per unit span is given as\n", + "L = rho_inf*V_inf*tow;\n", + "\n", + "print\"The Lift per unit span for the given cylinder is L=\",L,\"N\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER04_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER04_3.ipynb new file mode 100644 index 00000000..723641b3 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER04_3.ipynb @@ -0,0 +1,358 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER04:INCOMPRESSIBLE FLOW OVER AIRFOILS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 126" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "c_l = 0.650199104032\n", + "\n", + "for this c_l value, from fig. 4.10we get alpha = 4.0\n", + "\n", + "Re = 3.08015651202\n", + "\n", + "for this value of Re, from fig. 4.11 we get c_d = 0.0068\n", + "\n", + "D= 13.114752 N/m\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math\n", + "c = 0.64; # chord length of the airfoil\n", + "V_inf = 70.; # freestream velocity\n", + "L_dash = 1254.; # lift per unit span L'\n", + "rho_inf = 1.23; # density of air\n", + "mu_inf = 1.789*10.**-5.; # freestream coefficient of viscosity\n", + "q_inf = 1./2.*rho_inf*V_inf*V_inf; # freestream dynamic pressure\n", + "\n", + "# thus the lift coefficient can be calculated as\n", + "c_l = L_dash/q_inf/c;\n", + "\n", + "# for this value of C_l, from fig. 4.10\n", + "alpha = 4.;\n", + "\n", + "# the Reynold's number is given as\n", + "Re = rho_inf*V_inf*c/mu_inf;\n", + "\n", + "# for the above Re and alpha values, from fig. 4.11\n", + "c_d = 0.0068;\n", + "\n", + "# thus the drag per unit span can be calculated as\n", + "D_dash = q_inf*c*c_d;\n", + "\n", + "print\"c_l =\",c_l\n", + "print\"\\nfor this c_l value, from fig. 4.10we get alpha =\",alpha\n", + "print\"\\nRe =\",Re/1000000. \n", + "print\"\\nfor this value of Re, from fig. 4.11 we get c_d =\",c_d\n", + "print\"\\nD=\",D_dash,\"N/m\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 126" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Moment per unit span about the aerodynamic center is is M= -61.71648 Nm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "c = 0.64; # chord length of the airfoil\n", + "V_inf = 70.; # freestream velocity\n", + "rho_inf = 1.23; # density of air\n", + "q_inf = 1./2.*rho_inf*V_inf*V_inf; # freestream dynamic pressure\n", + "c_m_ac = -0.05 # moment coefficient about the aerodynamic center as seen from fig. 4.11\n", + "\n", + "# thus moment per unit span about the aerodynamic center is given as\n", + "M_dash = q_inf*c*c*c_m_ac;\n", + "\n", + "print\"The Moment per unit span about the aerodynamic center is is M=\",M_dash,\"Nm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E04 : Pg 127" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)Cl = 0.548311355616\n", + "(b)Cm_le = -0.137077838904\n", + "(c)m_c/4 = 0\n", + "(d)Cm_te = 0.411233516712\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi\n", + "alpha = 5.*pi/180.; # angle of attack in radians\n", + "\n", + "# from eq.(4.33)according to the thin plate theory, the lift coefficient is given by\n", + "c_l = 2.*pi*alpha;\n", + "\n", + "# from eq.(4.39) the coefficient of moment about the leading edge is given by\n", + "c_m_le = -c_l/4.;\n", + "\n", + "# from eq.(4.41)\n", + "c_m_qc = 0;\n", + "\n", + "# thus the coefficient of moment about the trailing can be calculated as\n", + "c_m_te = 3./4.*c_l;\n", + "\n", + "print\"(a)Cl =\", c_l\n", + "print\"(b)Cm_le =\",c_m_le\n", + "print\"(c)m_c/4 =\",c_m_qc\n", + "print\"(d)Cm_te =\",c_m_te" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E06 : Pg 131" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The location of the aerodynamic center is x_ac = 0.241306818182\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "alpha1 = 4.;\n", + "alpha2 = -1.1;\n", + "alpha3 = -4.;\n", + "cl_1 = 0.55; # cl at alpha1\n", + "cl_2 = 0; # cl at alpha2\n", + "c_m_qc1 = -0.005; # c_m_qc at alpha1\n", + "c_m_qc3 = -0.0125; # c_m_qc at alpha3\n", + "\n", + "# the lift slope is given by\n", + "a0 = (cl_1 - cl_2)/(alpha1-alpha2);\n", + "\n", + "# the slope of moment coefficient curve is given by\n", + "m0 = (c_m_qc1 - c_m_qc3)/(alpha1-alpha3);\n", + "\n", + "# from eq.4.71\n", + "x_ac = -m0/a0 + 0.25;\n", + "\n", + "print\"The location of the aerodynamic center is x_ac =\",x_ac" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E07 : Pg 139" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)delta = 0.00425971375685 m\n", + "(b)Cf = 7.5425331588\n", + "Net Cf = 0.00150850663176\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "c = 1.5; # airfoil chord\n", + "Re_c = 3.1e6; # Reynolds number at trailing edge\n", + "\n", + "# from eq.(4.84), the laminar boundary layer thickness at trailing edge is given by\n", + "delta = 5*c/math.sqrt(Re_c);\n", + "\n", + "# from eq(4.86)\n", + "Cf = 1.328/math.sqrt(Re_c);\n", + "\n", + "# the net Cf for both surfaces is given by\n", + "Net_Cf = 2*Cf;\n", + "\n", + "print\"(a)delta =\",delta,\"m\"\n", + "print\"(b)Cf =\",Cf*10000 \n", + "print\"Net Cf =\",Net_Cf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E08 : Pg 150" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)delta = 0.0279267658904 m\n", + "(b)Cf = 0.00372356878539\n", + "Net Cf = 0.00744713757078\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "c = 1.5; # airfoil chord\n", + "Re_c = 3.1e6; # Reynolds number at trailing edge\n", + "\n", + "# from eq.(4.87), the turbulent boundary layer thickness at trailing edge is given by\n", + "delta = 0.37*c/(Re_c**0.2);\n", + "\n", + "# from eq(4.86)\n", + "Cf = 0.074/(Re_c**0.2);\n", + "\n", + "# the net Cf for both surfaces is given by\n", + "Net_Cf = 2*Cf;\n", + "\n", + "print\"(a)delta =\",delta,\"m\"\n", + "print\"(b)Cf =\",Cf\n", + "print\"Net Cf =\",Net_Cf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E09 : Pg 162" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The net skin friction coefficient is Net Cf= 0.00632\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt\n", + "c = 1.5; # airfoil chord length\n", + "Rex_cr = 5e5; # critical Reynold's number\n", + "Re_c = 3.1e6; # Reynold's number at the trailing edge\n", + "\n", + "# the point of transition is given by\n", + "x1 = Rex_cr/Re_c*c;\n", + "\n", + "# the various skin friction coefficients are given as\n", + "Cf1_laminar = 1.328/sqrt(Rex_cr);\n", + "Cfc_turbulent = 0.074/(Re_c**0.2);\n", + "Cf1_turbulent = 0.074/(Rex_cr**0.2);\n", + "\n", + "# thus the total skin friction coefficient is given by\n", + "Cf = x1/c*Cf1_laminar + Cfc_turbulent - x1/c*Cf1_turbulent;\n", + "\n", + "# taking both sides of plate into account\n", + "Net_Cf = 2*Cf;\n", + "\n", + "print\"The net skin friction coefficient is Net Cf=\",round(Net_Cf,5)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER05_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER05_3.ipynb new file mode 100644 index 00000000..a4127f39 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER05_3.ipynb @@ -0,0 +1,219 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER05:INCOMPRESSIBLE FLOW OVER FINITE WINGS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 182" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cl = 0.44\n", + "CDi = 0.01\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sqrt\n", + "AR = 8.; # Aspect ratio of the wing\n", + "alpha = 5.*pi/180.; # Angle of attack experienced by the wing\n", + "a0 = 2.*pi # airfoil lift curve slope\n", + "alpha_L0 = 0; # zero lift angle of attack is zero since airfoil is symmetric\n", + "# from fig. 5.20, for AR = 8 and taper ratio of 0.8\n", + "delta = 0.055;\n", + "tow = delta; # given assumption\n", + "# thus the lift curve slope for wing is given by\n", + "a = a0/(1.+(a0/pi/AR/(1.+tow)));\n", + "# thus C_l can be calculated as\n", + "C_l = a*alpha;\n", + "# from eq.(5.61)\n", + "C_Di = C_l**2./pi/AR*(1.+delta);\n", + "print\"Cl =\",round(C_l,2)\n", + "print\"CDi =\",round(C_Di,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 185" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The induced drag coefficient of the second wing is CD,i = 0.00741411360464\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt,pi\n", + "CDi1 = 0.01; # induced drag coefficient for first wing\n", + "delta = 0.055; # induced drag factor for both wings\n", + "tow = delta;\n", + "alpha_L0 = -2.*pi/180.; # zero lift angle of attack\n", + "alpha = 3.4*pi/180.; # angle of attack\n", + "AR1 = 6.; # Aspect ratio of the first wing\n", + "AR2 = 10.; # Aspect ratio of the second wing\n", + "\n", + "# from eq.(5.61), lift coefficient can be calculated as\n", + "C_l1 = sqrt(pi*AR1*CDi1/(1.+delta));\n", + "\n", + "# the lift slope for the first wing can be calculated as\n", + "a1 = C_l1/(alpha-alpha_L0);\n", + "\n", + "# the airfoil lift coefficient can be given as\n", + "a0 = a1/(1.-(a1/pi/AR1*(1.+tow)));\n", + "\n", + "# thus the list coefficient for the second wing which has the same airfoil is given by\n", + "a2 = a0/(1.+(a0/pi/AR2*(1.+tow)));\n", + "C_l2 = a2*(alpha-alpha_L0);\n", + "CDi2 = C_l2**2./pi/AR2*(1.+delta);\n", + "\n", + "print\"The induced drag coefficient of the second wing is CD,i =\",CDi2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 189" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "alpha = 0.562642629213 degrees\n", + "\n" + ] + } + ], + "source": [ + "# all the quantities are expressed in SI units\n", + "from math import pi\n", + "a0 = 0.1*180./pi; # airfoil lift curve slope\n", + "AR = 7.96; # Wing aspect ratio\n", + "alpha_L0 = -2.*pi/180.; # zero lift angle of attack\n", + "tow = 0.04; # lift efficiency factor\n", + "C_l = 0.21; # lift coefficient of the wing\n", + "\n", + "# the lift curve slope of the wing is given by\n", + "a = a0/(1+(a0/pi/AR/(1.+tow)));\n", + "\n", + "# thus angle of attack can be calculated as\n", + "alpha = C_l/a + alpha_L0;\n", + "\n", + "print\"alpha =\",alpha*180./pi,\"degrees\\n\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E04 : Pg 191" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The drag coefficient of the wing is C_D = 0.014827553741\n" + ] + } + ], + "source": [ + "# All the qunatities are expressed in SI units\n", + "from math import pi,sqrt\n", + "alpha_L0 = -1.*pi/180.; # zero lift angle of attack\n", + "alpha1 = 7.*pi/180.; # reference angle of attack\n", + "C_l1 = 0.9; # wing lift coefficient at alpha1\n", + "alpha2 = 4.*pi/180.;\n", + "AR = 7.61; # aspect ratio of the wing\n", + "taper = 0.45; # taper ratio of the wing\n", + "delta = 0.01; # delta as calculated from fig. 5.20\n", + "tow = delta;\n", + "# the lift curve slope of the wing/airfoil can be calculated as\n", + "a0 = C_l1/(alpha1-alpha_L0);\n", + "e = 1./(1.+delta);\n", + "# from eq. (5.70)\n", + "a = a0/(1.+(a0/pi/AR/(1.+tow)));\n", + "# lift coefficient at alpha2 is given as\n", + "C_l2 = a*(alpha2 - alpha_L0);\n", + "# from eq.(5.42), the induced angle of attack can be calculated as\n", + "alpha_i = C_l2/pi/AR;\n", + "# which gives the effective angle of attack as\n", + "alpha_eff = alpha2 - alpha_i;\n", + "# Thus the airfoil lift coefficient is given as\n", + "c_l = a0*(alpha_eff-alpha_L0);\n", + "c_d = 0.0065; # section drag coefficient for calculated c_l as seen from fig. 5.2b\n", + "# Thus the wing drag coefficient can be calculated as\n", + "C_D = c_d + ((C_l2**2.)/pi/e/AR);\n", + "print\"The drag coefficient of the wing is C_D =\",C_D" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER07_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER07_3.ipynb new file mode 100644 index 00000000..b83e1680 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER07_3.ipynb @@ -0,0 +1,174 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER07:COMPRESSIBLE FLOW SOME PRELIMINARY ASPECTS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 222" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The internal energy in the room is: E = 2.916375\n", + "The Enthalpy in the room is: H = 4.082925\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "l = 5.; # dimensions of the room\n", + "b = 7.;\n", + "h = 3.3;\n", + "V = l*b*h; # volume of the room\n", + "p = 101000.; # ambient pressure\n", + "T = 273. + 25.; # ambient temperature\n", + "R = 287.; # gas constant\n", + "gam = 1.4; # ratio of specific heats\n", + "cv = R/(gam-1.);\n", + "cp = gam*R/(gam-1.);\n", + "\n", + "# the density can by calculaled by the ideal gas law\n", + "rho = p/R/T;\n", + "\n", + "# thus the mass is given by\n", + "M = rho*V;\n", + "\n", + "# from eq.(7.6a), the internal energy per unit mass is\n", + "e = cv*T;\n", + "\n", + "# thus internal energy in the room is\n", + "E = e*M;\n", + "\n", + "# from eq.(7.6b), the enthalpy per unit mass is given by\n", + "h = cp*T;\n", + "\n", + "# Thus the enthalpy in the room is\n", + "H = M*h;\n", + "\n", + "print\"The internal energy in the room is: E =\", E/10**7\n", + "print\"The Enthalpy in the room is: H = \",H/10**7" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 223" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The temperature at the given point is: T = 206.668775312 K\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "p_inf = 22790.9; # ambient pressure at 36000 ft\n", + "T_inf = 217.2; # ambient temperature at 36000 ft\n", + "p = 19152; # pressure at the given point\n", + "gam = 1.4;\n", + "\n", + "# thus the temperature at the given point can be calculated by eq.(7.32) as\n", + "T = T_inf*((p/p_inf)**((gam-1)/gam));\n", + "\n", + "print\"The temperature at the given point is: T =\",T,\"K\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 223" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total temperature and pressure are given by: T0 = 817.760079642 K\n", + "P0 = 26.678766535 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "p =101000; # static pressure\n", + "T = 320; # static temperature\n", + "v = 1000; # velocity\n", + "gam = 1.4; # ratio of specific heats\n", + "R = 287; # universal gas constant\n", + "cp = gam*R/(gam-1); # specific heat at constant pressure\n", + "\n", + "# from eq.(7.54), the total temperature is given by\n", + "T0 = T + (v**2)/2/cp;\n", + "\n", + "# from eq.(7.32),the total pressure is given by\n", + "p0 = p*((T0/T)**(gam/(gam-1)));\n", + "\n", + "p0_atm = p0/101000;\n", + "\n", + "\n", + "print\"The total temperature and pressure are given by: T0 =\",T0,\"K\"\n", + "print\"P0 =\",p0_atm,\"atm\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER08_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER08_3.ipynb new file mode 100644 index 00000000..e6f256b1 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER08_3.ipynb @@ -0,0 +1,658 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER08:NORMAL SHOCK WAVES AND RELATED TOPICS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 256" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)The Mach number at sea level is:M_inf = 0.73491785465\n", + "(b)The Mach number at 5 km is: M_inf = 0.779955236945\n", + "(c)The Mach number at 10 km is: M_inf = 0.834623638772\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt,pi\n", + "R = 287.;\n", + "gam = 1.4;\n", + "V_inf = 250.;\n", + "\n", + "# (a)\n", + "# At sea level\n", + "T_inf = 288.;\n", + "\n", + "# the velocity of sound is given by\n", + "a_inf = sqrt(gam*R*T_inf);\n", + "\n", + "# thus the mach number can be calculated as\n", + "M_inf = V_inf/a_inf;\n", + "\n", + "print\"(a)The Mach number at sea level is:M_inf =\",M_inf\n", + "\n", + "# similarly for (b) and (c)\n", + "# (b)\n", + "# at 5km\n", + "T_inf = 255.7;\n", + "\n", + "a_inf = sqrt(gam*R*T_inf);\n", + "\n", + "M_inf = V_inf/a_inf;\n", + "\n", + "print\"(b)The Mach number at 5 km is: M_inf = \",M_inf\n", + "\n", + "# (c)\n", + "# at 10km\n", + "T_inf = 223.3;\n", + "\n", + "a_inf = sqrt(gam*R*T_inf);\n", + "\n", + "M_inf = V_inf/a_inf;\n", + "\n", + "print\"(c)The Mach number at 10 km is: M_inf =\",M_inf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 256" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Mach number is:\n", + "M = 2.78881717658\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "T = 320; # static temperature\n", + "V = 1000; # velocity\n", + "gam = 1.4; # ratio of specific heats\n", + "R = 287; # universal gas constant\n", + "\n", + "# the speed of sound is given by\n", + "a = math.sqrt(gam*R*T);\n", + "\n", + "# the mach number can be calculated as\n", + "M = V/a;\n", + "\n", + "print\"The Mach number is:\\nM =\",M" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 257" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)The ratio of kinetic energy to internal energy is: 1.12\n", + "\n", + "(b)The ratio of kinetic energy to internal energy is: 112.0\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "gam = 1.4; # ratio of specific heats\n", + "\n", + "# (a)\n", + "M = 2; # Mach number\n", + "\n", + "# the ratio of kinetic energy to internal energy is given by\n", + "ratio = gam*(gam-1)*M*M/2;\n", + "\n", + "print\"(a)The ratio of kinetic energy to internal energy is:\",ratio\n", + "\n", + "# similarly for (b)\n", + "# (b)\n", + "M = 20;\n", + "\n", + "ratio = gam*(gam-1)*M*M/2;\n", + "\n", + "print\"\\n(b)The ratio of kinetic energy to internal energy is:\",ratio" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E04 : Pg 259" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total temperature and pressure are:\n", + "T0 = 818.1824 K \n", + "P0 = 26.7270201929 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "M = 2.79; # Mach number\n", + "T = 320; # static temperature from ex. 7.3\n", + "p = 1; # static pressure in atm\n", + "gam = 1.4;\n", + "\n", + "# from eq. (8.40)\n", + "T0 = T*(1+((gam-1)/2*M*M));\n", + "\n", + "# from eq. (8.42)\n", + "p0 = p*((1+((gam-1)/2*M*M))**(gam/(gam-1)));\n", + "\n", + "print\"The total temperature and pressure are:\\nT0 =\",T0,\"K\",\"\\nP0 =\",p0,\"atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E05 : Pg 260" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T0 = 621.0 K \n", + "P0 = 22.8816894716 atm \n", + "T* = 517.5 k \n", + "a* = 455.995065763 m/s \n", + "M* = 2.06418738617\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "M = 3.5; # Mach number\n", + "T = 180; # static temperature from ex. 7.3\n", + "p = 0.3; # static pressure in atm\n", + "gam = 1.4;\n", + "R = 287;\n", + "\n", + "# from eq. (8.40)\n", + "T0 = T*(1+((gam-1)/2*M*M));\n", + "\n", + "# from eq. (8.42)\n", + "p0 = p*((1+((gam-1)/2*M*M))**(gam/(gam-1)));\n", + "\n", + "a = math.sqrt(gam*R*T);\n", + "V = a*M;\n", + "\n", + "# the values at local sonic point are given by\n", + "T_star = T0*2/(gam+1);\n", + "a_star = math.sqrt(gam*R*T_star);\n", + "M_star = V/a_star;\n", + "\n", + "print\"T0 =\",T0,\"K\",\"\\nP0 =\",p0,\"atm\",\"\\nT* =\",T_star,\"k\",\"\\na* =\",a_star,\"m/s\",\"\\nM* =\",M_star" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E06 : Pg 263" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mach number at the given point is:\n", + "M1 = 0.9\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "p_inf = 1;\n", + "p1 = 0.7545;\n", + "M_inf = 0.6;\n", + "gam = 1.4;\n", + "\n", + "# from eq. (8.42)\n", + "p0_inf = p_inf*((1+((gam-1)/2*M_inf*M_inf))**(gam/(gam-1)));\n", + "\n", + "p0_1 = p0_inf;\n", + "\n", + "# from eq. (8.42)\n", + "ratio = p0_1/p1;\n", + "\n", + "# from appendix A, for this ratio, the Mach number is\n", + "M1 = 0.9;\n", + "\n", + "print\"The mach number at the given point is:\\nM1 =\",M1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E07 : Pg 268" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The velocity at the given point is:\n", + "V1 = 17.3590326624 m/s\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "T_inf = 288; # freestream temperature\n", + "p_inf = 1; # freestream pressure\n", + "p1 = 0.7545; # pressure at point 1\n", + "M = 0.9; # mach number at point 1\n", + "gam = 1.4; # ratio of specific heats\n", + "R=1.;#\n", + "# for isentropic flow, from eq. (7.32)\n", + "T1 = T_inf*((p1/p_inf)**((gam-1)/gam));\n", + "\n", + "# the speed of sound at that point is thus\n", + "a1 = math.sqrt(gam*R*T1);\n", + "\n", + "# thus, the velocity can be given as\n", + "V1 = M*a1;\n", + "\n", + "print\"The velocity at the given point is:\\nV1 =\",V1,\"m/s\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E08 : Pg 268" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p2 = 4.5 atm \n", + "T2 = 485.856 K \n", + "u2 = 255.114727639 m/s\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "u1 = 680; # velocity upstream of shock\n", + "T1 = 288; # temperature upstream of shock\n", + "p1 = 1; # pressure upstream of shock\n", + "gam = 1.4; # ratio of specific heats\n", + "R = 287; # universal gas constant\n", + "\n", + "# the speed of sound is given by\n", + "a1 = math.sqrt(gam*R*T1)\n", + "\n", + "# thus the mach number is\n", + "M1 = 2;\n", + "\n", + "# from Appendix B, for M = 2, the relations between pressure and temperature are given by\n", + "pressure_ratio = 4.5; # ratio of pressure accross shock\n", + "temperature_ratio = 1.687; # ratio of temperature accross shock\n", + "M2 = 0.5774; # mach number downstream of shock\n", + "\n", + "# thus the values downstream of the shock can be calculated as\n", + "p2 = pressure_ratio*p1;\n", + "T2 = temperature_ratio*T1;\n", + "a2 = math.sqrt(gam*R*T2);\n", + "u2 = M2*a2;\n", + "\n", + "print\"p2 =\",p2,\"atm\",\"\\nT2 =\",T2,\"K\",\"\\nu2 =\",u2,\"m/s\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E09 : Pg 271" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total pressure loss is:\n", + "(a)P0_loss= 2.1836784 atm\n", + "\n", + "(b)P0_loss = 130.73016 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "p1 = 1; # ambient pressure upstream of shock\n", + "\n", + "\n", + "# (a)\n", + "# for M = 2;\n", + "p0_1 = 7.824*p1; # total pressure upstream of shock\n", + "pressure_ratio = 0.7209; # ratio of total pressure accross the shock\n", + "p0_2 = pressure_ratio*p0_1; # total pressure downstream of shock\n", + "\n", + "# thus the total loss of pressure is given by\n", + "pressure_loss = p0_1 - p0_2;\n", + "\n", + "print\"The total pressure loss is:\\n(a)P0_loss=\",pressure_loss,\"atm\"\n", + "\n", + "# similarly\n", + "# (b)\n", + "# for M = 4;\n", + "p0_1 = 151.8*p1;\n", + "pressure_ratio = 0.1388;\n", + "p0_2 = pressure_ratio*p0_1;\n", + "\n", + "# thus the total loss of pressure is given by\n", + "pressure_loss = p0_1 - p0_2;\n", + "\n", + "print\"\\n(b)P0_loss =\",pressure_loss,\"atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E10 : Pg 272" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The pressure at point 2 is:p2 = 1.42546466011 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "M_inf = 2.; # freestream mach number\n", + "p_inf = 2.65e4; # freestream pressure\n", + "T_inf = 223.3; # freestream temperature\n", + "\n", + "# from Appendix A, for M = 2\n", + "p0_inf = 7.824*p_inf; # freestream total pressure\n", + "T0_inf = 1.8*T_inf; # freestream total temperature\n", + "\n", + "# from Appendix B, for M = 2\n", + "p0_1 = 0.7209*p0_inf; # total pressure downstream of the shock\n", + "T0_1 = T0_inf; # total temperature accross the shock is conserved\n", + "\n", + "# since the flow downstream of the shock is isentropic\n", + "p0_2 = p0_1;\n", + "T0_2 = T0_1;\n", + "\n", + "# from Appendix A, for M = 0.2 at point 2\n", + "p2 = p0_2/1.028;\n", + "T2 = T0_2/1.008;\n", + "\n", + "p2_atm = p2/102000;\n", + "\n", + "print\"The pressure at point 2 is:p2 =\",p2_atm,\"atm\"," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E11 : Pg 273" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The pressure at point 2 is: p2 = 32.6599307622 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "M_inf = 10; # freestream mach number\n", + "p_inf = 2.65e4; # freestream pressure\n", + "T_inf = 223.3; # freestream temperature\n", + "\n", + "# from Appendix A, for M = 2\n", + "p0_inf = 0.4244e5*p_inf; # freestream total pressure\n", + "T0_inf = 21*T_inf; # freestream total temperature\n", + "\n", + "# from Appendix B, for M = 2\n", + "p0_1 = 0.003045*p0_inf; # total pressure downstream of shock\n", + "T0_1 = T0_inf; # total temperature downstream of shock is conserved\n", + "\n", + "# since the flow downstream of the shock is isentropic\n", + "p0_2 = p0_1;\n", + "T0_2 = T0_1;\n", + "\n", + "# from Appendix A, for M = 0.2 at point 2\n", + "p2 = p0_2/1.028;\n", + "T2 = T0_2/1.008;\n", + "\n", + "p2_atm = p2/102000;\n", + "\n", + "\n", + "print\"The pressure at point 2 is: p2 =\",p2_atm,\"atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E13 : Pg 274" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The pressure at the nose is:\n", + "p_s = 38.1218361303 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "\n", + "p1 = 4.66e4; # ambient pressure\n", + "M = 8; # mach number\n", + "\n", + "# from Appendix B, for M = 8\n", + "p0_2 = 82.87*p1; # total pressure downstream of the shock\n", + "\n", + "# since the flow is isentropic downstream of the shock, total pressure is conserved\n", + "ps_atm = p0_2/101300; # pressure at the stagnation point\n", + "\n", + "print\"The pressure at the nose is:\\np_s =\",ps_atm,\"atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E14 : Pg 274" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Velocity of the airplane is:\n", + "V1 = 1003.16703558 m/s\n" + ] + } + ], + "source": [ + "# All the quantities are expressedin SI units\n", + "import math \n", + "p1 = 2527.3; # ambient pressure at the altitude of 25 km\n", + "T1 = 216.66; # ambient temperature at the altitude of 25 km\n", + "p0_1 = 38800; # total pressure\n", + "gam = 1.4; # ratio of specific heats\n", + "R = 287; # universal gas constant\n", + "pressure_ratio = p0_1/p1; # ratio of total to static pressure\n", + "\n", + "# for this value of pressure ratio, mach number is\n", + "M1 = 3.4;\n", + "\n", + "# the speed of sound is given by\n", + "a1 = math.sqrt(gam*R*T1)\n", + "\n", + "# thus the velocity can be calculated as\n", + "V1 = M1*a1;\n", + "\n", + "print\"The Velocity of the airplane is:\\nV1 =\",V1,\"m/s\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER09_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER09_3.ipynb new file mode 100644 index 00000000..192558d4 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER09_3.ipynb @@ -0,0 +1,564 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER09:OBLIGUE SHOCK AND EXPANSION WAVES" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 302" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The plane is ahead of the bystander by a distance of:\n", + "d = 27.7128129211 km\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math\n", + "M = 2.; # mach number\n", + "h = 16000.; # altitude of the plane\n", + "\n", + "# the mach angle can be calculated from eq.(9.1) as\n", + "mue = math.asin(1./M); # mach angle\n", + "\n", + "d = h/math.tan(mue);\n", + "\n", + "print\"The plane is ahead of the bystander by a distance of:\\nd =\",d/1000.,\"km\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 302" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "M2 = 1.214211418 \n", + "p2 = 2.82 atm \n", + "T2 = 399.744 K \n", + "p0,2 = 7.0040448 atm \n", + "T0,2 = 518.4 K\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi, sin,cos\n", + "M1 = 2.; # mach number\n", + "p1 = 1.; # ambient pressure\n", + "T1 = 288.; # ambient temperature\n", + "theta = 20.*pi/180.; # flow deflection\n", + "\n", + "# from figure 9.9, for M = 2, theta = 20\n", + "b = 53.4*pi/180.; # beta\n", + "Mn_1 = M1*sin(b); # upstream mach number normal to shock\n", + "\n", + "# for this value of Mn,1 = 1.60, from Appendix B we have\n", + "Mn_2 = 0.6684; # downstream mach number normal to shock\n", + "M2 = Mn_2/sin(b-theta); # mach number downstream of shock\n", + "p2 = 2.82*p1;\n", + "T2 = 1.388*T1;\n", + "\n", + "# for M = 2, from appendix A we have\n", + "p0_2 = 0.8952*7.824*p1;\n", + "T0_1 = 1.8*T1;\n", + "T0_2 = T0_1;\n", + "\n", + "print\"M2 =\",M2,\"\\np2 =\",p2,\"atm\",\"\\nT2 =\",T2,\"K\",\"\\np0,2 =\",p0_2,\"atm\",\"\\nT0,2 =\",T0_2,\"K\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 305" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta = 6.5 degrees \n", + "p2/p1 = 1.513 \n", + "T2/T1 = 1.128 \n", + "M2 = 2.11210524521\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sin\n", + "b = 30.*pi/180.; # oblique shock wave angle\n", + "M1 = 2.4; # upstream mach number\n", + "\n", + "# from figure 9.9, for these value of M and beta, we have\n", + "theta = 6.5*pi/180.;\n", + "\n", + "Mn_1 = M1*sin(b); # upstream mach number normal to shock\n", + "\n", + "# from Appendix B\n", + "pressure_ratio = 1.513;\n", + "temperature_ratio = 1.128;\n", + "Mn_2 = 0.8422;\n", + "\n", + "M2 = Mn_2/sin(b-theta);\n", + "\n", + "print\"theta =\",theta*180./pi,\"degrees\",\"\\np2/p1 =\",pressure_ratio,\"\\nT2/T1 =\",temperature_ratio,\"\\nM2 =\",M2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E04 : Pg 309" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The upstream mach number is:\n", + "M = 2.85925274482\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sin\n", + "b = 35.*pi/180.; # oblique shock wave angle\n", + "pressure_ratio = 3.; # upstream and downstream pressure ratio\n", + "\n", + "# from appendix B\n", + "Mn_1 = 1.64;\n", + "M1 = Mn_1/sin(b);\n", + "\n", + "print\"The upstream mach number is:\\nM =\",M1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E05 : Pg 309" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ans = 1.76130338105\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sin\n", + "M1 = 3.;\n", + "b = 40.*pi/180.;\n", + "\n", + "# for case 1, for M = 3, from Appendix B, we have\n", + "p0_ratio_case1 = 0.3283;\n", + "\n", + "# for case 2\n", + "Mn_1 = M1*sin(b);\n", + "\n", + "# from Appendix B\n", + "p0_ratio1 = 0.7535;\n", + "Mn_2 = 0.588;\n", + "\n", + "# from fig. 9.9, for M1 = 3 and beta = 40, we have\n", + "theta = 22.*pi/180.;\n", + "M2 = Mn_2/sin(b-theta);\n", + "\n", + "# from appendix B for M = 1.9; we have\n", + "p0_ratio2 = 0.7674;\n", + "p0_ratio_case2 = p0_ratio1*p0_ratio2;\n", + "\n", + "ratio = p0_ratio_case2/p0_ratio_case1;\n", + "\n", + "print\"Ans =\",ratio" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E06 : Pg 310" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The drag coefficient is given by:\n", + "cd = 0.114406649477\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sin,tan\n", + "M1 = 5.;\n", + "theta = 15.*pi/180.;\n", + "gam = 1.4;\n", + "\n", + "# for these values of M and theta, from fig. 9.9\n", + "b = 24.2*pi/180;\n", + "Mn_1 = M1*sin(b);\n", + "\n", + "# from Appendix B, for Mn,1 = 2.05, we have\n", + "p_ratio = 4.736;\n", + "\n", + "# hence\n", + "c_d = 4.*tan(theta)/gam/(M1**2.)*(p_ratio-1.);\n", + "\n", + "print\"The drag coefficient is given by:\\ncd =\",c_d" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E07 : Pg 311" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p3 = 4.67916856 x 10**5 N/m2 \n", + "T3 = 458.013888 K\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sin,tan\n", + "M1 = 3.5;\n", + "theta1 = 10.*pi/180.;\n", + "gam = 1.4;\n", + "p1 = 101300.;\n", + "T1 = 288.;\n", + "b=1.;#\n", + "# for these values of M and theta, from fig. 9.9\n", + "b1 = 24.*pi/180.;\n", + "Mn_1 = M1*sin(b);\n", + "\n", + "# from Appendix B, for Mn,1 = 2.05, we have\n", + "Mn_2 = 0.7157;\n", + "p_ratio1 = 2.32;\n", + "T_ratio1 = 1.294;\n", + "M2 = Mn_2/sin(b1-theta1);\n", + "\n", + "# now\n", + "theta2 = 10.*pi/180.;\n", + "\n", + "# from fig. 9.9\n", + "b2 = 27.3*pi/180.;\n", + "phi = b2 - theta2;\n", + "\n", + "# from Appendix B\n", + "p_ratio2 = 1.991;\n", + "T_ratio2 = 1.229;\n", + "Mn_3 = 0.7572;\n", + "M3 = Mn_3/sin(b2-theta2);\n", + "\n", + "# thus\n", + "p3 = p_ratio1*p_ratio2*p1;\n", + "T3 = T_ratio1*T_ratio2*T1;\n", + "\n", + "print\"p3 =\",p3/1e5,\"x 10**5 N/m2\",\"\\nT3 =\",T3,\"K\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E08 : Pg 312" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p2 = 0.469197341513 atm \n", + "T2 = 232.0 K \n", + "p0,2 = 3.671 atm \n", + "T0,2 = 417.6 K \n", + "Angle of forward Mach line = 41.81 degrees \n", + "Angle of rear Mach line = 15.0 degrees\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sin,tan\n", + "M1 = 1.5; # upstream mach number\n", + "theta = 15.*pi/180.; # deflection angle\n", + "p1 = 1.; # ambient pressure in atm\n", + "T1 = 288.; # ambient temperature\n", + "\n", + "# from appendix C, for M1 = 1.5 we have\n", + "v1 = 11.91*pi/180.;\n", + "\n", + "# from eq.(9.43)\n", + "v2 = v1 + theta;\n", + "\n", + "# for this value of v2, from appendix C\n", + "M2 = 2.;\n", + "\n", + "# from Appendix A for M1 = 1.5 and M2 = 2.0, we have\n", + "p2 = 1./7.824*1.*3.671*p1;\n", + "T2 = 1./1.8*1.*1.45*T1;\n", + "p0_1 = 3.671*p1;\n", + "p0_2 = p0_1;\n", + "T0_1 = 1.45*T1;\n", + "T0_2 = T0_1;\n", + "\n", + "# from fig. 9.25, we have\n", + "fml = 41.81; # Angle of forward Mach line\n", + "rml = 30. - 15.; # Angle of rear Mach line\n", + "\n", + "print\"p2 =\",p2,\"atm\",\"\\nT2 =\",T2,\"K\",\"\\np0,2 =\",p0_2,\"atm\",\"\\nT0,2 =\",T0_2,\"K\",\"\\nAngle of forward Mach line =\",fml,\"degrees\",\"\\nAngle of rear Mach line =\",rml,\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E09 : Pg 312" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "M2 = 6.4 \n", + "p2 = 18.0212314225 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi\n", + "M1 = 10.; # upstream mach number\n", + "theta = 15.*pi/180.; # deflection angle\n", + "p1 = 1.; # ambient pressure in atm\n", + "# from appendix C, for M1 = 10 we have\n", + "v1 = 102.3*pi/180.;\n", + "# in region 2\n", + "v2 = v1 - theta;\n", + "# for this value of v2, from appendix C\n", + "M2 = 6.4;\n", + "# from Appendix A for M1 = 10 and M2 = 6.4, we have\n", + "p2 = 1./(2355.)*1.*42440.*p1;\n", + "print\"M2 =\",M2,\"\\np2 =\",p2,\"atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E10 : Pg 315" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "M2 = 5.22283426943 \n", + "p2 = 13.32 atm \n", + "p0,2 = 9.854568 x 10**3 atm\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "M1 = 10; # upstream mach number\n", + "theta = 15*math.pi/180; # deflection angle\n", + "p1 = 1; # ambient pressure in atm\n", + "\n", + "# from fig 9.9, for M1 = 10 and theta = 15 we have\n", + "b = 20*math.pi/180;\n", + "Mn_1 = M1*math.sin(b);\n", + "\n", + "# from Appendix B, for Mn,1 = 3.42\n", + "Mn_2 = 0.4552;\n", + "M2 = Mn_2/math.sin(b-theta);\n", + "p2 = 13.32*p1;\n", + "\n", + "# from Appendix A, for M1 = 10\n", + "p0_2 = 0.2322*42440*p1;\n", + "\n", + "print\"M2 =\",M2,\"\\np2 =\",p2,\"atm\",\"\\np0,2 =\",p0_2/1e3,\"x 10**3 atm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E11 : Pg 316" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The lift and drag coefficients are given by:\n", + "cl = 0.124948402826 \n", + "cd = 0.0109315687729\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "M1 = 3.; # upstream mach number\n", + "theta = 5.*math.pi/180.; # deflection angle\n", + "alpha = theta; # angle of attack\n", + "gam = 1.4;\n", + "\n", + "# from appendix C, for M1 = 3 we have\n", + "v1 = 49.76*math.pi/180.;\n", + "\n", + "# from eq.(9.43)\n", + "v2 = v1 + theta;\n", + "\n", + "# for this value of v2, from appendix C\n", + "M2 = 3.27;\n", + "\n", + "# from Appendix A for M1 = 3 and M2 = 3.27, we have\n", + "p_ratio1 = 36.73/55.;\n", + "\n", + "# from fig. 9.9, for M1 = 3 and theta = 5\n", + "b = 23.1*math.pi/180.;\n", + "Mn_1 = M1*math.sin(b);\n", + "\n", + "# from Appendix B\n", + "p_ratio2 = 1.458;\n", + "\n", + "# thus\n", + "c_l = 2./gam/(M1**2.)*(p_ratio2-p_ratio1)*math.cos(alpha);\n", + "\n", + "c_d = 2./gam/(M1**2.)*(p_ratio2-p_ratio1)*math.sin(alpha);\n", + "\n", + "print\"The lift and drag coefficients are given by:\\ncl =\",c_l,\"\\ncd =\",c_d" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER10_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER10_3.ipynb new file mode 100644 index 00000000..9a52e44a --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER10_3.ipynb @@ -0,0 +1,333 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER10:COMPRESSIBLE FLOW THROUGH NOZZLES DIFFUSERS AND WIND TUNNELS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 345" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Me = 3.95\n", + "pe = 0.035 atm\n", + "Te = 80.89191 K\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in Si units\n", + "area_ratio = 10.25; # exit to throat area ratio\n", + "p0 = 5; # reservoir pressure in atm\n", + "T0 = 333.3; # reservoir temperature\n", + "\n", + "# from appendix A, for an area ratio of 10.25\n", + "Me = 3.95; # exit mach number\n", + "pe = 0.007*p0; # exit pressure\n", + "Te = 0.2427*T0; # exit temperature\n", + "\n", + "print\"Me =\",Me\n", + "print\"pe =\",pe,\"atm\"\n", + "print\"Te =\",Te,\"K\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 346" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "At throat: Mt = 1.0\n", + "\n", + "At throat: pt = 0.528 atm\n", + "\n", + "At throat: Tt = 239.904 K\n", + "\n", + "At throat: For supersonic exit: 2.2\n", + "\n", + "At throat: pe = 0.0935453695042 atm\n", + "\n", + "At throat: Te = 146.341463415 K\n", + "\n", + "For subrsonic exit: 0.3\n", + "\n", + "pe= 0.93984962406 atm\n", + "\n", + "Te= 282.907662083 K\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in Si units\n", + "\n", + "area_ratio = 2.; # exit to throat area ratio\n", + "p0 = 1.; # reservoir pressure in atm\n", + "T0 = 288.; # reservoir temperature\n", + "\n", + "# (a)\n", + "# since M = 1 at the throat\n", + "Mt = 1.;\n", + "pt = 0.528*p0; # pressure at throat\n", + "Tt = 0.833*T0; # temperature at throat\n", + "\n", + "# from appendix A for supersonic flow, for an area ratio of 2\n", + "Me = 2.2; # exit mach number\n", + "pe = 1./10.69*p0; # exit pressure\n", + "Te = 1./1.968*T0; # exit temperature\n", + "\n", + "print\"At throat: Mt =\",Mt\n", + "print\"\\nAt throat: pt =\",pt,\"atm\"\n", + "print\"\\nAt throat: Tt = \",Tt,\"K\"\n", + "print\"\\nAt throat: For supersonic exit:\",Me\n", + "print\"\\nAt throat: pe =\",pe,\"atm\"\n", + "print\"\\nAt throat: Te = \",Te,\"K\"\n", + "\n", + "# (b)\n", + "# from appendix A for subonic flow, for an area ratio of 2\n", + "Me = 0.3; # exit mach number\n", + "pe = 1/1.064*p0; # exit pressure\n", + "Te = 1/1.018*T0; # exit temperature\n", + "\n", + "print\"\\nFor subrsonic exit:\",Me\n", + "print\"\\npe=\",pe,\"atm\"\n", + "print\"\\nTe=\",Te,\"K\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 346" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Me = 0.2\n", + "Mt = 0.44\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in Si units\n", + "\n", + "area_ratio = 2.; # exit to throat area ratio\n", + "p0 = 1.; # reservoir pressure in atm\n", + "T0 = 288.; # reservoir temperature\n", + "pe = 0.973; # exit pressure in atm\n", + "\n", + "p_ratio = p0/pe; # ratio of reservoir to exit pressure\n", + "\n", + "# from appendix A for subsonic flow, for an pressure ratio of 1.028\n", + "Me = 0.2; # exit mach number\n", + "area_ratio_exit_to_star = 2.964; # A_exit/A_star\n", + "\n", + "# thus\n", + "area_ratio_throat_to_star = area_ratio_exit_to_star/area_ratio; # A_exit/A_star\n", + "\n", + "# from appendix A for subsonic flow, for an area ratio of 1.482\n", + "Mt = 0.44; # throat mach number\n", + "\n", + "print\"Me =\",Me\n", + "print\"Mt =\",Mt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E04 : Pg 352" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)The thrust of the rocket is:T = 2.1702872295 N\n", + "\n", + "(b)The nozzle exit area is 487663.540469\n", + "\n", + "Ae = 16.7097500627 m2\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "p0 = 30.*101000.; # reservoir pressure\n", + "T0 = 3500.; # reservoir temperature\n", + "R = 520.; # specific gas constant\n", + "gam = 1.22; # ratio of specific heats\n", + "A_star = 0.4; # rocket nozzle throat area\n", + "pe = 5529.; # rocket nozzle exit pressure equal to ambient pressure at 20 km altitude\n", + "\n", + "# (a)\n", + "# the density of air in the reservoir can be calculated as\n", + "rho0 = p0/R/T0;\n", + "\n", + "# from eq.(8.46)\n", + "rho_star = rho0*(2/(gam+1))**(1/(gam-1));\n", + "\n", + "# from eq.(8.44)\n", + "T_star = T0*2/(gam+1);\n", + "a_star = math.sqrt(gam*R*T_star);\n", + "u_star = a_star;\n", + "m_dot = rho_star*u_star*A_star;\n", + "\n", + "# rearranging eq.(8.42)\n", + "Me = math.sqrt(2/(gam-1)*(((p0/pe)**((gam-1)/gam)) - 1));\n", + "Te = T0/(1+(gam-1)/2*Me*Me);\n", + "ae = math.sqrt(gam*R*Te);\n", + "ue = Me*ae;\n", + "\n", + "# thus the thrust can be calculated as\n", + "T = m_dot*ue;\n", + "T_lb = T*0.2247;\n", + "\n", + "# (b)\n", + "# rearranging eq.(10.32)\n", + "Ae = A_star/Me*((2/(gam+1)*(1+(gam-1)/2*Me*Me))**((gam+1)/(gam-1)/2));\n", + "\n", + "print\"(a)The thrust of the rocket is:T =\" ,T/1e6, \"N\"\n", + "print\"\\n(b)The nozzle exit area is\",T_lb \n", + "\n", + "print\"\\nAe =\",Ae, \"m2\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E05 : Pg 353" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mass flow rate is: m_dot = 586.100122081 kg/s\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "p0 = 30.*101000.; # reservoir pressure\n", + "T0 = 3500.; # reservoir temperature\n", + "R = 520.; # specific gas constant\n", + "gam = 1.22; # ratio of specific heats\n", + "A_star = 0.4; # rocket nozzle throat area\n", + "\n", + "# the mass flow rate using the closed form analytical expression\n", + "# from problem 10.5 can be given as\n", + "m_dot = p0*A_star*math.sqrt(gam/R/T0*((2/(gam+1))**((gam+1)/(gam-1))));\n", + "\n", + "print\"The mass flow rate is: m_dot =\",m_dot, \"kg/s\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E06 : Pg 356" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The diffuser throat to nozzle throat area ratio is: = 1.38715494521\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "M = 2.; # Mach number\n", + "# for this value M, for a normal shock, from Appendix B\n", + "p0_ratio = 0.7209;\n", + "# thus\n", + "area_ratio = 1./p0_ratio;\n", + "print\"The diffuser throat to nozzle throat area ratio is: =\",area_ratio" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER11_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER11_3.ipynb new file mode 100644 index 00000000..383aa8f5 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER11_3.ipynb @@ -0,0 +1,97 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER11:SUBSONIC COMPRESSIBLE FLOW OVER AIRFOILS LINEAR THEOREY" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 382" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)The Cp after compressibility corrections is: -0.375 Cp\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "Cp_incompressible = -0.3; # Cp for incompressible flow\n", + "M = 0.6; # Mach number\n", + "# Thus from eq.(11.52)\n", + "Cp_compressible = Cp_incompressible/math.sqrt(1-M**2);\n", + "print\"(a)The Cp after compressibility corrections is:\",Cp_compressible,\"Cp\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 383" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)The cl after compressibility corrections is: cl = 8.7982192499 alpha\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "cl_incompressible = 2*math.pi; # lift curve slope\n", + "M_inf = 0.7; # Mach number\n", + "# from eq.(11.52)\n", + "cl_compressible = cl_incompressible/math.sqrt(1-M_inf**2); # compressible lift curve slope\n", + "print\"(a)The cl after compressibility corrections is: cl =\",cl_compressible,\"alpha\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER12_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER12_3.ipynb new file mode 100644 index 00000000..c4032f0f --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER12_3.ipynb @@ -0,0 +1,184 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER12:LINEARIZED SUPERSONIC FLOW" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 395" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The cl and cd according to the linearized theory are:cl = 0.12\n", + "The cl and cd according to the linearized theory are:cd = 0.01\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import pi,sqrt\n", + "alpha = 5*pi/180; # angle of attack\n", + "M_inf = 3; # freestream mach number\n", + "\n", + "# from eq.(12.23)\n", + "c_l = 4*alpha/sqrt(M_inf**2 - 1);\n", + "\n", + "# from eq.(12.24)\n", + "c_d = 4*alpha**2/sqrt(M_inf**2 - 1);\n", + "\n", + "print\"The cl and cd according to the linearized theory are:cl =\", round(c_l,2)\n", + "print\"The cl and cd according to the linearized theory are:cd =\",round(c_d,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 395" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The angle of attack of the wing is: 1.97493716351 degrees\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt,pi\n", + "M_inf = 2.; # freestream mach number\n", + "rho_inf = 0.3648; # freestream density at 11 km altitude\n", + "T_inf = 216.78; # freestream temperature at 11 km altitude\n", + "gam = 1.4; # ratio of specific heats\n", + "R = 287.; # specific gas constant\n", + "m = 9400.; # mass of the aircraft\n", + "g = 9.8; # acceleratio due to gravity\n", + "W = m*g; # weight of the aircraft\n", + "S = 18.21; # wing planform area\n", + "# thus\n", + "a_inf = sqrt(gam*R*T_inf);\n", + "V_inf = M_inf*a_inf;\n", + "q_inf = 1./2.*rho_inf*V_inf**2.;\n", + "\n", + "# thus the aircraft lift coefficient is given as\n", + "C_l = W/q_inf/S;\n", + "\n", + "alpha = 180./pi*C_l/4.*sqrt(M_inf**2. - 1.);\n", + "\n", + "print\"The angle of attack of the wing is:\",alpha,\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 400" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a) Net Cf = 4.3\n", + "(b) cd = 2.82901631903\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "# All the quantities are expressed in SI units\n", + "from math import sqrt,pi\n", + "# (a)\n", + "M_inf = 2.; # freestream mach number\n", + "rho_inf = 0.3648; # freestream density at 11 km altitude\n", + "T_inf = 216.78; # freestream temperature at 11 km altitude\n", + "gam = 1.4; # ratio of specific heats\n", + "R = 287.; # specific gas constant\n", + "m = 9400.; # mass of the aircraft\n", + "g = 9.8; # acceleratio due to gravity\n", + "W = m*g; # weight of the aircraft\n", + "S = 18.21; # wing planform area\n", + "c = 2.2; # chord length of the airfoil\n", + "alpha = 0.035; # angle of attack as calculated in ex. 12.2\n", + "T0 = 288.16; # ambient temperature at sea level\n", + "mue0 = 1.7894e-5; # reference viscosity at sea level\n", + "\n", + "# thus\n", + "a_inf = sqrt(gam*R*T_inf);\n", + "V_inf = M_inf*a_inf;\n", + "\n", + "# according to eq.(15.3), the viscosity at the given temperature is\n", + "mue_inf = mue0*(T_inf/T0)**1.5*(T0+110.)/(T_inf+110.);\n", + "\n", + "# thus the Reynolds number can be given by\n", + "Re = rho_inf*V_inf*c/mue_inf;\n", + "\n", + "# from fig.(19.1), for these values of Re and M, the skin friction coefficient is\n", + "Cf = 2.15*10**-3;\n", + "\n", + "# thus, considering both sides of the flat plate\n", + "net_Cf = 2.*Cf;\n", + "\n", + "# (b)\n", + "c_d = 4.*alpha**2./sqrt(M_inf**2. - 1.);\n", + "\n", + "print\"(a) Net Cf = \",net_Cf*1e3\n", + "print\"(b) cd =\",c_d*1e3" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER14_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER14_3.ipynb new file mode 100644 index 00000000..6fb8ebd5 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER14_3.ipynb @@ -0,0 +1,116 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER14:ELEMENTS OF HYPERSONIC FLOW" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 440" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The exact results from the shock-expansion theory are:\n", + "Cp2 = -0.0218681754368\n", + "Cp3 = 0.188459821429\n", + " cl = 0.203161244164\n", + "cd = 0.054436891307\n", + "L/D = 3.73205080757\n", + "\n", + "(b) The results from Newtonian theory are:\n", + "Cp2 = 0\n", + "Cp3 = 0.133974596216\n", + "cl = 0.129409522551\n", + "cd = 0.0346751770605\n", + "L/D = 3.73205080757\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt,pi,sin,cos\n", + "M1 = 8.; # mach number\n", + "alpha = 15.*pi/180.; # anlge of attack\n", + "theta= alpha;\n", + "gam = 1.4;\n", + "# (a)\n", + "# for M = 8\n", + "v1 = 95.62*pi/180.;\n", + "v2 = v1 + theta;\n", + "# from Appendix C\n", + "M2 = 14.32;\n", + "# from Appendix A, for M1 = 8 and M2 = 14.32\n", + "p_ratio = 0.9763e4/0.4808e6;\n", + "# from eq.(11.22)\n", + "Cp2 = 2/gam/M1**2*(p_ratio - 1);\n", + "# for M1 = 8 and theta = 15\n", + "b = 21*pi/180;\n", + "Mn_1 = M1*sin(b);\n", + "# for this value of Mn,1, from appendix B\n", + "p_ratio2 = 9.443;\n", + "# thus\n", + "Cp3 = 2./gam/M1**2.*(p_ratio2 - 1.);\n", + "c_n = Cp3 - Cp2;\n", + "c_l = c_n*cos(alpha);\n", + "c_d = c_n*sin(alpha);\n", + "L_by_D = c_l/c_d;\n", + "print\"The exact results from the shock-expansion theory are:\"\n", + "print\"Cp2 =\",Cp2\n", + "print\"Cp3 = \",Cp3\n", + "print\" cl =\",c_l\n", + "print\"cd =\",c_d\n", + "print\"L/D =\",L_by_D\n", + "# (b)\n", + "# from Newtonian theory, by eq.(14.9)\n", + "Cp3 = 2.*sin(alpha)**2;\n", + "Cp2 = 0;\n", + "c_l = (Cp3 - Cp2)*cos(alpha);\n", + "c_d = (Cp3 - Cp2)*sin(alpha);\n", + "L_by_D = c_l/c_d;\n", + "print\"\\n(b) The results from Newtonian theory are:\"\n", + "print\"Cp2 =\",Cp2\n", + "print\"Cp3 =\",Cp3\n", + "print\"cl =\",c_l\n", + "print\"cd =\",c_d\n", + "print\"L/D =\",L_by_D" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER16_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER16_3.ipynb new file mode 100644 index 00000000..be767b15 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER16_3.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER16:SOME SPECIAL CASES COUETTE AND POISEUILLE FLOWS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 524" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)u = 30.48 m/s\n", + "(b)tow_w = 429.456 N/m2\n", + "(c)T = 288.628328315 K\n", + "(d)q_w_dot = 13089.81888 Nm-1s-1\n", + "(e)Taw = K 289.613313258\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "mue = 1.7894*10**5; # coefficient of viscosity\n", + "ue = 60.96; # velocity of upper plate\n", + "D = 2.54*10**4; # distance between the 2 plates\n", + "T_w = 288.3; # temperature of the plates\n", + "Pr = 0.71; # Prandlt number\n", + "cp = 1004.5; # specific heat at constant pressure\n", + "\n", + "# (a)\n", + "# from eq.(16.6)\n", + "u = ue/2;\n", + "\n", + "# (b)\n", + "# from eq.(16.9)\n", + "tow_w = mue*ue/D;\n", + "\n", + "# (c)\n", + "# from eq.(16.34)\n", + "T = T_w + Pr*ue**2/8/cp;\n", + "\n", + "# (d)\n", + "# from eq.(16.35)\n", + "q_w_dot = mue/2*ue**2/D;\n", + "\n", + "# (e)\n", + "# from eq.(16.40)\n", + "T_aw = T_w + Pr/cp*ue**2/2;\n", + "\n", + "print\"(a)u =\",u,\"m/s\"\n", + "print\"(b)tow_w =\",tow_w,\"N/m2\"\n", + "print\"(c)T =\",T,\"K\"\n", + "print\"(d)q_w_dot =\",q_w_dot,\"Nm-1s-1\"\n", + "print\"(e)Taw =\",\"K\",T_aw\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 524" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The heat transfer is given by:q_w_dot = 3.67387998933 W/m2\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt\n", + "mue = 1.7894*10**5; # coefficient of viscosity\n", + "Me = 3.; # mach number of upper plate\n", + "D = 2.54*10**4; # distance between the 2 plates\n", + "pe = 101000.; # ambient pressure\n", + "Te = 288.; # temperature of the plates\n", + "Tw = Te;\n", + "gam = 1.4; # ratio of specific heats\n", + "R = 287; # specific gas constant\n", + "Pr = 0.71; # Prandlt number\n", + "cp = 1004.5; # specific heat at constant pressure\n", + "tow_w = 72.; # shear stress on the lower wall\n", + "# the velocity of the upper plate is given by\n", + "ue = Me*sqrt(gam*R*Te);\n", + "# the density at both plates is\n", + "rho_e = pe/R/Te;\n", + "# the coefficient of skin friction is given by\n", + "cf = 2.*tow_w/rho_e/ue**2.;\n", + "# from eq.(16.92)\n", + "C_H = cf/2/Pr;\n", + "# from eq.(16.82)\n", + "h_aw = cp*Te + Pr*ue**2/2;\n", + "h_w = cp*Tw;\n", + "q_w_dot = rho_e*ue*(h_aw-h_w)*C_H;\n", + "print\"The heat transfer is given by:q_w_dot =\",q_w_dot/1e4,\"W/m2\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER18_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER18_3.ipynb new file mode 100644 index 00000000..3b3b1286 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER18_3.ipynb @@ -0,0 +1,234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER18:LAMINAR BOUNDARY LAYERS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 595" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total frictional drag is:(a)D = 17563872.6566 N\n", + "(b) D = 501884115.614 N\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt\n", + "p_inf = 101000.; # freestream pressure\n", + "T_inf = 288.; # freestream temperature\n", + "c = 2.; # chord length of the plate\n", + "S = 40.; # planform area of the plate\n", + "mue_inf=1.7894*10.**5.; # coefficient of viscosity at sea level\n", + "gam=1.4; # ratio of specific heats\n", + "R=287.; # specific gas constant\n", + "# the freestream density is\n", + "rho_inf = p_inf/R/T_inf;\n", + "# the speed of sound is\n", + "a_inf = sqrt(gam*R*T_inf);\n", + "# (a)\n", + "V_inf = 100.;\n", + "# thus the mach number can be calculated as\n", + "M_inf = V_inf/a_inf;\n", + "# the Reynolds number at the trailing is given as\n", + "Re_c = rho_inf*V_inf*c/mue_inf;\n", + "# from eq.(18.22)\n", + "Cf = 1.328/sqrt(Re_c);\n", + "# the friction drag on one surface of the plate is given by\n", + "D_f = 1./2.*rho_inf*V_inf**2.*S*Cf;\n", + "# the total drag generated due to both surfaces is\n", + "D = 2.*D_f;\n", + "print\"The total frictional drag is:(a)D =\",D,\"N\"\n", + "# (b)\n", + "V_inf = 1000.;\n", + "# thus the mach number can be calculated as\n", + "M_inf = V_inf/a_inf;\n", + "# the Reynolds number at the trailing is given as\n", + "Re_c = rho_inf*V_inf*c/mue_inf;\n", + "# from eq.(18.22)\n", + "Cf = 1.2/sqrt(Re_c);\n", + "# the friction drag on one surface of the plate is given by\n", + "D_f = 1./2.*rho_inf*V_inf**2.*S*Cf;\n", + "# the total drag generated due to both surfaces is\n", + "D = 2.*D_f;\n", + "print\"(b) D =\",D,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 596" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total frictional drag is: D = 4978.09594496 N\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt\n", + "Pr = 0.71; # Prandlt number of air at standard conditions\n", + "Pr_star = Pr;\n", + "Te = 288.; # temperature of the upper plate\n", + "ue = 1000.; # velocity of the upper plate\n", + "Me = 2.94; # Mach number of flow on the upper plate\n", + "p_star = 101000.;\n", + "R = 287.; # specific gas constant\n", + "T0 = 288.; # reference temperature at sea level\n", + "mue0 = 1.7894*10**-5; # reference viscosity at sea level\n", + "c = 2.; # chord length of the plate\n", + "S = 40.; # plate planform area\n", + "\n", + "# recovery factor for a boundary layer is given by eq.(18.47) as\n", + "r = sqrt(Pr);\n", + "\n", + "# rearranging eq.(16.49), we get for M = 2.94\n", + "T_aw = Te*(1+r*(2.74-1));\n", + "\n", + "# from eq.(18.53)\n", + "T_star = Te*(1 + 0.032*Me**2. + 0.58*(T_aw/Te-1.));\n", + "\n", + "# from the equation of state\n", + "rho_star = p_star/R/T_star;\n", + "\n", + "# from eq.(15.3)\n", + "mue_star = mue0*(T_star/T0)**1.5*(T0+110.)/(T_star+110.);\n", + "\n", + "# thus\n", + "Re_c_star = rho_star*ue*c/mue_star;\n", + "\n", + "# from eq.(18.22)\n", + "Cf_star = 1.328/sqrt(Re_c_star);\n", + "\n", + "# hence, the frictional drag on one surface of the plate is\n", + "D_f = 1./2.*rho_star*ue**2.*S*Cf_star;\n", + "\n", + "# thus, the total frictional drag is given by\n", + "D = 2.*D_f;\n", + "\n", + "print\"The total frictional drag is: D =\",D,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 600" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total frictional drag is: D = 5014.11379241 N\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "from math import sqrt\n", + "Pr = 0.71; # Prandlt number of air at standard conditions\n", + "Pr_star = Pr;\n", + "Te = 288.; # temperature of the upper plate\n", + "ue = 1000.; # velocity of the upper plate\n", + "Me = 2.94; # Mach number of flow on the upper plate\n", + "p_star = 101000.;\n", + "R = 287.; # specific gas constant\n", + "gam = 1.4; # ratio of specific heats\n", + "T0 = 288.; # reference temperature at sea level\n", + "mue0 = 1.7894*10**-5; # reference viscosity at sea level\n", + "c = 2.; # chord length of the plate\n", + "S = 40.; # plate planform area\n", + "\n", + "# recovery factor for a boundary layer is given by eq.(18.47) as\n", + "r = sqrt(Pr);\n", + "\n", + "# from ex.(8.2)\n", + "T_aw = Te*2.467;\n", + "T_w = T_aw;\n", + "\n", + "# from the Meador-Smart equation\n", + "T_star = Te*(0.45 + 0.55*T_w/Te + 0.16*r*(gam-1)/2*Me**2.);\n", + "\n", + "# from the equation of state\n", + "rho_star = p_star/R/T_star;\n", + "\n", + "# from eq.(15.3)\n", + "mue_star = mue0*(T_star/T0)**1.5*(T0+110)/(T_star+110.);\n", + "\n", + "# thus\n", + "Re_c_star = rho_star*ue*c/mue_star;\n", + "\n", + "# from eq.(18.22)\n", + "Cf_star = 1.328/sqrt(Re_c_star);\n", + "\n", + "# hence, the frictional drag on one surface of the plate is\n", + "D_f = 1./2.*rho_star*ue**2.*S*Cf_star;\n", + "\n", + "# thus, the total frictional drag is given by\n", + "D = 2.*D_f;\n", + "\n", + "print\"The total frictional drag is: D =\",D,\"N\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER19_3.ipynb b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER19_3.ipynb new file mode 100644 index 00000000..1fa4a0c5 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./CHAPTER19_3.ipynb @@ -0,0 +1,191 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER19:TURBULENT BOUNDARY LAYERS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E01 : Pg 612" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total frictional drag is: (a)D = 1351.89748485 N\n", + "(b) D = 65392.0 N\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "# (a)\n", + "from math import sqrt\n", + "Re_c = 1.36e7; # as obtained from ex. 18.1a\n", + "rho_inf = 1.22; # freestream air denstiy\n", + "S = 40.; # plate planform area\n", + "# hence, from eq.(19.2)\n", + "Cf = 0.074/Re_c**0.2;\n", + "V_inf = 100.;\n", + "# hence, for one side of the plate\n", + "D_f = 1./2.*rho_inf*V_inf**2.*S*Cf;\n", + "# the total drag on both the surfaces is\n", + "D = 2.*D_f;\n", + "print\"The total frictional drag is: (a)D =\",D,\"N\"\n", + "# (b)\n", + "Re_c = 1.36e8; # as obtained from ex. 18.1b\n", + "# hence, from fig 19.1 we have\n", + "Cf = 1.34*10.**-3.;\n", + "V_inf = 1000.;\n", + "# hence, for one side of the plate\n", + "D_f = 1./2.*rho_inf*V_inf**2.*S*Cf;\n", + "# the total drag on both the surfaces is\n", + "D = 2.*D_f;\n", + "print\"(b) D =\",D,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E02 : Pg 612" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total frictional drag is:D = 51916.421508 N\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "# from ex 18.2\n", + "from math import sqrt\n", + "Re_c_star = 3.754e7; # Reynolds number at the trailing edge of the plate\n", + "rho_star = 0.574;\n", + "ue = 1000.; # velocity of the upper plate\n", + "S = 40.; # plate planform area\n", + "# from eq.(19.3) we have\n", + "Cf_star = 0.074/Re_c_star**0.2;\n", + "# hence, for one side of the plate\n", + "D_f = 1./2.*rho_star*ue**2.*S*Cf_star;\n", + "# the total drag on both the surfaces is\n", + "D = 2.*D_f;\n", + "print\"The total frictional drag is:D =\",D,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example E03 : Pg 615" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total frictional drag is:D = 4967.70450221 N\n" + ] + } + ], + "source": [ + "# All the quantities are expressed in SI units\n", + "import math \n", + "Me = 2.94; # mach number of the flow over the upper plate\n", + "ue = 1000.;\n", + "Te = 288.; # temperature of the upper plate\n", + "ue = 1000.; # velocity of the upper plate\n", + "S = 40.; # plate planform area\n", + "Pr = 0.71; # Prandlt number of air at standard condition\n", + "gam = 1.4; # ratio of specific heats\n", + "\n", + "# the recovery factor is given as\n", + "r = Pr**(1./3.);\n", + "\n", + "# for M = 2.94\n", + "T_aw = Te*(1.+r*(2.74-1.));\n", + "T_w = T_aw; # since the flat plate has an adiabatic wall\n", + "\n", + "# from the Meador-Smart equation\n", + "T_star = Te*(0.5*(1.+T_w/Te) + 0.16*r*(gam-1.)/2.*Me**2.);\n", + "\n", + "# from the equation of state\n", + "p_star=1.\n", + "R=1.\n", + "rho_star = p_star/R/T_star;\n", + "\n", + "# from eq.(15.3)\n", + "mue0=1.\n", + "T0=1.\n", + "c=1.\n", + "mue_star = mue0*(T_star/T0)**1.5*(T0+110.)/(T_star+110.);\n", + "\n", + "# thus\n", + "Re_c_star = rho_star*ue*c/mue_star;\n", + "\n", + "# from eq.(18.22)\n", + "Cf_star = 0.02667/Re_c_star**0.139;\n", + "\n", + "# hence, the frictional drag on one surface of the plate is\n", + "D_f = 1./2.*rho_star*ue**2.*S*Cf_star;\n", + "\n", + "# thus, the total frictional drag is given by\n", + "D = 2.*D_f;\n", + "\n", + "print\"The total frictional drag is:D =\",D,\"N\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot02_3.png b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot02_3.png Binary files differnew file mode 100644 index 00000000..c7202e07 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot02_3.png diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot04_3.png b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot04_3.png Binary files differnew file mode 100644 index 00000000..cad0b274 --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot04_3.png diff --git a/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot08_3.png b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot08_3.png Binary files differnew file mode 100644 index 00000000..4e6e962e --- /dev/null +++ b/Fundamentals_Of_Aerodynamics_by_J._D._Anderson_Jr./screenshots/Screenshot08_3.png diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter10_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter10_2.ipynb new file mode 100644 index 00000000..0aa8bc1a --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter10_2.ipynb @@ -0,0 +1,1289 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER 10 : SINGLE STAGE TRANSISTOR AMPLIFIERS" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using matplotlib backend: Qt4Agg\n" + ] + } + ], + "source": [ + "%matplotlib " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.2 : page number 243-244" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The value of the emitter capacitor = 1.42 𝜇F\n" + ] + } + ], + "source": [ + "from math import pi\n", + "#Variable declaration\n", + "f_min=2.0; #Minimum frequency of operation of amplifier, kHz\n", + "f_max=10.0; #Maximum frequency of operation of amplifier, kHz\n", + "RE=560.0; #Emitter resistor, Ω\n", + "\n", + "#Calculations\n", + "#X_CE(Emitter capacitor's capacitive reactance)\n", + "#X_CE=1/(2*pi*f_min*CE)=RE/10\n", + "#From the above equation.\n", + "CE=1/(2*pi*f_min*1000*(RE/10)); #Emitter capacitor, F,\n", + "\n", + "CE=CE*10**6; #Emitter capacitor, 𝜇F\n", + "\n", + "\n", + "#Results\n", + "print('The value of the emitter capacitor = %.2f 𝜇F'%(CE));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.5: Page number 252-253" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The operating point: VCE=8.55V and IC=2.15mA.\n", + "Maximum v_CE=9.62V and maximum i_C=19.25mA\n" + ] + }, + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fb5303cd278>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pylab as plt\n", + "\n", + "\n", + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage in V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "R1=10.0; #Resistor R1, kΩ\n", + "R2=5.0; #Resistor R2, kΩ\n", + "RC=1.0; #Collector resistor, kΩ\n", + "RE=2.0; #Emitter resistor, kΩ\n", + "RL=1.0; #Load resistor, kΩ\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#For d.c load line, from the equation: VCE=VCC-IC*(RC+RE),\n", + "#VCE is maximum when IC=0 and IC is maximum when VCE=0.\n", + "VCE_max=VCC; #Maximum collector-emitter voltage, V\n", + "IC_max=VCC/(RC+RE); #Maximum collector current, mA\n", + "\n", + "\n", + "#plot\n", + "VCE_plot=[i for i in range(0,(int)(VCC+1))]; #Plot variable for V_CE\n", + "IC_plot=[((VCC-i)/(RC+RE)) for i in (VCE_plot[:])]; #Plot variable for I_C\n", + "\n", + "plt.subplot(211)\n", + "plt.xlim(0,20)\n", + "plt.ylim(0,6)\n", + "plt.plot(VCE_plot,IC_plot);\n", + "plt.xlabel(\"VCE(V)\");\n", + "plt.ylabel(\"IC(mA)\");\n", + "plt.title(\"d.c load line\");\n", + "\n", + "\n", + "\n", + "#(ii)\n", + "#For operating point:\n", + "#Assuming VCC drops almost completely across R1 and R2,\n", + "V2=VCC*R2/(R1+R2); #Voltage across resistor R2, V\n", + "IE=(V2-VBE)/RE; #Emitter current, mA\n", + "IC=IE; #Collector current, mA\n", + "VCE=VCC-IC*(RC+RE); #Collector-emitter voltage , V\n", + "\n", + "print(\"The operating point: VCE=%.2fV and IC=%.2fmA.\"%(VCE,IC));\n", + "\n", + "\n", + "#(iii)\n", + "#For a.c load line\n", + "RAC=(RC*RL)/(RC+RL); #a.c load, kΩ\n", + "VCE_ac_max=VCE+IC*RAC; #Maximum collector-emitter voltage, V\n", + "IC_ac_max=IC+VCE/RAC; #Maximum collector current, mA\n", + "print(\"Maximum v_CE=%.2fV and maximum i_C=%.2fmA\"%(VCE_ac_max,IC_ac_max));\n", + "\n", + "#plot\n", + "vCE_plot=[0,VCE_ac_max]; #Plot variable for V_CE\n", + "iC_plot=[IC_ac_max,0]; #Plot variable for I_C\n", + "\n", + "plt.subplot(212)\n", + "plt.xlim(0,10)\n", + "plt.ylim(0,20)\n", + "plt.plot(vCE_plot,iC_plot);\n", + "plt.xlabel(\"vCE(V)\");\n", + "plt.ylabel(\"iC(mA)\");\n", + "plt.title(\"a.c load line\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.6: Page number 253-254" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\ns5L4/1kCJflW+/pRAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fb50cf60f28>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pylab as p\n", + "\n", + "#Variable declaration\n", + "RC=10; #Collector resistor, kΩ\n", + "RL=30; #Load resistor, kΩ\n", + "VCC=20; #Collector supply voltage, V\n", + "IC=1; #Collector current, mA\n", + "VCE=10; #Collector-emitter voltage, V\n", + "\n", + "\n", + "#Calculations\n", + "#For d.c load line:\n", + "#From the equation: VCE=VCC-IC*(RC+RE),\n", + "#When VCE=0, IC is maximum.\n", + "#Emitter resistor is neglected, assuming it as negligible\n", + "IC_max=VCC/RC; #Maximum collector current, mA\n", + "\n", + "#And, when IC=0, VCE is maximum\n", + "VCE_max=VCC; #Maximum collector-emitter voltage, V\n", + "\n", + "#plot\n", + "p.subplot(211)\n", + "p.xlim(0,20)\n", + "p.ylim(0,5)\n", + "VCE_plot=[0,VCE_max]; #Plot variable for V_CE\n", + "IC_plot=[IC_max,0]; #Plot variable for I_C\n", + "\n", + "p.plot(VCE_plot,IC_plot);\n", + "p.xlabel(\"VCE(V)\");\n", + "p.ylabel(\"IC(mA)\");\n", + "p.title(\"d.c load line\");\n", + "\n", + "\n", + "#For a.c load line:\n", + "RAC=(RC*RL)/(RC+RL); #a.c Load resistor, kΩ\n", + "\n", + "VCE_ac_max=VCE+IC*RAC; #Maximum collector-emitter voltage, V\n", + "IC_ac_max=IC+ VCE/RAC; #Maximum collector current, mA\n", + "\n", + "#plot\n", + "p.subplot(212)\n", + "p.xlim([0,25])\n", + "p.ylim([0,5])\n", + "vCE_plot=[0,VCE_ac_max]; #Plot variable for V_CE\n", + "iC_plot=[IC_ac_max,0]; #Plot variable for I_C\n", + "\n", + "p.plot(vCE_plot,iC_plot);\n", + "p.xlabel(\"vCE(V)\");\n", + "p.ylabel(\"iC(mA)\");\n", + "p.title(\"a.c load line\");\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.7 : Page number 254-255" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nvQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fb5280aca20>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pylab as p\n", + "\n", + "#Variabe declaration\n", + "VCE_Q=8.0; #Q-point collector emitter voltage, V\n", + "IC_Q=1; #Q-point collector current, mA\n", + "ic_positive_peak=1.5; #Collector current at positive peak of signal, mA\n", + "ic_negative_peak=0.5; #Collector current at negative peak of signal, mA\n", + "vce_positive_peak=7; #Collector emitter voltage at positive peak of signal, V\n", + "vce_negative_peak=9; #Collector emitter voltage at negative peak of signal, V\n", + "\n", + "#Plot\n", + "vce_plot=[vce_positive_peak,vce_negative_peak]; #Plot variable of vce\n", + "ic_plot=[ic_positive_peak,ic_negative_peak]; #Plot variable of ic\n", + "\n", + "p.xlim(0,10)\n", + "p.ylim(0,2)\n", + "p.plot(vce_plot,ic_plot);\n", + "p.xlabel(\"vCE(V)\");\n", + "p.ylabel(\"iC(mA)\");\n", + "p.title(\"a.c load line\");\n", + "p.grid();\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.8 : Page number 256" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Voltage gain= 24.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V\n", + "RC=2.0; #Collector resistor, kΩ\n", + "Rin=1.0; #Input resistance, kΩ\n", + "beta=60.0; #Base current amplification factor\n", + "RL=0.5; #Load resistor, kΩ\n", + "\n", + "\n", + "#Calculation\n", + "RAC=(RC*RL)/(RC+RL); #a.c load resistor, kΩ\n", + "Av=beta*(RAC/Rin); #Voltage gain\n", + "\n", + "#Results\n", + "print(\"Voltage gain= %d.\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.9 : Page number 256" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage= 200mV.\n" + ] + } + ], + "source": [ + "\n", + "#Variable declaration\n", + "V_in=1.0; #Input voltage , mV\n", + "RC=10.0; #Collector resistor, kΩ\n", + "Rin=2.5; #Input resistance, kΩ\n", + "beta=100.0; #Base current amplification factor\n", + "RL=10.0; #Load resistor, kΩ\n", + "\n", + "#Calculations\n", + "RAC=(RC*RL)/(RC+RL); #Effective load, kΩ\n", + "Av=beta*(RAC/Rin); #Voltage gain\n", + "\n", + "V_out=V_in*Av; #Output voltage, V\n", + "\n", + "#Results\n", + "print(\"Output voltage= %dmV.\"%V_out);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.10 : Page number 256-257" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Beta= 100.\n", + "Input impedance=2 kΩ.\n", + "a.c load=3.3 kΩ.\n", + "Voltage gain= 165.\n", + "Power gain=16500.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "change_in_IB=10.0; #Change in base current, 𝜇A\n", + "change_in_IC=1.0; #Change in collector current, mA\n", + "change_in_VBE=0.02; #Change in Base-emitter voltage, V\n", + "RC=5.0; #Collector resistor, kΩ\n", + "RL=10.0; #Emitter resistor, kΩ\n", + "\n", + "#Calculations\n", + "#(i)\n", + "beta=(change_in_IC*1000)/change_in_IB; #Base current amplification factor\n", + "\n", + "#(ii)\n", + "Rin=(change_in_VBE/change_in_IB)*1000; #Input impedance, kΩ\n", + "\n", + "#(iii)\n", + "RAC=round((RC*RL)/(RC+RL),1); #a.c load, kΩ\n", + "\n", + "#(iv)\n", + "Av=beta*RAC/Rin; #Voltage gain\n", + "\n", + "#(v)\n", + "Ap=beta*Av; #Power gain\n", + "\n", + "\n", + "#Results\n", + "print(\"Beta= %d.\"%beta);\n", + "print(\"Input impedance=%d kΩ.\"%Rin);\n", + "print(\"a.c load=%.1f kΩ.\"%RAC);\n", + "print(\"Voltage gain= %d.\"%Av);\n", + "print(\"Power gain=%d.\"%Ap);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.11 : Page number 257" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=200mV\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "beta=50.0; #Base current amplification factor\n", + "RC=3.0; #Collector resistor,kΩ\n", + "RL=6.0; #Load resistor, kΩ\n", + "Rin=0.5; #Input impedance, kΩ\n", + "Vin=1; #Input voltage, mV\n", + "\n", + "#Calculation\n", + "RAC=(RC*RL)/(RC+RL); #a.c load, kΩ\n", + "Av=beta*RAC/Rin; #Voltage gain\n", + "Vout=Vin*Av; #Output voltage, V\n", + "\n", + "#Results\n", + "print(\"Output voltage=%dmV\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.12 : Page number 257-258" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The circuit is not operating properly.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VT=6.0; #Collector potential, V\n", + "R1=1.0; #Resistor R1, kΩ\n", + "R2=2.0; #Resistor R2, kΩ\n", + "VB_found=4.0; #Measured base voltage, V\n", + "\n", + "#Calculations\n", + "VB=(VT*R1)/(R1+R2); #Theoretical base voltage, V\n", + "\n", + "if(VB_found==VB):\n", + " print(\"The circuit is operating properly.\");\n", + "else:\n", + " print(\"The circuit is not operating properly.\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.13 : Page number 258-259" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a.c emitter resistance= 38.46 Ω.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V\n", + "R1=40.0; #Resistor R1, kΩ\n", + "R2=10.0; #Resistor R2, kΩ\n", + "RC=6.0; #Collector resistor, kΩ\n", + "RE=2.0; #Emitter resistor, kΩ\n", + "beta=80; #Base current amplification factor\n", + "VBE=0.7; #Base emitter voltage, V\n", + "\n", + "#Calculations\n", + "V2=(VCC*R2)/(R1+R2); #Voltage across resistor R2, V\n", + "VE=V2-VBE; #Emitter voltage, V\n", + "IE=VE/RE; #Emitter current, mA\n", + "re=25/IE; #a.c emitter resistance, Ω\n", + "\n", + "\n", + "#Results\n", + "print(\"a.c emitter resistance= %.2f Ω.\"%re);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.14 : Page number 262-263" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i)Voltage gain= 360.\n", + "(ii)Voltage gain= 5.37.\n" + ] + } + ], + "source": [ + "\n", + "#Variable declaration\n", + "VCC=20.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "R1=150.0; #Resistor R1, kΩ\n", + "R2=20.0 #Resistor R2, kΩ\n", + "RC=12.0; #Collector resistor, kΩ\n", + "RE=2.2; #Emitter resistor, kΩ\n", + "\n", + "\n", + "#Calculations\n", + "V2=round(VCC*R2/(R1+R2),2); #Voltage across R2, V\n", + "VE=round(V2-VBE,2); #Voltage across emitter resistor, V\n", + "IE=round(VE/RE,2); #Emitter current, mA\n", + "re=round(25/IE,1); #a.c emitter resistance, Ω\n", + "\n", + "\n", + "#(i)\n", + "#CE(emitter capacitor) connected in the circuit:\n", + "Av=(RC*1000)/re; #Voltage gain for emitter capacitor connected.\n", + "\n", + "print(\"(i)Voltage gain= %d.\"%Av);\n", + "\n", + "#(ii)\n", + "#CE(emitter capacitor) removed from the circuit:\n", + "Av=(RC*1000)/(re+RE*1000); #Voltage gain for emitter capacitor removed.\n", + "\n", + "print(\"(ii)Voltage gain= %.2f.\"%Av);\n", + "\n", + "#Note: The answer in the text book has been approximated to 5.38 but it's actually coming 5.37.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.15 : Page number 263" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Voltage gain= 120.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "RC=6.0; #Collector resistor, kΩ\n", + "RL=12.0; #Load resistor, kΩ\n", + "re=33.3; #a.c emitter resistance, Ω\n", + "\n", + "\n", + "#Calculations\n", + "RAC=RC*RL/(RC+RL); #a.c effective load, kΩ\n", + "Av=RAC*1000/re; #Voltage gain\n", + "\n", + "#Result\n", + "print(\"Voltage gain= %d.\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.16 : Page number 263-264" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) a.c emitter resistance=250 Ω.\n", + "(ii) Voltage gain =80.\n", + "(iii) d.c voltage across input capacitor= 1V and emitter capacitor=0.3V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=9.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "R1=240.0; #Resistor R1, kΩ\n", + "R2=30.0 #Resistor R2, kΩ\n", + "RC=20.0; #Collector resistor, kΩ\n", + "RE=3.0; #Emitter resistor, kΩ\n", + "\n", + "\n", + "#Calculations\n", + "#(i)\n", + "V2=round(VCC*R2/(R1+R2),1); #Voltage across R2, V\n", + "VE=round(V2-VBE,1); #Voltage across emitter resistor, V\n", + "IE=round(VE/RE,1); #Emitter current, mA\n", + "re=25/IE; #a.c emitter resistance, Ω\n", + "\n", + "#(ii)\n", + "Av=RC*1000/re; #Voltage gain\n", + "\n", + "#(iii)\n", + "V_C_in=V2; #d.c voltage across input capacitor, V\n", + "V_C_E=VE; #d.c vooltage across emitter capacitor, V\n", + "\n", + "\n", + "\n", + "#Results\n", + "print(\"(i) a.c emitter resistance=%d Ω.\"%re);\n", + "print(\"(ii) Voltage gain =%d.\"%Av);\n", + "print(\"(iii) d.c voltage across input capacitor= %dV and emitter capacitor=%.1fV.\"%(V_C_in,V_C_E));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.17 : Page number 264-265" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) D.C bias levels: V2=3V, VE=2.3V, IE=2.3mA, IC=2.3mA, IB=0.023mA and VC=10.4V.\n", + "(ii) D.c voltage across: Cin=3V and CE=2.3V and CC=10.4V.\n", + "(iii) a.c emitter resistance=10.9Ω.\n", + "(iv) Voltage gain=61.2.\n", + "(v) VC>VE. Therefore, the transistor is in active state.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "R1=40.0; #Resistor R1, kΩ\n", + "R2=10.0 #Resistor R2, kΩ\n", + "RC=2.0; #Collector resistor, kΩ\n", + "RE=1.0; #Emitter resistor, kΩ\n", + "RL=1.0; #Load resistor, kΩ\n", + "beta=100; #Base current amplification factor\n", + "\n", + "#Calculation\n", + "#(i) D.C bias levels\n", + "V2=VCC*R2/(R1+R2); #Voltage across R2, V\n", + "VE=round(V2-VBE,1); #Voltage across emitter resistor, V\n", + "IE=round(VE/RE,1); #Emitter current, mA\n", + "IC=IE; #Collector current, mA\n", + "IB=IC/beta; #Base current, mA\n", + "VC=VCC-IC*RC; #Collector voltage, V\n", + "print(\"(i) D.C bias levels: V2=%dV, VE=%.1fV, IE=%.1fmA, IC=%.1fmA, IB=%.3fmA and VC=%.1fV.\"%(V2,VE,IE,IC,IB,VC));\n", + "\n", + "\n", + "#(ii)\n", + "Cin_V=V2; #Voltage across Cin capacitor, V\n", + "CE_V=VE; #Voltage across CE capacitor, V \n", + "CC_V=VC; #Voltage across CC capacitor, V\n", + "print(\"(ii) D.c voltage across: Cin=%dV and CE=%.1fV and CC=%.1fV.\"%(Cin_V,CE_V,CC_V));\n", + "\n", + "#(iii)\n", + "re=round(25/IE,1); #a.c emitter resistance, Ω\n", + "print(\"(iii) a.c emitter resistance=%.1fΩ.\"%re);\n", + "\n", + "\n", + "#(iv)\n", + "RAC=round(RC*RL/(RC+RL),3); #Total a.c collector resistance, kΩ\n", + "Av=RAC/(re/1000); #Voltage gain\n", + "print(\"(iv) Voltage gain=%.1f.\"%Av);\n", + "\n", + "#(v)\n", + "print(\"(v) VC>VE. Therefore, the transistor is in active state.\" );\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.18 : page number 265" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The power gain = 26400 and output power = 1.584W.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=132.0; #Voltage gain\n", + "beta=200.0; #Base current amplification factor\n", + "P_in=60.0; #Input power, 𝜇W\n", + "\n", + "\n", + "#Calculations\n", + "Ap=beta*Av; #Power gain\n", + "P_out=Ap*(P_in/10**6); #Output power, W\n", + "\n", + "\n", + "#Results\n", + "print(\"The power gain = %d and output power = %.3fW.\"%(Ap,P_out));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.19 : page number 265-266" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Current gain=49\n", + "(ii) Voltage gain=2.14\n", + "(iii) Power gain=105.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "IB=200.0; #Base current, microampere\n", + "IE=10.0; #Emitter current, mA\n", + "R1=27.0; #Resistor R1, kilo ohm\n", + "R2=13.0 #Resistor R2, kilo ohm\n", + "RC=4.7; #Collector resistor, kilo ohm\n", + "RE=2.2; #Emitter resistor, kilo ohm\n", + "\n", + "\n", + "#Calculations\n", + "#(i)\n", + "IC=IE-(IB/1000); #Collector current, mA\n", + "beta=IC/(IB/1000); #Current gain\n", + "\n", + "print(\"(i) Current gain=%d\"%beta);\n", + "\n", + "#(ii)\n", + "#a.c emitter resistance is neglected, voltage gain=(collector resistor)/(emitter resistor)\n", + "Av=RC/RE; #Voltage gain\n", + "\n", + "print(\"(ii) Voltage gain=%.2f\"%Av);\n", + "\n", + "#(iii)\n", + "Ap=round(beta*Av,0); #Power gain\n", + "\n", + "#Results\n", + "print(\"(iii) Power gain=%d.\"%Ap);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.20 : Page number 266-267" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The input impedance of the amplifier circuit= 3.46 kΩ.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=30.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base emitter voltage, V\n", + "R1=45.0; #Resistor R1, kΩ\n", + "R2=15.0 #Resistor R2, kΩ\n", + "RC=10.0; #Collector resistor,kΩ\n", + "RE=7.5; #Emitter resistor, kΩ\n", + "beta=200.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "V2=round(VCC*R2/(R1+R2),1); #Voltage across R2, V (Voltage divider rule)\n", + "VE=V2; #Voltage across emitter resistor(base-emitter voltage is neglected), V\n", + "IE=VE/RE; #Emitter current, mA (OHM's LAW)\n", + "re=25/IE; #a.c emitter resistance, ohm\n", + "Zin_base=(beta*re)/1000; #input impedance of transistor base,kΩ\n", + "R1_R2=(R1*R2)/(R1+R2); #Parallel resistance between R1 and R2, kΩ\n", + "Zin=((R1_R2)*Zin_base)/(R1_R2+Zin_base); #Input impedance of the amplifier circuit, kΩ\n", + "\n", + "\n", + "#Result\n", + "print(\"The input impedance of the amplifier circuit= %.2f kΩ.\"%Zin); \n", + "\n", + "#Note: The input impedance of the amplifier circuit is approximated as 3.45 kΩ in the text book, but actually it's 3.46 kΩ.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.21 : Page Number 268-269" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage gain of the swamped amplifier= 4.67.\n", + "Input impedance of transistor base of the swamped amplifier= 48.21 kΩ.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V.\n", + "RC=1.5; #Collector resistor, kΩ.\n", + "R1=18.0; #Resistor R1, kΩ.\n", + "R2=4.7; #Resistor R2, kΩ.\n", + "RE1=300.0; #Emitter resistor 1, Ω.\n", + "RE2=900.0; #Emitter resistor 2, Ω.\n", + "VBE=0.7; #Base-emitter voltage, V.\n", + "beta=150.0; #Base current amplification factor.\n", + "\n", + "\n", + "#Calculations\n", + "V2=round(VCC*R2/(R1+R2),1); #d.c voltage across R2, V. (Voltage divider rule)\n", + "VE=round(V2-VBE,1); #d.c voltage across RE, V.\n", + "IE=round((VE/(RE1+RE2))*1000,2); #d.c emitter current, mA.(OHM'S LAW)\n", + "re=round(25/IE,1); #a.c emitter resistance, Ω.\n", + "Av=RC*1000/(re+RE1); #Voltage gain\n", + "Zin_base=(beta*(re+RE1))/1000; #Input impedance of transistor base, kΩ.\n", + "\n", + "\n", + "#Results\n", + "print(\"The voltage gain of the swamped amplifier= %.2f.\"%Av);\n", + "print(\"Input impedance of transistor base of the swamped amplifier= %.2f kΩ.\"%Zin_base);\n", + "\n", + "#Note:In the textbook Av is approximated to 4.66and Zin_base to 48.22 kilo ohm, but the actual answers come as 4.67 and 48.21 kilo ohm.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.22 : Page number 269" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The percentage change from the original value= 6.42%(decrease)\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "RC=1.5; #Collector resistor, kΩ.\n", + "RE1=300.0; #Emitter resistor 1, Ω.\n", + "re=21.5; #a.c emitter resistance, Ω.\n", + "\n", + "#Calculations\n", + "Av=round(RC*1000/(re+RE1),2); #Voltage gain.\n", + "Av_1=round(RC*1000/(2*re+RE1),2); #Voltage gain when re doubles.\n", + "change_in_gain=round(Av-Av_1,2); #Change in voltage gain.\n", + "change_percentage=change_in_gain*100/Av; #Change percentage\n", + "\n", + "\n", + "#Results\n", + "if(change_in_gain>0):\n", + " print(\"The percentage change from the original value= %.2f%%(decrease)\"%change_percentage);\n", + "else:\n", + " print(\"The percentage change from the original value= %.2f%%(increase)\"%change_percentage);\n", + "\n", + "\n", + "#Note: The percentage has been approximated in the text book as 6.22%, but the answer comes as 6.42%.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.23 : Page number 269-270" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) input impedance of transistor base for standard amplifier= 5 kilo ohm\n", + " input impedance of transistor base for swamped amplifier= 47 kilo ohm\n", + "(ii) input impedance for standard amplifier= 1.33 kilo ohm\n", + " input impedance for swamped amplifier= 1.74 kilo ohm\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base emitter voltage, V\n", + "R1=10.0; #Resistor R1, kilo ohm\n", + "R2=2.2; #Resistor R2, kilo ohm\n", + "RC=4.0; #Collector resistor, kilo ohm\n", + "RE=1.1; #Emitter resistor, kilo ohm\n", + "beta=200.0; #Base current amplification factor\n", + "RE1=210.0; #Emitter resistor 1 of swamped amplifier, ohm.\n", + "RE2=900.0; #Emitter resistor 2 of swamped amplifier, ohm.\n", + "\n", + "\n", + "#Calculations\n", + "V2=round(VCC*R2/(R1+R2),1); #d.c voltage across R2, V. (Voltage divider rule)\n", + "VE=round(V2-VBE,1); #d.c voltage across RE, V.\n", + "IE=(VE/RE); #d.c emitter current, mA.(OHM'S LAW)\n", + "re=25/IE; #a.c emitter resistance, ohm.\n", + "\n", + "\n", + "#(i) Zin_base:\n", + "Zin_base_standard=(beta*re)/1000; #input impedance of transistor base for standard amplifier , kilo ohm.\n", + "Zin_base_swamped=(beta*(re+RE1))/1000; #input impedance of transistor base for swamped amplifier, kilo ohm.\n", + "\n", + "\n", + "#(ii) Zin:\n", + "#input impedance for standard amplifier circuit\n", + "Zin_standard=(((R1*R2)/(R1+R2))*Zin_base_standard)/(Zin_base_standard +((R1*R2)/(R1+R2))); #kilo ohm\n", + "\n", + "#input impedance for standard amplifier circuit\n", + "Zin_swamped=(((R1*R2)/(R1+R2))*Zin_base_swamped)/(Zin_base_swamped +((R1*R2)/(R1+R2))); #kilo ohm\n", + "\n", + "\n", + "#Results\n", + "print(\"(i) input impedance of transistor base for standard amplifier= %d kilo ohm\"%Zin_base_standard);\n", + "print(\" input impedance of transistor base for swamped amplifier= %d kilo ohm\"%Zin_base_swamped);\n", + "print(\"(ii) input impedance for standard amplifier= %.2f kilo ohm\"%Zin_standard);\n", + "print(\" input impedance for swamped amplifier= %.2f kilo ohm\"%Zin_swamped);\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.24 : Page number 270-271" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage gain of standard amplifier=160.\n", + "The voltage gain of swamped amplifier=17.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "RC=4.0; #Collector resistor, kilo ohm\n", + "re=25.0; #a.c emitter resistance, ohm (calculated in example 10.23)\n", + "RE_1=210.0; #Emitter resistor 1 of swamped amplifier,ohm\n", + "\n", + "#Calculation\n", + "Av_standard=(RC*1000)/re; #Voltage gain of standard common emitter amplifier\n", + "Av_swamped=(RC*1000)/(re+RE_1); #Voltage gain of swamped amplifier\n", + "\n", + "#Results\n", + "print(\"The voltage gain of standard amplifier=%d.\"%Av_standard);\n", + "print(\"The voltage gain of swamped amplifier=%d.\"%Av_swamped);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.26 : Page number 273-274" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The required input signal voltage =2.5mV\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A_0=1000.0; #Open circuit voltage gain\n", + "R_in=2.0; #Input resistance, kilo ohm\n", + "R_out=1.0; #Output resistance, ohm\n", + "RL=4; #Load resistor across the output, ohm\n", + "I_2=0.5; #Output signal current, A.\n", + "\n", + "\n", + "#Calculations\n", + "#Since A_0*(I_1*R_in) = I_2*(R_out+RL)\n", + "I_1=I_2*(R_out+RL)/(A_0*(R_in*1000)); #Input current, A\n", + "V_1=I_1*(R_in*1000); #Input signal voltage, V\n", + "V_1=V_1*1000; #Input signal voltage, mV\n", + "\n", + "print(\"The required input signal voltage =%.1fmV\"%V_1);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.27 : Page number 274" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The magnitude of output voltage = 4.9V\n", + "The power gain =98e-06.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A_0=1000.0; #Open circuit voltage gain\n", + "R_in=7.0; #Input resistance, kilo ohm\n", + "R_out=15.0; #Output resistance, ohm\n", + "RL=35.0; #Load resistor across the output, ohm\n", + "R_s=3.0; #Internal resistance, kilo ohm\n", + "E_s=10.0; #Input signal voltage, mV.\n", + "\n", + "#Calculations\n", + "#(i)\n", + "I_1=E_s*(10**-3)/(R_s*1000+R_in*1000); #Input current, A\n", + "V_1=I_1*(R_in*1000); #Voltage across input resistance, V\n", + "\n", + "#Since, A_v=V_2/V_1 = A_0*RL/(R_out+RL)\n", + "A_v=A_0*RL/(R_out+RL); #Voltage gain\n", + "V_2=A_v*V_1; #Outout voltage, V\n", + "\n", + "\n", + "#(ii)\n", + "P_2=V_2**2/RL; #Output power, W\n", + "P_1=V_1**2/(R_in*1000); #Input power, W\n", + "A_p=round(P_2/P_1,-6); #Power gain\n", + "\n", + "\n", + "#Result\n", + "print(\"The magnitude of output voltage = %.1fV\"%V_2);\n", + "print(\"The power gain =%de-06.\"%(A_p/10**6));\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 10.28 : Page number 274-275" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Necessary input signal voltage= 12.5mV\n", + "Input signal current =4.17 μA\n", + "Power gain = 9600.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A_v=80.0; #Voltage gain\n", + "V_2=1.0; #Output voltage, V\n", + "A_i=120.0; #Current gain\n", + "RL=2; #Load resistor, kilo ohm\n", + "\n", + "#Calculation\n", + "V_1=(V_2/A_v)*1000; #Input signal voltage, mV\n", + "\n", + "#Since, A_i=A0*R_in/(R_out+RL) and A_v=A0*RL/(R_out+RL)\n", + "#So, A_v/A_i=RL/R_in\n", + "R_in=RL*A_i/A_v; #Input resistance, kilo ohm\n", + "I_1=V_1/R_in; #Input current, μA\n", + "A_p=A_i*A_v; #Power gain\n", + "\n", + "#Results\n", + "print(\"Necessary input signal voltage= %.1fmV\"%V_1);\n", + "print(\"Input signal current =%.2f μA\"%I_1);\n", + "print(\"Power gain = %d.\"%A_p);\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + }, + "widgets": { + "state": {}, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter11_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter11_2.ipynb new file mode 100644 index 00000000..6e0fb200 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter11_2.ipynb @@ -0,0 +1,1025 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:8e425c9c2dfbfee43b3a89e44b0fd7936ba869da73ac3c372e9b23848f1cded1" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#CHAPTER 11 : MULTISTAGE TRANSISTOR AMPLIFIERS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 11.1 : Page number 285" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from math import log10\n", + "#Variable declaration\n", + "#(i)\n", + "A_v=30; #Voltage gain\n", + "\n", + "#(ii)\n", + "A_p=100; #Power gain\n", + "\n", + "\n", + "#Calculations\n", + "#(i)\n", + "A_v_dB=20*log10(A_v); #Voltage gain, dB\n", + "A_p_dB=10*log10(A_p); #Power gain, dB\n", + "\n", + "#Results\n", + "print(\"(i) Voltage gain in dB=%.2fdB\"%A_v_dB);\n", + "print(\"(ii) Power gain in dB=%ddB\"%A_p_dB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Voltage gain in dB=29.54dB\n", + "(ii) Power gain in dB=20dB\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.2 : Page number 285-286\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#(i)\n", + "A_p_dB=40.0; #Power gain in dB\n", + "A_p_b=A_p_dB/10; #Power gain in bel\n", + "A_p=10**A_p_b; #Power gain in number\n", + "\n", + "#Result\n", + "print(\"(i) Power gain in number=%d\"%A_p);\n", + "\n", + "#(ii)\n", + "A_p_dB=43.0; #Power gain in dB\n", + "A_p_b=A_p_dB/10; #Power gain in bel\n", + "A_p=round(10**A_p_b,-4); #Power gain in number\n", + "\n", + "#Result\n", + "print(\"(ii) Power gain in number=%d\"%A_p);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Power gain in number=10000\n", + "(ii) Power gain in number=20000\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.3 : Page number 286\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from math import log10\n", + "\n", + "#Variable declaration\n", + "Av_1=100.0; #Voltage gain of stage 1\n", + "Av_2=200.0; #Voltage gain of stage 2\n", + "Av_3=400.0; #Voltage gain of stage 3\n", + "\n", + "#Calculations\n", + "Av_1_dB=20*log10(Av_1); #Voltage gain of stage 1, dB\n", + "Av_2_dB=20*log10(Av_2); #Voltage gain of stage 2, dB\n", + "Av_3_dB=20*log10(Av_3); #Voltage gain of stage 3, dB\n", + "\n", + "Av_T=Av_1_dB+Av_2_dB+Av_3_dB; #Total voltage gain\n", + "\n", + "#Result\n", + "print(\"The total voltage gain=%ddB\"%Av_T);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total voltage gain=138dB\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.4 : Page number 286\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "A_p_absolute=30.0; #Absolute gain of each stage\n", + "number_of_stages=5.0; #number of stages\n", + "negative_feedback=10.0; #negative feedback, dB\n", + "\n", + "#Calculations\n", + "#(i)\n", + "A_p_dB=round(10*log10(A_p_absolute),2); #Power gain of one stage. dB\n", + "A_p_T=number_of_stages * A_p_dB; #Total power gain, dB\n", + "\n", + "#(ii)\n", + "A_p_resultant=A_p_T-negative_feedback; #Resultant power gain with negative feedback, dB\n", + "\n", + "#Results\n", + "print(\"The total power gain = %.2fdB.\"%A_p_T);\n", + "print(\"The resultant power gain with negative feedback = %.2fdB.\"%A_p_resultant);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total power gain = 73.85dB.\n", + "The resultant power gain with negative feedback = 63.85dB.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.5 : Page number 286\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "P_out_2kHz=1.5; #Output power at 2 kHz, W\n", + "P_out_20kHz=0.3; #Output power at 20 kHz, W\n", + "P_in=10.0; #Input power, mW\n", + "\n", + "#Calculations\n", + "A_p_dB_2kHz=10*log10(P_out_2kHz*1000/P_in); #dB power gain at 2 kHz\n", + "A_p_dB_20kHz=10*log10(P_out_20kHz*1000/P_in); #dB power gain at 20 kHz\n", + "Fall_in_gain=A_p_dB_2kHz-A_p_dB_20kHz; #Fall in gain from 2kHz to 20kHz\n", + "\n", + "#Results\n", + "print(\"The fall in gain from 2kHz to 20kHz=%.2fdB\"%Fall_in_gain);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The fall in gain from 2kHz to 20kHz=6.99dB\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.6 : Page number 287\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "A_v=15.0; #Voltage gain, dB\n", + "V_1=0.8; #Input signal voltage, V\n", + "\n", + "#Calculations\n", + "#Since, Av(in decibel)=20*log10(V_2/V_1),\n", + "V_2=V_1*(10**(A_v/20)); #Output voltage, V\n", + "\n", + "#Results\n", + "print(\"The output voltage= %.1fV.\"%V_2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage= 4.5V.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.7 : Page number 287\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "A_0_dB=70.0; #Open circuit voltage gain, dB\n", + "A_v_dB=67.0; #Voltage gain, dB\n", + "R_out=1.5; #Output resistance, kilo ohm\n", + "\n", + "#Calculations\n", + "#Since, A_0_dB-A_v_dB=20*log10(A_0/A_v)\n", + "ratio_A0_Av=round(10**((A_0_dB-A_v_dB)/20),2); #Ratio of open-circuit voltage gain to normal voltage gain\n", + "\n", + "#Since, A_v/A_0 = RL/(R_out+RL)\n", + "RL=R_out/(ratio_A0_Av-1); #Load resistor, kilo ohm\n", + "\n", + "\n", + "#Results\n", + "print(\"The load resistance=%.2f kilo ohm.\"%RL);\n", + "\n", + "#Note: The value of load resistor is calculated to be 3.6585 kilo ohm and approximated to 3.66. But, in the text it has been approximated to 3.65.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The load resistance=3.66 kilo ohm.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.8 : Page number 287\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "RL=1.0; #Load resistance, kilo ohm\n", + "A_v=40.0; #Voltage gain, dB\n", + "V_in=10.0; #Input signal voltage, mV\n", + "\n", + "#Calcultaions\n", + "#(i)\n", + "#Since, A_v=20*log10(V_out/V_in)\n", + "V_out=V_in*(10**(A_v/20))/1000; #Output voltage, V\n", + "\n", + "#(ii)\n", + "P_L=(V_out**2/RL); #The load power, mW\n", + "\n", + "\n", + "#Results\n", + "print(\"(i)The output voltage is %dV.\"%V_out);\n", + "print(\"(ii)The load poweris %dmW.\"%P_L);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)The output voltage is 1V.\n", + "(ii)The load poweris 1mW.\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.9 : Page number 287-288\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from math import log10\n", + "\n", + "#Variable declaration\n", + "P_2=40.0; #Output power, W\n", + "R=10.0; #Resistance of speaker, ohm\n", + "\n", + "\n", + "#Calculations\n", + "#(i)\n", + "A_p_dB=25.0; #Power gain, dB\n", + "#Since, A_p_dB=10*log10(P_2/P_1)\n", + "P_1=(P_2/10**(A_p_dB/10))*1000; #Input power, mW\n", + "\n", + "\n", + "#(ii)\n", + "A_v_dB=40.0; #Voltage gain, dB\n", + "\n", + "#Since, P=(V**2)/R,\n", + "V_2=(P_2*R)**0.5; #Output voltage, V\n", + "\n", + "#Since, A_v_dB=20*log10(V_2/V_1)\n", + "V_1=(V_2/10**(A_v_dB/20))*1000; #Input voltage, mV\n", + "\n", + "\n", + "#Results\n", + "\n", + "print(\"(i)The input power=%.1fmW.\"%P_1);\n", + "print(\"(ii)The input voltage=%dmV.\"%V_1);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)The input power=126.5mW.\n", + "(ii)The input voltage=200mV.\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.10 : Page number 288\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "A_v_max=2000.0; #Maximum voltage gain\n", + "f_max=2.0; #Frequency at which maximum voltage gain occurs,kHz\n", + "A_v=1414.0; #Voltage gain at 50 Hz and 10kHz\n", + "f1=50; #Lower frequency at which gain is 1414, Hz\n", + "f2=10; #Upper frequency at which gain is 1414, kHz\n", + "\n", + "#Calculation\n", + "#Since, bandwidth is the range of frequency over which gain is greater than or equal to 70.7% of maximum gain\n", + "if((A_v/A_v_max)*100 ==70.7): \n", + " print(\"(i)The bandwidth is from %dHz to %dkHz.\"%(f1,f2));\n", + " print(\"(ii)The lower cut-off frequency=%dHz.\"%f1);\n", + " print(\"(iii)The upper cut-off frequency=%dkHz.\"%f2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)The bandwidth is from 50Hz to 10kHz.\n", + "(ii)The lower cut-off frequency=50Hz.\n", + "(iii)The upper cut-off frequency=10kHz.\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.11 : Page number 291\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "A_v=60.0; #Voltage gain of single stage amplifier\n", + "R_C=500.0; #Collector load, ohm\n", + "R_in=1.0; #Input impedance, kilo ohm\n", + "\n", + "\n", + "#Calculation\n", + "#Since, there is no loading , second stage gain remains at A_v\n", + "#But, due to loading effect of input impedance of second stage, gain of first stage decreases\n", + "A_v_2=A_v; #Voltage gain of second stage\n", + "R_AC=round((R_C*R_in*1000)/(R_C+R_in*1000),0); #Effective load of first stage, ohm\n", + "A_v_1=A_v*R_AC/R_C; #Gain of first stage\n", + "A_v_T=A_v_1*A_v_2; #Total gain\n", + "\n", + "\n", + "#Results\n", + "print(\"The total gain=%d.\"%A_v_T);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total gain=2397.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.12 : Page number 291-292\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Rin=1.0; #Input resistance, kilo ohm\n", + "beta=100.0; #base current amplification factor\n", + "RC=2.0; #Collector load, kilo ohm\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "R_AC=(RC*Rin)/(RC+Rin); #Effective load on first stage, kilo ohm\n", + "A_v_1=round(beta*(R_AC/Rin),0); #Voltage gain of first stage\n", + "\n", + "#(ii)\n", + "A_v_2=round(beta*RC/Rin,0); #Voltage gain of second stage\n", + "\n", + "#(iii)\n", + "A_v_T=A_v_1*A_v_2; #Total voltage gain\n", + "\n", + "\n", + "#Results\n", + "print(\"(i)The voltage gain of first stage =%d.\"%A_v_1);\n", + "print(\"(ii)The voltage gain of second stage =%d.\"%A_v_2);\n", + "print(\"(iii)The total voltage gain =%d.\"%A_v_T);\n", + "\n", + "#Note: The approximation inthe text for A_v_1=66.66 is taken as 66 but here it has been taken 67 and therefore the total voltage is 13400 instead of 13200.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)The voltage gain of first stage =67.\n", + "(ii)The voltage gain of second stage =200.\n", + "(iii)The total voltage gain =13400.\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.13 : Page number 292\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "RC=10.0; #Collector load of single stage amplifier, kilo ohm\n", + "Rin=1.0; #Input resistance, kilo ohm\n", + "beta=100.0; #base current amplification factor\n", + "RL=100.0; #Load resistor, ohm\n", + "\n", + "\n", + "#Calculations\n", + "R_AC=round((RC*1000)*RL/(RC*1000+RL),-1); #Effective collector load,\n", + "A_v=beta*R_AC/(Rin*1000); #Voltage gain\n", + "\n", + "#Results\n", + "print(\"The voltage gain=%d.\"%A_v);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain=10.\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.14 : Page number 292-293\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20.0; #Collector suppply voltage, V\n", + "R1=10.0; #resistor R1, kilo ohm\n", + "R2=2.2; #resistor R2, kilo ohm\n", + "R3=10.0; #resistor R3, kilo ohm\n", + "R4=2.2; #resistor R4, kilo ohm\n", + "RC_1=3.6; #Collector resistor of first stage, kilo ohm\n", + "RC_2=4.0; #Collector resistor of second stage, kilo ohm\n", + "RE_1=900.0; #Emitter resistor of first stage, ohm\n", + "RE_2=1.0; #Emitter resistor of second stage, kilo ohm\n", + "\n", + "\n", + "#Calculations\n", + "#Biasing potential for the second stage is the voltage across R4 resistor,\n", + "#so, by voltage divider rule:\n", + "VB=VCC*R4/(R3+R4); #Biasing potential for second stage,(Voltage across R4), V\n", + "\n", + "print(\"The biasing voltage for the second stage=%.1fV.\"%VB);\n", + "\n", + "#If coupling capacitor C_c is replaced by a wire, RC_1 and R3 become parallel\n", + "Req=round((RC_1*R3)/(RC_1+R3),2); #Equivalent resistance of R3 parallel with RC_1, kilo ohm\n", + "VB=VCC*R4/(Req+R4); #Biasing voltage if coupling capacitor is replaced by a wire, V\n", + "\n", + "print(\"The biasing voltage after replacing coupling capacitor by wire=%.2fV.\"%VB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The biasing voltage for the second stage=3.6V.\n", + "The biasing voltage after replacing coupling capacitor by wire=9.07V.\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.15 : Page number 293-294\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Function for calculating parallel resistance\n", + "def pr(r1,r2):\n", + " return (r1*r2)/(r1+r2);\n", + "\n", + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage, V\n", + "R1=22.0; #Resistor R1, kilo ohm\n", + "R2=3.3; #Resistor R2, kilo ohm\n", + "R3=5.0; #Resistor R3, kilo ohm\n", + "R4=1.0; #Resistor R4, kilo ohm\n", + "R5=15.0; #Resistor R5, kilo ohm\n", + "R6=2.5; #Resistor R6, kilo ohm\n", + "R7=5.0; #Resistor R7, kilo ohm\n", + "R8=1.0; #Resistor R8, kilo ohm\n", + "beta=200; #Base current amplification factor\n", + "RL=10.0; #Load resistor, kilo ohm\n", + "V_BE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculations\n", + "#for 2nd stage\n", + "V_R6=round(VCC*R6/(R5+R6),2); #Voltage across R6, V (voltage divider rule)\n", + "V_R8=round(V_R6-V_BE,2); #Voltage across R8, V\n", + "IE_2=round(V_R8/R8,2); #Emitter current through R8, mA (OHM's LAW)\n", + "re_2nd_stage=round(25/IE_2,1); #a.c emitter resistance for 2nd stage, ohm\n", + "\n", + "#For 1st stage\n", + "V_R2=round(VCC*R2/(R1+R2),2); #Voltage across R2, V (voltage divider rule)\n", + "V_R4=round(V_R2-V_BE,2); #Voltage across R4, V\n", + "IE_1=round(V_R4/R4,2); #Emitter current through R4, mA (OHM's LAW)\n", + "re_1st_stage=round(25/IE_1,1); #a.c emitter resistance for 1st stage, ohm\n", + "\n", + "#(i)\n", + "Zin_base_2nd_stage=round((beta*re_2nd_stage)/1000,2); #input resistance of transistor base of 2nd stage, kilo ohm\n", + "Zin=round(pr(pr(R5,R6),Zin_base_2nd_stage),2); #Input impedance of the 2nd stage, kilo ohm\n", + "R_AC_1st_stage=round(pr(R3,Zin),2); #Effective collector load for 1st stage, kilo ohm\n", + "A_v_1=round(R_AC_1st_stage*1000/re_1st_stage,0); #voltage gain of 1st stage\n", + "\n", + "#(ii)\n", + "R_AC_2nd_stage=round(pr(R7,RL),2); #Effective collector load for 2nd stage, kilo ohm\n", + "A_v_2=round(R_AC_2nd_stage*1000/re_2nd_stage,1); #voltage gain of 2nd stage\n", + "\n", + "#(iii)\n", + "A_v_overall=A_v_1*A_v_2; #overall voltage gain\n", + "\n", + "\n", + "#results\n", + "print(\"(i)The voltage gain of 1st stage=%.0f.\"%A_v_1);\n", + "print(\"(i)The voltage gain of 2nd stage=%.1f.\"%A_v_2);\n", + "print(\"(i)The overall voltage gain =%d.\"%A_v_overall);\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)The voltage gain of 1st stage=53.\n", + "(i)The voltage gain of 2nd stage=191.4.\n", + "(i)The overall voltage gain =10144.\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.16 : Page number 297\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Primary_impedance=1000.0; #Primary impedance, ohm\n", + "Load_impedance=10.0; #Load impedance, ohm\n", + "\n", + "#Calculation\n", + "#since,for maximum power transfer primary impedance should be equal to output impedance\n", + "#and, impedance of secondary should be equal to load impedance\n", + "#therfore, primary_impedance/load_impedance=square of(primary to secondary turn ratio)\n", + "n=(Primary_impedance/Load_impedance)**0.5; #Primary to secondary turn ratio\n", + "\n", + "\n", + "#Result\n", + "print('The primary to secondary turn ratio for maximum power transfer=%d.'%n);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The primary to secondary turn ratio for maximum power transfer=10.\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.17 : Page number 297\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "RL=16.0; #Load resistor, ohm\n", + "R_p=10.0; #Output impedance of primary, kilo ohm\n", + "Vp=10.0; #Terminal voltage of the source, V\n", + "\n", + "#Calculation\n", + "#Since, for maximum power transfer, the impedance of the primary should be equal to output impedance of the source\n", + "n=(R_p*1000/RL)**0.5; #Primary to secondary turns ratio\n", + "\n", + "#Since, power in a transformer remains constant,\n", + "#ratio of primary to secondary voltageis equal to primary to secondary turns ratio\n", + "Vs=Vp/n; #Voltage across the external load, V\n", + "\n", + "\n", + "#Result\n", + "print(\"The primary to secondary turns ratio=%d.\"%n);\n", + "print(\"The voltage across the external load=%.1fV.\"%Vs);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The primary to secondary turns ratio=25.\n", + "The voltage across the external load=0.4V.\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.18 : Page number 297-298\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Rp=300.0; #D.C resistance of primary, ohm\n", + "RL=3.0; #Load resistance, ohm\n", + "R_out=3.0; #Ouput resistance of the transistor, kilo ohm \n", + "\n", + "#Calculation\n", + "#when no signal is applied, only Rp is seen to be the load.\n", + "#But, when a.c signal is applied, RL in secondary reflects as RL*(squre of turns ratio).\n", + "#Therefore, load is seen to be Rp in series with the reflected RL in primary.\n", + "#i.e, R_out=Rp+(n**2 * RL), where n is the turns ratio\n", + "n=((R_out*1000-Rp)/RL)**0.5; #turns ratio\n", + "\n", + "#Result\n", + "print(\"Turns ratio for maximum power transfer=%d.\"%n);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Turns ratio for maximum power transfer=30.\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.19 : Page number 298" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "f=200.0; #Frequency, Hz\n", + "Z_out=10.0; #Output impedance of the transistor, kilo ohm\n", + "Z_in=2.5; #Input impedance of the next stage, kilo ohm\n", + "\n", + "#Calculation\n", + "#For perfect impedance matching,\n", + "#Z_out should be equal to primary impedance\n", + "#Z_out=2*pi*f*(primary inductance)\n", + "Lp=(Z_out*1000)/(2*pi*f); #Primary inductance, H\n", + "\n", + "#for the secondary side,\n", + "#Z_in should be equal to impedance of secondary\n", + "Ls=(Z_in*1000)/(2*pi*f); #Secondary inductance, H\n", + "\n", + "\n", + "#result\n", + "print(\"The primary inductance=%.0fH.\"%Lp);\n", + "print(\"The secondary inductance=%.0fH.\"%Ls);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The primary inductance=8H.\n", + "The secondary inductance=2H.\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.20 : Page number 299\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Lp=8.0; #Primary inductance, H\n", + "Ls=2.0; #Secondary inductance, H\n", + "K=10**-5; #Inductance to turns ratio, constant\n", + "\n", + "#Calculations\n", + "Np=(Lp/K)**0.5; #Primary turns\n", + "Ns=(Ls/K)**0.5; #Secondary turns\n", + "\n", + "#Result\n", + "print(\"The primary turns=%.0f.\"%Np);\n", + "print(\"The secondary turns=%.0f.\"%Ns);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The primary turns=894.\n", + "The secondary turns=447.\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11.21 : Page number 300-301\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage, V\n", + "R1=100.0; #Resistor R1, kilo ohm\n", + "R2=22.0; #Resistor R2, kilo ohm\n", + "R3=22.0; #Resistor R3, kilo ohm\n", + "R4=4.7; #Resistor R4, kilo ohm\n", + "R5=10.0; #Resistor R5, kilo ohm\n", + "R6=10.0; #Resistor R6, kilo ohm\n", + "beta=125; #Base current amplification factor\n", + "V_BE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "#(i) D.C voltages\n", + "#For 1st stage:\n", + "V_B1=VCC*R2/(R1+R2); #Voltage at the base of 1st transistor, V (Voltage across R2, using voltage divider rule)\n", + "V_E1=V_B1-V_BE; #Emitter voltage of the 1st transistor, V\n", + "I_E1=round(V_E1/R4,2); #Emitter current of 1st transistor, mA (OHM's LAW)\n", + "I_C1=I_E1; #Collector current of 1st transistor, mA(approximately equals to emitter current)\n", + "V_C1=VCC-I_C1*R3; #Collector voltage of 1st transistor, V\n", + "\n", + "#For 2nd stage:\n", + "V_B2=V_C1; #Voltage at the base of 2nd transistor, V (equals to collector voltage of 1st transistor)\n", + "V_E2=V_C1-V_BE; #Emitter voltage of the 2nd transistor, V\n", + "I_E2=V_E2/R6; #Emitter current of 2nd transistor, mA (OHM's LAW)\n", + "I_C2=I_E2; #Collector current 2nd transistor, mA(approximately equals to emitter current)\n", + "V_C2=VCC-I_C2*R5; #Collector voltage of 2nd transistor, V\n", + "\n", + "print(\"(i) D.C voltages\");\n", + "print(\"First stage: VB1=%.2fV , VE1=%.2fV and VC1=%.2fV\"%(V_B1,V_E1,V_C1));\n", + "print(\"First stage: VB2=%.2fV , VE2=%.2fV and VC2=%.2fV\"%(V_B2,V_E2,V_C2));\n", + "\n", + "#(ii)Voltage gain\n", + "#First stage\n", + "re_1=25/I_E1; #a.c emitter resistance of 1st transistor, ohm\n", + "re_2=25/I_E2; #a.c emitter resistance of 2nd transistor, ohm\n", + "Zin_2nd_stage=beta*re_2/1000; #Input impedance of 2nd stage, kilo ohm\n", + "R_AC=R3*Zin_2nd_stage/(R3+Zin_2nd_stage); #Total a.c collector load, kilo ohm\n", + "A_v1=round(R_AC*1000/re_1,0); #Voltage gain of first stage\n", + "\n", + "print(\"The voltage gain of first stage=%d.\"%A_v1);\n", + "\n", + "#Second stage\n", + "R_AC=R5; #Total a.c collector load for 2nd stage, kilo ohm(Due to no loading effect, equal to R5)\n", + "A_v2=round(R5*1000/re_2,0); #Voltage gain of 2nd stage\n", + "\n", + "print(\"The voltage gain of second stage=%d.\"%A_v2);\n", + "\n", + "A_vT=A_v1*A_v2; #Overall voltage gain\n", + "\n", + "print(\"Overall voltage gain=%d.\"%A_vT);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) D.C voltages\n", + "First stage: VB1=2.16V , VE1=1.46V and VC1=5.18V\n", + "First stage: VB2=5.18V , VE2=4.48V and VC2=7.52V\n", + "The voltage gain of first stage=66.\n", + "The voltage gain of second stage=179.\n", + "Overall voltage gain=11814.\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter12_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter12_2.ipynb new file mode 100644 index 00000000..05e3d9d8 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter12_2.ipynb @@ -0,0 +1,968 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:1e9209171152811793fc18d1ee8c80ddcef574d69421ec87eeaa8fb87a304f6d" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 12: TRANSISTOR AUDIO POWER AMPLIFIERS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.1 : Page number 308\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V\n", + "R1=10.0; #Resistor R1, kilo ohm\n", + "R2=2.2; #Resistor R2, kilo ohm\n", + "RC=3.6; #Collector resistor, kilo ohm\n", + "RE=1.1; #Emitter resistor, kilo ohm\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "#Calculation\n", + "I1=VCC/(R1+R2); #Current through R1 and R2, mA (OHM's LAW)\n", + "V2=I1*R2; #Voltage across R2 resistor, V (OHM's LAW)\n", + "VE=V2-VBE; #Emitter voltage, V\n", + "IE=VE/RE; #Emitter current, mA (OHM's LAW)\n", + "IC=IE; #Collector current, mA (approximately equal to emitter current)\n", + "I_T=I1+IC; #Total current drawn from the supply, mA\n", + "P_dc=VCC*I_T; #Total power drawn from the supply, mW\n", + "\n", + "\n", + "#Results\n", + "print(\"The total power drawn from the supply=%.1fmW.\"%P_dc);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total power drawn from the supply=18.2mW.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.2 : Page number 309\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_L=10.6; #Voltage across load, V.(from a.c voltmeter, therfore r.m.s value)\n", + "R_L=200.0; #Load resistance, ohm\n", + "\n", + "#Calculation\n", + "#Since, power =V**2/R,\n", + "P_O=(V_L**2/R_L)*1000; #A.C output power, mW\n", + "\n", + "#Result\n", + "print(\"The a.c output power = %.1fmW.\"%P_O);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The a.c output power = 561.8mW.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.3 : Page number 309\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "RL=100.0; #Load resistance, ohm\n", + "V_PP=18.0; #Peak-to-peak a.c voltage, V\n", + "\n", + "#Calculation\n", + "#Since, V(r.m.s)=(V(peak-to-peak)/2)/sqrt(2)\n", + "VL=V_PP/(2*(2**0.5)); #r.m.s value, V\n", + "\n", + "#Since, power=(square of voltage)/resistance\n", + "P_O_max=(VL**2/RL)*1000; #Maximum possible a.c load power, mW\n", + "\n", + "#Result\n", + "print(\"The maximum possible a.c load power=%dmW.\"%P_O_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum possible a.c load power=405mW.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.4 : Page number 310\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_battery=12.0; #Battery voltage, V\n", + "P_out=2.0; #Output power, W\n", + "\n", + "#Calculation\n", + "#Since, Power=Current*Voltage\n", + "IC=(P_out/V_battery)*1000; #Maximum collector current , mA\n", + "\n", + "#Result\n", + "print(\"The maximum collector current=%.1fmA.\"%IC);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum collector current=166.7mA.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.5 : Page number 310\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_battery=12.0; #Battery voltage, V\n", + "RL=4.0; #Collector load, kilo ohm\n", + "\n", + "#Calculation\n", + "IC_max=V_battery/RL; #Maximum collector current, mA\n", + "\n", + "\n", + "#Result\n", + "print(\"The maximum collector current=%dmA.\"%IC_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum collector current=3mA.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.6 : Page number 310-311\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "P=50.0; #Power supplied by power amplifier, W\n", + "R=8.0; #Resistance of speaker, ohm\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#Since, Power=Voltage _square/Resistance,\n", + "V=(P*R)**0.5; #a.c output voltage, V\n", + "\n", + "#(ii)\n", + "I=V/R; #a.c output current, A (OHM's LAW)\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The a.c output voltage=%dV.\"%V);\n", + "print(\"(ii) The a.c output current=%.1fA.\"%I);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The a.c output voltage=20V.\n", + "(ii) The a.c output current=2.5A.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.7 : Page number 315\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20.0; #Collector supply voltage, V\n", + "ib_peak=10.0; #Base current(peak), mA\n", + "RB=1.0; #Base resistance, kilo ohm\n", + "RC=20.0; #Collector resistance, ohm\n", + "beta=25.0; #Base current amplification factor\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "#Calculation\n", + "IB=round(VCC-VBE/RB,1); #Base current, mA (OHM's LAW)\n", + "IC=int(beta*IB); #Collector current, mA\n", + "VCE=VCC-(IC/1000)*RC; #Collector emitter voltage, V (KVL)\n", + "\n", + "#(i)\n", + "ic_peak=beta*ib_peak; #Collector current(peak), mA\n", + "P_o_ac=(ic_peak/1000)**2*RC/2; #Output power, W\n", + "\n", + "#(ii)\n", + "P_dc=VCC*IC/1000; #Input power, W\n", + "\n", + "#(iii)\n", + "collector_efficiency=(P_o_ac/P_dc)*100; #Collector efficiency of the amplifier circuit,\n", + "\n", + "#Result\n", + "print(\"(i) The output power=%.3fW.\"%P_o_ac);\n", + "print(\"(ii) The input power=%.1fW.\"%P_dc);\n", + "print(\"(iii) The collector efficiency=%.1f%%.\"%collector_efficiency);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The output power=0.625W.\n", + "(ii) The input power=9.6W.\n", + "(iii) The collector efficiency=6.5%.\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.8 : Page number 317\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "P_dc=10.0; #zero signal power dissipation, W\n", + "P_o=4.0; #a.c output power, W\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Collector_eff=(P_o/P_dc)*100; #collector efficiency\n", + "\n", + "#(ii)\n", + "#Zero signal power is the maximum power dissipation in a transistor, therefore,\n", + "Power_rating=P_dc; #Power rating of the transistor, W\n", + "\n", + "#Result\n", + "print(\"(i) The collector efficiency=%d%%.\"%Collector_eff);\n", + "print(\"(i) The power rating of the transistor=%dW.\"%Power_rating);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The collector efficiency=40%.\n", + "(i) The power rating of the transistor=10W.\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.9 : Page number 317-318\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "RL=100.0; #Secondary load, ohm\n", + "n=10.0; #Transformer turn ratio\n", + "IC=100.0; #Zero signal collector current, mA\n", + "\n", + "#Calculation\n", + "RL_reflected=n**2*RL; #Reflected load as seen by the primary of the transformer, ohm\n", + "P_o_ac_max=(IC/1000)**2*RL_reflected/2; #Maximum a.c power output, W \n", + "\n", + "\n", + "\n", + "#Result\n", + "print(\"The maximum a.c power output=%dW.\"%P_o_ac_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum a.c power output=50W.\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.10 : Page number 318\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=5.0; #Collector supply voltage, V\n", + "IC=50.0; #Zero signal collector current, mA\n", + "\n", + "#Calculation\n", + "#(i)\n", + "P_o_max=VCC*IC/2; #Maximum a.c output power, mW\n", + "\n", + "#(ii)\n", + "P_dc=VCC*IC; #D.C input power, mW\n", + "#Since, maximum power is dissipated in the zero signal conditions\n", + "Power_rating=P_dc; #Power rating of transistor, mW\n", + "\n", + "#(iii)\n", + "Max_collector_eff=(P_o_max/P_dc)*100; #Maximum collector efficiency\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The maximum a.c output power=%dmW\"%P_o_max);\n", + "print(\"(ii) The power rating of the transistor=%dmW.\"%Power_rating);\n", + "print(\"(iii) The maximum collector efficiency =%d%%.\"%Max_collector_eff);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The maximum a.c output power=125mW\n", + "(ii) The power rating of the transistor=250mW.\n", + "(iii) The maximum collector efficiency =50%.\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.11 : Page number 318\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "ic_max=160.0; #Maximum a.c collector current, mA\n", + "ic_min=10.0; #Minimum a.c collector current, mA\n", + "vce_max=12.0; #Maximum collector-emitter voltage, V\n", + "vce_min=2.0; #Minimum collector-emitter voltage, V\n", + "\n", + "#Calculation\n", + "vce_pp=vce_max-vce_min; #peak to peak collector emitter voltage, V\n", + "ic_pp=ic_max-ic_min; #peak to peak collector current, V\n", + "P_o=(vce_pp/(2*sqrt(2)))*(ic_pp/(2*sqrt(2))); #a.c output power, mW\n", + "\n", + "\n", + "#Result\n", + "print(\"The a.c output power=%.1fmW.\"%P_o);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The a.c output power=187.5mW.\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.12 : Page number 319-320\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt \n", + "\n", + "#Variable declaration\n", + "VCC=12.0; #Battey voltage, V\n", + "IC_max_change=100.0; #maximum collector current change, mA\n", + "RL=5.0; #Loudspeaker resistance, ohm\n", + "\n", + "#Calculation\n", + "VCE_max_change=VCC; #Maximum collector-emitter voltage change\n", + "#(i) Loud speaker directly connected in the collector\n", + "Vmax_speaker=(IC_max_change/1000)*RL; #Maximum voltage across the loudspeaker, V\n", + "P_speaker_directly_coupled=Vmax_speaker*IC_max_change; #Power developed in the loudspeaker,mW\n", + "\n", + "#(ii) Loudspeaker transformer coupled\n", + "Z_out=(VCE_max_change/IC_max_change)*1000; #Output impedance of transistor, ohm\n", + "\n", + "#For max power transfer, primary impedance should be Z_out\n", + "RL_reflected=Z_out; #Load resistance as seen by primary, ohm\n", + "n=sqrt(RL_reflected/RL); #Turns ratio of transformer\n", + "Vp=VCC; #Transformer primary voltage, V\n", + "Vs=Vp/n; #Transformer secondary voltage, V\n", + "IL=Vs/RL; #Load current, A\n", + "P_speaker_transformer_coupled=IL**2*RL*1000; #Power delivered to the speaker, mW\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The power transferred to the speaker when directly coupled=%dmW.\"%P_speaker_directly_coupled);\n", + "print(\"(ii) The power trasnferred to the speaker when transformer-coupled=%dmW.\"%P_speaker_transformer_coupled);\n", + "print(\" The turns ratio=%.1f.\"%n);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The power transferred to the speaker when directly coupled=50mW.\n", + "(ii) The power trasnferred to the speaker when transformer-coupled=1200mW.\n", + " The turns ratio=4.9.\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.13 : Page number 320-321\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "beta=100.0; #Base current amplification factor\n", + "RL=81.6; #Load resistance, ohm\n", + "VCE_peak=30.0; #Peak value of collector voltage, V\n", + "IC_peak=35.0; #Peak value of collector current, mA\n", + "VCE_min=5.0; #Minimum value of collector voltage, V\n", + "IC_min=1.0; #Minimum value of collector current, mA\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "IC_zero_signal=(IC_peak-IC_min)/2 +1; #Zero signal collector current, mA\n", + "\n", + "#(ii)\n", + "IB_zero_signal=IC_zero_signal/beta; #Zero signal base current, mA\n", + "\n", + "#(iii)\n", + "VCE_zero_signal=(VCE_peak-VCE_min)/2 +5; #Zero signal collector-emitter voltage, V\n", + "VCC=VCE_zero_signal; #Collector supply voltage,V (due to transformer coupling, aproximately equal to zero signal VCE)\n", + "P_dc=VCC*IC_zero_signal; #d.c input power, mW\n", + "VCE_ac=(VCE_peak-VCE_min)/(2*sqrt(2)); #a.c output voltage, V\n", + "IC_ac=(IC_peak-IC_min)/(2*sqrt(2)); #a.c output current, mA\n", + "P_ac=VCE_ac*IC_ac; #a.c output power, mW\n", + "\n", + "#(iv)\n", + "collector_eff=(P_ac/P_dc)*100; #Collector efficiency\n", + "\n", + "#(v)\n", + "#a.c resistance RL'=negative inverse of slope of the d.c load line\n", + "slope=(IC_peak-IC_min)/(VCE_min-VCE_peak); #Slope of he d.c load line, kilo mho\n", + "RL_ac=-(1/slope)*1000; #a.c resistance, ohm\n", + "n=sqrt(RL_ac/RL); #Transformer turn ratio\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The approximate value of zero signal collector current=%dmA.\"%IC_zero_signal);\n", + "print(\"(ii) The zero signal base current=%.2fmA.\"%IB_zero_signal);\n", + "print(\"(iii) The d.c input power= %dmW and a.c output power =%dmW.\"%(P_dc,P_ac));\n", + "print(\"(iv) The collector efficiency=%.1f%%.\"%collector_eff);\n", + "print(\"(v) The turn ratio of the transformer=%d.\"%n);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The approximate value of zero signal collector current=18mA.\n", + "(ii) The zero signal base current=0.18mA.\n", + "(iii) The d.c input power= 315mW and a.c output power =106mW.\n", + "(iv) The collector efficiency=33.7%.\n", + "(v) The turn ratio of the transformer=3.\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.14 : Page number 321-322\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "RL=13.0; #Load resistance, ohm\n", + "RL_reflected=325.0; #Load resistance, when referred to primary, ohm\n", + "VCC=20.0; #Supply voltage, V\n", + "IC=58.0; #Quiscent value of collector current, mA\n", + "\n", + "#Calculation\n", + "#(i)\n", + "n=sqrt(RL_reflected/RL); #Transformer turn ratio\n", + "\n", + "#(ii)\n", + "P_ac=(((IC/1000)**2)*RL_reflected/2)*1000; #A.C output power, mW\n", + "\n", + "#(iii)\n", + "P_dc=VCC*IC; #d.c input power, mW\n", + "collector_eff=(P_ac/P_dc)*100; #Collector efficiency\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) Transformer turn ratio=%d.\"%n);\n", + "print(\"(ii) The a.c output power=%dmW.\"%P_ac);\n", + "print(\"(iii) The collector efficiency=%d%%.\"%collector_eff);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Transformer turn ratio=5.\n", + "(ii) The a.c output power=546mW.\n", + "(iii) The collector efficiency=47%.\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.15 : Page number 323\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "P_total=4.0; #Total power dissipated by the power transistor, W\n", + "T_j_max=90.0; #Maximum junction temperature, degree celsius\n", + "theta=10.0; #Thermal resistance, degree celsius per watt\n", + "\n", + "#Calculation\n", + "#Since, Total power dissipation=half of(max. junc. temp. - ambient temp.)\n", + "T_amb=T_j_max-(P_total*theta); #Ambient temperature, degree celsius\n", + "\n", + "#Result\n", + "print(\"The ambient temperature=%d degree celsius.\"%T_amb);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The ambient temperature=50 degree celsius.\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.16 : Page number 323-324\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "theta=300.0; #Thermal resistance, degree celsius per watt\n", + "T_j_max=90.0; #Maximum junction temperature, degree celsius\n", + "T_amb=30.0; #Ambient temperature, degree celsius\n", + "\n", + "#Calculation\n", + "#(i) Without heat sink\n", + "P_total=((T_j_max-T_amb)/theta)*1000; #Maximum permissible power dissipation without sink, mW\n", + "\n", + "print(\"(i)The maximum permissible power dissipation without heat sink=%dmW.\"%P_total);\n", + "\n", + "#(ii) With heat sink\n", + "theta=60.0; #reduced thermal resistance, degree celsius per watt\n", + "P_total=((T_j_max-T_amb)/theta)*1000; #Maximum permissible power dissipation with heat sink, mW\n", + "\n", + "print(\"(ii)The maximum permissible power dissipation with heat sink=%dmW.\"%P_total);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)The maximum permissible power dissipation without heat sink=200mW.\n", + "(ii)The maximum permissible power dissipation with heat sink=1000mW.\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.17 : Page number 324\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "theta=20.0; #Thermal resistance, degree celsius per watt\n", + "T_j_max=200.0; #Maximum junction temperature, degree celsius\n", + "T_amb=25.0; #Ambient temperature, degree celsius\n", + "VCE=4.0; #Collector-emitter voltage, V\n", + "\n", + "#Calculation\n", + "P_total=(T_j_max-T_amb)/theta; #Maximum permissible power dissipation, W\n", + "\n", + "#since, the max. power dissipation=VCE_max*IC_max,therefore\n", + "IC_max=P_total/VCE; #Maximum collector current, A\n", + "\n", + "print(\"The maximum collector current that the transistor can carry without destruction=%.2fA.\"%IC_max);\n", + "\n", + "#The ambient temperature rises\n", + "T_amb=75.0; #The risen ambibent temperature, degree celsius\n", + "P_total=(T_j_max-T_amb)/theta; #Maximum permissible power dissipation, W\n", + "IC_max=P_total/VCE; #Maximum collector current, A\n", + "\n", + "print(\"The maximum collector current for the risen ambient temperature=%.2fA.\"%IC_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum collector current that the transistor can carry without destruction=2.19A.\n", + "The maximum collector current for the risen ambient temperature=1.56A.\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.18 : Page number 328-329\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "VCC=12.0; #Supply voltage, V\n", + "RL=8.0; #Driving load, ohm\n", + "\n", + "#Calculation\n", + "#(i)\n", + "IC_sat=VCC/(2*RL); #Collector saturation current, A\n", + "P_o_max=round(VCC*IC_sat*0.25,2); #Maximum load power, W\n", + "\n", + "#(ii)\n", + "P_dc=round(VCC*IC_sat/round(pi,2),2); #d.c input power, W\n", + "\n", + "#(iii)\n", + "Collector_eff=(P_o_max/P_dc)*100; #Collector efficiency\n", + "\n", + "#Result\n", + "print(\"(i) The maximum load power =%.2fW.\"%P_o_max);\n", + "print(\"(ii) The d.c input power=%.2fW.\"%P_dc);\n", + "print(\"(iii) The collector efficiency=%.1f%%.\"%Collector_eff);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The maximum load power =2.25W.\n", + "(ii) The d.c input power=2.87W.\n", + "(iii) The collector efficiency=78.4%.\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.19 : Page number 329\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "P_T=10.0; #Power rating of each transistor, W\n", + "max_eff=0.785; #Maximum collector effciency\n", + "\n", + "#Calculation\n", + "#Since, input power=max. a.c power + Power rating of transistor\n", + "#And, max. efficiency=max. a.c power/input d.c power\n", + "P_2T=2*P_T; #Total power dissipation by two transistors\n", + "P_o_max=(max_eff*P_2T)/(1-max_eff); #Maximum output a.c power, W\n", + "\n", + "#result\n", + "print(\"The maximum output power that can be obtained=%.2fW.\"%P_o_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum output power that can be obtained=73.02W.\n" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.20 : Page number 329\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "eff=60.0/100; #Efficiency of the amplifier\n", + "P_T=2.5; #Power dissipated by each transistor, W\n", + "\n", + "#Calculation\n", + "#Since, input power=max. a.c power + Power rating of transistor\n", + "#And, max. efficiency=max. a.c power/input d.c power\n", + "P_2T=2*P_T; #Total power dissipated by both transistors, W\n", + "P_ac=(eff*P_2T)/(1-eff); #Output a.c power, W\n", + "P_dc=P_ac+P_2T; #Input d.c power, W\n", + "\n", + "#Result\n", + "print(\"The a.c output power= %.1fW.\"%P_ac);\n", + "print(\"The d.c input power= %.1fW.\"%P_dc);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The a.c output power= 7.5W.\n", + "The d.c input power= 12.5W.\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12.21 : Page number 329-330\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=10.0; #Supply voltage, V\n", + "RL=10.0; #Load resistance, ohm\n", + "\n", + "#Calculation\n", + "IC_sat=(VCC/(2*RL))*1000; #Saturated collector current, mA\n", + "VCE_off=VCC/2; #Collector-emitter voltage in off state, V\n", + "\n", + "#Result\n", + "print(\"1st end point of a.c load line, IC(sat)=%dmA.\"%IC_sat);\n", + "print(\"2nd end point of a.c load line, VCE(off)=%dV.\"%VCE_off);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1st end point of a.c load line, IC(sat)=500mA.\n", + "2nd end point of a.c load line, VCE(off)=5V.\n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter13_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter13_2.ipynb new file mode 100644 index 00000000..afa98f3a --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter13_2.ipynb @@ -0,0 +1,1139 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER 13: AMPLIFIERS WITH NEGATIVE FEEDBACK" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.1 : Page number 338" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage gain of the amplifier with negative feedback=97.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=3000.0; #Voltage gain without feedback\n", + "m_v=0.01; #Feedback fraction\n", + "\n", + "#Calculation\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "Avf=Av/(1+Av*m_v); #Voltage gain of the amplifier with negative feedback\n", + "\n", + "#Result\n", + "print(\"The voltage gain of the amplifier with negative feedback=%.0f.\"%Avf);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.2 : Page number 339" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The fraction of output fedback to the input=1/20.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=140.0; #Voltage gain\n", + "Avf=17.5; #Voltage gain with negative feedback\n", + "\n", + "#Calculation\n", + "#Since, Avf=Av/(1+Av*mv), so,\n", + "mv=(Av-Avf)/(Av*Avf); #Fraction of output fedback to the input\n", + "\n", + "\n", + "#Result\n", + "print(\"The fraction of output fedback to the input=1/%.0f.\"%(1.0/mv));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.3 : Page number 339" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The fraction of output fedback to input=0.01.\n", + "(ii) The required amplifier gain for overall gain to be 75=300.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=100.0; #Voltage gain\n", + "Avf=50.0; #Voltage gain with negative feedback\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "mv=(Av-Avf)/(Av*Avf); #The fraction of output fedback to input\n", + "\n", + "#(ii) Overall gain is to be 75:\n", + "Avf=75.0; #The required overall gain\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "Av=Avf/(1-Avf*mv); #The required value of amplifier gain\n", + "\n", + "#result\n", + "print(\"(i) The fraction of output fedback to input=%.2f.\"%mv);\n", + "print(\"(ii) The required amplifier gain for overall gain to be 75=%d.\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.4 : Page number 339-340" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The voltage gain without feedback=40.\n", + "(ii) The feedback fraction = 1/40.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Vout=10.0; #output voltage , V\n", + "Vin_f=0.5; #Input votage for amplifier with feedback, V\n", + "Vin=0.25; #Input votage for amplifier without feedback, V\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Av=Vout/Vin; #Voltage gain without negative feedback\n", + "\n", + "#(ii)\n", + "Avf=Vout/Vin_f; #Voltage gain with negative feedback\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "mv=(Av-Avf)/(Av*Avf); #Feedback fraction\n", + "\n", + "#Result\n", + "print(\"(i) The voltage gain without feedback=%d.\"%Av);\n", + "print(\"(ii) The feedback fraction = 1/%d.\"%(1/mv));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.5 : Page number 340" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The percentage of reduction in stage gain without feedback=20%.\n", + "(ii) The percentage of reduction in net gain with feedback=11.2%\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=50.0; #Gain without feedback\n", + "Avf=25.0; #Gain with negative feedback\n", + "\n", + "#Calculation\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "mv=(Av-Avf)/(Av*Avf); #Feedback fraction\n", + "\n", + "#(i)\n", + "#percentage of reduction without feedback\n", + "Av_reduced=40.0; #Reduced amplifier gain due to ageing\n", + "percentage_of_reduction=((Av-Av_reduced)/Av)*100; #Percentage of reduction in stage gain\n", + "\n", + "print(\"(i) The percentage of reduction in stage gain without feedback=%d%%.\"%percentage_of_reduction);\n", + "\n", + "#(ii)\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "Avf_reduced=round(Av_reduced/(1+mv*Av_reduced),1); #Reduced net gain with negative feedback \n", + "percentage_of_reduction_f=((Avf-Avf_reduced)/Avf)*100; #Percentage of reduction in net gain with feedback\n", + "\n", + "print(\"(ii) The percentage of reduction in net gain with feedback=%.1f%%\"%percentage_of_reduction_f);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.6 : Page number 340" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The percentage change in system gain=8.36%\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=100.0; #Gain\n", + "mv=0.1; #feedback fraction\n", + "Av_fall=6.0; #fall in gain, dB\n", + "\n", + "#Calculation\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "Avf=round(Av/(1+Av*mv),2); #Total system gain with feedback\n", + "\n", + "#Since, fall in gain=20*log10(Av/Av_1)\n", + "Av1=round(Av/10**(Av_fall/20),0); #New absolute voltage gain without feedback\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "Avf_new=round(Av1/(1+Av1*mv),2); #New net system gain with feedback\n", + "\n", + "percentage_change=((Avf-Avf_new)/Avf)*100; #Percentage change in system gain\n", + "\n", + "#Result\n", + "print(\"The percentage change in system gain=%.2f%%\"%percentage_change);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.7 : Page number 341" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The feedback fraction=0.008.\n", + "The percentage fall in system gain=4.8%.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=500.0; #Voltage gain without feedback\n", + "Avf=100.0; #Voltage gain with negative feedback\n", + "Av_fall_percentage=20.0; #Gain fall percentage due to ageing\n", + "\n", + "\n", + "#Calculation\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "mv=(Av-Avf)/(Av*Avf); #Feedback fraction\n", + "Av_reduced=((100-Av_fall_percentage)/100)*Av; #Reduced voltage gain\n", + "Avf_reduced=round(Av_reduced/(1+Av_reduced*mv),1); #Reduced total gain of the system\n", + "percentage_fall=((Avf-Avf_reduced)/Avf)*100; #Percentage of fall in total system gain\n", + "\n", + "#Result\n", + "print(\"The feedback fraction=%.3f.\"%mv);\n", + "print(\"The percentage fall in system gain=%.1f%%.\"%percentage_fall);\n", + "\n", + "#Note: The percentage gain is calculated in the text as 4.7% due to approximation of Avf to 95.3 whose actual approximation will be (95.238)~95.2. So, the percentage fall calculated here is 4.8%\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.8 : Page number 341" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage gain with feedback=31622.\n", + "The feedback fraction=2.16e-05.\n" + ] + } + ], + "source": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "Av=100000.0; #Open loop voltage gain\n", + "f_dB=10.0; #Negative feedback, dB\n", + "\n", + "#Calculation\n", + "Av_dB=20*log10(Av); #dB voltage gain without feedback, dB\n", + "Avf_dB=Av_dB-f_dB; #dB voltage gain with feedback, dB\n", + "Avf=10**(Avf_dB/20); #Voltage gain with feedback\n", + "\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "mv=(Av-Avf)/(Av*Avf); #feedback fraction\n", + "\n", + "#Result\n", + "print(\"The voltage gain with feedback=%d.\"%Avf);\n", + "print(\"The feedback fraction=%.2e.\"%mv);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.9 : Page number 341-342" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage gain with feedback=47.4.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Ao=1000.0; #Open circuit voltage gain\n", + "Rout=100.0; #Output resistance, ohm\n", + "RL=900.0; #Resistive load, ohm\n", + "mv=1/50; #feedback fraction\n", + "\n", + "#Calculation\n", + "#Since, Av=Ao*RL/(Rout+RL)\n", + "Av=Ao*RL/(Rout+RL); #Voltage gain without feedback\n", + "Avf=Av/(1+Av*mv); #Voltage gain with feedback\n", + "\n", + "#Result\n", + "print(\"The voltage gain with feedback=%.1f.\"%Avf);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.10 : Page number 342" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100=Av/(1+Av*mv) ------Eq. 1\n", + "99=0.8*Av/(1+0.8*Av*mv) ------Eq. 2\n", + "99 + 79.2*Av*mv=0.8Av ------Eq. 3 from Eq. 2\n", + "79.2 + 79.2*Av*mv=0.792Av ------Eq. 4 from Eq. 1\n", + "Subtracting Eq.4 from Eq.3\n", + "19.8 = 0.008*Av\n", + "Av=2475.\n", + "mv=0.0096.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Avf=100.0; #Voltage gain with feedback\n", + "vary_f=1; #Vary percentage in voltage gain with feedback\n", + "vary_wf=20; #Vary percentage in voltage gain without feedback\n", + "\n", + "#Calculation\n", + "#Avf=Av/(1+Av*mv)\n", + "print(\"%d=Av/(1+Av*mv) ------Eq. 1\"%Avf); #Equation 1\n", + "\n", + "#considering variation in gains\n", + "Avf_vary=Avf*(1- vary_f/100.0); #Gain with feedback, considering variation\n", + "print(\"%d=%.1f*Av/(1+%.1f*Av*mv) ------Eq. 2\"%(Avf_vary,(1-vary_wf/100.0),(1-vary_wf/100.0))); #Equation 2\n", + "\n", + "#Solving the above two equations\n", + "print(\"%d + %.1f*Av*mv=%.1fAv ------Eq. 3 from Eq. 2\"%(Avf_vary,Avf_vary*(1-vary_wf/100.0),(1-vary_wf/100.0))); #Equation 3\n", + "\n", + "#multiplying Eq. 1 with (Avf_vary*(1-vary_wf/100.0))/100=0.792\n", + "print(\"%.1f + %.1f*Av*mv=%.3fAv ------Eq. 4 from Eq. 1\"%(Avf*Avf_vary*(1-vary_wf/100.0)/100.0,Avf*Avf_vary*(1-vary_wf/100.0)/100.0,Avf_vary*(1-vary_wf/100.0)/100.0)); #Equation 4\n", + "\n", + "print(\"Subtracting Eq.4 from Eq.3\" );\n", + "print(\"%.1f = %.3f*Av\"%(Avf_vary-Avf*Avf_vary*(1-vary_wf/100.0)/100.0,(1-vary_wf/100.0)-Avf_vary*(1-vary_wf/100.0)/100.0));\n", + "Av=(Avf_vary-Avf*Avf_vary*(1-vary_wf/100.0)/100.0)/((1-vary_wf/100.0)-Avf_vary*(1-vary_wf/100.0)/100.0);\n", + "print(\"Av=%.0f.\"%Av);\n", + "mv=(Av-Avf)/(Av*Avf);\n", + "print(\"mv=%.4f.\"%mv);\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.11 : Page number 345" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Feedback fraction=0.1.\n", + "(ii) Voltage gain with feedback=10.\n", + "(iii) Output voltage=10mV.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=10000.0; #Volage gain without feedback\n", + "R1=2.0; #Resistor R1, kilo ohm\n", + "R2=18.0; #Resistor R2, kilo ohm\n", + "Vin=1.0; #input voltage, mV\n", + "\n", + "#Calculation\n", + "#(i)\n", + "mv=R1/(R1+R2); #feedback fraction\n", + "\n", + "#(ii)\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "Avf=round(Av/(1+Av*mv),0); #Voltage gain with feedback\n", + "\n", + "#(iii)\n", + "Vout=Avf*Vin; #Output voltage, mV\n", + "\n", + "#Result\n", + "print(\"(i) Feedback fraction=%.1f.\"%mv);\n", + "print(\"(ii) Voltage gain with feedback=%d.\"%Avf);\n", + "print(\"(iii) Output voltage=%dmV.\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.12 : Page number 345-346" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Feedback fraction=0.1.\n", + "(ii) The voltage gain with feedback=10.\n", + "(iii) Increased input impedance due to negative feedback=10 mega ohm\n", + "(iv) Decreased output impedance due to negative feedback=0.1 ohm.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=10000.0; #Volateg gain without feedback\n", + "Zin=10.0; #Input impedance, kilo ohm\n", + "Zout=100.0; #Output impedance, ohm\n", + "R1=10.0; #Resistor R1, kilo ohm\n", + "R2=90.0; #Resistor R2, kilo ohm\n", + "\n", + "#Calculation\n", + "#(i)\n", + "mv=R1/(R1+R2); #Feedback fraction\n", + "\n", + "#(ii)\n", + "#Since, Gain_with_feedback= Gain_without_feedback/(1+Gain_without_feedback*feedback_fraction),\n", + "Avf=round(Av/(1+Av*mv),0); #Voltage gain with feedback\n", + "\n", + "#(iii)\n", + "Zin_feedback=((1+Av*mv)*Zin)/1000; #Increased input impedance due to negative feedback, mega ohm\n", + "\n", + "#(iv)\n", + "Zout_feedback=Zout/(1+Av*mv); #Decreased output impedance due to negative feedback, ohm\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) Feedback fraction=%.1f.\"%mv);\n", + "print(\"(ii) The voltage gain with feedback=%d.\"%Avf);\n", + "print(\"(iii) Increased input impedance due to negative feedback=%.0f mega ohm\"%Zin_feedback);\n", + "print(\"(iv) Decreased output impedance due to negative feedback=%.1f ohm.\"%Zout_feedback);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.13 : Page number 346" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Distortion with negative feedback=0.312%\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=150.0; #Voltage gain\n", + "D=5/100.0; #Distortion\n", + "mv=10/100.0; #Feedback fraction\n", + "\n", + "#Calculation\n", + "Dvf=round((D/(1+Av*mv))*100,3); #Distortion with negative feedback\n", + "\n", + "\n", + "#Result\n", + "print(\"Distortion with negative feedback=%.3f%%\"%Dvf);\n", + "\n", + "#Note: In the text, value of Dvf=0.3125% has been approximated to 0.313%. But, here the approximation is done to 0.312%\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.14 : Page number 346" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The new lower cut-off frequency=136.4Hz\n", + "The new upper cut-off frequency=5.52MHz\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Av=1000.0; #Voltage gain\n", + "f1=1.5; #Lower cut-off frequency, kHz\n", + "f2=501.5; #Upper cut-off frequency, kHz\n", + "mv=1/100.0; #Feedbcack fraction\n", + "\n", + "#Calculation\n", + "f1_f=(f1/(1+mv*Av))*1000; #New lower cut-off frequency, Hz\n", + "f2_f=(f2*(1+mv*Av))/1000; #New upper cut-off frequency, MHz\n", + "\n", + "\n", + "#Result\n", + "print(\"The new lower cut-off frequency=%.1fHz\"%f1_f);\n", + "print(\"The new upper cut-off frequency=%.2fMHz\"%f2_f);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.15 : Page number 348" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The effective current gain=58.82.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Ai=200.0; #Current gain without feedback\n", + "mi=0.012; #Current attenuation\n", + "\n", + "#Calculation\n", + "Aif=Ai/(1+Ai*mi);\n", + "\n", + "#Result\n", + "print(\"The effective current gain=%.2f.\"%Aif);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.16 : Page number 349" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The input impedance when negative feedback is applied=3.26 kilo ohm\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Ai=240.0; #Current gain\n", + "Zin=15.0; #Input impedance without feedback, kilo ohm\n", + "mi=0.015; #Current feedback fraction\n", + "\n", + "#Calculations\n", + "Zin_f=Zin/(1+mi*Ai); #Input impedance with feedback, kilo ohm\n", + "\n", + "\n", + "#Result\n", + "print(\"The input impedance when negative feedback is applied=%.2f kilo ohm\"%Zin_f);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.17 : Page number 349" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The output impedance with negative feedback=9kilo ohm.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Ai=200.0; #Current gain without feedback\n", + "Zout=3.0; #Output impedance without feedback, kilo ohm\n", + "mi=0.01; #current feedback fraction\n", + "\n", + "#Calculation\n", + "Zout_f=Zout*(1+mi*Ai); #Output impedance with negative feedback, kilo ohm\n", + "\n", + "#Result\n", + "print(\"The output impedance with negative feedback=%dkilo ohm.\"%Zout_f);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.18 : Page number 349" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bandwidth when negative feedback is applied=1400kHz.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Ai=250.0; #Current gain without feedback\n", + "BW=400.0; #Bandwidth, kHz\n", + "mi=0.01; #current feedback fraction\n", + "\n", + "#Calculation\n", + "BW_f=BW*(1+mi*Ai); #Bandwidth when negative feedback is applied, kHz\n", + "\n", + "#Result\n", + "print(\"Bandwidth when negative feedback is applied=%dkHz.\"%BW_f);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.19 : Page number 350-351" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of VE=9.72V and IE=10.68mA\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f9a7522f0b8>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pylab as p\n", + "\n", + "#Variable declaration\n", + "VCC=18.0; #Supply voltage, V\n", + "R1=16.0; #Resistor R1, kilo ohm\n", + "R2=22.0; #Resistor R2, kilo ohm\n", + "RE=910.0; #Emitter resistor, ohm\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "#Calculations\n", + "V2=VCC*R2/(R1+R2); #Voltage across R2, V (Voltage divider rule)\n", + "VE=V2-VBE; #Emitter voltage, V\n", + "IE=(VE/RE)*1000; #Emitter current, mA (OHM's LAW)\n", + "\n", + "#D.C load line\n", + "IC_sat=(VCC/RE)*1000; #Collector saturation current, mA\n", + "VCE_off=VCC; #Collector-emitter voltage in off state, V\n", + "\n", + "#Result\n", + "print(\"Value of VE=%.2fV and IE=%.2fmA\"%(VE,IE));\n", + "\n", + "#Plotting\n", + "VCE_plot=[0,VCE_off]; #Plotting variable for VCE\n", + "IC_plot=[IC_sat,0]; #Plotting variable for IC\n", + "p.plot(VCE_plot,IC_plot);\n", + "p.xlim(0,20)\n", + "p.ylim(0,25)\n", + "p.xlabel('VCE(V)');\n", + "p.ylabel('IC(mA)');\n", + "p.title('d.c load line');\n", + "p.grid();\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.20 : Page number 352" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage gain of the emitter follower circuit=0.994.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10.0; #Supply voltage, V\n", + "R1=10.0; #Resistor R1, kilo ohm\n", + "R2=10.0; #Resistor R2, kilo ohm\n", + "RE=5.0; #Emitter resistance, kilo ohm\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "V2=VCC*R2/(R1+R2); #Voltage across R2, V (Voltage divider rule)\n", + "VE=V2-VBE; #Emitter voltage, V\n", + "IE=(VE/RE); #Emitter current, mA (OHM's LAW)\n", + "re=25/IE; #a.c emitter resistance, ohm\n", + "Av=RE*1000/(re+RE*1000); #Voltage gain\n", + "\n", + "\n", + "#Result\n", + "print(\"The voltage gain of the emitter follower circuit=%.3f.\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.21 : Page number 352-353" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage gain=0.988\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "RE=5.0; #Emitter resistance, kilo ohm\n", + "re=29.1; #a.c emitter resistance, ohm\n", + "RL=5.0; #Load resistance, kilo ohm\n", + "\n", + "#Calculation\n", + "RE_ac=(RE*RL)/(RE+RL); #New effective value of emitter resistance, kilo ohm\n", + "Av=RE_ac*1000/(re+RE_ac*1000); #Voltage gain\n", + "\n", + "#Result\n", + "print(\"The voltage gain=%.3f\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.22 : Page number 354" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The input impedance of the emitter follower =4.96 kilo ohm\n", + "The approximate value of the input impedance=5 kilo ohm\n" + ] + } + ], + "source": [ + "def pr(r1,r2): #Function for calculating parallel resistance\n", + " return (r1*r2)/(r1+r2);\n", + "\n", + "#Variable declaration\n", + "VCC=10.0; #Supply voltage, V\n", + "R1=10.0; #Resistor R1, kilo ohm\n", + "R2=10.0; #Resistor R2, kilo ohm\n", + "RE=4.3; #Emitter resistor, kilo ohm\n", + "RL=10.0; #Load resistance, kilo ohm\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=200.0; #Base current amplification factor\n", + "\n", + "#Calculation\n", + "V2=VCC*R2/(R1+R2); #Voltage across R2, V (Voltage divider rule)\n", + "VE=V2-VBE; #Emitter voltage, V\n", + "IE=(VE/RE); #Emitter current, mA (OHM's LAW)\n", + "re=25/IE; #a.c emitter resistance, ohm\n", + "RE_eff=pr(RE,RL); #Effective external emitter resistance, kilo ohm\n", + "Zin_base=beta*(re/1000+RE_eff); #Input impedance of the base of the transistor, kilo ohm\n", + "Zin=pr(pr(R1,R2),Zin_base); #Input impedance of emitter follower, kilo ohm\n", + "#Approximate value of input impedance taken as parallel resistance of R1 and R2 and ignoring Zin_base due to its relatively large value\n", + "Zin_approx=pr(R1,R2); #Approximate input impedance, kilo ohm\n", + "\n", + "#Result\n", + "print(\"The input impedance of the emitter follower =%.2f kilo ohm\"%Zin);\n", + "print(\"The approximate value of the input impedance=%d kilo ohm\"%Zin_approx);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.23 : Page number 355" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The output impedance=22.3 ohm\n" + ] + } + ], + "source": [ + "def pr(r1,r2): #Function for calculating parallel resistance\n", + " return (r1*r2)/(r1+r2);\n", + "\n", + "\n", + "#Variable declaration\n", + "re=20.0; #a.c emitter resistance, ohm\n", + "R1=3.0; #Resistor R1, kilo ohm\n", + "R2=4.7; #Resistor R2, kilo ohm\n", + "RS=600.0; #Source resistance, kilo ohm\n", + "beta=200.0; #Base current amplification factor\n", + "\n", + "#Calculation\n", + "Rin_ac=pr(pr(R1,R2)*1000,RS); #Input a.c resistance, ohm\n", + "Zout=re + Rin_ac/beta; #Output impedance, ohm\n", + "\n", + "#Result\n", + "print(\"The output impedance=%.1f ohm\"%Zout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.24 : Page number 358" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) d.c value of current in RE=1.09mA\n", + "(ii) Input impedance=16.17 mega ohm.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10.0; #Supply voltage, V\n", + "R1=120.0; #Resistor R1, kilo ohm\n", + "R2=120.0; #Resistor R2, kilo ohm\n", + "RE=3.3; #Emitter resistor, kilo ohm\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta_1=70.0; #Base current amplification factor of 1st transistor\n", + "beta_2=70.0; #Base current amplification factor of 2nd transistor\n", + "\n", + "#Calculation\n", + "#(i)\n", + "V2=VCC*R2/(R1+R2); #Voltage across R2, V (Voltage divider rule)\n", + "IE_2=(V2-2*VBE)/RE; #Emitter current, mA (OHM's LAW)\n", + "\n", + "#(ii)\n", + "Zin=(beta_1*beta_2*RE)/1000; #Input impedance, mega ohm\n", + "\n", + "#Result\n", + "print(\"(i) d.c value of current in RE=%.2fmA\"%IE_2);\n", + "print(\"(ii) Input impedance=%.2f mega ohm.\"%Zin);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 13.25 : Page number 358-359" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) D.C Bias levels: \n", + " VB1= 4V, VE1=3.3V, VB2=3.3V, VE2=2.6V, IE2=1.3mA and IE1=0.013mA.\n", + "(ii) A.C Analysis: \n", + " re1=1923 ohm and re2=19.23 ohm \n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=12.0; #Supply voltage, V\n", + "R1=20.0; #Resistor R1, kilo ohm\n", + "R2=10.0; #Resistor R2, kilo ohm\n", + "RC=4.0; #Collector resistor, kilo ohm\n", + "RE=2.0; #Emitter resistor, kilo ohm\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=100.0; #Base current amplification factor of 1st transistor\n", + "\n", + "#Calculation\n", + "#(i) D.C Bias levels\n", + "VB1=VCC*R2/(R1+R2); #Base voltage of 1st transistor, V (Voltage divider rule)\n", + "VE1=VB1-VBE; #Emitter voltage of 1st transistor, V\n", + "VB2=VE1; #Base voltage of 2nd transistor, V\n", + "VE2=VB2-VBE; #Emitter voltage of 2nd transistor, V\n", + "IE2=VE2/RE; #Emitter current of 2nd transistor, mA (OHM' LAW)\n", + "IE1=IE2/beta; #Emitter current of 1st transistor, mA (IE~IC=beta*IB, here IB2=IE1)\n", + "\n", + "#(ii) A.C analysis\n", + "re1=25/IE1; #a.c emitter resistance of 1st transistor\n", + "re2=25/IE2; #a.c emitter resistance of 2nd transistor\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) D.C Bias levels: \\n VB1= %dV, VE1=%.1fV, VB2=%.1fV, VE2=%.1fV, IE2=%.1fmA and IE1=%.3fmA.\"%(VB1,VE1,VB2,VE2,IE2,IE1));\n", + "print(\"(ii) A.C Analysis: \\n re1=%d ohm and re2=%.2f ohm \"%(re1,re2));\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + }, + "widgets": { + "state": {}, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter14_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter14_2.ipynb new file mode 100644 index 00000000..5e35882c --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter14_2.ipynb @@ -0,0 +1,502 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:ec0d27209d08b0b95750f66ce9ee21af5ef586e23d0bf0ea218aa20a4ce63e43" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#CHAPTER 14: SINUSOIDAL OSCILLATORS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.1 : Page number 371-372\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "L1=58.6; #Inductance, micro henry\n", + "C1=300.0; #Capacitance, pF\n", + "\n", + "#Calculation\n", + "f=(1/(2*round(pi,2)*sqrt(L1*10**-6*C1*10**-12)))/1000; #Frequency of oscillation, kHz\n", + "\n", + "\n", + "#Result\n", + "print(\"frequency of oscillation=%dkHz\"%f);\n", + "\n", + "\n", + "#Note : The frequency has been calculated in the text as 1199kHz but here the answer gets approximated to 1200kHz.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "frequency of oscillation=1200kHz\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.2 : Page number 372\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "L1=1.0; #Inductance , mH\n", + "f=1.0; #frequency of oscillation, GHz\n", + "\n", + "#Calculation\n", + "#Since, f=1/(2*pi*sqrt(L1*C1)),\n", + "C1=(1/(L1*10**-3*(f*10**12*2*pi)**2))*10**12; #Capacitance, pF\n", + "\n", + "\n", + "#Result\n", + "print(\"The Capacitance of the capacitor of the LC oscillator=%.2epF\"%C1);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The Capacitance of the capacitor of the LC oscillator=2.53e-11pF\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.3 : Page number 373-374\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "C1=0.001; #Capacitor C1, microfarad\n", + "C2=0.01; #Capacitor C2, microfarad\n", + "L=15.0; #Inductance, microhenry\n", + "\n", + "#Calculation\n", + "CT=C1*C2/(C1+C2); #Total capacitance\n", + "\n", + "#(i) Operating frequency\n", + "f=(1/(2*pi*sqrt(CT*10**-6*L*10**-6)))/1000; #Operating frequency, kHz\n", + "\n", + "#(ii) Feedback fraction\n", + "mv=C1/C2; #Feedback fraction\n", + "\n", + "#Result\n", + "print(\"(i) The operating frequency=%dkHz\"%f);\n", + "print(\"(ii) The feedback fraction=%.1f\"%mv);\n", + "\n", + "#Note : The operating frequency is calculated in the text as 1361kHz but here it has been approximated to 1362kHz\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The operating frequency=1362kHz\n", + "(ii) The feedback fraction=0.1\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.4 : Page number 374: Page number\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "mv=0.25; #Feedback fraction\n", + "L=1.0; #Inductance, mH\n", + "f=1.0; #Operating frequeny, MHz\n", + "\n", + "#Calculation\n", + "#Since, f=1/(2*pi*sqrt(L*C))\n", + "CT=round((1/(L*10**-3*(2*pi*f*10**6)**2))*10**12,1); #Total capacitance, pF\n", + "\n", + "#Since, mv=C1/C2 and CT=C1*C2/(C1+C2) or CT=C2/(1+ (C2/C1)),\n", + "#From the above equations, substituting value of mv and calculaing value of C2,\n", + "C2=CT*(1+(1/mv)); #Capacitance of C2 capactior, pF\n", + "C1=mv*C2; #Capacitance of C1 capacitor, pF\n", + "\n", + "#Result\n", + "print(\"C1=%.1fpF and C2=%.1fpF\"%(C1,C2));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "C1=31.6pF and C2=126.5pF\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.5 : Page number 375-376\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable decalaration\n", + "L1=1000.0; #Inductance of L1 inductor, microhenry\n", + "L2=100.0; #Inductance of L2 inductor, microhenry\n", + "M=20.0; #Mutual inductance, microhenry\n", + "C=20.0; #Capacitance, pF\n", + "\n", + "#Calculation\n", + "LT=L1+L2+2*M; #Total inductance, microhenry\n", + "\n", + "#(i) Operating frequency\n", + "f=(1/(2*pi*sqrt(LT*10**-6*C*10**-12)))/1000; #Operating frequency, kHz\n", + "\n", + "#(ii)\n", + "mv=L2/L1; #feedback fraction\n", + "\n", + "#Result\n", + "print(\"(i) The operating frequency=%dkHz.\"%f);\n", + "print(\"(ii) The feedback fraction=%.1f.\"%mv);\n", + "\n", + "#Note : The operating frequecy has been calculated in the text as 1052kHz but here it gets approximated to 1054kHz\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The operating frequency=1054kHz.\n", + "(ii) The feedback fraction=0.1.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.6 : Page number 376\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "C=1.0; #Capacitance, pF\n", + "f=1.0; #Frequency, MHz\n", + "mv=0.2; #Feedback frequency\n", + "\n", + "\n", + "#Calculation\n", + "LT=(1/(C*10**-12*(2*pi*f*10**6)**2))*1000; #Total inductance, mH\n", + "\n", + "#Since, mv=L2/L1 or L2=mv*L1 and L1+L2=LT or L1(1+mv)=LT,\n", + "L1=LT/(1+mv); #Inductance of L1 inductor, mH\n", + "L2=L1*mv; #inductance of L2 inductor, mH\n", + "\n", + "#Result\n", + "print(\"L1=%.1fmH and L2=%.2fmH.\"%(L1,L2));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "L1=21.1mH and L2=4.22mH.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.7 : Page number 378\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "R1=1.0; #Resistor R1, mega ohm\n", + "R2=R1; #Resistor R2, mega ohm\n", + "R3=R1; #Resistor R3, mega ohm\n", + "C1=68.0; #Capacitor C1, pF\n", + "C2=C1; #Capacitor C2, pF\n", + "C3=C1; #Capacitor C3, pF\n", + "\n", + "\n", + "#Calculation\n", + "R=R1*10**6; #Resistance of the resistors of phase shift circuit, ohm\n", + "C=C1*10**-12; #Capacitance of the capacitors of phase shift circuit, F\n", + "fo=1/(2*pi*R*C*sqrt(6)); #Frequency of oscillation, Hz\n", + "\n", + "#Result\n", + "print(\"The frequency of oscillation=%dHz\"%fo);\n", + "\n", + "#Note: The frequency of oscillation had been calculated in the text as 954Hz, but here it gets approximated to 955 HZ.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of oscillation=955Hz\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.8 : Page number 378\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "C=5.0; #Capacitance of the capacitors of phase shift circuit, pF\n", + "fo=800.0; #Required frequency of oscillation, kHz\n", + "\n", + "#Calculation\n", + "#Since, fo=1/(2*pi*R*C*sqrt(6))\n", + "R=(1/(2*pi*C*10**-12*fo*10**3*sqrt(6)))/1000; #Resistance of the resistors of phase shift circuit, kilo ohm\n", + "\n", + "#Result\n", + "print(\"R=%.1f kilo ohm.\"%R);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "R=16.2 kilo ohm.\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.9 : Page number 380\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "#Resistance of R1 and R2 resistors of the R-C bridge circuit\n", + "R1=220.0; #kilo ohm \n", + "R2=220.0; #kilo ohm\n", + "\n", + "#Capacitance of C1 and C2 the capacitors of the R-C bridge circuit\n", + "C1=250.0; #pF\n", + "C2=250.0; #pF\n", + "\n", + "#Calculation\n", + "#Since, R1=R2 and C1=C2, R1=R2 is taken as R and C1=C2 is taken as C\n", + "#And, f=1/(2*pi*sqrt(R1*R2*C1*C2))is transformed to f=1/(2*pi*R*C).\n", + "R=R1*10**3; #kilo ohm\n", + "C=C1*10**-12; #pF\n", + "f=1/(2*pi*R*C); #Frequency of oscillation, Hz\n", + "\n", + "\n", + "#Result\n", + "print(\"The frequency of oscillation=%dHz.\"%f);\n", + "\n", + "\n", + "#Note : The frequency of oscillation is calculated in the text as 2892Hz but here it gets approximated to 2893 Hz.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of oscillation=2893Hz.\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 14.11 : Page number 384\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "#a.c equivalent values of the crystal:\n", + "L=1.0; #Inductance , H\n", + "C=0.01; #Capacitance , pF\n", + "R=1000.0; #Resistance , ohm\n", + "Cm=20.0; #Mounting capacitance, pF\n", + "\n", + "#Calculation\n", + "fs=(1/(2*round(pi,2)*sqrt(L*C*10**-12)))/1000; #Series resonant frrequency, kHz\n", + "CT=(C*Cm/(C+Cm)); #Total capacitance, pF\n", + "fp=(1/(2*round(pi,2)*sqrt(L*CT*10**-12)))/1000; #Prallel resonant frequency, kHz\n", + "\n", + "#Result\n", + "print(\"fs=%.0fkHz and fp=%.0fkHz.\"%(fs,fp));\n", + "\n", + "#Note: fs and fp are calculated in the text as 1589kHz and 1590kHz, but here it gets approximated to 1592kHz and 1593kHz\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "fs=1592kHz and fp=1593kHz.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter15_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter15_2.ipynb new file mode 100644 index 00000000..e649cc91 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter15_2.ipynb @@ -0,0 +1,482 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:034eec32676d4e7abdedfb3bf68426d81a2d1483fc668bcbfdb5be18cec2e406" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 15: TRANSISTOR TUNED AMPLIFIERS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.1 : Page number 394" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "C=250.0*10**-12; #Capacitor of parallel resonant circuit, F\n", + "L=1.25*10**-3; #Inductor of the parallel resonant circuit, H\n", + "R=10.0; #Resistor of the parallel resonant circuit, ohm\n", + "\n", + "#Calculation\n", + "#(i) Resonant frequency\n", + "fr=((1/(2*pi))*sqrt((1/(L*C))-(R/L)**2))/1000; #Resonant frequecy, kHz\n", + "\n", + "#(ii) Impedance of the circuit at resonance\n", + "Zr=(L/(C*R))/1000; #Impedance of the circuit at resonance, kilo ohm\n", + "\n", + "#(iii) Quality factor of the circuit\n", + "Q=2*pi*(fr*10**3)*L/R; #Quality factor of the circuit\n", + "\n", + "#Result\n", + "print(\"(i) The resonant frequency=%.1fkHz.\"%fr);\n", + "print(\"(ii) The impedance of the circuit at resonance=%d kilo ohm.\"%Zr);\n", + "print(\"(iii) The quality factor of the circuit=%.1f.\"%Q);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The resonant frequency=284.7kHz.\n", + "(ii) The impedance of the circuit at resonance=500 kilo ohm.\n", + "(iii) The quality factor of the circuit=223.6.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.2 : Page number 394-395\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "C=100.0*10**-12; #Capacitor of parallel resonant circuit, F\n", + "L=100.0*10**-6; #Inductor of the parallel resonant circuit, H\n", + "R=10.0; #Resistor of the parallel resonant circuit, ohm\n", + "V=10.0; #Supply voltage, V\n", + "\n", + "#Calculation\n", + "#(i) Resonant frequency\n", + "fr=((1/(2*pi))*sqrt((1/(L*C))-(R/L)**2))/1000; #Resonant frequecy, kHz\n", + "\n", + "#(ii) Impedance of the circuit at resonance\n", + "Zr=(L/(C*R))/10**6; #Impedance of the circuit at resonance, mega ohm\n", + "\n", + "I=V/Zr; #Line current at resonance, microampere\n", + "\n", + "#Result\n", + "print(\"(i) The resonant frequency=%.2fkHz.\"%fr);\n", + "print(\"(ii) The impedance of the circuit at resonance=%.1f mega ohm.\"%Zr);\n", + "print(\"The line current at resonance=%d micro ampere.\"%I);\n", + "\n", + "#Note : The resonant frequency in the text has been calculated as 1592.28 kHz, but here it gets approximated to 1591.47 kHz.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The resonant frequency=1591.47kHz.\n", + "(ii) The impedance of the circuit at resonance=0.1 mega ohm.\n", + "The line current at resonance=100 micro ampere.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.3 : Page number 395\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "C=250.0*10**-12; #Capacitor of parallel resonant circuit, F\n", + "Zr=500.0*10**3; #Dynamic impedance, ohm\n", + "R=10.0; #Resistance of the coil, ohm\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#Since,Zr=L/CR,\n", + "L=(Zr*C*R)*10**3; #Inductance of the coil, mH\n", + "\n", + "#(ii) Resonant frequency\n", + "fr=((1/(2*pi))*sqrt((1/(L*10**-3*C))-(R/(L*10**-3))**2))/1000; #Resonant frequecy, kHz\n", + "\n", + "#(iii) Quality factor of the circuit\n", + "Q=2*pi*(fr*10**3)*(L*10**-3)/R; #Quality factor of the circuit\n", + "\n", + "#Result\n", + "print(\"(i) The inductance of the coil=%.2fmH.\"%L);\n", + "print(\"(ii) The resonant frequency=%.1fkHz.\"%fr);\n", + "print(\"(iii) The quality factor of the circuit=%.1f.\"%Q);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The inductance of the coil=1.25mH.\n", + "(ii) The resonant frequency=284.7kHz.\n", + "(iii) The quality factor of the circuit=223.6.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.4 : Page number 397\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Q=60.0; #Quality factor of the tuned amplifier\n", + "fr=1200.0; #Resonant frequency, kHz\n", + "\n", + "#Calculation\n", + "#(i)\n", + "BW=fr/Q; #Bandwidth, kHz\n", + "\n", + "#(ii)\n", + "f1=fr-(BW/2); #Lower cut-off frequency, kHz\n", + "f2=fr+(BW/2); #Upper cut-off frequency, kHz\n", + "\n", + "#Result\n", + "print(\"(i) The bandwidth=%dkHz\"%BW);\n", + "print(\"(ii) The lower and upper cut-off frequencies are=%dkHz and %dkHz.\"%(f1,f2));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The bandwidth=20kHz\n", + "(ii) The lower and upper cut-off frequencies are=1190kHz and 1210kHz.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.5 : Page number 397\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fr=2.0; #Resonant frequency, MHz\n", + "BW=50.0; #Bandwidth, kHz\n", + "\n", + "#Calculation\n", + "#Since, bandwidth=resonant_frequency/quality_factor\n", + "Q=(fr*10**6)/(BW*10**3); #Quality factor\n", + "\n", + "#Result\n", + "print(\"The quality factor=%d\"%Q);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The quality factor=40\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.7 : Page number 400\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "C=0.1*10**-6; #Capacitor of parallel resonant circuit, F\n", + "L=33.0*10**-3; #Inductor of the parallel resonant circuit, H\n", + "R=25.0; #Resistor of the parallel resonant circuit, ohm\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "fr=(1/(2*pi*sqrt(L*C)))/1000; #Resonant frequency, kHz\n", + "\n", + "#(ii)\n", + "XL=2*pi*(fr*10**3)*L; #Inductive reactance, ohm\n", + "Q=round(XL/R,0); #Quality factor\n", + "\n", + "#(iii)\n", + "BW=(fr*10**3)/Q; #Bandwidth\n", + "\n", + "#Result\n", + "print(\"(i) The resonant frequency=%.2fkHz\"%fr);\n", + "print(\"(ii) The quality factor= %d.\"%Q);\n", + "print(\"(iii) The bandwidth=%dHz.\"%BW);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The resonant frequency=2.77kHz\n", + "(ii) The quality factor= 23.\n", + "(iii) The bandwidth=120Hz.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.8 : Page number 401-402\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "BW_dt=200.0; #Bandwidth, kHz\n", + "fr=10.0; #Operating frequency, MHz\n", + "\n", + "#Calculation\n", + "#Since, BW_dt=k*fr (i.e.,co-efficient_of_coupling * operating_frequency)\n", + "k=BW_dt/(fr*10**3); #co-efficient of coupling\n", + "\n", + "#Result\n", + "print(\"The co-efficient of coupling=%.2f.\"%k);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The co-efficient of coupling=0.02.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.9 : Page number 405\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "C=500.0*10**-12; #Capacitor of parallel resonant circuit, F\n", + "L=50.7*10**-6; #Inductor of the parallel resonant circuit, H\n", + "R=10.0; #Resistor of the parallel resonant circuit, ohm\n", + "RL=1.0; #Load resistance, mega ohm\n", + "\n", + "#Calculation\n", + "#(i)\n", + "fr=round((1/(2*pi*sqrt(L*C)))/1000); #Resonant frequency, Hz\n", + "\n", + "#(ii)\n", + "R_dc=R; #d.c load, ohm\n", + "XL=2*pi*(fr*1000)*L; #Inductive reactance, ohm\n", + "Q_coil=round(XL/R,1); #Quality factor\n", + "R_P=(Q_coil*XL)/1000 ; #Equivalent parallel resistance, kilo ohm\n", + "R_AC=(R_P*RL*10**3)/(R_P+RL*10**3); #A.C load,kilo ohm\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The resonant frequency=%dkHz\"%fr);\n", + "print(\"(ii) d.c load=%d ohm and a.c load=%d kilo ohm.\"%(R_dc,R_AC));\n", + "\n", + "#Note: In the text resonant frequency has been wrongly calculated to 106kHz but its actual value is approximately 1000kHz\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The resonant frequency=1000kHz\n", + "(ii) d.c load=10 ohm and a.c load=10 kilo ohm.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.10 : Page number 406-407\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "RL=50.0; #Load resistance, ohm\n", + "n=5; #Turns ratio of the transformer\n", + "VCC=50.0; #Supply voltage, V\n", + "\n", + "#Calculation\n", + "#(i)\n", + "R_ac=n**2*RL; #A.C load, ohm\n", + "\n", + "#(ii)\n", + "P_o_max=VCC**2/(2*R_ac); #Maximum load power, W\n", + "\n", + "#Result\n", + "print(\"(i) The a.c load=%d ohm\"%R_ac);\n", + "print(\"(ii) Maximum load power=%dW\"%P_o_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The a.c load=1250 ohm\n", + "(ii) Maximum load power=1W\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 15.11 : Page number 407\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "P_D=4.0; #Maximum power dissipation, mW\n", + "P_o_max=1.0; #Maximum load power, W\n", + "\n", + "\n", + "#Calculation\n", + "max_collector_eff=(P_o_max/(P_o_max+(P_D/1000)))*100; #Maximum collector efficiency\n", + "\n", + "#Result\n", + "print(\"The maximum collector efficiency=%.1f%%\"%max_collector_eff);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum collector efficiency=99.6%\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter16_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter16_2.ipynb new file mode 100644 index 00000000..b2262b8f --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter16_2.ipynb @@ -0,0 +1,936 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:d4ffda068787fb0974622fa8de40f7d54b5df2a00735e870e01cb9df45be78f9" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 16 : MODULATION AND DEMODULATION" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.2 : Page number 416-417\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variabledeclaration\n", + "V_pp_max=16.0; #Maximum peak-to-peak voltage of an AM wave, mV\n", + "V_pp_min=4.0; #Minimum peak-to-peak voltage of an AM wave, mV\n", + "\n", + "#Calculation\n", + "Vmax=V_pp_max/2; #Maximum voltage of AM wave, mV\n", + "Vmin=V_pp_min/2; #Minimum voltage of AM wave, mV\n", + "m=(Vmax-Vmin)/(Vmax+Vmin); #Modulation factor.\n", + "\n", + "#Result\n", + "print(\"The modulation factor=%.1f.\"%m);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The modulation factor=0.6.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.3 : Page number 417\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Es=50.0; #signalvoltage amplitude, V\n", + "Ec=100.0; #Carrier voltage amplitude, V\n", + "\n", + "\n", + "#Calculation\n", + "m=Es/Ec; #Modulation factor\n", + "\n", + "#Result\n", + "print(\"Modulation factor=%.1f.\"%m);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Modulation factor=0.5.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.4 : Page number 419\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fc=2500.0; #Carrier frequency, kHz\n", + "f1=50.0; #Lower frequency of the audio signal, Hz\n", + "f2=15000.0; #Upper frequency of the audio signal, Hz\n", + "\n", + "#Calculation\n", + "fl_usb=fc+(f1/1000); #Lower frequency of upper sideband, kHz\n", + "fu_usb=fc+(f2/1000); #Upper frequency of upper sideband, kHz\n", + "\n", + "fu_lsb=fc-(f1/1000); #Lower frequency of upper sideband, kHz\n", + "fl_lsb=fc-(f2/1000); #Upper frequency of upper sideband, kHz\n", + "\n", + "#Since, f1=50Hz is negligible with respect to f2=15000Hz,\n", + "BW=(fc+(f2/1000))-(fc-(f2/1000)); #Bandwidth, kHz\n", + "\n", + "#Result\n", + "print(\"The upper sideband=%.2fkHz to %dkHz.\"%(fl_usb,fu_usb));\n", + "print(\"The lower sideband=%dkHz to %.2fkHz.\"%(fl_lsb,fu_lsb));\n", + "print(\"The bandwidth=%dkHz\"%BW);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The upper sideband=2500.05kHz to 2515kHz.\n", + "The lower sideband=2485kHz to 2499.95kHz.\n", + "The bandwidth=30kHz\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.5 : Page number 420\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "EC=5.0; #Carrier amplitude, V\n", + "m=0.6; #modulation factor\n", + "ws=6280.0; #angular frequency of signal, radians/s\n", + "wc=211*10**4; #angular frequency of carrier, radians/s\n", + "\n", + "#Calculation\n", + "fs=(ws/(2*pi))/1000; #Signal frequency, kHz\n", + "fc=(wc/(2*pi))/1000; #Carrier frequency, kHz\n", + "\n", + "#(i)\n", + "Max_amp=EC+m*EC; #Maximum amplitude of AM wave, V\n", + "Min_amp=EC-m*EC; #Minimum amplitude of AM wave, V\n", + "\n", + "#(ii)\n", + "frequency_components=[fc-fs,fc,fc+fs]; #frequency components, kHz\n", + "amplitudes=[m*EC/2,EC,m*EC/2]; #Corresponding amplitudes, V\n", + "\n", + "#Result\n", + "print(\"(i) The maximum and minimum amplitudes of AM wave=%dV and %dV.\"%(Max_amp,Min_amp));\n", + "print(\"(ii) The frequency components of the AM wave=%.0f,%.0f,%.0f.\"%(frequency_components[0],frequency_components[1],frequency_components[2]));\n", + "print(\" The corresponding amplitudes are =%.1fV, %dV, %.1fV.\"%(amplitudes[0],amplitudes[1],amplitudes[2]));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The maximum and minimum amplitudes of AM wave=8V and 2V.\n", + "(ii) The frequency components of the AM wave=335,336,337.\n", + " The corresponding amplitudes are =1.5V, 5V, 1.5V.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.6 : Page number 420-421\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fc=1000.0; #Carrier frequency, kHz\n", + "fs=5.0; #Signal frequency, kHz\n", + "m=0.5; #Modulation factor\n", + "EC=100.0; #Amplitude of the carrier, V\n", + "\n", + "#Calculation\n", + "f_lsb=fc-fs; #Lower sideband frequency,kHz\n", + "f_usb=fc+fs; #Upper sideband frequency, kHz\n", + "Amplitude=m*EC/2; #Amplitude of each sideband, V\n", + "\n", + "#Result\n", + "print(\"The lower and upper sideband frequencies are=%dkHz and %dkHz.\"%(f_lsb,f_usb));\n", + "print(\"The amplitude of each sideband =%dV\"%Amplitude);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The lower and upper sideband frequencies are=995kHz and 1005kHz.\n", + "The amplitude of each sideband =25V\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.7 : Page number 421\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "EC=10.0; #Carrier amplitude, V\n", + "ES=6.0; #Signal amplitude, V\n", + "fc=10.0; #Carrier frequency, MHz\n", + "fs=5/1000.0; #Signal frequency. MHz\n", + "\n", + "#Calculation\n", + "#(i)\n", + "m=ES/EC; #Modulation factor\n", + "\n", + "#(ii)\n", + "f_lsb=fc-fs; #Lower sideband frequency,MHz\n", + "f_usb=fc+fs; #Upper sideband frequency, MHz\n", + "\n", + "#(iii)\n", + "Amplitude=m*EC/2; #Amplitude of each sideband, V\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The modulation factor=%.1f.\"%m);\n", + "print(\"(ii) The lower and upper sideband frequencies are=%.3fMHz and %.3fMHz.\"%(f_lsb,f_usb));\n", + "print(\"(iii) The amplitude of each sideband =%dV\"%Amplitude);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The modulation factor=0.6.\n", + "(ii) The lower and upper sideband frequencies are=9.995MHz and 10.005MHz.\n", + "(iii) The amplitude of each sideband =3V\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.8 : Page number 423\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Pc=500.0; #Carrier power, W\n", + "m=1.0; #Modulation factor\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Ps=(1/2.0)*m**2*Pc; #Sideband power, W\n", + "\n", + "#(ii)\n", + "PT=Pc+Ps; #Power of AM wave, W\n", + "\n", + "#Result\n", + "print(\"(i) The power in sidebands=%dW\"%Ps);\n", + "print(\"(ii) The power of AM wave=%dW\"%PT);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The power in sidebands=250W\n", + "(ii) The power of AM wave=750W\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Exmaple 16.9 : Page number 423\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Pc=50.0; #Power of carrier, kW\n", + "\n", + "#Calculation\n", + "#(i)\n", + "m=80/100.0; #Modulation factor\n", + "Ps=(1/2.0)*m**2*Pc; #Sideband Power, kW\n", + "print(\"(i) The sideband power for 80%% modulation=%dkW.\"%Ps);\n", + "\n", + "#(ii)\n", + "m=10/100.0; #Modulation factor\n", + "Ps=(1/2.0)*m**2*Pc; #Sideband Power, kW\n", + "print(\"(ii) The sideband power for 10%% modulation=%.2fkW.\"%Ps);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The sideband power for 80% modulation=16kW.\n", + "(ii) The sideband power for 10% modulation=0.25kW.\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.10 : Page number 423-424\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Pc=40.0; #Carrier power, kW\n", + "m=100/100.0; #Modulation index\n", + "amplifier_eff=72/100.0; #Efficiency of modulated RF amplifier\n", + "\n", + "\n", + "#Calculation\n", + "#(i)Carrier power remains same after modulation\n", + "\n", + "#(ii)\n", + "Ps=(1/2.0)*(m**2)*Pc; #Sideband power\n", + "P_audio=Ps/amplifier_eff; #Required audio power, kW\n", + "\n", + "#Result\n", + "print(\"(i) The carrier power=%dkW.\"%Pc);\n", + "print(\"(ii) The required audio power=%.1fkW.\"%P_audio);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The carrier power=40kW.\n", + "(ii) The required audio power=27.8kW.\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.11 : Page number 424\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fs=1.0; #Signal frequency, kHz\n", + "fc=500.0; #Carrier frequency, kHz\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "sideband_f=[fc-fs,fc+fs]; #Sideband frequencies, kHz\n", + "\n", + "#(ii)\n", + "BW=(fc+fs)-(fc-fs); #Bandwidth required, kHz\n", + "\n", + "#Result\n", + "print(\"(i) The sideband frequencies=%dkHz and %dkHz.\"%(sideband_f[0],sideband_f[1]));\n", + "print(\"(ii) The bandwidth required=%dkHz\"%BW);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The sideband frequencies=499kHz and 501kHz.\n", + "(ii) The bandwidth required=2kHz\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.12 : Page number 424\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "IC=8.0; #Antenna current due to carrier,A\n", + "m=40/100.0; #Modulation index\n", + "\n", + "#Calculation\n", + "#Since, Ps=(1/2)*m\u00b2*Pc and PT=Pc+Ps (Total_power=carrier_power+signal_power)\n", + "#that implies, (PT/Pc)=1+(m\u00b2/2),\n", + "#So, square_of(Total_current/Carrier_current)=(IT/IC)\u00b2=1+(m\u00b2/2).\n", + "IT=IC*sqrt(1+(m**2/2.0)); #Total current, A\n", + "\n", + "\n", + "#Result\n", + "print(\"The total antenna current=%.2fA.\"%IT);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total antenna current=8.31A.\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.13 : Page number 424\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "IC=8.0; #Antenna current when only carrier is sent, A\n", + "IT=8.93; #Total antenna current, A\n", + "\n", + "\n", + "#Calculation\n", + "#Since, Ps=(1/2)*m\u00b2*Pc and PT=Pc+Ps (Total_power=carrier_power+signal_power)\n", + "#that implies, (PT/Pc)=1+(m\u00b2/2),\n", + "#So, square_of(Total_current/Carrier_current)=(IT/IC)\u00b2=1+(m\u00b2/2).\n", + "m=sqrt((((IT/IC)**2)-1)*2)*100; #The %age of modulation\n", + "\n", + "#Result\n", + "print(\"The %%age of modulation=%.1f%%.\"%m);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The %age of modulation=70.1%.\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.14 : Page number 425\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "Vc=100.0; #Carrier voltage, V\n", + "V_T=110.0; #The total voltage after modulation, V\n", + "\n", + "#Calculation\n", + "#Since, Ps=(1/2)*m\u00b2*Pc and PT=Pc+Ps (Total_power=carrier_power+signal_power)\n", + "#that implies, (PT/Pc)=1+(m\u00b2/2),\n", + "#So, square_of(Total_voltage/Carrier_voltage)=(V_T/Vc)\u00b2=1+(m\u00b2/2).\n", + "m=sqrt((((V_T/Vc)**2)-1)*2); #The %age of modulation\n", + "\n", + "#Result\n", + "print(\"The modulation index =%.3f.\"%m);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The modulation index =0.648.\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.15 : Page number 425-426\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vc=5.0; #Carrier voltage, V\n", + "V_lsb=2.5; #Lower sideband component, V\n", + "V_usb=2.5; #Upper sideband component, V\n", + "R=2.0; #Resistor driven by AM wave, k\u03a9\n", + "\n", + "#Calculation\n", + "#Since, power=(r.m.s_voltage)\u00b2/resistance\n", + "#(i)\n", + "Pc=round((0.707*Vc)**2/R,2); #Carrier power mW\n", + "\n", + "#(ii)\n", + "P_lower=round((0.707*V_lsb)**2/R,3); #Power delivered by lower sideband, mW\n", + "\n", + "#(iii)\n", + "P_upper=round((0.707*V_usb)**2/R,3); #Power delivered by upper sideband, mW\n", + "\n", + "P_T=round(Pc+P_lower+P_upper,3); #Total power delivered by the AM wave, mW\n", + "\n", + "#Result\n", + "print(\"(i) The carrier power=%.2fmW\"%Pc);\n", + "print(\"(ii) The power delivered by lower sideband=%.3fmW\"%P_lower);\n", + "print(\"(iii) The power delivered by upper sideband=%.3fmW\"%P_upper);\n", + "print(\"The total power delivered by the AM wave=%.3fmW\"%P_T);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The carrier power=6.25mW\n", + "(ii) The power delivered by lower sideband=1.562mW\n", + "(iii) The power delivered by upper sideband=1.562mW\n", + "The total power delivered by the AM wave=9.374mW\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.16 : Page number 428\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "wc=6e08; #Carrier angular frequency, rad/s\n", + "ws=1250.0; #Signal angular frequency, rad/s\n", + "mf=5; #Modulation index\n", + "Ec=12.0; #Carrier amplitude, V\n", + "R=10.0; #Resistor, \u03a9\n", + "\n", + "#Calculation\n", + "#(i)\n", + "fc=wc/(2*pi); #Carrier frequency, Hz\n", + "\n", + "#(ii)\n", + "fs=ws/(2*pi); #Signal frequency, Hz\n", + "\n", + "#(iv)\n", + "delta_f=mf*fs; #Maximum frequency deviation, Hz\n", + "\n", + "#(v)\n", + "P=(Ec/sqrt(2))**2/R; #Power dissipated, W\n", + "\n", + "#Result\n", + "print(\"(i) The carrier frequency=%.1fe06 Hz.\"%(fc/10**6));\n", + "print(\"(ii) The signal frequency=%.0f Hz.\"%fs);\n", + "print(\"(iii) The modulation index=%d.\"%mf);\n", + "print(\"(iv) The maximum frequency deviation=%.0fHz.\"%delta_f);\n", + "print(\"(v) The power dissipated=%.1fW.\"%P);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The carrier frequency=95.5e06 Hz.\n", + "(ii) The signal frequency=199 Hz.\n", + "(iii) The modulation index=5.\n", + "(iv) The maximum frequency deviation=995Hz.\n", + "(v) The power dissipated=7.2W.\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.17 : Page number 428-429\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "fc=25.0; #Carrier frequency, MHz\n", + "fs=400.0; #Signal frequency, Hz\n", + "Ec=4.0; #Carrier amplitude, V\n", + "delta_f=10.0; #Maximum frequency deviation, kHz\n", + "\n", + "#Calculation\n", + "wc=2*pi*fc*10**6; #Carrier angular frequency, rad/s\n", + "ws=2*pi*fs; #Signal angular frequency, rad/s\n", + "mf=delta_f*1000/fs; #Modulation index\n", + "\n", + "\n", + "#Result\n", + "print(\"e=%dcos(%.2et + %dsin%dt)\"%(Ec,wc,mf,ws));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "e=4cos(1.57e+08t + 25sin2513t)\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.18 : Page number 429\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "delta_f=50.0; #Maximum frequency deviation, kHz\n", + "fs=5.0; #Modulating frequency, kHz\n", + "\n", + "#Calculation\n", + "mf=delta_f/fs; #Modulation index\n", + "\n", + "#Result\n", + "print(\"The modulation index=%d\"%mf);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The modulation index=10\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.19 : Page number 429\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fc=1000.0; #Carrier frequency, kHz\n", + "fs=15.0; #Modulating frequency, kHz\n", + "\n", + "#Calculation\n", + "first_3_usb_f=[fc+fs,fc+2*fs,fc+3*fs]; #First three upper sideband frequncies, kHz\n", + "first_3_lsb_f=[fc-fs,fc-2*fs,fc-3*fs]; #First three lowerr sideband frequncies, kHz\n", + "\n", + "\n", + "#Result\n", + "print(\"The first three upper sideband frequencies=%dkHz ,%dkHz and %dkHz.\"%(first_3_usb_f[0],first_3_usb_f[1],first_3_usb_f[2]));\n", + "print(\"The first three lower sideband frequencies=%dkHz ,%dkHz and %dkHz.\"%(first_3_lsb_f[0],first_3_lsb_f[1],first_3_lsb_f[2]));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The first three upper sideband frequencies=1015kHz ,1030kHz and 1045kHz.\n", + "The first three lower sideband frequencies=985kHz ,970kHz and 955kHz.\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.20 : Page number 429\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fs=15.0; #Modulating frequency, kHz\n", + "delta_f=75.0; #Maximum frequency deviation, kHz\n", + "\n", + "#Calculation\n", + "BW=2*(delta_f+fs); #Bandwidth, kHz\n", + "\n", + "#Result\n", + "print(\"The bandwidth of the FM signal=%dkHz.\"%BW);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The bandwidth of the FM signal=180kHz.\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.21 : Page number 429\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "k=75.0; #Frequency deviation constant, kHz/V\n", + "Es=2.0; #Amplitude of signal, V\n", + "\n", + "\n", + "#Calculation\n", + "delta_f=k*Es; #Maximum frequency deviation, kHz\n", + "\n", + "#Result\n", + "print(\"The maximum frequency deviation=%dkHz.\"%delta_f);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum frequency deviation=150kHz.\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 16.22 : Page number 429-430\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fs1=500.0; #First audio frequency, Hz\n", + "fs2=200.0; #Second audio frequency (decreased), Hz\n", + "Es=2.4; #AF voltage, V\n", + "delta_f1=4.8; #Frequency deviation,kHz\n", + "\n", + "#Calculation\n", + "k=delta_f1/Es; #Frequency deviation constant, kHz/V\n", + "Es=7.2; #AF voltage, V (increased)\n", + "delta_f2=k*Es; #2nd frequency deviation, kHz\n", + "Es=10.0; #AF voltage, V (increased)\n", + "delta_f3=k*Es; #3rd frequency deviation, kHz\n", + "\n", + "mf1=delta_f1/(fs1/1000); #Modulation index in 1st case\n", + "mf2=delta_f2/(fs1/1000); #Modulation index in 2nd case\n", + "mf3=delta_f3/(fs2/1000); #Modulation index in 3rd case\n", + "\n", + "#Result\n", + "print(\"The frequency deviation in second case=%.1fkHz.\"%delta_f2);\n", + "print(\"The frequency deviation in third case=%dkHz.\"%delta_f3);\n", + "print(\"The modulation index in 1st case=%.1f\"%mf1);\n", + "print(\"The modulation index in 2nd case=%.1f\"%mf2);\n", + "print(\"The modulation index in 3rd case=%d\"%mf3);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency deviation in second case=14.4kHz.\n", + "The frequency deviation in third case=20kHz.\n", + "The modulation index in 1st case=9.6\n", + "The modulation index in 2nd case=28.8\n", + "The modulation index in 3rd case=100\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter17_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter17_2.ipynb new file mode 100644 index 00000000..2c9a49a5 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter17_2.ipynb @@ -0,0 +1,877 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:33d9a7285654630dd24f2d6229210244e78961e0605c11041ed1b2f130cb19a1" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 17 : REGULATED D.C POWER SUPPLY" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.1 : Page number 444\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_NL=400.0; #Output voltage with no-load, V\n", + "V_FL=300.0; #Output voltage with full-load, V\n", + "\n", + "\n", + "#Calculation\n", + "percentage_voltage_regulation=((V_NL-V_FL)/V_FL)*100; #Percentage of voltage regulation\n", + "\n", + "#Result\n", + "print(\"The percentage of voltage regulation=%.2f%%.\"%percentage_voltage_regulation);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The percentage of voltage regulation=33.33%.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.2 : Page number 444\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_regulation=1.0; #%age voltage regulation\n", + "V_NL=30.0; #Output voltage with no-load,V\n", + "\n", + "#Calculation\n", + "#Since, %age_of_voltage_regulation=((V_NL-V_FL)/V_FL)*100\n", + "V_FL=V_NL/(1+(V_regulation/100)); #Output voltage with full-load, V\n", + "\n", + "#Result\n", + "print(\"The full-load voltage=%.1fV.\"%V_FL);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The full-load voltage=29.7V.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.3 : Page number 445\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_NL_A=30.0; #Output voltage of supply A with no-load, V\n", + "V_FL_A=25.0; #Output voltage of supply A with full-load, V\n", + "V_NL_B=30.0; #Output voltage of supply B with no-load, V\n", + "V_FL_B=29.0; #Output voltage of supply B with full-load, V\n", + "\n", + "\n", + "#Calculation\n", + "V_regulation_A=((V_NL_A-V_FL_A)/V_FL_A)*100; #%age of voltage regulation in power supply A\n", + "V_regulation_B=((V_NL_B-V_FL_B)/V_FL_B)*100; #%age of voltage regulation in power supply B\n", + "\n", + "#Result\n", + "if(V_regulation_A<V_regulation_B):\n", + " print(\"Power supply A is better than B.\");\n", + "else :\n", + " print(\"Power supply B is better than A.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power supply B is better than A.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.4 : Page number 445\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_NL=500.0; #Output voltage with no-load, V\n", + "V_FL=300.0; #Output voltage with full-load, V\n", + "I_FL=120.0; #Output current with full-load, mA\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Regulation=((V_NL-V_FL)/V_FL)*100; #Voltage regulation percentage\n", + "\n", + "#(ii)\n", + "RL_min=V_FL/I_FL; #Minimum load resistance, k\u03a9\n", + "\n", + "#Result\n", + "print(\"(i) The voltage regulation=%.1f%%.\"%Regulation);\n", + "print(\"(ii)The minimum load resistance=%.1fk\u03a9.\"%RL_min);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The voltage regulation=66.7%.\n", + "(ii)The minimum load resistance=2.5k\u03a9.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.5 : Page number 445\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VL_1=10.5; #Initial output voltage with load, V\n", + "VL_2=10.0; #Decreased output voltage with additional load, V\n", + "IL_1=1.0; #Initial load current, A\n", + "IL_added=1.0; #Added load current, A\n", + "\n", + "#Calculation\n", + "delta_VL=VL_1-VL_2; #Change in output voltage, V\n", + "delta_IL=IL_added; #Change in load current, A\n", + "\n", + "#(i)\n", + "Zo=delta_VL/delta_IL; #Output impedance of power supply, \u03a9 (OHM's LAW)\n", + "\n", + "#(ii)\n", + "#Since, Output_impedance=change_in_output_voltage/change_in_output_current\n", + "#Zo=(V_NL-VL_1)/delta_IL,\n", + "delta_IL=IL_1; #Change in load current, A\n", + "V_NL=VL_1+(delta_IL*Zo); #Output voltage with no load, V\n", + "\n", + "#Result\n", + "print(\"(i) The output impedance=%.1f\u03a9.\"%Zo);\n", + "print(\"(ii) The output voltage with no-load=%dV.\"%V_NL);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The output impedance=0.5\u03a9.\n", + "(ii) The output voltage with no-load=11V.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.6 : Page number 446\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Zo=0.01; #Output impedance, \u03a9\n", + "IL_max=1.0; #Maximum output current, A\n", + "IL_min=0.5 #Minimum output current, A\n", + "f=10.0; #Frequency, kHz\n", + "\n", + "#Calculation\n", + "#Since, Zo=delta_VL/delta_IL\n", + "delta_IL=IL_max-IL_min; #Maximum change in output current, A\n", + "delta_VL=(Zo*delta_IL)*1000; #Fluctuations in output voltage, mV\n", + "\n", + "#Result\n", + "print(\"The output voltage will have %dmV peak-to-peak fluctuation at a rate of %dkHz.\"%(delta_VL,f));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage will have 5mV peak-to-peak fluctuation at a rate of 10kHz.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.7 : Page number 446\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "delta_Vout=10.0; #Change in output voltage, \u03bcV\n", + "delta_Vin=5.0; #Change in input voltage, V\n", + "\n", + "#Calculation\n", + "Line_regulation=delta_Vout/delta_Vin; #Line regulation, \u03bcV/V\n", + "\n", + "#Result\n", + "print(\"The line regulation of the voltage regulator=%d\u03bcV/V.\"%Line_regulation);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The line regulation of the voltage regulator=2\u03bcV/V.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.8 : Page number 449-450\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vin=24.0; #Input voltage, V\n", + "Vz=12.0; #Zener voltage, V\n", + "Rs=160.0; #Series resistance, \u03a9\n", + "RL_max=float('inf'); #Maximum load resistance, \u03a9\n", + "RL_min=200.0; #Minimum load resistance, \u03a9\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Vout=Vz; #Output voltage,(equal to zener regulated voltage), V\n", + "Is=((Vin-Vout)/Rs)*1000; #Current through series resistance, mA\n", + "\n", + "#(ii)\n", + "IL_min=Vout/RL_max; #Minimum load current, A\n", + "IL_max=(Vout/RL_min)*1000; #Maximum load current, mA\n", + "\n", + "#(iii)\n", + "IZ_min=Is-IL_max; #Minimum zener current, mA\n", + "IZ_max=Is-IL_min; #Maximum zener current, mA\n", + "\n", + "#Result\n", + "print(\"(i) The current through the series resistance=%dmA\"%Is);\n", + "print(\"(ii) The minimum and maximum load currents are=%dA and %dmA\"%(IL_min,IL_max));\n", + "print(\"(iii) The minimum and maximum zener currents are=%dmA and %dmA\"%(IZ_min,IZ_max));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The current through the series resistance=75mA\n", + "(ii) The minimum and maximum load currents are=0A and 60mA\n", + "(iii) The minimum and maximum zener currents are=15mA and 75mA\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.9 : Page number 450\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VZ=15.0; #Zener voltage, V\n", + "Vin_min=22.0 #Minimum input voltage, V\n", + "Vin_max=40.0 #Maximum input voltage, V\n", + "Vout=VZ; #Regulated output voltage, V\n", + "IL_max=100.0; #Maximum load current, mA\n", + "IL_min=20.0; #Minimum load current, mA\n", + "\n", + "#Calculation\n", + "RS_max=(Vin_min-Vout)/(IL_max/1000); #Maximum value of series resistance, \u03a9 (OHM'S lAW)\n", + "\n", + "#Result\n", + "print(\"The maximum load resistance to hold the voltage constant=%d\u03a9.\"%RS_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum load resistance to hold the voltage constant=70\u03a9.\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.10 : Page number 450-451\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=3.3; #Zener voltage, V\n", + "Iz_min=3.0; #Minimum zener current, mA\n", + "Iz_max=100.0; #Maximum zener current, mA\n", + "RL_max=2.0; #Maximum load resistance, k\u03a9\n", + "RL_min=500.0; #Minimum load resistance, \u03a9\n", + "Vin=20.0; #Input voltage, V\n", + "\n", + "#Calculation\n", + "Rs_min=(Vin-Vz)/(Iz_max/1000); #Minimum series resistance required, \u03a9\n", + "\n", + "#Result\n", + "print(\"The minimum series resistance required to limit the zener current=%.0f\u03a9.\"%Rs_min);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The minimum series resistance required to limit the zener current=167\u03a9.\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.11 : Page number 451\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=3.3; #Zener voltage, V\n", + "Iz_min=3.0; #Minimum zener current, mA\n", + "Iz_max=100.0; #Maximum zener current, mA\n", + "RL_max=2.0; #Maximum load resistance, k\u03a9\n", + "RL_min=500.0; #Minimum load resistance, \u03a9\n", + "Vin=20.0; #Input voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "IL_max=(Vz/RL_min)*1000; #Maximum load current, mA\n", + "Rs_max=((Vin-Vz)/(IL_max+Iz_min))*1000; #Maximum series resistance, \u03a9\n", + "\n", + "#Result\n", + "print(\"The maximum allowable value of series resistance=%d\u03a9.\"%Rs_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum allowable value of series resistance=1739\u03a9.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.12 : Page number 452\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=10.0; #Zener voltage, V\n", + "beta=100.0; #Base current amplification factor\n", + "RL=1000.0; #Load resistance, \u03a9\n", + "VBE=0.5; #Base-emitter voltage, V\n", + "\n", + "#Calculation\n", + "Vout=Vz-VBE; #Output voltage, V\n", + "IL=(Vout/RL)*1000; #Load current, mA\n", + "\n", + "#Result\n", + "print(\"The output voltage=%.1fV.\"%Vout);\n", + "print(\"The load current=%.1fmA\"%IL);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output voltage=9.5V.\n", + "The load current=9.5mA\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.3 : Page number 452\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "IC=1.0; #Required current(collector current), A\n", + "Vout=6.0; #Constant output voltage, V\n", + "Vin=10.0; #Supply voltage, V\n", + "beta=50.0; #Base current amplification factor\n", + "VBE=0.5; #Base-emitter voltage, V\n", + "Iz=10.0; #Minimum zener current, mA\n", + "\n", + "#Calculation\n", + "#(i)\n", + "IB=(IC/beta)*1000; #Base current, mA\n", + "\n", + "#Since, Vout=Vz-VBE;\n", + "Vz=Vout+VBE; #Zener breakdown voltage, V\n", + "\n", + "#(ii)\n", + "V_Rs=Vin-Vz; #Voltage across series resistance Rs, V\n", + "Rs=(V_Rs/(IB+Iz))*1000; #Series resistance, \u03a9\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The zener breakdown voltage=%.1fV\"%Vz);\n", + "print(\"(ii)The series resistance=%.0f\u03a9.\"%Rs);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The zener breakdown voltage=6.5V\n", + "(ii)The series resistance=117\u03a9.\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.14: Page number 452-453\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=12.0; #Zener voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "Vin=20.0; #Input voltage, V\n", + "RS=220.0; #Series resistance, \u03a9\n", + "RL=1.0; #Load resistance, k\u03a9\n", + "beta=50.0; #Base current amplification factor\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Vout=Vz-VBE; #Output voltage, V\n", + "\n", + "#(ii)\n", + "V_RS=Vin-Vz; #Voltage across series resistance, RS, V\n", + "IR=(V_RS/RS)*1000; #Current through series resistance, mA\n", + "IL=Vout/RL; #Load current, mA\n", + "\n", + "#Since, IL is emitter current and emitter current is approx. equal to collector current,\n", + "IC=IL; #Collector current, mA\n", + "IB=IC/beta; #Base current, mA\n", + "Iz=IR-IB; #Zener current, mA\n", + "\n", + "#Result\n", + "print(\"(i) The output voltage=%.1fV.\"%Vout);\n", + "print(\"(ii) The zener current=%dmA\"%Iz);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The output voltage=11.3V.\n", + "(ii) The zener current=36mA\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.15 : Page number 453-454\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import ceil\n", + "from math import floor\n", + "\n", + "#Variable declaration\n", + "IL_min=0; #Minimum load current, A\n", + "IL_max=1.0; #Maximum load current, A\n", + "Vin_min=12.0; #Minimum input voltage, V\n", + "Vin_max=18.0; #Maximum input voltage, V\n", + "Iz_min=1.0; #Minimum zener current, mA\n", + "Vz=8.5; #Zener voltage, V\n", + "beta=50.0; #Base current amplification factor\n", + "\n", + "\n", + "#Calculation\n", + "IB_max=(IL_max/beta)*1000; #Maximum base current, mA\n", + "I_RS=Iz_min+IB_max; #Current through the series resistance, mA\n", + "RS=((Vin_min-Vz)/I_RS)*1000; #Series resistance, \u03a9\n", + "\n", + "#(ii)\n", + "V_RS_max=Vin_max-Vz; #Maximum voltage across series resistance, V\n", + "P_max_RS=ceil((V_RS_max**2/RS)*1000)/1000; #Maximum power dissipation in series resistance RS, W\n", + "\n", + "#(iii)\n", + "I_RS_max=V_RS_max/floor(RS); #Maximum current through series resistance,mA\n", + "Iz_max=I_RS_max; #Maximum zener current, mA\n", + "P_z_max=Vz*Iz_max; #Maximum power dissipated in zener diode, W\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The series resistance=%d\u03a9.\"%RS);\n", + "print(\"(ii) The maximum power dissipated in series resistance=%.3fW.\"%P_max_RS);\n", + "print(\"(iii)The maximum power dissipated in zener diode=%.3fW.\"%P_z_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The series resistance=166\u03a9.\n", + "(ii) The maximum power dissipated in series resistance=0.542W.\n", + "(iii)The maximum power dissipated in zener diode=0.486W.\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.16 : Page number 456\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=2.0; #Resistor R1, k\u03a9\n", + "R2=1.0; #Resistor R2, k\u03a9\n", + "Vz=6.0; #Zener voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "#Calculation\n", + "m=R2/(R1+R2); #Feedback fraction\n", + "A_CL=1/m; #Closed-loop voltage gain\n", + "Vout=A_CL*(Vz+VBE); #Regulated output voltage, V\n", + "\n", + "#Result\n", + "print(\"The regulated output voltage=%.1fV\"%Vout);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The regulated output voltage=20.1V\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.17 : Page number 456\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=30.0; #Resistor R1, k\u03a9\n", + "R2=10.0; #Resistor R2, k\u03a9\n", + "\n", + "#Calculation\n", + "m=R2/(R1+R2); #Feedback fraction\n", + "A_CL=1/m; #Closed-loop voltage gain\n", + "\n", + "\n", + "#Result\n", + "print(\"The closed-loop voltage gain=%d.\"%A_CL);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The closed-loop voltage gain=4.\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.18 : Page number 457\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vin=22.0; #Input voltage, V\n", + "Rs=130.0; #Series resistance, \u03a9\n", + "Vz=8.3; #Zener voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "RL=100.0; #Load resistance, \u03a9\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Vout=Vz+VBE; #Output voltage, V\n", + "\n", + "#(ii)\n", + "IL=(Vout/RL)*1000; #Load current, mA (OHM's LAW)\n", + "IS=((Vin-Vout)/Rs)*1000; #Current through series resistance, mA (OHM's LAW)\n", + "IC=IS-IL; #Collector current, mA\n", + "\n", + "#Result\n", + "print(\"(i) The regulated output voltage=%dV\"%Vout);\n", + "print(\"(ii) Various currents for the shunt regulator are: IL=%dmA , IS=%dmA and IC=%dmA\"%(IL,IS,IC));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The regulated output voltage=9V\n", + "(ii) Various currents for the shunt regulator are: IL=90mA , IS=100mA and IC=10mA\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.20 : Page number 463\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=240.0; #Resistor R1 of the regulator, \u03a9\n", + "R2=2.4; #Variable resistance R2 of the regulator, k\u03a9\n", + "\n", + "#Calculation\n", + "Vout=1.25*(R2*1000/R1 + 1); #Regulated output voltage, V\n", + "\n", + "#Result\n", + "print(\"The regulated output voltage=%.2fV.\"%Vout);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The regulated output voltage=13.75V.\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 17.21 : Page number 463\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vout_adj=8.0; #Output voltage (adjusted), V\n", + "Vd=40.0; #Input/output differential rating, V\n", + "\n", + "#Calculation\n", + "Vin_max=Vout_adj+Vd; #Maximum allowable input voltage, V\n", + "\n", + "\n", + "#Result\n", + "print(\"The maximum allowable input voltage=%dV.\"%Vin_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum allowable input voltage=48V.\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter18_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter18_2.ipynb new file mode 100644 index 00000000..8a5bc9dc --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter18_2.ipynb @@ -0,0 +1,799 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER 18 : SOLID-STATE SWITCHING CIRCUITS" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.1 : Page number 472" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Input voltage required to saturate the transistor switch=5.4V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10; #Supply voltage, V\n", + "RC=1.0; #Collector resistor, kΩ\n", + "RB=47.0; #Base resistor, kΩ\n", + "beta=100.0; #Base current amplification factor\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "#Calculation\n", + "IC_sat=VCC/RC; #Collector saturation current, mA\n", + "IB=IC_sat/beta; #Base current, mA\n", + "V=IB*RB+VBE; #Input voltage, V\n", + "\n", + "#Result\n", + "print(\"Input voltage required to saturate the transistor switch=%.1fV.\"%V);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.2 : Page number 475" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The collector emitter voltage at cut-off=9.99V.\n", + "(ii) The collector emitter voltage at saturation=0.7V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10; #Supply voltage, V\n", + "RC=1.0; #Collector resistor, kΩ\n", + "ICBO=10.0; #Collector leakage current, μA\n", + "V_knee=0.7; #Knee voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "IC=ICBO; #Collector current, μA\n", + "VCE=VCC-(ICBO/1000)*RC; #Collector-emitter voltage, V\n", + "\n", + "print(\"(i) The collector emitter voltage at cut-off=%.2fV.\"%VCE);\n", + "\n", + "#(ii)\n", + "#Since, saturation current=IC_sat=(VCC-V_knee)/RC; \n", + "VCE=V_knee; #Collector-emitter voltage, V\n", + "\n", + "print(\"(ii) The collector emitter voltage at saturation=%.1fV.\"%VCE);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.3 : Page number 475-476" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Minimum β=19.4.\n", + "(ii) The transistor will not be saturated.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=10; #Supply voltage, V\n", + "RC=1; #Collector resistor, kΩ\n", + "VBB=2; #Supply voltage to base, V\n", + "RB=2.7; #Base resistor, kΩ\n", + "V_knee=0.7; #Knee voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "#Calculation\n", + "#(i)\n", + "IB=round((VBB-VBE)/RB,2); #Base current, mA\n", + "Ic_sat=(VCC-V_knee)/RC; #Collector saturation current, mA\n", + "beta_min=Ic_sat/IB; #Minimum value of base current amplification factor\n", + "print(\"(i) Minimum β=%.1f.\"%beta_min);\n", + "\n", + "#(ii)\n", + "VBB=1; #Supply voltage to base(changed), V\n", + "beta=50; #Base current amplification factor\n", + "IB=(VBB-VBE)/RB; #Base current, mA\n", + "IC=beta*IB; #Collector current,mA\n", + "\n", + "if(IC<Ic_sat):\n", + " print(\"(ii) The transistor will not be saturated.\");\n", + "else:\n", + " print(\"(ii) The transistor will be saturated.\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.4 : Page number 480" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time period of the square wave=0.14 m sec.\n", + "Time frequency of the square wave=7 kHz.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "R2=10; #Resistor R2, kΩ\n", + "R3=10; #Resistor R3, kΩ\n", + "C1=0.01; #Capacitor of 1st transistor, μF\n", + "C2=0.01; #Capacitor of 2nd transistor, μF\n", + "\n", + "#Calculation\n", + "R=R2*1000; #Resistance, Ω\n", + "C=C1*10**-6; #Capacitance, F\n", + "T=round((1.4*R*C)*1000,2); #Time period,m sec\n", + "f=1/(T*10**-3); #Frequency, Hz\n", + "f=f/1000; #Frequency, kHz\n", + "\n", + "#Result\n", + "print(\"Time period of the square wave=%.2f m sec.\"%T);\n", + "print(\"Time frequency of the square wave=%d kHz.\"%f);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.6 : Page number 485" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The output voltage=0.55V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "R=10; #Resistance in differentiating circuit, kΩ\n", + "C=2.2; #Capacitance in differentiating circuit, μF\n", + "d_ei=10; #Change in input voltage, V\n", + "dt=0.4; #Time in which change occurs, s\n", + "\n", + "#Calculation\n", + "eo=R*1000*C*10**-6*d_ei/dt\n", + "\n", + "\n", + "#Result\n", + "print(\"The output voltage=%.2fV.\"%eo);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.7 : Page number 489" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The peak output voltage=11.3V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Vin_peak=12; #Peak value of input voltage, V\n", + "V_D=0.7; #Forward bias voltage of diode, V\n", + "\n", + "#Calculation\n", + "Vout_peak=Vin_peak-V_D; #Peak value of output voltage, V\n", + "\n", + "#Result\n", + "print(\"The peak output voltage=%.1fV.\"%Vout_peak);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.8 : Page number 489" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The peak output voltage=8V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Vin_peak=10; #Peak value of input voltage, V\n", + "R=1; #Input resistor, kΩ\n", + "RL=4; #Load resistor, kΩ\n", + "\n", + "#Calculation\n", + "Vout_peak=(Vin_peak*RL)/(R+RL); #Peak output voltage, V\n", + "\n", + "\n", + "#Result\n", + "print(\"The peak output voltage=%dV.\"%Vout_peak);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.9 : Page number 490" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The diode will be forward biased for the negative half-cycle of input signal.\n", + "The output voltage=-0.7V.\n", + "The voltage across R=-9.3V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Vin=-10; #Input voltage, V\n", + "V_D=0.7; #Forward bias voltage of the diode, V\n", + "R=1; #Resistance, kΩ\n", + "\n", + "\n", + "print(\"The diode will be forward biased for the negative half-cycle of input signal.\");\n", + "Vout=-V_D; #Output voltage, V\n", + "V_R=Vin-(-V_D); #Voltage across resistor R, V\n", + "\n", + "#Result\n", + "print(\"The output voltage=%.1fV.\"%Vout);\n", + "print(\"The voltage across R=%.1fV.\"%V_R);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.10 : Page number 490-491" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "During the positive half cycle, the diode is foward biased and can be replaced by battery of 0.7V.\n", + "Therefore, Vout=0.7V.\n", + "During the negative half cycle, the diode is reverse biased and hence behaves as an open circuit.\n", + "Therefore, Vout_peak=-8.33V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_F=0.7; #Forward bias voltage of diode, V\n", + "R=200.0; #Input resistor of the circuit, Ω\n", + "RL=1.0; #Load resistor, kΩ\n", + "Vin_peak=10.0; #Peak input voltage, V\n", + "\n", + "\n", + "#Calculations\n", + "\n", + "#Positive half-cycle:\n", + "print(\"During the positive half cycle, the diode is foward biased and can be replaced by battery of %.1fV.\"%V_F);\n", + "print(\"Therefore, Vout=%.1fV.\"%V_F);\n", + "\n", + "#Negative half-cycle:\n", + "print(\"During the negative half cycle, the diode is reverse biased and hence behaves as an open circuit.\");\n", + "Vout_peak=RL*(-Vin_peak)/(R/1000+RL);\n", + "print(\"Therefore, Vout_peak=%.2fV.\"%Vout_peak);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.12 : Page number 491" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd5e441dfd0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "from math import sin\n", + "from math import pi\n", + "\n", + "V_biasing=10.0; #Biasing voltage, V\n", + "vin=[30*sin(t/10.0) for t in range(0,(int)(2*pi*10))] #input voltage waveform, V\n", + "\n", + "plt.subplot(211)\n", + "plt.plot(vin);\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vin(V)');\n", + "plt.title('Input waveform');\n", + "\n", + "vout=[]; #Output voltage waveform, V\n", + "for v in vin[:]:\n", + " if(v-V_biasing)>0 : #Diode is forward biased.\n", + " vout.append(v-V_biasing);\n", + " else: #Diode is reverse biased.\n", + " vout.append(0);\n", + "\n", + "plt.subplot(212) \n", + "plt.plot(vout);\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vout(V)');\n", + "plt.title('Output waveform');\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.13 : Page number 492" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n5CKPkAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd5e4324828>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "Vin=[]; #Input voltage waveform, V\n", + "t1=50; #Assumed time interval, s\n", + "t2=100; #Assumed time interval, s\n", + "V_biasing=10; #Biasing voltage, V\n", + "for t in range(0,151): #time interval from 0s to 151s\n", + " if(t<=t1): \n", + " Vin.append(15); #Value of input voltage for time 0 to t1 seconds \n", + " elif(t<=t2 and t>t1):\n", + " Vin.append(-30); #Value of input voltage for time t1 to t2 seconds\n", + " else :\n", + " Vin.append(15); #Value of input voltage after t2 seconds\n", + "\n", + "plt.subplot(211)\n", + "plt.plot(Vin);\n", + "plt.xlim([0,160])\n", + "plt.ylim([-35,20])\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vin(V)');\n", + "plt.title('Input waveform');\n", + "\n", + "\n", + "vout=[]; #Output voltage waveform, V\n", + "for v in Vin[:]: #Loop iterating input voltage \n", + " if(v<=0):\n", + " vout.append(0); #Diode reverse biased\n", + " else:\n", + " vout.append(v-V_biasing); #Diode forward biased\n", + "\n", + "plt.subplot(212)\n", + "plt.plot(vout);\n", + "plt.xlim(0,160)\n", + "plt.ylim(-35,20)\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vout(V)');\n", + "plt.title('Output waveform');\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.14 : Page number 492-493" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd5e42e1668>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "Vin=[]; #Input voltage waveform, V\n", + "t1=50; #Assumed time interval, s\n", + "t2=100; #Assumed time interval, s\n", + "V_biasing=5; #Biasing voltage, V\n", + "for t in range(0,151): #time interval from 0s to 151s\n", + " if(t<=t1): \n", + " Vin.append(10); #Value of input voltage for time 0 to t1 seconds \n", + " elif(t<=t2 and t>t1):\n", + " Vin.append(-10); #Value of input voltage for time t1 to t2 seconds\n", + " else :\n", + " Vin.append(0);\n", + "\n", + "plt.subplot(211) \n", + "plt.plot(Vin);\n", + "plt.xlim(0,101)\n", + "plt.ylim(-20,20)\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vin(V)');\n", + "plt.title('Input waveform');\n", + "\n", + "\n", + "vout=[]; #Output voltage waveform, V\n", + "for v in Vin[:]: #Loop iterating input voltage \n", + " if(v<=0):\n", + " vout.append(v); #Diode reverse biased\n", + " else:\n", + " vout.append(v-V_biasing); #Diode forward biased\n", + "\n", + "plt.subplot(212)\n", + "plt.plot(vout);\n", + "plt.xlim(0,101)\n", + "plt.ylim(-20,20)\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vout(V)');\n", + "plt.title('Output waveform');\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.15 : Page number 493" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd5e42367b8>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "Vin=[]; #Input voltage waveform, V\n", + "t1=50; #Assumed time interval, s\n", + "t2=100; #Assumed time interval, s\n", + "V_D1=0.6; #Forward Biasing voltage of the 1st diode, V\n", + "V_D2=0.6; #Forward Biasing voltage of the 2nd diode, V\n", + "for t in range(0,151): #time interval from 0s to 151s\n", + " if(t<=t1): \n", + " Vin.append(10); #Value of input voltage for time 0 to t1 seconds \n", + " elif(t<=t2 and t>t1):\n", + " Vin.append(-10); #Value of input voltage for time t1 to t2 seconds\n", + " else :\n", + " Vin.append(0);\n", + "\n", + "plt.subplot(211);\n", + "plt.plot(Vin);\n", + "plt.xlim(0,110)\n", + "plt.ylim(-20,20)\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vin(V)');\n", + "plt.title('Input waveform');\n", + "\n", + "vout=[]; #Output voltage waveform, V\n", + "for v in Vin[:]: #Loop iterating input voltage \n", + " if(v<=0):\n", + " vout.append(-V_D1); #Diode D1 forward biased, \n", + " else:\n", + " vout.append(V_D2); #Diode D2 forward biased\n", + "\n", + "plt.subplot(212) \n", + "plt.plot(vout);\n", + "plt.xlim(0,110)\n", + "plt.ylim(-1,1)\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vout(V)');\n", + "plt.title('Output waveform');\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.16 : Page number 493-494" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nTQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd5e4244470>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from math import sin\n", + "from math import pi\n", + "\n", + "VZ=20; #Assumed zener voltage, V\n", + "VF=0.7; #Assumed forward biasing voltage of the zener diode, V\n", + "Vin=[]; #Input voltage waveform, V\n", + "for t in range(0,(int)(2*pi*10)): #time interval from 0s to 151s\n", + " Vin.append(30*sin(t/10.0));\n", + "\n", + "plt.subplot(211)\n", + "plt.plot(Vin);\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vin(V)');\n", + "plt.title('Input waveform');\n", + "\n", + "\n", + "vout=[]; #Output voltage waveform, V\n", + "for v in Vin[:]: #Loop iterating input voltage \n", + " if(v<=-VF):\n", + " vout.append(-VF); #Zener diode forward biased, \n", + " elif(v>=VZ):\n", + " vout.append(VZ); #Input voltage exceeds zener voltage\n", + " else:\n", + " vout.append(v); #Zener diode reverse biased\n", + "\n", + "plt.subplot(212)\n", + "plt.plot(vout);\n", + "plt.xlim([0,80])\n", + "plt.ylim([-1,40])\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vout(V)');\n", + "plt.title('Output waveform');\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 18.17 : Page number 494" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nsgghhFCu/w+ip4Q9s46W/wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd5e4362cf8>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from math import sin\n", + "from math import pi\n", + "\n", + "VZ1=20; #Assumed zener voltage, V\n", + "VF1=0.7; #Assumed forward biasing voltage of the zener diode, V\n", + "VZ2=20; #Assumed zener voltage, V\n", + "VF2=0.7; #Assumed forward biasing voltage of the zener diode, V\n", + "Vin=[]; #Input voltage waveform, V\n", + "for t in range(0,(int)(2*pi*10)): #time interval from 0s to 151s\n", + " Vin.append(30*sin(t/10.0));\n", + " \n", + "plt.subplot(211)\n", + "plt.plot(Vin);\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vin(V)');\n", + "plt.title('Input waveform');\n", + "\n", + "\n", + "vout=[]; #Output voltage waveform, V\n", + "for v in Vin[:]: #Loop iterating input voltage \n", + " if(v<=-(VZ1+VF2)):\n", + " vout.append(-(VZ1+VF2)); #Zener diode forward biased, \n", + " elif(v>=VZ2+VF1):\n", + " vout.append(VZ2+VF1); #Input voltage exceeds zener voltage\n", + " else:\n", + " vout.append(v); #Zener diode reverse biased\n", + "plt.subplot(212)\n", + "plt.plot(vout); \n", + "plt.xlim([0,80])\n", + "plt.ylim([-40,40])\n", + "plt.xlabel('t-->');\n", + "plt.ylabel('Vout(V)');\n", + "plt.title('Output waveform');\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + }, + "widgets": { + "state": {}, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter19_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter19_2.ipynb new file mode 100644 index 00000000..36c07b9b --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter19_2.ipynb @@ -0,0 +1,1660 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER 19 : FIELD EFFECT TRANSISTORS" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.1 : Page number 515" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ID=12[1 + VGS/5]²mA.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "I_DSS=12.0; #Shorted gate drain current, mA\n", + "V_GS_off=-5.0; #Gate-source cut-off voltage, V\n", + "\n", + "#Result\n", + "print(\"ID=%d[1 + VGS/%d]²mA.\"%(I_DSS,abs(V_GS_off)));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.2 : Page number 515" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The drain current=6.12mA.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "I_DSS=32.0; #Shorted gate drain current, mA\n", + "V_GS_off=-8.0; #Gate-source cut-off voltage, V\n", + "V_GS=-4.5; #Gate-source voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "I_D=I_DSS*(1-(V_GS/V_GS_off))**2; #Drain current mA\n", + "\n", + "#Result\n", + "print(\"The drain current=%.2fmA.\"%I_D);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.3 : Page number 515" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) VGS=-1.76V.\n", + "(ii) VP=6V\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "I_DSS=10.0; #Shorted gate drain current, mA\n", + "V_GS_off=-6.0; #Gate-source cut-off voltage, V\n", + "I_D=5.0; #Drain current mA\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#Since, I_D=I_DSS*[1 - (V_GS/V_GS_off)]²\n", + "V_GS=V_GS_off*(1-sqrt(I_D/I_DSS)); #Gate-source voltage, V\n", + "\n", + "#(ii)\n", + "V_P=-V_GS_off; #Pinch-off voltage, V \n", + "\n", + "#Result\n", + "print(\"(i) VGS=%.2fV.\"%V_GS);\n", + "print(\"(ii) VP=%dV\"%V_P);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.4 : Page number 515-516" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The minimum value of VDD required =10.72V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_GS_off=-4.0; #Gate-source cut-off voltage, V\n", + "I_DSS=12.0; #Shorted gate drain current, mA\n", + "R_D=560.0; #Drain resistor, Ω\n", + "\n", + "#Calculation\n", + "V_P=-V_GS_off; #Pinch-off voltage, V\n", + "V_DS=V_P; #Minimum drain-source voltage for JFET to be in constant current region, V\n", + "I_D=I_DSS; #Maximum drain current, mA (V_GS=0)\n", + "V_RD=(I_D/1000)*R_D; #Voltage across drain resistor, V (OHM's LAW)\n", + "V_DD=V_DS+V_RD; #Minimum value of supply voltage to drain, V\n", + "\n", + "#Result\n", + "print(\"The minimum value of VDD required =%.2fV.\"%V_DD);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.5 : Page number 516" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The drain current=1.33mA.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "I_DSS=3.0; #Shorted gate drain current, mA\n", + "V_GS_off=-6.0; #Gate-source cut-off voltage, V\n", + "V_GS=-2.0; #Gate-source voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "I_D=I_DSS*(1-(V_GS/V_GS_off))**2; #Drain current mA\n", + "\n", + "#Result\n", + "print(\"The drain current=%.2fmA.\"%I_D);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.6 : Page number 516" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p-channel JFET requires a positive gate-to-source voltage to pass drain current.\n", + "More positive voltage, the less the drain current. \n", + "Any further increase in VGS keeps the JFET cut-off. Therefore, ID=0A.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VGS_off=4; #Gate-source cut-off voltage, V\n", + "VGS=6; #Gate source voltage, V\n", + "\n", + "print(\"p-channel JFET requires a positive gate-to-source voltage to pass drain current.\");\n", + "print(\"More positive voltage, the less the drain current. \");\n", + "print(\"Any further increase in VGS keeps the JFET cut-off. Therefore, ID=0A.\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.7 : Page number 517-518" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The gate to source resistance=15000MΩ.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_GS=15.0; #Gate-source voltage, V\n", + "I_G=1e-03; #Gate current, μA\n", + "\n", + "#Calculation\n", + "R_GS=(V_GS/(I_G*10**-6))/10**6; #Gate to source resistance, MΩ (OHM's LAW)\n", + "\n", + "#Result\n", + "print(\"The gate to source resistance=%dMΩ.\"%R_GS);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.8 : Page number 518" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Transconductance=3000 μ mho\n" + ] + } + ], + "source": [ + "\n", + "#Variable declaration\n", + "V_GS_max=-3.1; #Maximum gate to source voltage, V\n", + "V_GS_min=-3.0; #Minimum gate to source voltage, V\n", + "I_D_max=1.3; #Maximum drain current, mA\n", + "I_D_min=1.0; #Minimum drain current, mA\n", + "\n", + "\n", + "#Calculation\n", + "delta_V_GS=abs(V_GS_max-V_GS_min); #Change in gate to source voltage, V\n", + "delta_I_D=I_D_max-I_D_min; #Change in drain current, mA\n", + "g_fs=(delta_I_D/delta_V_GS)*1000; #Transconductance, μ mho\n", + "\n", + "\n", + "#Result\n", + "print(\"Transconductance=%.0f μ mho\"%g_fs);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.9 : Page number 518" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VGS= 0V 0V -0.2V\n", + "VDS= 7V 15V 15V\n", + "ID = 10V 10.25V 9.65V\n", + "(i) The a.c drain resistance=32kΩ.\n", + "(ii) The transconductance=3000 μ mho.\n", + "(iii) The amplification factor=96.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_GS=[0,0,-0.2]; #Readings of Gate-source voltage, V\n", + "V_DS=[7,15,15]; #Readings of Drain-source voltage, V\n", + "ID=[10,10.25,9.65]; #Readings of drain current, mA\n", + "\n", + "\n", + "#Displaying the readings:\n", + "print(\"VGS= %dV %dV %.1fV\"%(V_GS[0],V_GS[1],V_GS[2]));\n", + "print(\"VDS= %dV %dV %dV\"%(V_DS[0],V_DS[1],V_DS[2]));\n", + "print(\"ID = %dV %.2fV %.2fV\"%(ID[0],ID[1],ID[2]));\n", + "\n", + "#Calculations\n", + "#(i)\n", + "#V_GS constant at 0V,\n", + "delta_VDS=V_DS[1]-V_DS[0]; #Change in drain-source voltage, V\n", + "delta_ID=ID[1]-ID[0]; #Change in drain current, mA\n", + "rd=delta_VDS/delta_ID; #a.c drain resistance, kΩ\n", + "\n", + "#(ii)\n", + "#V_DS constant at 15V,\n", + "delta_VGS=V_GS[2]-V_GS[1]; #Change in gate-source voltage, V\n", + "delta_ID=ID[2]-ID[1]; #Change in drain current, mA\n", + "g_fs=round((delta_ID/delta_VGS)*1000,); #Transconductance, μ mho\n", + "\n", + "#(iii)\n", + "amplification_factor=rd*1000*g_fs*10**-6; #Amplification factor\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The a.c drain resistance=%dkΩ.\"%rd);\n", + "print(\"(ii) The transconductance=%d μ mho.\"%g_fs);\n", + "print(\"(iii) The amplification factor=%d.\"%amplification_factor );\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.10 : Page number 519" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The transconductance=2500 μS.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "g_mo=4000.0; #Maximum transconductance, μS\n", + "V_GS=-3.0; #Gate to source voltage, V\n", + "V_GS_off=-8.0; #Gate-source cut-off voltage, V\n", + "\n", + "#Calculation\n", + "g_m=g_mo*(1-(V_GS/V_GS_off)); #Transconductance, μS\n", + "\n", + "#Result\n", + "print(\"The transconductance=%d μS.\"%g_m);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.11 : Page number 519" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The transconductance=1667 μS.\n", + "The drain current=333 μA.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "g_mo=5000.0; #Maximum transconductance, μS\n", + "V_GS=-4.0; #Gate to source voltage, V\n", + "V_GS_off=-6.0; #Gate-source cut-off voltage, V\n", + "I_DSS=3.0; #Shorted-gate drain current, mA\n", + "\n", + "#Calculation\n", + "g_m=g_mo*(1-(V_GS/V_GS_off)); #Transconductance, μS\n", + "I_D=(I_DSS*(1-(V_GS/V_GS_off))**2)*1000; #Drain current μA\n", + "\n", + "\n", + "#Result\n", + "print(\"The transconductance=%.0f μS.\"%g_m);\n", + "print(\"The drain current=%d μA.\"%I_D);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.12 : Page number 520" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The gate-source voltage=-5V.\n", + "The drain current=2.25mA.\n", + "The drain-source voltage=5.05V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_GS_off=-8.0; #Gate-source cut-off voltage, V\n", + "I_DSS=16.0; #Shorted-gate drain current, mA\n", + "R_D=2.2; #Drain resistor, kΩ\n", + "R_G=1.0; #Gate resistor, MΩ\n", + "V_DD=10.0; #Drain supply voltage, V\n", + "V_GG=-5.0; #Gate supply voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "V_GS=V_GG; #Gate-source voltage, V\n", + "I_D=I_DSS*(1-(V_GS/V_GS_off))**2; #Drain current μA\n", + "V_DS=V_DD-I_D*R_D; #Drain-source voltage, V (Kirchhoff's voltage law)\n", + "\n", + "#Result\n", + "print(\"The gate-source voltage=%dV.\"%V_GS);\n", + "print(\"The drain current=%.2fmA.\"%I_D);\n", + "print(\"The drain-source voltage=%.2fV.\"%V_DS);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.13 : Page number 521" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The drain-source voltage=7.65V.\n", + "The gate-source voltage=-2.35V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "I_D=5.0; #Drain current mA\n", + "V_DD=15.0; #Drain supply voltage, V\n", + "V_G=0; #Gate voltage, V\n", + "R_D=1.0; #Drain resistor, kΩ\n", + "R_S=470.0; #Source resistor, Ω\n", + "\n", + "\n", + "#Calculation\n", + "V_S=(I_D/1000)*R_S; #Source voltage, V (OHM's LAW)\n", + "V_D=V_DD-I_D*R_D; #Drain voltage, V (Kirchhoff's voltage law)\n", + "V_DS=V_D-V_S; #Drain-source voltage, V\n", + "V_GS=V_G-V_S; #Gate-source voltage, V\n", + "\n", + "#Result\n", + "print(\"The drain-source voltage=%.2fV.\"%V_DS);\n", + "print(\"The gate-source voltage=%.2fV.\"%V_GS);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.14 : Page number 521" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The required source resistor=800 Ω.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_GS=-5.0; #Gate-source voltage, V\n", + "I_D=6.25; #Drain current mA\n", + "\n", + "\n", + "#Calculation\n", + "R_S=abs(V_GS/(I_D/1000)); #Required source resistor, Ω (OHM's LAW)\n", + "\n", + "#Result\n", + "print(\"The required source resistor=%d Ω.\"%R_S);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.15 : Page number : 521" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The source resistance=450Ω.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "I_DSS=25.0; #Shorted gate drain current, mA\n", + "V_GS_off=15.0; #Gate-source cut-off voltage, V\n", + "V_GS=5.0; #Gate-source voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "I_D=I_DSS*(1-(V_GS/V_GS_off))**2; #Drain current mA\n", + "R_S=V_GS/(I_D/1000); #Required source resistor, Ω (OHM's LAW)\n", + "\n", + "\n", + "#Result\n", + "print(\"The source resistance=%.0fΩ.\"%R_S);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.16 : Page number 522" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " RS=313 Ω and RD=800 Ω.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "I_DSS=15.0; #Shorted gate drain current, mA\n", + "V_GS_off=-8.0; #Gate-source cut-off voltage, V\n", + "V_DD=12.0; #Drain supply voltage,V\n", + "V_D=V_DD/2; #Drain voltage(half of V_DD), V\n", + "\n", + "#Calculation\n", + "I_D=I_DSS/2; #Drain current(approximately half of I_DSS), mA\n", + "V_GS=V_GS_off/3.4; #Gate-source voltage, V\n", + "R_S=abs(V_GS/(I_D/1000)); #Source resistor, Ω (OHM's LAW)\n", + "#Since,V_D=V_DD-I_D*R_D; \n", + "R_D=(V_DD-V_D)/(I_D/1000); #Drain resistor, Ω (OHM's LAW)\n", + "\n", + "#Result\n", + "print(\" RS=%d Ω and RD=%d Ω.\"%(R_S,R_D));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.17 : Page number 522" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The source resistance=0.6 kΩ\n", + "The drain resistance=6 kΩ.\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "I_DSS=5.0; #Shorted gate drain current, mA\n", + "V_GS_off=-2.0; #Gate-source cut-off voltage, V\n", + "V_DS=10.0; #Drain-source voltage,V\n", + "I_D=1.5; #Drain current, mA\n", + "V_DD=20.0; #Drain supply voltage,V\n", + "V_G=0; #Gate voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "#Since, Drain current, I_D=I_DSS*(1-(V_GS/V_GS_off))**2; \n", + "V_GS=V_GS_off*(1-sqrt(I_D/I_DSS)); #Gate-source voltage, V\n", + "\n", + "#Since, V_GS=V_G-V_S,\n", + "V_S=V_G-V_GS; #Source voltage, V\n", + "\n", + "R_S=V_S/I_D; #Source resistor, kΩ\n", + "\n", + "#Since, V_DD=I_D*R_D +V_DS+ I_D*R_S,\n", + "R_D=(V_DD-I_D*R_S-V_DS)/I_D; #Drain resistor, kΩ\n", + "\n", + "#Calculation\n", + "print(\"The source resistance=%.1f kΩ\"%R_S);\n", + "print(\"The drain resistance=%d kΩ.\"%R_D);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.18 : Page number 522-523" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The drain-source voltage=17V.\n", + "The gate-source voltage=-0.5V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_DD=30.0; #Drain supply voltage, V\n", + "R_D=5.0; #Drain resistor, kΩ\n", + "I_D=2.5; #Drain current, mA\n", + "R_S=200.0; #Source resistor, Ω\n", + "\n", + "#Calculation\n", + "#(i)\n", + "V_DS=V_DD-I_D*(R_D+(R_S/1000)); #Drain-source voltage, V\n", + "\n", + "#(ii)\n", + "V_GS=-(I_D/1000)*R_S; #Gate-source voltage, V\n", + "\n", + "#Result\n", + "print(\"The drain-source voltage=%dV.\"%V_DS);\n", + "print(\"The gate-source voltage=%.1fV.\"%V_GS);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.19 : Page number 523" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "drain voltage of 1st stage=12.37V.\n", + "Source voltage of 1st stage=1.46V.\n", + "drain voltage of 2nd stage=11.7V.\n", + "Source voltage of 2nd stage=2.01V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "ID_1=2.15; #First stage drain current, mA\n", + "ID_2=9.15; #Second stage drain current, mA\n", + "VDD=30; #Drain supply voltage, V\n", + "RS_1=0.68; #Source resistance of 1st stage, kΩ\n", + "RS_2=0.22; #Source resistance of 2nd stage, kΩ\n", + "RD_1=8.2; #Drain resistor of 1st stage, kΩ\n", + "RD_2=2; #Drain resistor of 2nd stage, kΩ\n", + "\n", + "#Calculation\n", + "V_RD1=ID_1*RD_1; #Voltage drop across 8.2kΩ\n", + "VD_1=VDD-V_RD1; #Drain voltage of 1st stage, V\n", + "VS_1=ID_1*RS_1; #D.C potential of source of first stage, V\n", + "V_RD2=ID_2*RD_2; #Voltage drop across 2kΩ\n", + "VD_2=VDD-V_RD2; #Drain voltage of 2nd stage, V\n", + "VS_2=ID_2*RS_2; #D.C potential of source of 2nd stage, V\n", + "\n", + "\n", + "#Result\n", + "print(\"drain voltage of 1st stage=%.2fV.\"%VD_1);\n", + "print(\"Source voltage of 1st stage=%.2fV.\"%VS_1);\n", + "print(\"drain voltage of 2nd stage=%.1fV.\"%VD_2);\n", + "print(\"Source voltage of 2nd stage=%.2fV.\"%VS_2);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.20 : Page number 524" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drain current=1.52mA.\n", + "Gate-source voltage=-1.2V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VDD=12; #Drain supply voltage, V\n", + "VD=7; #Drain voltage, V\n", + "R1=6.8; #Resistor R1, MΩ\n", + "R2=1; #Resistor R2, MΩ\n", + "RS=1.8; #Source resistance, kΩ\n", + "RD=3.3; #Drain resistor, kΩ\n", + "\n", + "#Calculation\n", + "ID=(VDD-VD)/RD; #Second stage drain current, mA\n", + "VS=ID*RS; #Source voltage, V\n", + "VG=VDD*R2/(R1+R2); #Drain voltage, V\n", + "VGS=VG-VS; #Drain-source voltage, V\n", + "\n", + "#Calculation\n", + "print(\"Drain current=%.2fmA.\"%ID);\n", + "print(\"Gate-source voltage=%.1fV.\"%VGS);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.21 : Page number 524-525" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Source resistor, RS=5kΩ.\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "VDD=30; #Drain supply voltage, V\n", + "ID=2.5; #Drain current, mA\n", + "VDS=8; #Drain-source voltage, V\n", + "VGS_off=-5; #Gate-source cutoff voltage, V\n", + "R1=1; #Resistor R1, MΩ\n", + "R2=500; #Resistor R2, kΩ\n", + "IDSS=10; #Shorted gate drain current, mA\n", + "\n", + "#Calculation\n", + "#ID=IDSS*square_of(1-(VGS/VGS_off))\n", + "VGS=VGS_off*(1-sqrt(ID/IDSS)); #Gate-source voltage, V\n", + "V2=VDD*R2/(R1*1000+R2); #Voltage across R2, V\n", + "\n", + "\n", + "#V2=VGS+ID*RS\n", + "RS=(V2-VGS)/ID; #Source resistor, kΩ\n", + "\n", + "#Result\n", + "print(\"Source resistor, RS=%dkΩ.\"%RS);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.22 : Page number 528-529" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEZCAYAAABiu9n+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGL9JREFUeJzt3X2wZHV95/H3B0flQcDBWUAE8YmAWksQNy5msnqVBY1R\nweFhZ3QVH9bdWgFxB3cFs7tMhNIxqXVjTNxdV51CE4eoDAHFCCFwY4la6KCCghiSBRSGEXxMHGP5\n8N0/ui/23Jm+cx+67+nT/X5VdU33Oaf7fLurb//m8/v9zjmpKiRJ2p29mi5AkjS6bCQkSX3ZSEiS\n+rKRkCT1ZSMhSerLRkKS1JeNhMZOkk1J3rbE1zgyyS+TDPxvJMkNSV7bZ91FST7cvX9Ekh8lyaBr\nkOZrRdMFSCOsqYOICqCqvgUc0FANEmCSkCTNwUZCrZfkGUm2JvlhksuAvefYdq8kb01yZ3f7LyZ5\n3Dz28dgkVyb5bpJvJvl3Pet+I8nnknw/yb1J3pNkRc/6k5Lc3l3/HmBe3Uezu7y63VRvS/LZbjfU\np5Mc1LP9CUlu7O7ny0meO5/9SHOxkVCrJXk4cAVwKXAQ8DHgtDmecj7wb4AXVtWBwGuBHfPY1Z8D\n9wCHAmcAb08y1V33C+BN3f0/G3g+8IZufY8BLgfeCqwC/g5YPe83uGuX1zrgLOCfAY8E3tzdz+OA\nTwJvq6qV3eWXd/cvLZqNhNruBGBFVf1RVf2iqi4HvjjH9q8Dfreq7gSoqlur6vtz7SDJEXR+/N9S\nVT+rqq8C7wde1X2Nm6vqpuq4B3gfMPO/+BcBX6uqK7r1/SFw/xLe76aq+ruq+inwUeC47vJXAFdX\n1TXdmv4a+FJ3/9KiOXCttjsMuHfWsrvn2P4I4O8XuI/HAt+rqt7EcTfwTIAkRwHvAv4FsA+dv6ut\nPfV9a9brzX68EL0NzA7gUd37RwJnJnlJ93G6dVy/hH1JJgm13jZg9pjC4+fY/h7gyQvcx33AQUn2\nm7WPmcbpfwG3A0+uqkcDv8uvxh227aaeIxa4//n4FvChqjqoe1tZVftX1e8PYV+aIDYSarvPAz9P\ncm6SFUnWAM+aY/sPABcneQpAkn+eZGWfbQNQVd8GPge8I8kjkxxLp9vqw93t9gd+VFU7khwD/Mee\n17gaeFqSU5M8LMl5wCELeH/zPUbiT4GXJDm5Ozi/d5LnJjlsAfuSdmEjoVarqp8Ba4DXAN+lM6h8\n+cz6ngPSDu8uehedvvxrk/yQztjCPv1evuf+OuCJdFLF5cB/q6obuuveDLwiyY+A/wNc1lPfTE3v\nBB6kk2JuXMhb7HN/5406DdkpdAbIH6DTHfZm/BvXEmWYFx1K8gHgxcD2qjq2u2wlnZkiRwJ3AWdW\n1Q+76y6kM9vk58B5VXXt0IqTJO3RsP+XsQl4waxlFwDXVdXRdAbVLgRI8jTgTOCpwG8D7/V0BJLU\nrKE2ElX1WWD29MJT6Mxpp/vvqd37LwUuq6qfV9VdwN8yd9+yJGnImuivPLiqtgNU1f3Awd3lj2Pn\nqYH3suusFUnSMhqFQa2mTqImSdqDJg6m257kkKranuRQ4Dvd5fey8/zxw9n1ICkAktiwSNIiVNWC\nxnqXI0mEned6XwW8unv/LODKnuVrkzwiyROBpwA39XvRBx4o1q4tjjqq+Oxniypvi71ddNFFjdcw\nTjc/Tz/LUb0txlAbiSQfoXMQ0q8luSfJa4CNwElJ7gBO7D6mqm6jM3/9NuBTwBtqjne1ahVs3gwb\nN8IZZ8D69bBjPqdpkyTN27BnN728qg6rqkdW1eOralNVfb+q/nVVHV1VJ1fVD3q2f0dVPaWqnlrz\nPEZizRq45RbYtg2OOw5uXMhhSpKkOY3CwPWSmSqWZmpqqukSxoqf5+D4WTZvqEdcD0uSvj1RDz4I\n554LW7fCpk2weiFn7pekMZaEWuDA9dg1EjO2bIFzzoG1a+GSS2DffZepOEkaUYtpJMaiu2l3HKuQ\npKUb2yTRy1QhSSaJvkwVkrQ4E5EkepkqJE0qk8Q8zKSK++83VUjSnkxckug1kyrWrYOLLzZVSBpv\nJokFmkkV991nqpCk3ZnoJNHLVCFp3JkklsBUIUm7MknshqlC0jgySQyIqUKSOkwSe2CqkDQuTBJD\nYKqQNMlMEgtgqpDUZiaJITNVSJo0JolFMlVIahuTxDIyVUiaBCaJATBVSGoDk0RDTBWSxpVJYsBM\nFZJGlUliBJgqJI0Tk8QQmSokjRKTxIgxVUhqO5PEMjFVSGqaSWKEmSoktZFJogEzqWLtWrjkElOF\npOVhkmiJmVSxbZupQtJoM0k0zLEKScvFJNFCjlVIGmUmiRFiqpA0TCaJljNVSBo1JokRZaqQNGgm\niTFiqpA0ChprJJL8pyRfS3JLkj9L8ogkK5Ncm+SOJNckObCp+kbBqlWweTNs3AhnnAHnnw87djRd\nlaRJ0kgjkeQw4Fzg+Ko6FlgBrAMuAK6rqqOB64ELm6hv1JgqJDWlye6mhwH7JVkB7APcC5wCXNpd\nfylwakO1jRxThaQmNNJIVNV9wP8A7qHTOPywqq4DDqmq7d1t7gcObqK+UWaqkLScVjSx0ySPppMa\njgR+CHwsySuA2VOW+k5h2rBhw0P3p6ammJqaGnido2omVWzZAqefDi9/uTOgJO1qenqa6enpJb1G\nI1Ngk5wOvKCqXt99/ErgBOD5wFRVbU9yKHBDVT11N88f+ymw8/Xgg3DuubB1K2zaBKtXN12RpFHV\npimw9wAnJNk7SYATgduAq4BXd7c5C7iymfLao3es4vTTHauQNFhNjUncBHwc+DLwVSDA+4B3Aicl\nuYNOw7GxifraaM0auPVWxyokDZZHXI+hLVvg7LMdq5C0szZ1N2mITBWSBsUkMeZMFZJmmCS0C1OF\npKUwSUwQU4U02UwSmpOpQtJCmSQmlKlCmjwmCc2bqULSfJgkZKqQJoRJQotiqpDUj0lCOzFVSOPL\nJKElM1VI6mWSUF+mCmm8mCQ0UKYKSSYJzYupQmo/k4SGxlQhTSaThBbMVCG1k0lCy8JUIU0Ok4SW\nZMsWOOccWLsWLrnEVCGNMpOElt2aNXDLLbBtm6lCGkcmCQ2MYxXSaDNJqFGOVUjjxyShoTBVSKPH\nJKGRYaqQxoNJQkNnqpBGg0lCI8lUIbWXSULLylQhNcckoZFnqpDaxSShxpgqpOVlklCrmCqk0WeS\n0EgwVUjDZ5JQa5kqpNFkktDIMVVIw2GS0FgwVUijwyShkWaqkAbHJKGxY6qQmtVYI5HkwCQfS3J7\nkq8n+ZdJVia5NskdSa5JcmBT9Wl0rFoFmzfDxo1w+ulw/vmwY0fTVUmTockk8W7gU1X1VODXgW8A\nFwDXVdXRwPXAhQ3WpxFjqpCWXyNjEkkOAL5cVU+etfwbwHOranuSQ4HpqjpmN893TGLCOVYhLVyb\nxiSeCDyYZFOSm5O8L8m+wCFVtR2gqu4HDm6oPo04U4W0PJpqJFYAxwN/UlXHAz+m09U0Ox4YF9TX\n7LGK9esdq5AGbUVD+/028K2q+lL38eV0GontSQ7p6W76Tr8X2LBhw0P3p6ammJqaGl61Gmlr1sBz\nngPnnttJFZs2werVTVclNW96eprp6eklvUZjx0kk+Rvg9VX1zSQXATO9yt+rqncmeQuwsqou2M1z\nHZPQbjlWIfW3mDGJJhuJXwfeDzwc+HvgNcDDgI8CRwB3A2dW1Q9281wbCfX14IOdVLF1q6lC6tWq\nRmIpbCQ0H6YKaWdtmt0kDZ0zoKSlM0loIpgqJJOE1JepQlqcBSeJJPsB/1RVvxhOSfOqwSShRTNV\naFINJUkk2SvJy5NcneQ7dM6xtC3JbUn+IMlTFluw1ARThTR/e0wS3eMZrgOuBL5WVb/sLj8IeB7w\ncuCKqvrTIdfaW5NJQgNhqtAkGcoU2CQPr6qfLXWbQbKR0CB5XIUmxVC6m3b3459kvySvTHJ1v22k\ntvB6FVJ/857dlOQRSV6W5GPANuD5wP8eWmXSMnOsQtrVfLqbTgbWAScDNwB/Drynqp4w9Or612R3\nk4bKsQqNo2EdJ/Fp4EnAb1XVv62qTwC/XEyBUluYKqSO+TQSxwOfB65L8ldJXkfnRHzSWHOsQprf\nwPVXquqC7qVGLwKOAx6e5C+T/PuhVyg1zFShSbaoczcl2Qs4EVhbVa8beFV73r9jEmqEYxVqs6Gf\nuynJsUleCpwK7A9cvZDnS21nqtCkmXeSSPJB4Fjg6/xq4Lqq6rVDqm2uWkwSapypQm0z1IsOJbmt\nqp62qMoGzEZCo8KjtdUmw+5u+nySkWgkpFExewbU+vXOgNJ4WUgj8SE6DcUdSW5JcmuSW4ZVmNQm\nM2MV27Y5VqHxspDupjuB9cCt9BxMV1V3D6e0OWuxu0kjy7EKjaphdzc9UFVXVdX/q6q7Z24LrFEa\ne86A0jhZSJJ4L/Bo4BPAT2eWV9WW4ZQ2Zy0mCbWCqUKjZNhJYh86jcPJwEu6txcvZGfSpDFVqO0W\ndcR100wSaiNThZo2rGtc/9fupUr7rX9+EhOFtAemCrXRfK4ncQrwX4B/Am4GHgD2Bo6ic7K/64C3\nV9UDwy11p5pMEmo1U4WaMOwjro8CVgOPBX4C3A58pqp+stBCl8pGQuPAo7W13IbaSIwSGwmNE1OF\nlsvQZjclOSvJzUl+3L19KcmrFlempF6OVWiUzWfg+izgTcD5wGHA4+iMUZyX5JXDLU+aDLu7Ct5P\nlr0jV9rVfAauv0Dn4kJ3zVr+BOCyqjphWMXNUZPdTRpbM2MVN9/cGav4zd9suiKNi2F1Nx0wu4EA\n6C47YCE7k7RnM6niHe+A004zVahZ82kk5vp6+tWVhmT2WMXnPtd0RZpE8+lu2gHcubtVwJOqar9h\nFDYXu5s0aXpnQF1yCeyzT9MVqY2GMgU2yZFzrfdU4dLycKxCS+VxEtIEMFVosYZ17qZ/SPKj3dz+\nIcmPFl8uJNmre/zFVd3HK5Nc27363TVJDlzK60vjyLEKLac9NhJVtX9VHbCb2/5VtdTZTecBt/U8\nvgC4rqqOBq4HLlzi60tjyRlQWi4LuZ7EQCU5HHgR8P6exacAl3bvXwqcutx1SW1iqtCwNdZIAP8T\n+M9A7+DCIVW1HaCq7gcObqIwqU1MFRqmRhqJJL8DbK+qr9CZStuPo9PSPM2kinvvNVVocFY0tN/V\nwEuTvIjOZVH3T/Jh4P4kh1TV9iSHAt/p9wIbNmx46P7U1BRTU1PDrVhqgVWr4LLLOjOgTjvNGVCT\nbnp6munp6SW9RuNTYJM8Fzi/ql6a5PeB71bVO5O8BVhZVRfs5jlOgZX2wOMqNNvQThW+jDYCJyW5\nAzix+1jSIjhWoUFoPEkshklCWhhThcAjriXtgUdrT7Zx6G6SNEQeV6GFMklIE8pUMXlMEpLmzVSh\n+TBJSDJVTAiThKRFMVWoH5OEpJ2YKsaXSULSkpkq1MskIakvU8V4MUlIGihThUwSkubFVNF+JglJ\nQ2OqmEwmCUkLZqpoJ5OEpGVhqpgcJglJS2KqaA+ThKRlZ6oYbyYJSQNjqhhtJglJjTJVjB+ThKSh\nMFWMHpOEpJFhqhgPJglJQ9ebKi6+GPbdt+mKJpNJQtJImp0qbryx6Yo0XyYJScvKVNEck4SkkWeq\naBeThKTGmCqWl0lCUquYKkafSULSSJhJFevWdY6rMFUMnklCUmvNpIpt20wVo8QkIWnkmCqGwyQh\naSyYKkaHSULSSDNVDI5JQtLYMVU0yyQhqTVMFUtjkpA01kwVy88kIamVtmyBc86BtWtNFfNlkpA0\nMdasgVtuMVUMWyONRJLDk1yf5OtJbk3yxu7ylUmuTXJHkmuSHNhEfZLaYdUq2LwZNm6EM86A9eth\nx46mqxovTSWJnwPrq+rpwLOBs5McA1wAXFdVRwPXAxc2VJ+kFjFVDM9IjEkk+Qvgj7u351bV9iSH\nAtNVdcxutndMQtJuOVbRXyvHJJI8ATgO+AJwSFVtB6iq+4GDm6tMUhuZKgZrRZM7T/Io4OPAeVX1\nj0lmx4O+cWHDhg0P3Z+ammJqamoYJUpqoZmxii1bOmMVk5oqpqenmZ6eXtJrNNbdlGQF8EngL6vq\n3d1ltwNTPd1NN1TVU3fzXLubJM3Lgw/CuefC1q2waROsXt10Rc1pW3fTB4HbZhqIrquAV3fvnwVc\nudxFSRovzoBamkaSRJLVwGeAW+l0KRXwVuAm4KPAEcDdwJlV9YPdPN8kIWnBJj1VLCZJjMTspoWy\nkZC0FJM6A6pt3U2S1AhnQM2fSULSRJukVGGSkKQFMlXMzSQhSV3jnipMEpK0BKaKXZkkJGk3xjFV\nmCQkaUBMFR0mCUnag3FJFSYJSRqCSU4VJglJWoA2pwqThCQN2aSlCpOEJC1S21KFSUKSltEkpAqT\nhCQNQBtShUlCkhoyrqnCJCFJAzaqqcIkIUkjYJxShUlCkoZolFKFSUKSRkzbU4VJQpKWSdOpwiQh\nSSOsjanCJCFJDWgiVZgkJKkl2pIqTBKS1LDlShUmCUlqoVFOFSYJSRohw0wVJglJarlRSxUmCUka\nUYNOFSYJSRojo5AqTBKS1AJXXAFnn720VGGSkKQx9bKXNZMqTBKS1DKLHaswSUjSBFjOsQqThCS1\n2EyqWLcOLr547lRhkpCkCTOTKu67bzipYiQbiSQvTPKNJN9M8pam65GkUbZqFWzeDBs3whlnwPnn\nw44dg3ntkWskkuwF/DHwAuDpwLokxzRb1Xibnp5uuoSx4uc5OH6WCzOMVDFyjQTwLOBvq+ruqvoZ\ncBlwSsM1jTX/EAfLz3Nw/CwXbtCpYhQbiccB3+p5/O3uMknSPA0qVawYbFmSpFExkyq2bOmkisUY\nuSmwSU4ANlTVC7uPLwCqqt7Zs81oFS1JLbHQKbCj2Eg8DLgDOBHYBtwErKuq2xstTJIm0Mh1N1XV\nL5KcA1xLZ8zkAzYQktSMkUsSkqTRMYqzm+bkgXaDleSuJF9N8uUkNzVdT5sk+UCS7Ulu6Vm2Msm1\nSe5Ick2SA5ussU36fJ4XJfl2kpu7txc2WWObJDk8yfVJvp7k1iRv7C5f0He0VY2EB9oNxS+Bqap6\nRlU9q+liWmYTne9irwuA66rqaOB64MJlr6q9dvd5Aryrqo7v3j693EW12M+B9VX1dODZwNnd38sF\nfUdb1UjggXbDENr3PRgJVfVZ4PuzFp8CXNq9fylw6rIW1WJ9Pk/ofEe1QFV1f1V9pXv/H4HbgcNZ\n4He0bT8OHmg3eAX8VZIvJnl908WMgYOrajt0/kiBgxuuZxyck+QrSd5v993iJHkCcBzwBeCQhXxH\n29ZIaPBWV9XxwIvoxNHfarqgMePMkKV5L/CkqjoOuB94V8P1tE6SRwEfB87rJorZ38k5v6NtayTu\nBR7f8/jw7jItUlVt6/77AHAFnS49Ld72JIcAJDkU+E7D9bRaVT3Qc/GY/wv8RpP1tE2SFXQaiA9X\n1ZXdxQv6jratkfgi8JQkRyZ5BLAWuKrhmloryb7d/2WQZD/gZOBrzVbVOmHnPvOrgFd3758FXDn7\nCZrTTp9n90dsxhr8fi7UB4HbqurdPcsW9B1t3XES3Slw7+ZXB9ptbLik1kryRDrpoegcWPlnfp7z\nl+QjwBTwGGA7cBHwF8DHgCOAu4Ezq+oHTdXYJn0+z+fR6Uv/JXAX8B9m+tM1tySrgc8At9L5Gy/g\nrXTOYvFR5vkdbV0jIUlaPm3rbpIkLSMbCUlSXzYSkqS+bCQkSX3ZSEiS+rKRkCT1ZSMhSerLRkLq\n6p57/6RZy85L8qkkO5JsTXJbki8kOatnm4OTfKJ7ErqvJ/lkz7pDk1yVZJ8kD84c4d6z/ookZyT5\nnSS/N/x3KS2MjYT0Kx8B1s1athZ4O3BnVT2zqp7WXfamnobibcC1VXVc99z9F/Q8fz3wvqr6CfBp\n4GUzK5IcAKwGrqqqq4GXJNl7GG9MWiwbCelXLgde1D0pGkmOBB5L55T0D51PqKruovPj/8buoplt\nZtb3nl/oNOCa7v3L2LkRehlwTVX9tPv4BuDFA3ov0kDYSEhdVfV9Oue1+e3uorV0znEzc96bXjcD\nM1dF/BPgg0n+OslbkzwWHjqH//e6F8iCTmPxjCQre15/c89rbgX+1cDekDQANhLSzi6j8+MNu/6I\n9+pNFtcCT6RzKutjgJuTPIZOwnigZ7uf0TkD5+nd9cfxq5QBnVM2HzaYtyENho2EtLMrgROTPAPY\np6q+3Ge74+lcDhKAqvpBVV1WVa8CvgQ8B/gJMHuMYabL6XTgyqr6Rc+6vbvPkUaGjYTUo6p+DEzT\nOQ9/b4rovcbBE4A/AP6o+/h5Sfbp3t8feDJwD/BNOgmj1zRwFPAGdk0pv4bXS9CIsZGQdrUZOJad\nf8SfNDMFlk4a+MOq+lB33TOBLyX5CnAjndlMW6tqB3BnkifNvEj3KmsfBw6qqr+Ztd/nAVcP5y1J\ni+P1JKQhSnIK8Myq+u972O5gOhd9Ommu7aTltqLpAqRxVlVXdgep9+TxwPnDrkdaKJOEJKkvxyQk\nSX3ZSEiS+rKRkCT1ZSMhSerLRkKS1Nf/Bz7AopOp9unzAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fbbbf169d68>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "#Variable declaration\n", + "VDD=20.0; #Drain supply voltage, V\n", + "RS=50.0; #Source resistor, Ω\n", + "RD=150.0; #Drain resistor, Ω\n", + "\n", + "#Calculation\n", + "VDS_max=VDD; #Maximum drain source voltage, V\n", + "ID_max=(VDD/(RD+RS))*1000; #Maximum drain current, mA\n", + "\n", + "\n", + "#plot\n", + "x=[i for i in range(0,(int)(VDS_max+1))]; #Plot variable for V_DS\n", + "y=[(i/(RD+RS))*1000 for i in reversed(x[:])]; #Plot variable for ID\n", + "\n", + "\n", + "plt.plot(x,y);\n", + "plt.xlabel(\"VDS(V)\");\n", + "plt.ylabel(\"ID(mA)\");\n", + "plt.title(\"d.c load line\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.23 : Page number 529" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fbbbf188710>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "#Variable declaration\n", + "VDD=20; #Drain supply voltage, V\n", + "RD=500.0; #Drain resistor, Ω\n", + "\n", + "#Calculation\n", + "VDS_max=VDD; #Maximum drain source voltage, v \n", + "ID_max=(VDD/RD)*1000; #Maximum drain current, mA\n", + "\n", + "#Plot\n", + "x=[i for i in range(0,(int)(VDS_max+1))]; #Plot variable for V_DS\n", + "y=[(i/RD)*1000 for i in reversed(x[:])]; #Plot variable for ID\n", + "\n", + "plt.plot(x,y);\n", + "plt.xlabel(\"VDS(V)\");\n", + "plt.ylabel(\"ID(mA)\");\n", + "plt.title(\"d.c load line\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.24 : Page number 530-531" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Voltage gain=4.8.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VDD=20; #Drain supply voltage, V\n", + "RD=12.0; #Drain resistor, kΩ\n", + "RL=8.0; #Load resistor, kΩ\n", + "RG=1.0; #Gate resistor, MΩ\n", + "gm=1.0; #transconductance, mA/V\n", + "\n", + "#Calculation\n", + "gm=gm*10**-3; #transconductance, mho\n", + "RAC=(RD*RL)/(RD+RL); #Total a.c load, kΩ\n", + "Av=gm*RAC*1000; #Voltage gain\n", + "\n", + "\n", + "#Result\n", + "print(\"Voltage gain=%.1f.\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.25 : Page number 531" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Voltage gain=30.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "gm=3000; #transconductance, μmho\n", + "RD=10; #Drain resistance, kΩ\n", + "\n", + "#Calculation\n", + "Av=gm*10**-6*RD*1000; #Voltage gain\n", + "\n", + "#Result\n", + "print(\"Voltage gain=%d.\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.26 : Page number 531" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=257mV(r.m.s).\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "IDSS=8; #Shorted gate drain current, mA\n", + "VGS_off=-10; #Gate-source cut-off voltage, V\n", + "ID=1.9; #Drain current, mA\n", + "RD=3.3; #Drain resistance, kΩ\n", + "RS=2.7; #Source resistor, kΩ\n", + "vin=100; #Input voltage, mV\n", + "\n", + "#Calculation\n", + "VGS=-ID*RS; #Gate-source voltage, V\n", + "gmo=2*IDSS*10**-3/abs(VGS_off); #Maximum transconductance, S\n", + "gm=gmo*(1-(VGS/VGS_off)); #Transconductance, S\n", + "Av=gm*RD*1000; #Voltage gain\n", + "vout=Av*vin; #Output voltage, mA\n", + "\n", + "#Result\n", + "print(\"Output voltage=%dmV(r.m.s).\"%vout);\n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.27 : Page number 531-532" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=151mV(r.m.s).\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "RL=4.7; #Load resistor, Ω\n", + "RD=3.3; #Drain resistance, kΩ\n", + "gm=779*10**-6; #Transconductance, S\n", + "vin=100; #Input voltage, mV\n", + "\n", + "\n", + "#Calculation\n", + "RAC=RD*RL/(RD+RL); #Total a.c drain resistance, kΩ\n", + "Av=gm*RAC*1000; #Voltage gain\n", + "vout=Av*vin; #Output voltage, mA\n", + "\n", + "#Result\n", + "print(\"Output voltage=%dmV(r.m.s).\"%vout);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.28 : Page number 532-533" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Voltage gain=1.85.\n", + "Voltage gain, if RS resistor is bypassed=6.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "RD=1.5; #Drain resistance, kΩ\n", + "gm=4; #Transconductance, mS\n", + "RS=560; #Source resistance, Ω\n", + "\n", + "#Calculation\n", + "Av=gm*10**-3*RD*1000/(1+gm*10**-3*RS);\n", + "print(\"Voltage gain=%.2f.\"%Av);\n", + "\n", + "#If RS is bypassed by a capacitor\n", + "Av=gm*10**-3*RD*1000;\n", + "print(\"Voltage gain, if RS resistor is bypassed=%d.\"%Av);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.29 : Page number 533" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Voltage gain with RS bypassed=4.155.\n", + "(ii) Voltage gain with RS unbypassed=1.35.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "from math import sqrt\n", + "\n", + "IDSS=10; #Shorted gate drain current, mA\n", + "VGS_off=-3.5; #Gate-source cut-off voltage, V\n", + "RD=1.5; #Drain resistance, kΩ\n", + "RS=750; #Source resistance, Ω\n", + "\n", + "\n", + "#Calculation\n", + "#From d.c biasing\n", + "ID=2.3; #Drain current, mA\n", + "VGS=round(VGS_off*(1-sqrt(ID/IDSS)),1); #Gate-source voltage, V\n", + "gm=round(round((2*IDSS/abs(VGS_off)),1)*round((1-(VGS/VGS_off)),3),2); #Transconductance, mS\n", + "\n", + "\n", + "#(i)\n", + "Av=gm*RD; #Voltage gain with RS resistor bypassed\n", + "print(\"(i) Voltage gain with RS bypassed=%.3f.\"%Av);\n", + "\n", + "#(ii)\n", + "Av=Av/(1+gm*(RS/1000.0));\n", + "print(\"(ii) Voltage gain with RS unbypassed=%.2f.\"%Av);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.30 : Page number 539-540" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) n-channel D-MOSFET\n", + "(ii) Drain current=3.91mA\n", + "(iii) Drain current=18.9mA\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "IDSS=10.0; #Shorted gate drain current, mA\n", + "VGS_off=-8.0; #Gate-source cut-off voltage, V\n", + "\n", + "#Calculation\n", + "#(i)\n", + "if(VGS_off<0):\n", + " print(\"(i) n-channel D-MOSFET\");\n", + "else:\n", + " print(\"(i) p-channel D-MOSFET\");\n", + " \n", + "\n", + "#(ii)\n", + "VGS=-3.0; #Gate-source voltage, V\n", + "ID=IDSS*(1-(VGS/VGS_off))**2; #Drain current mA\n", + "print(\"(ii) Drain current=%.2fmA\"%ID);\n", + "\n", + "#(iii)\n", + "VGS=3.0; #Gate-source voltage, V\n", + "ID=IDSS*(1-(VGS/VGS_off))**2; #Drain current mA\n", + "print(\"(iii) Drain current=%.1fmA\"%ID);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.31 : Page number 540" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Point 1: VGS=0V and ID=1mA.\n", + "Point 2: VGS=-6V and ID=0mA.\n", + "Point 3: VGS=-3V and ID=0.25mA.\n", + "Point 4: VGS=-1V and ID=0.694mA.\n", + "Point 5: VGS=1V and ID=1.36mA.\n", + "Point 6: VGS=3V and ID=2.25mA.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "IDSS=1.0; #Shorted gate drain current, mA\n", + "VGS_off=-6.0; #Gate-source cut-off voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "#Point 1\n", + "VGS=0; #Gate source voltage, V \n", + "ID=IDSS; #Drain current, mA\n", + "print(\"Point 1: VGS=%dV and ID=%dmA.\"%(VGS,ID));\n", + "\n", + "#Point 2\n", + "VGS=VGS_off; #Gate source voltage, V \n", + "ID=0; #Drain current, mA\n", + "print(\"Point 2: VGS=%dV and ID=%dmA.\"%(VGS,ID));\n", + "\n", + "#locating more points by changing VG values\n", + "VGS=-3; #Gate source voltage, V \n", + "ID=IDSS*(1-(VGS/VGS_off))**2; #Drain current mA\n", + "print(\"Point 3: VGS=%dV and ID=%.2fmA.\"%(VGS,ID));\n", + "\n", + "VGS=-1; #Gate source voltage, V \n", + "ID=IDSS*(1-(VGS/VGS_off))**2; #Drain current mA\n", + "print(\"Point 4: VGS=%dV and ID=%.3fmA.\"%(VGS,ID));\n", + "\n", + "VGS=1; #Gate source voltage, V \n", + "ID=IDSS*(1-(VGS/VGS_off))**2; #Drain current mA\n", + "print(\"Point 5: VGS=%dV and ID=%.2fmA.\"%(VGS,ID));\n", + "\n", + "VGS=3; #Gate source voltage, V \n", + "ID=IDSS*(1-(VGS/VGS_off))**2; #Drain current mA\n", + "print(\"Point 6: VGS=%dV and ID=%.2fmA.\"%(VGS,ID));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.32 : Page number 541" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drain source voltage=10.6V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VDD=18; #Drain supply voltage, V\n", + "RD=620.0; #Drain resistor, Ω\n", + "IDSS=12.0; #Shorted gate drain current, mA\n", + "VGS_off=-8.0; #Gate-source cut-off voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "ID=IDSS; #Drain current, mA\n", + "VDS=VDD-IDSS*(RD/1000); #Drain source voltage, V\n", + "\n", + "#Result\n", + "print(\"Drain source voltage=%.1fV.\"%VDS);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.33 : Page number 542" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Drain source voltage=7.56V.\n", + "(ii) Output voltage=922mV\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VDD=15; #Drain supply voltage\n", + "RD=620.0; #Drain resistor, Ω\n", + "RL=8.2; #Load resistor, kΩ\n", + "vin=500.0; #Input voltage, V\n", + "IDSS=12.0; #Shorted gate drain current, mA\n", + "gm=3.2; #Transconductance, mS\n", + "\n", + "#Calculation\n", + "#(i)\n", + "VDS=VDD-IDSS*(RD/1000.0); #Drain source voltage, V\n", + "\n", + "#(ii)\n", + "RAC=RD*RL*1000/(RD+RL*1000); #Total a.c drain resistace, Ω\n", + "vout=(gm/1000.0)*RAC*vin; #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"(i) Drain source voltage=%.2fV.\"%VDS);\n", + "print(\"(ii) Output voltage=%dmV\"%vout);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.34 : Page number 545" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drain current=98.7mA\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "ID_on=500.0; #Drain current for MOSFET ON, mA\n", + "VGS_on=10.0; #Gate-source voltage for MOSFET ON, V\n", + "VGS_th=1.0; #Threshold value of gate-source voltage, V\n", + "VGS=5; #Gate-source voltage, V\n", + "\n", + "#Calculation\n", + "K=round(ID_on/(VGS_on-VGS_th)**2,2); #Constant for a E-MOSFET, mA/V²\n", + "ID=K*(VGS-VGS_th)**2; #Drain current, mA\n", + "\n", + "#Result\n", + "print(\"Drain current=%.1fmA\"%ID);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.35 : Page number 545" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K=0.061e-03A/V².\n", + "For VGS=5V, Drain current=0.244mA\n", + "For VGS=8V, Drain current=1.525mA\n", + "For VGS=10V, Drain current=2mA\n", + "For VGS=12V, Drain current=4.94mA\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "ID_on=3.0; #Drain current for MOSFET ON, mA\n", + "VGS_on=10.0; #Gate-source voltage for MOSFET ON, V\n", + "VGS_th=3.0; #Threshold value of gate-source voltage, V\n", + "\n", + "#Calculation\n", + "K=round((ID_on/(VGS_on-VGS_th)**2),3); #Constant for a E-MOSFET, mA/V²\n", + "print(\"K=%.3fe-03A/V².\"%K);\n", + "\n", + "#Determining different points for plotting\n", + "VGS=5; #Gate-source voltage, V\n", + "ID=K*(VGS-VGS_th)**2; #Drain current, mA\n", + "print(\"For VGS=5V, Drain current=%.3fmA\"%ID);\n", + "VGS=8; #Gate-source voltage, V\n", + "ID=K*(VGS-VGS_th)**2; #Drain current, mA\n", + "print(\"For VGS=8V, Drain current=%.3fmA\"%ID);\n", + "VGS=10; #Gate-source voltage, V\n", + "ID=K*(VGS-VGS_th)**2; #Drain current, mA\n", + "print(\"For VGS=10V, Drain current=%.dmA\"%ID);\n", + "VGS=12; #Gate-source voltage, V\n", + "ID=K*(VGS-VGS_th)**2; #Drain current, mA\n", + "print(\"For VGS=12V, Drain current=%.2fmA\"%ID);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.36 : Page number 546-547" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drain-source voltage=10.8V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VDD=24.0; #Drain supply voltage, V\n", + "RD=470.0; #Drain resistor, Ω\n", + "R1=100.0; #Resistor R1, kΩ\n", + "R2=15.0; #Resistor R2, kΩ\n", + "ID_on=500.0; #Drain current for MOSFET ON, mA\n", + "VGS_on=10.0; #Gate-source voltage for MOSFET ON, V\n", + "VGS_th=1.0; #Threshold value of gate-source voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "VGS=VDD*R2/(R1+R2); #Gate-source voltage, V (Voltage divider rule)\n", + "K=round((ID_on/(VGS_on-VGS_th)**2),2); #Constant for a E-MOSFET, mA/V²\n", + "ID=K*(VGS-VGS_th)**2; #Drain current, mA\n", + "VDS=VDD-(ID/1000)*RD; #Drain-source voltage, V\n", + "\n", + "#Result\n", + "print(\"Drain-source voltage=%.1fV.\"%VDS);\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.37 : Page number 547" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drain current=10mA.\n", + "Drain-source voltage=10V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VDD=20.0; #Drain supply voltage, V\n", + "RD=1.0; #Drain resistor, kΩ\n", + "RG=5.0; #Gate resistor , MΩ\n", + "ID_on=10.0; #Drain current for MOSFET ON, mA\n", + "\n", + "#Calculation\n", + "#since, VGS=VDS\n", + "ID=ID_on; #Drain current, mA\n", + "VDS=VDD-ID*RD; #Drain-source voltage, V\n", + "\n", + "#Result\n", + "print(\"Drain current=%dmA.\"%ID);\n", + "print(\"Drain-source voltage=%dV.\"%VDS);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 19.38 : Page number 547-548" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Drain current=1.69mA.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VDD=10.0; #Drain supply voltage, V\n", + "RD=3.0; #Drain resistor, kΩ\n", + "R1=1.0; #Resistor R1, MΩ\n", + "R2=1.0; #Resistor R2, MΩ\n", + "ID_on=10.0; #Drain current for MOSFET ON, mA\n", + "VGS_on=10.0; #Gate-source voltage for MOSFET ON, V\n", + "VGS_th=1.5; #Threshold value of gate-source voltage, V\n", + "\n", + "#Calculation\n", + "K=round((ID_on/(VGS_on-VGS_th)**2),3); #Constant for a E-MOSFET, mA/V²\n", + "VGS=VDD*R2/(R1+R2); #Gate-source voltage, V (Voltage divider rule)\n", + "ID=K*(VGS-VGS_th)**2; #Drain current, mA\n", + "\n", + "#Result\n", + "print(\"Drain current=%.2fmA.\"%ID);\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + }, + "widgets": { + "state": {}, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter1_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter1_2.ipynb new file mode 100644 index 00000000..49519941 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter1_2.ipynb @@ -0,0 +1,646 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:0ac98582dd0b2497034e459e869a2a3bd28001d0d4c4b37a61a8ed5d05f228e3" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 1: INTRODUCTION" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "EXAMPLE 1.1: Page Number 8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "Eg=24.0; #Generated voltage in V\n", + "Ri=0.01; #Internal Resistance in \u03a9\n", + "P=100; #Power supplied in watts\n", + "\n", + "#Calculations\n", + "# (i)\n", + "I=P/Eg; #Load current in A\n", + "V_Ri=I*Ri; #Voltage drop in internal resistance\n", + "\n", + "# (ii)\n", + "V=Eg-(I*Ri); #Terminal Voltage\n", + "\n", + "#Results\n", + "print (\"The voltage drop in internal resistance is %.4f V\"%V_Ri);\n", + "print (\"The terminal voltage is %.2f V\"%V);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage drop in internal resistance is 0.0417 V\n", + "The terminal voltage is 23.96 V\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "EXAMPLE 1.2: Page number 10" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Eg=500.0; #Generated voltage in V\n", + "Ri=1000.0; #Internal Resistance in \u03a9\n", + "\n", + "\n", + "#Calculations\n", + "# (i)\n", + "RL=10; #Load resistance of case 1 in \u03a9 \n", + "I= Eg/(RL+Ri); #Load current in A\n", + "\n", + "print(\"The load current for RL=10\u03a9 is %.3f A\"%I);\n", + "\n", + "# (ii)\n", + "RL=50; #Load resistance of case 2 in \u03a9 \n", + "I= Eg/(RL+Ri); #Load current in A\n", + "\n", + "print(\"The load current for RL=50\u03a9 is %.3f A\"%I);\n", + "\n", + "# (iii)\n", + "RL=100; #Load resistance of case 3 in \u03a9 \n", + "I= Eg/(RL+Ri); #Load current in A\n", + "I=round(I,3);\n", + "\n", + "print(\"The load current for RL=100\u03a9 is %.3f A\"%I);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The load current for RL=10\u03a9 is 0.495 A\n", + "The load current for RL=50\u03a9 is 0.476 A\n", + "The load current for RL=100\u03a9 is 0.455 A\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.3: Page Number 11" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "E=10.0; #voltage of voltage source in V\n", + "Ri=10.0; #Internal Resistance of the voltage source in \u03a9\n", + "\n", + "#Calculation\n", + "Isc=E/Ri; #short circuit current in A\n", + "I=Isc; #Current value of current source in A\n", + "R=Ri; #Internal Resistence of the current source in \u03a9\n", + "\n", + "#Results\n", + "print(\"The current value of the current source= %d A\"%Isc);\n", + "print(\"The internal resistance of the current source =%d \u03a9 \"%R);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The current value of the current source= 1 A\n", + "The internal resistance of the current source =10 \u03a9 \n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "EXAMPLE 1.4: Page number 11-12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I=6.0; # current value of current source in mA\n", + "Ri=2000.0; #Internal Resistance of the current source in \u03a9\n", + "\n", + "#Calcultion\n", + "V=(I/1000)*Ri; #Voltage of voltage source in V\n", + "R=Ri; #Internal resistance of voltage source in \u03a9\n", + "\n", + "#Results\n", + "print(\"The voltage of voltage source is %d V\"%V);\n", + "print(\"The internal resistance of the voltage source is %d \u03a9\"%R);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage of voltage source is 12 V\n", + "The internal resistance of the voltage source is 2000 \u03a9\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.5: Page number 13\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#variable declaration\n", + "E=200.0; #Generated voltage in V\n", + "Ri=100.0; #Internal Resistance of generator in \u03a9\n", + "\n", + "#Calculations\n", + "#(i)\n", + "RL=100; #Load resistance for 1st case in \u03a9\n", + "I=E/(RL+Ri); #Load current in 1st case A\n", + "P=(I*I)*RL; #Power delivered to load of 2nd case in watts\n", + "Pt=(I*I)*(Ri+RL); #Total power generated in watts\n", + "\n", + "print(\"Power delivered for RL=100\u03a9 is %d watts\"%P);\n", + "print(\"Total power generated for RL=100\u03a9 is %d watts\"%Pt);\n", + "\n", + "\n", + "#(ii)\n", + "RL=300; #Load resistance for 2nd case in \u03a9\n", + "I=E/(RL+Ri); #Load current in 2nd case in A\n", + "P=(I*I)*RL; #Power delivered to load of 2nd case in watts\n", + "Pt=(I*I)*(Ri+RL); #Total power generated in watts\n", + "\n", + "print(\"Power delivered for RL=300\u03a9 is %d watts\"%P);\n", + "print(\"Total power generated for RL=300\u03a9 is %d watts\"%Pt);\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power delivered for RL=100\u03a9 is 100 watts\n", + "Total power generated for RL=100\u03a9 is 200 watts\n", + "Power delivered for RL=300\u03a9 is 75 watts\n", + "Total power generated for RL=300\u03a9 is 100 watts\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.6: Page number 14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V=12.0; #Output from amplifier in V\n", + "R_out_eq=15; #Equivalent resistance in \u03a9\n", + "\n", + "#Calculations\n", + "RL=R_out_eq; #Load resistance in \u03a9\n", + "Rt=RL+R_out_eq; #Total resistance in \u03a9\n", + "I=V/Rt; #Circuit current in A\n", + "PL=pow(I,2)*RL; #Power delivered to load in W\n", + "\n", + "#Results\n", + "print(\"Load resistance required is = %d \u03a9\"%RL);\n", + "print(\"Power delivered to load = %.1f W\"%PL);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Load resistance required is = 15 \u03a9\n", + "Power delivered to load = 2.4 W\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.7, Page number 14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V=50.0; #voltage from ac generator in V\n", + "R=100.0; #Resistance of internal impedance in \u03a9\n", + "XL=50.0; #inductive reactance of internal impedance in \u03a9\n", + "\n", + "#Calculation\n", + "Zi=100+(50j); #Internal impedance in complex form (\u03a9)\n", + "ZL=conjugate(Zi); #Load impedance (conjugate of internal impedance ) in \u03a9\n", + "Zt=Zi+ZL; #Total impedance in \u03a9\n", + "I=real(V/Zt); #Circuit current in A\n", + "\n", + "Max_Power=pow(I,2)*R; #Maximum power transferred to the load in watts\n", + "\n", + "\n", + "#Results\n", + "print (\"Load impedance %d %dj \u03a9\"%(real(ZL),imag(ZL)));\n", + "print(\"Maximum power transferred to the load =%.2f W\"%Max_Power);\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Load impedance 100 -50j \u03a9\n", + "Maximum power transferred to the load =6.25 W\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.8: Page number 16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Function for calculating parallel resistance\n", + "def pR(R1,R2):\n", + " return((R1*R2)/(R1+R2));\n", + "\n", + "\n", + "#Variable declaration\n", + "E=100.0; #Source voltage in V\n", + "R1=10.0; #Resistance of resistor 1 in \u03a9\n", + "R2=20.0; #Resistance of resistor 2 in \u03a9\n", + "R3=12.0; #Resistance of resistor 3 in \u03a9\n", + "R4=8.0; #Resistance of resistor 4 in \u03a9\n", + "RL=100.0; #Resistance of load in \u03a9\n", + "\n", + "#Calculation\n", + "Req=R1+pR(R3+R4,R2); #Equivalent resistance after removing RL ,in \u03a9\n", + "I=E/Req; #Total circuit current in A\n", + "I8=I*R2/(R2+R3+R4);\n", + "\n", + "#Thevenin's equivalent circuit's parameters\n", + "E0=I8*R4; #Thevenin voltage V\n", + "R0=pR(pR(R1,R2)+R3,R4); #Thevenin resistance \n", + "I_RL=E0/(R0+RL); #Load current in A \n", + "\n", + "#Result \n", + "print (\"Current through load = %.2f A.\"%I_RL);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Current through load = 0.19 A.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.9: Page number 17" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Function for calculating parallel resistance\n", + "def pR(R1,R2):\n", + " return((R1*R2)/(R1+R2));\n", + "\n", + "\n", + "#Variable declaration\n", + "V=20.0; #Voltage source in V\n", + "R1=1000.0; #resistance of resistor 1 in \u03a9\n", + "R2=1000.0; #resistance of resistor 2 in \u03a9\n", + "R3=1000.0; #resistance of resistor 3 in \u03a9\n", + "\n", + "#calculation\n", + "#parameter for Thevenin's equivalent circuit\n", + "E0=(V*R3)/(R1+R3); #thevenin voltage in V\n", + "R0=pR(R1,R3)+R2; #Thevenins resistance in \u03a9\n", + "\n", + "#result\n", + "print(\"The thevenin voltage = %d V\"%E0);\n", + "print(\"The thevenin resistance = %d \u03a9\"%R0);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The thevenin voltage = 10 V\n", + "The thevenin resistance = 1500 \u03a9\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.10: Page number 18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V=120.0; #Supply voltage in V\n", + "R1=40.0; #Resistor 1's resistance in \u03a9\n", + "R2=20.0; #Resistor 2's resistance in \u03a9\n", + "R3=60.0; #Resistor 3's resistance in \u03a9\n", + "\n", + "#Calculations\n", + "#Using Thevenin's theorem, Thevenin's voltage and resistance are calculated\n", + "E0=(V*R2)/(R1+R2); #Thevenin voltage (voltage across the load resistance RL, after removing RL)in V\n", + "R0=(R1*R2)/(R1+R2) + R3; #Thevenin's resistance (Resistance between the terminals of load RL, with RL removed and source voltage shorted)in \u03a9 \n", + "RL=R0; #Value of load resistance to be connected for maximum power transfer in \u03a9\n", + "Pmax=pow(E0,2)/(4*RL); #Maximum power transferred to load in watts\n", + "\n", + "#Results\n", + "print(\"The value of load resistance RL to which maximum power will be transferred = %.2f \u03a9.\"%RL);\n", + "print(\"The maximum power transferred to load =%.2f W.\"%Pmax);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of load resistance RL to which maximum power will be transferred = 73.33 \u03a9.\n", + "The maximum power transferred to load =5.45 W.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.11: Page number 18-19-20" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V=80.0; #Supply voltage in V\n", + "R1=100.0; #Resistor 1's resistance in \u03a9\n", + "R2=100.0; #Resistor 2's resistance in \u03a9\n", + "R3=30.0; #Resistor 3's resistance in \u03a9\n", + "R4=80.0; #Resistor 4's resistance in \u03a9\n", + "R5=20.0; #Resistor 5's resistance in \u03a9\n", + "R6=60.0; #Resistor 6's resistance in \u03a9\n", + "R7=20.0; #Resistor 7's resistance in \u03a9\n", + "R8=50.0; #Resistor 8's resistance in \u03a9\n", + "\n", + "#Calculations\n", + "#Using Thevenin's theorem,\n", + "E0=(V*R2)/(R1+R2); #Thevenin's voltage for the circuit containing V, R1, R2 in V.\n", + "R0=(R1*R2)/(R1+R2); #Thevenin's resistance for R1, R2 in \u03a9.\n", + "\n", + "#Using Thevenin's theorem again on E0, R0 and rest of the circuit resistors.\n", + "E0_1=(E0*R4)/(R0+R3+R4); #Thevenin's voltage for the cicruit containing E0, R0, R3, R4 in V\n", + "R0_1=((R0+R3)*R4)/(R0+R3+R4); #Thevenin's resistance of R0,R3,R4 (R0 and R3 in series and both in parallel with R4), in \u03a9 \n", + "\n", + "#Using Thevenin's theorem again on E0_1, R0_1, and rest of the circuit resistors.\n", + "E0_2=(E0_1*R6)/(R0_1+R5+R6); #Thevenin's voltage for the circuit containing E0_1, R0_1, R5, R6 in V\n", + "R0_2=((R0_1+R5)*R6)/(R0_1+R5+R6); #Thevenin's resistance of R0_1,R5,R6 (R0 and R3 in series and both in parallel with R4), in \u03a9\n", + "\n", + "\n", + "I_50=E0_2/(R0_2+R7+R8); #Current through the 50 \u03a9 resistor in A\n", + "\n", + "\n", + "#Results\n", + "print(\"The current through the 50 \u03a9 resistor =%.1f A.\"%I_50);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The current through the 50 \u03a9 resistor =0.1 A.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.12: Page number 22\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "from math import floor\n", + "#Variable declaration\n", + "V=40.0; #Voltage supply in V\n", + "R1=4.0; #Resistor 1's resistance in \u03a9\n", + "R2=6.0; #Resistor 2's resistance in \u03a9\n", + "R3=5.0; #Resistor 3's resistance in \u03a9\n", + "R4=8.0; #Resistor 4's resistance in \u03a9\n", + "\n", + "\n", + "#Calculation\n", + "#Using Norton's theorem,\n", + "#calculating Norton current by removing the load resistance R4 and short circuiting those two terminals of the circuit\n", + "R=R1 + (R2*R3)/(R2+R3); #Load on source after removing R4 resistor, in \u03a9\n", + "I=V/R; #Source current in A\n", + "\n", + "#Using current dividing rule ,calculating the short circuit current.\n", + "I_N=(I*R2)/(R2+R3); #Norton's equivalent current or the short circuit current in A\n", + "\n", + "R_N=R3 + (R1*R2)/(R1+R2); #Norton's equivalent resistance in \u03a9\n", + "\n", + "I_8=(I_N*R_N)/(R_N+R4); #Current through the 8 \u03a9 resistance in A\n", + "\n", + " \n", + "\n", + "#Results\n", + "print(\"The current through the 8\u03a9 resistance =%.2f A.\"%I_8);\n", + "\n", + "#Note: The answer in the book is 1.55 A, but in the above code the approximate value is obtained, i.e not 1.55A but 1.56A\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The current through the 8\u03a9 resistance =1.56 A.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1.13 :Page number 23\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V1=30.0; #Voltage source 1, V\n", + "V2=18.0; #Voltage source 2, V\n", + "R1=20.0; #1st resistor, \u03a9\n", + "R2=10.0; #2nd resistor, \u03a9\n", + "\n", + "\n", + "#Calculations\n", + "\n", + "#Finding Thevenin's Equivalent circuit\n", + "I=(V1-V2)/(R1+R2); #Current in the circuit, A\n", + "\n", + "#Applying Kirchhoff's voltage law to 1st loop of the circuit,\n", + "#V1-I*R1-E0=0, where E0 is the voltage across the points X-Y.\n", + "E0=V1-I*R1; #Thevenin's voltage source, V\n", + "\n", + "R0=R1*R2/(R1+R2); #Thevenin's resistance, \u03a9\n", + "\n", + "#Finding Norton's equivalent circuit\n", + "IN=E0/R0; #Norton's equivalent current source, A\n", + "RN=R0; #Norton's equivanlent resistance, \u03a9\n", + "\n", + "#Result\n", + "print(\"IN=%.1fA and RN=%.2f \u03a9\"%(IN,RN));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "IN=3.3A and RN=6.67 \u03a9\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter20_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter20_2.ipynb new file mode 100644 index 00000000..cad31534 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter20_2.ipynb @@ -0,0 +1,677 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:369e36634d005b832372dcae6796c76b979f32b499d8baadce951517f2201533" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 20 : SILICON CONTROLLED RECTIFIERS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.2 : Page number 559\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I=50.0; #Surge current, A\n", + "t=12.0; #Time for which surge current lasts, ms\n", + "circuit_fusing_rating_max=90; #Maximum circuit fusing rating, A\u00b2s\n", + "\n", + "#Calculation\n", + "circuit_fusing_rating=I**2*(t*10**-3); #Circuit fusing rating, A\u00b2s\n", + "\n", + "#Result\n", + "if(circuit_fusing_rating<circuit_fusing_rating_max):\n", + " print(\"The device will not be destroyed.\");\n", + "else:\n", + " print(\"The device will be destroyed.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The device will not be destroyed.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.3 : Page number 559\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I2_t_rating=50.0; #circuit fuse rating, A\u00b2s\n", + "Is=100.0; #Surge current, A\n", + "\n", + "#Calculation\n", + "t_max=(I2_t_rating/Is**2)*1000; #Maximum allowable duration, ms\n", + "\n", + "\n", + "#Result\n", + "print(\"The maximum allowable duration =%dms\"%t_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum allowable duration =5ms\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.4 : Page number 559\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Variable declaration\n", + "R=220.0; #Gate resistor, \u03a9\n", + "I_G=7.0; #Gate current, mA\n", + "V_GK=0.7; #Junction voltage, V\n", + "\n", + "#Calculation\n", + "V_in=V_GK+(I_G/1000)*R; #Input voltage, V (Kirchhoff's voltage law)\n", + "\n", + "#Result\n", + "print(\"The required input voltage=%.2fV.\"%V_in);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The required input voltage=2.24V.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.5 : Page number 564\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import asin\n", + "from math import cos\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "I_G=1.0; #Gate current, mA\n", + "V_m=200.0; #Peak value of input sinusoidal voltage, V\n", + "v=100.0; #Forward breakdown voltage of SCR, V\n", + "R_L=100.0; #Load resistance, \u03a9\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#v=Vm*sin(theta)\n", + "#Finding angle theta, for input voltage (v)= (V_f)forward_breakdown_voltage\n", + "theta=asin(v/V_m); #angle for input voltage = forward breakdown voltage, rad\n", + "theta=theta*180/pi; #angle for input voltage = forward breakdown voltage, degrees\n", + "\n", + "alpha=round(theta,0); #Firing angle, degrees\n", + "\n", + "#(ii)\n", + "phi=180-alpha; #Conduction angle, degrees\n", + "\n", + "#(iii)\n", + "V_avg=(V_m/(2*pi))*(1+cos(alpha*pi/180)); #Average voltage, V\n", + "I_avg=V_avg/R_L; #Average current, A\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The firing agle=%d\u00b0\"%alpha);\n", + "print(\"(ii) The conduction angle=%.0f\u00b0\"%phi);\n", + "print(\"(iii) The average current=%.4fA \"%I_avg);\n", + "\n", + "#Note: In the text book has approximated the average current to 0.5925A but in the code it gets approximated to 0.5940A.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The firing agle=30\u00b0\n", + "(ii) The conduction angle=150\u00b0\n", + "(iii) The average current=0.5940A \n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.6 : Page number 564\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import asin\n", + "from math import cos\n", + "from math import pi\n", + "from math import floor\n", + "\n", + "\n", + "#Variable declaration\n", + "I_G=1.0; #Gate current, mA\n", + "V_m=400.0; #Peak value of input sinusoidal voltage, V\n", + "v=150.0; #Forward breakdown voltage of SCR, V\n", + "R_L=200.0; #Load resistance, \u03a9\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#v=Vm*sin(theta)\n", + "#Finding angle theta, for input voltage (v)= (V_f)forward_breakdown_voltage\n", + "theta=asin(v/V_m); #angle for input voltage = forward breakdown voltage, rad\n", + "theta=theta*180/pi; #angle for input voltage = forward breakdown voltage, degrees\n", + "\n", + "alpha=theta; #Firing angle, degrees\n", + "\n", + "#(ii)\n", + "V_av=floor((V_m/(2*pi))*(1+cos(alpha*pi/180))*10)/10; #Average voltage, V\n", + "\n", + "#(iii)\n", + "I_av=V_av/R_L; #Average current, A\n", + "\n", + "#(iv)\n", + "P_out=V_av*I_av; #Output power, W\n", + "\n", + "#Result\n", + "print(\"(i) The firing agle=%d\u00b0\"%alpha);\n", + "print(\"(ii) The average output voltage=%.1f V\"%V_av);\n", + "print(\"(iii) The average current=%.3fA \"%I_av);\n", + "print(\"(iv) The output power=%.2f W\"%P_out);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The firing agle=22\u00b0\n", + "(ii) The average output voltage=122.6 V\n", + "(iii) The average current=0.613A \n", + "(iv) The output power=75.15 W\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.7 : Page number 564-565\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import asin\n", + "\n", + "#Variable declaration\n", + "v=180.0; #Forward breakdown voltage, V\n", + "V_m=240.0; #Peak value of input voltage, V\n", + "w=314.0; #Angular frequency of input ,rad/s\n", + "\n", + "\n", + "#Calculation\n", + "#v=Vm*sin(w*t)\n", + "#So, t=asin(v/Vm)/w\n", + "t=(asin(v/V_m)/w)*1000; #Time for which SCR remains off, ms\n", + "\n", + "#Result\n", + "print(\"The SCR remains off for %.1f ms.\"%t);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The SCR remains off for 2.7 ms.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.8 : Page number 565\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "from math import cos\n", + "from math import floor\n", + "\n", + "#Variable declaration\n", + "I_dc=1.0; #d.c load current, A\n", + "alpha=30.0; #Firing angle, \u00b0\n", + "\n", + "\n", + "#Calculation\n", + "I_av=I_dc; #Average current(= d.c current), A\n", + "\n", + "#Since, Iav=(Vm/(2*pi*RL))*(1+cos(alpha)) and Im=Vm/RL\n", + "I_m=floor((2*pi*I_av/(1+cos(alpha*pi/180)))*100)/100; #Peak-load current, A\n", + "\n", + "\n", + "\n", + "#Result\n", + "print(\"Peak-load current=%.2f A.\"%I_m);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Peak-load current=3.36 A.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.9: Page number 565\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "from math import sin\n", + "\n", + "#Variable declaration\n", + "alpha=60.0; #Firing angle, \u00b0\n", + "P=100.0; #Power rating of tungsten lamp, W\n", + "V=110.0; #Voltage rating of tungsten lamp, V\n", + "V_ac=110.0; #a.c supply voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "V_m=V_ac*sqrt(2); #Peak value of input voltage, V\n", + "\n", + "alpha=alpha*pi/180; #firing angle, rad\n", + "\n", + "#Since, E_rms\u00b2=(1/2*pi) \u222b V_m\u00b2sin\u00b2(theta) d(theta), limits: alpha to pi\n", + "# E_rms\u00b2=Vm\u00b2*((2*(pi-alpha) + sin(2*alpha))/(8*pi)),\n", + "# E_rms=Vm*sqrt((2*(pi-alpha) + sin(2*alpha))/(8*pi)),\n", + "E_rms=round(V_m*sqrt((2*(pi-alpha) + sin(2*alpha))/(8*pi))); #r.m.s voltage developed in the lamp, V\n", + "\n", + "\n", + "RL=V**2/P; #Load resistance, \u03a9\n", + "\n", + "I_rms=E_rms/RL; #r.m.s current developed in the lamp, A\n", + "\n", + "#Result\n", + "print(\"The r.m.s voltage developed in the lamp=%d V.\"%E_rms);\n", + "print(\"The r.m.s current developed in the lamp=%.2f A.\"%I_rms);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The r.m.s voltage developed in the lamp=70 V.\n", + "The r.m.s current developed in the lamp=0.58 A.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.10 : Page number 567\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import cos\n", + "from math import pi\n", + "\n", + "#Variable declaration\n", + "RL=100.0; #Load resistance, \u03a9\n", + "V_m=200.0; #Peak a.c voltage, V\n", + "alpha=60; #firing angle, \u00b0\n", + "\n", + "#Calculation\n", + "#(i)\n", + "V_av=(V_m/pi)*(1+cos(alpha*pi/180)); #D.C output voltage, V\n", + "\n", + "#(ii)\n", + "I_av=V_av/RL; #Load current, A\n", + "\n", + "#Result\n", + "print(\"(i) d.c output voltage=%.1f V.\"%V_av);\n", + "print(\"(ii) Load current=%.3f A\"%I_av);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) d.c output voltage=95.5 V.\n", + "(ii) Load current=0.955 A\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.11: Page number 567\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import pi\n", + "from math import sin\n", + "\n", + "#Variable declaration\n", + "alpha=60.0; #Firing angle, \u00b0\n", + "P=100.0; #Power rating of tungsten lamp, W\n", + "V=110.0; #Voltage rating of tungsten lamp, V\n", + "V_ac=110.0; #a.c supply voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "V_m=round(V_ac*sqrt(2)); #Peak value of input voltage, V\n", + "\n", + "alpha=alpha*pi/180; #firing angle, rad\n", + "\n", + "#Since, E_rms\u00b2=(1/2*pi) \u222b V_m\u00b2sin\u00b2(theta) d(theta), limits: alpha to pi\n", + "# E_rms\u00b2=Vm\u00b2*((2*(pi-alpha) + sin(2*alpha))/(8*pi)),\n", + "# E_rms=Vm*sqrt((2*(pi-alpha) + sin(2*alpha))/(8*pi)),\n", + "E_rms=V_m*sqrt((2*(pi-alpha) + sin(2*alpha))/(4*pi)); #r.m.s voltage developed in the lamp, V\n", + "\n", + "RL=V**2/P; #Load resistance, \u03a9\n", + "\n", + "I_rms=E_rms/RL; #r.m.s current developed in the lamp, A\n", + "\n", + "#Result\n", + "print(\"The r.m.s voltage developed in the lamp=%.1f V.\"%E_rms);\n", + "print(\"The r.m.s current developed in the lamp=%.2f A.\"%I_rms);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The r.m.s voltage developed in the lamp=98.9 V.\n", + "The r.m.s current developed in the lamp=0.82 A.\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.12 : Page number 572\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=15; #Suuply voltage, V\n", + "V_T=0.7; #Gate trigger voltage, V\n", + "I_T=7.0; #Gate trigger current, mA\n", + "I_H=6.0; #Holding current. mA\n", + "R_Vin=1; #Resistance at Vin, k\u03a9\n", + "R_VCC=100; #Resistance at Vcc, \u03a9\n", + "\n", + "\n", + "#Calculation\n", + "#(i) when SCR is off, there is no current, therefore no voltage drop across the resistor\n", + "V_out=VCC; #Output voltage, when SCR is off, V\n", + "\n", + "#(ii)\n", + "V_in=V_T+I_T*R_Vin; #Input voltage required to trigger the SCR, V\n", + "\n", + "#(iii)\n", + "#Since, I_H=(Vcc-VT)/R_Vin;\n", + "VCC_SCR_open=(I_H/1000)*R_VCC+V_T; #Decreased value of supply voltage at which SCR opens, V\n", + "\n", + "#Result\n", + "print(\"(i) The output voltage when SCR is off=%dV.\"%V_out);\n", + "print(\"(ii) The input voltage required to trigger the SCR=%.1f V.\"%V_in);\n", + "print(\"(iii) The decreased supply voltage at which SCR opens=%.1f V.\"%VCC_SCR_open);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The output voltage when SCR is off=15V.\n", + "(ii) The input voltage required to trigger the SCR=7.7 V.\n", + "(iii) The decreased supply voltage at which SCR opens=1.3 V.\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.13 : Page number 572-573\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=5.6; #zener voltage, V\n", + "V_T=0.7; #Trigger voltage of SCR, V\n", + "\n", + "#Calculation\n", + "VCC=Vz+V_T; #Required supply voltage to turn on the crowbar, V\n", + "\n", + "#Result\n", + "print(\"The required supply voltage to turn on the crowbar=%.1fV.\"%VCC);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The required supply voltage to turn on the crowbar=6.3V.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.14 : Page number 573\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=12; #Zener breakdown voltage, V\n", + "V_T=1.5; #Trigger voltage, V\n", + "tolerance_z=10.0; #Tolerance of zener diode, %\n", + "\n", + "\n", + "#Calculation\n", + "Vz_max=Vz*(1+tolerance_z/100); #Maximum value of zener breakdown, V\n", + "Vz_min=Vz*(1-tolerance_z/100); #Minimum value of zener breakdown, V\n", + "V_crowbar=Vz_max+V_T; #Maximum value of supply voltage for crowbarring, V\n", + "\n", + "#Result\n", + "print(\"The maximum value of supply voltage for crowbarring=%.1fV\"%V_crowbar);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum value of supply voltage for crowbarring=14.7V\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 20.15 : Page number 573\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=25.0; #Supply voltage, V\n", + "\n", + "#Calculation\n", + "#When brights light is on, LASCR conducts and thus gets short circuited to ground, hence,\n", + "V_out=0; #Output voltage, V\n", + "\n", + "print(\"Output voltage when bright light is on=%dV\"%V_out);\n", + "\n", + "\n", + "#When brights light is off, LASCR stops conducting and thus no current through resistor, hence,\n", + "V_out=VCC; #Output voltage, V\n", + "print(\"Output voltage when bright light is off=%dV\"%V_out);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output voltage when bright light is on=0V\n", + "Output voltage when bright light is off=25V\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter21_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter21_2.ipynb new file mode 100644 index 00000000..acca0cfa --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter21_2.ipynb @@ -0,0 +1,467 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:412bf04e25192c77f9fa9664d995cc0ae6446a81f631fb5e0e755ebfa36436bf" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 21 : POWER ELECTRONICS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.3: Page number 585\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_GT=2; #Gate triggering voltage, V\n", + "V_F=0.7; #Forward voltage for diode D1\n", + "\n", + "#Calculation\n", + "#(i)Triggering only by a positive gate voltage,\n", + "#A diode is connected at the gatewith the n-side connected to thegate of the device,\n", + "V_A=V_F+V_GT; #Required voltage to trigger the device, V\n", + "\n", + "print(\"The required voltage to trigger the device only by positive voltage=%.1fV.\"%V_A);\n", + "\n", + "#(ii)\n", + "print(\"In order to trigger the triac only by negative voltage, the direction of diode D1 is reversed.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The required voltage to trigger the device only by positive voltage=2.7V.\n", + "In order to trigger the triac only by negative voltage, the direction of diode D1 is reversed.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.4 : Page number 585-586\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R=50.0; #Resitor, \u03a9\n", + "V=50.0; #Supply voltage, V\n", + "V_drop=1.0; #Drop across the triac in conduction, V\n", + "\n", + "#Calculation\n", + "#(i) Ideal triac\n", + "#Since the triac is ideal, voltage drop across it is zero,\n", + "I=V/R; #Current through the 50 \u03a9 resistor, A\n", + "\n", + "print(\"(i) The cuurent through the 50 \u03a9 resistor when the triac is ideal=%dA.\"%I);\n", + "\n", + "#(ii) Triac has a drop of 1V\n", + "I=(V-V_drop)/R; #Current through the 50 \u03a9 resistor, A\n", + "\n", + "print(\"(ii) The current through the 50 \u03a9 resistor when the triac has a drop of 1V=%.2fA.\"%I);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The cuurent through the 50 \u03a9 resistor when the triac is ideal=1A.\n", + "(ii) The current through the 50 \u03a9 resistor when the triac has a drop of 1V=0.98A.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.5 : Page number 588-589\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_GT=2; #Gate triggering voltage, V\n", + "V_BO=20; #Breakover voltage,V\n", + "\n", + "#Calculation\n", + "print(\"The triggering level is raised by using a diac.\");\n", + "V_A=V_BO+V_GT; #Gate trigger signal, V\n", + "\n", + "#Result\n", + "print(\"In order to turn on the triac, the gate trigger signal=%dV.\"%V_A);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The triggering level is raised by using a diac.\n", + "In order to turn on the triac, the gate trigger signal=22V.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.6 : Page number 589\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_BO=30; #Breakover voltage of diac, V\n", + "V_GT=1; #Trigger voltage of the triac, V\n", + "I_T=10; #Trigger current, mA\n", + "\n", + "\n", + "#Calculation\n", + "V_A=V_BO+V_GT; #Voltage required for triggering the triac, V\n", + "\n", + "#Result\n", + "print(\"The minimum capacitor voltage that will trigger the triac=%d V.\"%V_A);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The minimum capacitor voltage that will trigger the triac=31 V.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.7 : Page number 593\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Variable declaration\n", + "eta=0.6; #Intrinsic stand-off ratio for UJT\n", + "R_BB=10; #Inter-base resistance, k\u03a9\n", + "\n", + "#Calculation\n", + "#Since, RBB=RB1+RB2 and eta=RB1/(RB1+RB2),\n", + "#eta=RB1/RBB.\n", + "R_B1=eta*R_BB; #Resistance of the bar between B1 and emitter junction, k\u03a9\n", + "R_B2=R_BB-R_B1; #Resistance of the bar between B2 and emitter junction, k\u03a9 \n", + "\n", + "#Result\n", + "print(\"Resistance of the bar between B1 and emitter junction=%d k\u03a9.\"%R_B1);\n", + "print(\"Resistance of the bar between B2 and emitter junction=%d k\u03a9.\"%R_B2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Resistance of the bar between B1 and emitter junction=6 k\u03a9.\n", + "Resistance of the bar between B2 and emitter junction=4 k\u03a9.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.8 : Page number 593\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_BB=10; #Interbase voltage, V\n", + "eta=0.65; #Intrinsic stand-off ratio for UJT\n", + "V_D=0.7; #Voltage drop in the pn junction, V\n", + "\n", + "#Calculation\n", + "V_stand_off=eta*V_BB; #Stand off voltage, V\n", + "V_P=V_stand_off+V_D; #Peak-point voltage, V\n", + "\n", + "#Result\n", + "print(\"Stand off voltage=%.1f V.\"%V_stand_off);\n", + "print(\"Peak-point voltage=%.1f V.\"%V_P);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Stand off voltage=6.5 V.\n", + "Peak-point voltage=7.2 V.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.9 : Page number 593\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_BB=25; #Interbase voltage, V\n", + "eta_max=0.86; #Maximum intrinsic stand-off ratio for UJT\n", + "eta_min=0.74; #Minimum intrinsic stand-off ratio for UJT\n", + "V_D=0.7; #Voltage drop in the pn junction, V\n", + "\n", + "#Calculation\n", + "V_P_max=eta_max*V_BB+V_D; #Maximum peak-point, V\n", + "V_P_min=eta_min*V_BB+V_D; #Minimum peak-point, V\n", + "\n", + "#Result\n", + "print(\"Maximum peak-point voltage=%.1fV\"%V_P_max);\n", + "print(\"Minimum peak-point voltage=%.1fV\"%V_P_min);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum peak-point voltage=22.2V\n", + "Minimum peak-point voltage=19.2V\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.10 : Page number 593-594\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "eta=0.65; #Intrinsic stand-off ratio for UJT\n", + "R_BB=7.0; #Inter-base resistance, k\u03a9\n", + "R1=100.0; #Resistor R1, \u03a9\n", + "R2=400.0; #Resistor R2, \u03a9\n", + "V_S=12.0; #Source voltage, V\n", + "V_D=0.7; #Voltage drop in the pn junction, V\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#Since, eta=RB1/RBB,\n", + "R_B1=eta*R_BB; #Resistance of the bar between B1 and emitter junction, k\u03a9\n", + "R_B2=R_BB-R_B1; #Resistance of the bar between B2 and emitter junction, k\u03a9 \n", + "\n", + "print(\"(i) Resistance of the bar between B1 and emitter junction=%.2f k\u03a9.\"%R_B1);\n", + "print(\" Resistance of the bar between B2 and emitter junction=%.2f k\u03a9.\"%R_B2);\n", + "\n", + "#(ii)\n", + "V_B2_B1=V_S*R_BB/(R_BB + (R1/1000) + (R2/1000)); #Voltage across B2-B1, V (voltage divider rule)\n", + "V_P=eta*V_B2_B1+V_D; #Peak-point voltage, V\n", + "\n", + "print(\"(ii) The voltage across the base B2-B1=%.1fV.\"%V_B2_B1);\n", + "print(\" Peak-point voltage=%.2fV\"%V_P);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Resistance of the bar between B1 and emitter junction=4.55 k\u03a9.\n", + " Resistance of the bar between B2 and emitter junction=2.45 k\u03a9.\n", + "(ii) The voltage across the base B2-B1=11.2V.\n", + " Peak-point voltage=7.98V\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.11 : Page number 596\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import log\n", + "\n", + "#Variable declaration\n", + "RE_initial=5; #Initial value of emitter resistor, k\u03a9\n", + "RE_adjusted=10; #Adjusted value of emitter resistor, k\u03a9\n", + "C=0.2; #Capacitance, \u03bcF\n", + "eta=0.54; #intrinsic stand-off ratio\n", + "\n", + "#Calculation\n", + "#(i)\n", + "t=round((RE_initial*1000*C*10**-6*log(1/(1-eta)))*1000,2); #Time period, ms\n", + "f=(1/t)*1000; #frequency, Hz\n", + "\n", + "print(\"Frequency for 5k\u03a9 setting=%dHz.\"%f);\n", + "\n", + "#(i)\n", + "t=round((RE_adjusted*1000*C*10**-6*log(1/(1-eta)))*1000,2); #Time period, ms\n", + "f=(1/t)*1000; #frequency, Hz\n", + "\n", + "print(\"Frequency for 10k\u03a9 setting=%dHz.\"%f);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Frequency for 5k\u03a9 setting=1282Hz.\n", + "Frequency for 10k\u03a9 setting=645Hz.\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 21.12 : Page number 596-597\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import log\n", + "\n", + "#Variable declaration\n", + "V_S=12; #Supply voltage, V\n", + "R_BB=5; #Interbase resistance, k\u03a9\n", + "R_1=50; #Resistor R1, k\u03a9\n", + "R_2=0.1; #Resistor R2, k\u03a9\n", + "C=0.1; #Capacitance, \u03bcF\n", + "eta=0.6; #intrinsic stand-off ratio\n", + "V_D=0.7; #Voltage drop across pn junction, V\n", + "\n", + "#Calculation\n", + "#(i)\n", + "#Since, \u03b7=R_B1/R_BB,\n", + "R_B1=eta*R_BB; #Resitance between base B1 and emitter junction, k\u03a9\n", + "\n", + "#Since, R_BB=R_B1+R_B2\n", + "R_B2=R_BB-R_B1; #Resitance between base B2 and emitter junction, k\u03a9\n", + "\n", + "#(ii)\n", + "V_RB1_R2=V_S*(R_B1+R_2)/(R_BB+R_2); #Voltage drop across R_B1 and R_2 resistors, V\n", + "V_P=V_D+V_RB1_R2; #Peak-point voltage, V\n", + "\n", + "#(iii)\n", + "t=round((R_1*1000*C*10**-6*log(1/(1-eta)))*1000,2); #Time period, ms\n", + "f=(1/t)*1000; #frequency, Hz\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) R_B1=%dk\u03a9 and R_B2=%dk\u03a9\"%(R_B1,R_B2));\n", + "print(\"(ii) The peak-point voltage to turn on the UJT=%.0fV.\"%V_P);\n", + "print(\"(iii) Frequency of oscillations=%dHz.\"%f);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) R_B1=3k\u03a9 and R_B2=2k\u03a9\n", + "(ii) The peak-point voltage to turn on the UJT=8V.\n", + "(iii) Frequency of oscillations=218Hz.\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter22_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter22_2.ipynb new file mode 100644 index 00000000..5f13ea0e --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter22_2.ipynb @@ -0,0 +1,668 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:a688629536ad6915939234eacc1ed3eaaf36e0aaa88de5df5b6a309da4d2c64d" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 22: ELECTRONIC INSTRUMENTS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.1 : Page number 606\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_g=1; #Full scale deflection current, mA\n", + "\n", + "#Calculation\n", + "MS=1/(I_g/1000.0); #Multimeter sensitivity, \u03a9 per volt\n", + "\n", + "#Result\n", + "print(\"The multimeter sensitivity=%d \u03a9 per volt.\"%MS);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The multimeter sensitivity=1000 \u03a9 per volt.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.2 : Page number 606-607\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "meter_sensitivity=1000.0; #Meter sensitivity, \u03a9 per volt\n", + "V_full_scale=50.0; #Full scale volts\n", + "R=50000.0; #Resistance to be measured, \u03a9\n", + "\n", + "#Calculation\n", + "meter_resistance=V_full_scale*meter_sensitivity; #Meter resistance, \u03a9\n", + "R_p=R*meter_resistance/(R+meter_resistance); #Parallel resistance, \u03a9\n", + "\n", + "#Result\n", + "print(\"When the meter is used to measure the voltage across the resistance %d\u03a9, total resistance =%d\u03a9.\"%(R,R_p));\n", + "print(\"\u2234 Meter will give highly incorrect reading.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "When the meter is used to measure the voltage across the resistance 50000\u03a9, total resistance =25000\u03a9.\n", + "\u2234 Meter will give highly incorrect reading.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.3 : Page number 607\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "meter_sensitivity=4.0; #Meter sensitivity, k\u03a9/V\n", + "R_1=10.0; #Resistance across which voltage is to be measured, k\u03a9\n", + "R_2=10.0; #Resistance, k\u03a9\n", + "range_max=10.0; #Maximum range of the meter, V\n", + "range_min=0; #Minimum range of the meter, V\n", + "V=20.0; #Battery voltage, V\n", + "\n", + "#Calculation\n", + "R_meter=meter_sensitivity*range_max; #Resistance of the meter, k\u03a9\n", + "R_T=(R_meter*R_1)/(R_1+R_meter) + R_2; #Total circuit resistance, k\u03a9\n", + "I_circuit=round(V/R_T,2); #Circuit current, mA\n", + "V_multimeter=I_circuit*((R_meter*R_1)/(R_1+R_meter)); #Voltage read by multimeter, V\n", + "\n", + "\n", + "#Result\n", + "print(\"Voltage read by multimeter=%.2fV.\"%V_multimeter);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Voltage read by multimeter=8.88V.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.4 : Page number 607-608\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "meter_sensitivity=20.0; #Meter sensitivity, k\u03a9/V\n", + "R_1=10.0; #Resistance across which voltage is to be measured, k\u03a9\n", + "R_2=10.0; #Resistance, k\u03a9\n", + "range_max=10.0; #Maximum range of the meter, V\n", + "range_min=0; #Minimum range of the meter, V\n", + "V=20.0; #Battery voltage, V\n", + "\n", + "#Calculation\n", + "R_meter=meter_sensitivity*range_max; #Resistance of the meter, k\u03a9\n", + "R_T=round((R_meter*R_1)/(R_1+R_meter) + R_2,1); #Total circuit resistance, k\u03a9\n", + "I_circuit=round(V/R_T,2); #Circuit current, mA\n", + "V_multimeter=I_circuit*((R_meter*R_1)/(R_1+R_meter)); #Voltage read by multimeter, V\n", + "\n", + "\n", + "#Result\n", + "print(\"Voltage read by multimeter=%.2fV.\"%V_multimeter);\n", + "\n", + "\n", + "#Note: The circuit current=1.0256mA, has been approximated in the text as 1.04mA. But, in the code 1.03 mA has been used. Therefore, the final answer is obtained as 9.81V and not 9.88V.\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Voltage read by multimeter=9.81V.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.5 : Page number 608-609\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import floor\n", + "\n", + "#Variable declaration\n", + "R_A=20.0; #Resistance after point A, k\u03a9\n", + "R_B=20.0; #Resistance after point B, k\u03a9\n", + "R_C=30.0; #Resistance after point C, k\u03a9\n", + "R_D=30.0; #Resistance after point D, k\u03a9\n", + "R_meter=60.0; #Resistance of the meter, k\u03a9\n", + "V=100.0; #Battery voltage, V\n", + "\n", + "#Calculation\n", + "#(i) When meter is not connected:\n", + "R_T=R_A+R_B+R_C+R_D; #Total circuit resistance, k\u03a9\n", + "I_circuit=V/R_T; #Circuit current, mA\n", + "V_A=V; #Voltage at point A, V\n", + "V_B=V-(I_circuit*R_A); #Voltage at point B, V\n", + "V_C=V-(I_circuit*(R_A+R_B)); #Voltage at point C, V\n", + "V_D=V-(I_circuit*(R_T-R_D)); #Voltage at point D, V\n", + "\n", + "print(\"(i) When meter is not connected:\");\n", + "print(\" Voltage at point A=%dV.\"%V_A);\n", + "print(\" Voltage at point B=%dV.\"%V_B);\n", + "print(\" Voltage at point C=%dV.\"%V_C);\n", + "print(\" Voltage at point D=%dV.\"%V_D);\n", + "\n", + "\n", + "#(ii) When meter is connected:\n", + "#(a) Since, point A is directly connected to the source, voltage at point A is equal to source voltage.\n", + "V_A=V; #Voltage at point A, V\n", + "\n", + "#(b)\n", + "R_T_B=R_A + round((R_T-R_A)*R_meter/(R_meter + (R_T-R_A)),2); #Total circuit resistance, k\u03a9\n", + "I_circuit=round(V/R_T_B,2); #Circuit current, mA\n", + "V_B=I_circuit*(R_T-R_A)*R_meter/(R_meter + (R_T-R_A)); #Voltage at point B, V\n", + "\n", + "\n", + "#(c)\n", + "R_T_C=(R_A+R_B) + (R_T-R_A-R_B)*R_meter/(R_meter + (R_T-R_A-R_B)); #Total circuit resistance, k\u03a9\n", + "I_circuit=V/R_T_C; #Circuit current, mA\n", + "V_C=floor((I_circuit*(R_T-R_A-R_B)*R_meter/(R_meter + (R_T-R_A-R_B)))*10)/10; #Voltage at point C, V\n", + "\n", + "\n", + "\n", + "#(c)\n", + "R_T_D=(R_T-R_D) + R_D*R_meter/(R_meter + R_D); #Total circuit resistance, k\u03a9\n", + "I_circuit=round(V/R_T_D,2); #Circuit current, mA\n", + "V_D=I_circuit*(R_D*R_meter)/(R_meter + R_D); #Voltage at point D, V\n", + "\n", + "\n", + "print(\"(ii) When meter is connected:\");\n", + "print(\" Voltage at point A=%dV.\"%V_A);\n", + "print(\" Voltage at point B=%dV.\"%V_B);\n", + "print(\" Voltage at point C=%.1fV.\"%V_C);\n", + "print(\" Voltage at point D=%.1fV.\"%V_D);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) When meter is not connected:\n", + " Voltage at point A=100V.\n", + " Voltage at point B=80V.\n", + " Voltage at point C=60V.\n", + " Voltage at point D=30V.\n", + "(ii) When meter is connected:\n", + " Voltage at point A=100V.\n", + " Voltage at point B=63V.\n", + " Voltage at point C=42.8V.\n", + " Voltage at point D=22.2V.\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.6 : Page number 614\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=12.0; #Supply voltage, V\n", + "R_m=1.0; #Meter resistance, k\u03a9\n", + "I_m_fsd=2.0; #Full scale deflection of meter current, mA\n", + "beta=80.0; #Base current amplification factor\n", + "E=5.0; #Voltage to be measured, V\n", + "V_BE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "V_E=E-V_BE; #Emitter voltage, V\n", + "\n", + "#(i)\n", + "#I_m_fsd=V_E/(R_s+R_m), (OHM's LAW)\n", + "R_s=((V_E/I_m_fsd)-R_m)*1000; #Multiplier resistor, \u03a9\n", + "\n", + "#(ii)\n", + "IB=I_m_fsd/beta; \t\t\t\t#Base current, mA\n", + "R_i=E/IB; \t\t\t#Input resistance of voltmeter, k\u03a9\n", + "\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The multiplier resistor=%d\u03a9.\"%R_s);\n", + "print(\"(ii) The voltmeter input resistance=%dk\u03a9\"%R_i);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The multiplier resistor=1150\u03a9.\n", + "(ii) The voltmeter input resistance=200k\u03a9\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.7 : Page number 614\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20; #Supply voltage, V\n", + "Rs_Rm=9.3; #Sum of multipier resistance and meter resistance, k\u03a9\n", + "I_m=1; #Meter current, mA\n", + "beta=100; #Base current amplification factor\n", + "E=10; #Voltage to be measured, V\n", + "V_BE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "V_E=E-V_BE; #Emitter voltage, V\n", + "I_m=V_E/Rs_Rm; #Meter current, mA\n", + "\n", + "#(ii)\n", + "I_B=I_m/beta; #Base current, mA\n", + "R_i_T=(E/I_B)/1000; #Input resistance of voltmeter, with transistor, M\u03a9\n", + "R_i_WT=Rs_Rm; #Input resistance of voltmeter, without transistor, k\u03a9\n", + "\n", + "#Result\n", + "print(\"(i) The meter current=%dmA\"%I_m);\n", + "print(\"(ii) The input resistance of voltmeter with transistor=%dM\u03a9.\"%R_i_T);\n", + "print(\" The input resistance of voltmeter without transistor=%.1fk\u03a9.\"%R_i_WT);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The meter current=1mA\n", + "(ii) The input resistance of voltmeter with transistor=1M\u03a9.\n", + " The input resistance of voltmeter without transistor=9.3k\u03a9.\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.8 : Page number 614-615\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20; #Supply voltage, V\n", + "Rs_Rm=9.3; #Sum of multipier resistance and meter resistance, k\u03a9\n", + "I_m=1; #Meter current, mA\n", + "beta=100; #Base current amplification factor\n", + "E=5; #Voltage to be measured, V\n", + "V_BE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "I_m=(E-V_BE)/Rs_Rm; #Meter current, mA\n", + "\n", + "#Result\n", + "print(\"The meter current=%.2fmA\"%I_m);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The meter current=0.46mA\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.9 : Page number 616\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "from math import floor\n", + "\n", + "#Variable declaration\n", + "I_m_fsd=100.0; #Full scale deflection of meter current, \u03bcA\n", + "R_m=1.0; #Meter resistance, k\u03a9\n", + "V_rms=100.0; #r.m.s voltage to be measured, V\n", + "V_F=0.7; #Forward voltage drop of rectifier diode, V \n", + "\n", + "#Calculation\n", + "V_m=round(sqrt(2)*V_rms,1); #Peak value of applied voltage, V\n", + "V_rectifier_drop=2*V_F; #Total rectifier drop, V\n", + "I_peak=round(I_m_fsd/0.637,2); #Peak f.s.d current, \u03bcA\n", + "R_s=floor(((((V_m-V_rectifier_drop)/(I_peak*10**-6))-(R_m*1000))/1000)*10)/10; #Multiplier resistance, k\u03a9 (OHM's LAW)\n", + "\n", + "\n", + "#Result\n", + "print(\"The multiplier resistance=%.1fk\u03a9.\"%R_s);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The multiplier resistance=890.7k\u03a9.\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.10 : Page number 616\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "I_av=75; #Full scale deflection of meter current, \u03bcA\n", + "R_s=708; #Multiplier resistor, k\u03a9\n", + "R_m=900; #Meter coil resistor, \u03a9\n", + "\n", + "#Calculation\n", + "I_peak=I_av*10**-6/0.637; #Peak f.s.d meter current, A\n", + "R_T=R_s*1000+R_m; #Total circuit resistance, \u03a9\n", + "\n", + "#I_peak=(Vm-V_drop)/R_T; (OHM's LAW)\n", + "#And, Vm=sqrt(2)*Vrms\n", + "V_rms=(I_peak*R_T+(2*0.7))/sqrt(2) ; #applied r.m.s voltage, V\n", + "\n", + "\n", + "#Result\n", + "print(\"The applied r.m.s voltage=%dV\"%V_rms);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The applied r.m.s voltage=60V\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.11 : Page number 618\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "deflection_sensitivity=0.01; #Deflection sensitivity, mm/V\n", + "V=400; #Applied voltage, V\n", + "\n", + "#Calculation\n", + "spot_shift=V*deflection_sensitivity; #Spot shift produced, mm\n", + "\n", + "\n", + "#Result\n", + "print(\"The shift produced in the spot=%dmm.\"%spot_shift);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The shift produced in the spot=4mm.\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.12 : Page number 618-619\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "deflection_sensitivity=0.03; #Deflection sensitivity, mm/V\n", + "spot_shift=3; #Spot shift produced, mm\n", + "\n", + "\n", + "#Calculation\n", + "#Since, spot_shift=Applied_Voltage*deflection_sensitivity,\n", + "V=spot_shift/deflection_sensitivity; #Applied voltage, V\n", + "\n", + "\n", + "#Result\n", + "print(\"Applied voltage=%dV.\"%V);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Applied voltage=100V.\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.13 : Page number 622\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "deflection=2; #Deflection produced by applied voltage, cm\n", + "V=200; #Applied voltage, V\n", + "deflection_by_another_voltage=3; #Deflection by another voltage, cm\n", + "\n", + "#Calculation\n", + "deflection_sensitivity=V/deflection; #deflection sensitivity, V/cm\n", + "V_unknown=deflection_sensitivity*deflection_by_another_voltage; #Unknown voltage, V\n", + "\n", + "#Result\n", + "print(\"The unknown voltage=%dV.\"%V_unknown);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The unknown voltage=300V.\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 22.14 : Page number 622\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "f_H=1000; #Frequency applied to horizontal plates, Hz\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Loops_H=1; #Number of loops cut by horizontal line\n", + "Loops_V=1; #Number of loops cut by vertical line\n", + "f_V=f_H*(Loops_H/Loops_V); #Unknown frequency, Hz\n", + "\n", + "print(\"(i) Unknown frequency=%dHz.\"%f_V);\n", + "\n", + "#(ii)\n", + "Loops_H=2; #Number of loops cut by horizontal line\n", + "Loops_V=1; #Number of loops cut by vertical line\n", + "f_V=f_H*(Loops_H/Loops_V); #Unknown frequency, Hz\n", + "\n", + "print(\"(ii) Unknown frequency=%dHz.\"%f_V);\n", + "\n", + "#(iii)\n", + "Loops_H=6; #Number of loops cut by horizontal line\n", + "Loops_V=1; #Number of loops cut by vertical line\n", + "f_V=f_H*(Loops_H/Loops_V); #Unknown frequency, Hz\n", + "\n", + "print(\"(iii) Unknown frequency=%dHz.\"%f_V);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Unknown frequency=1000Hz.\n", + "(ii) Unknown frequency=2000Hz.\n", + "(iii) Unknown frequency=6000Hz.\n" + ] + } + ], + "prompt_number": 21 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter23_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter23_2.ipynb new file mode 100644 index 00000000..19741354 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter23_2.ipynb @@ -0,0 +1,133 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:87bd5c8d9448f5bb2e75909f89934a6fb2b64e65e6ea37b085ce080a58026071" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 23 : INTEGRATED CIRCUITS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.1: Page number 637" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=240; #Adjusted resistance of R2 resistor of LM317 voltage regulator, in kilo ohm\n", + "R2=2.4; #Fixed value of R1 resistor of LM317 voltage regulator, in ohm\n", + "\n", + "#Calculations\n", + "#Output voltage of LM317 voltage regulator IC = 1.25(R2/R1 +1)\n", + "Vout=1.25*((R2*1000)/R1 + 1); #Regulated d.c output voltage for the circuit in V\n", + "\n", + "#Results\n", + "print(\"The regulated d.c output voltage = %.2fV\"%Vout);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The regulated d.c output voltage = 13.75V\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.2 : Page number 638" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R=1.2; #Value of resistance of monostable multivibrator in kilo ohm\n", + "C=0.1; #Value of capacitance of monostable multivibrator in microfarad\n", + "\n", + "#Calculations\n", + "T=1.1*(R*1000)*C; #Time for which the circuit is ON, in microseconds\n", + "\n", + "#Results\n", + "print(\"Time for which the circuit is ON = %d microseconds.\"%T); \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Time for which the circuit is ON = 132 microseconds.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 23.3 : Page number 639\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=3.0; #Resistance of R1 resistor of 555 timer circuit in kilo ohm\n", + "R2=2.7; #Resistance of R2 resistor of 555 timer circuit in kilo ohm\n", + "C=0.033; #Capacitance of the capacitor of 555 timer circuit in microfarad\n", + "\n", + "#Calculations\n", + "f=1.44/(((R1*1000) + 2*(R2*1000))*(C*pow(10,-6))); #Frequency of the circuit in Hz\n", + "f=f/1000; #Frequency of the circuit in kHz\n", + "\n", + "#Results\n", + "print(\"The frequency of the circuit = %.2fkHz\"%f);\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of the circuit = 5.19kHz\n" + ] + } + ], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter24_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter24_2.ipynb new file mode 100644 index 00000000..e63c17a6 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter24_2.ipynb @@ -0,0 +1,604 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:947f358cf49d029c94d008f72a340051744678cf2e36ecc199100b78d31fcba5" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 24 : HYBRID PARAMETERS" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.1 : Page number 644-645\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=10.0; #1st resistor, \u03a9\n", + "R2=5.0; #2nd resistor, \u03a9\n", + "\n", + "\n", + "#Calculation\n", + "print(\"To find h11 and h21, output terminals are shorted.\");\n", + "h11=R1; #Input impedance with output shorted, \u03a9\n", + "\n", + "print(\"h11=%d\u03a9.\"%h11);\n", + "\n", + "print(\"Output current flowing into the box= input current flowing out of the box.\");\n", + "print(\"i2=-i1\"); #Output current flowing into the box= input current flowing out of the box.\n", + "print(\"h21=i2/i1 = -i1/i1= -1.\"); #Current gain with output shorted.\n", + "\n", + "\n", + "print(\"For finding h22 and h12, voltage source is connected at the output\");\n", + "#As, there will be no current through 10k\u03a9 resistor due to open circuited input,\n", + "print(\"v1=v2\"); #Output voltage is equal to input voltage(equal to voltage drop across 5k\u03a9 resistor)\n", + "print(\"h12=v1/v2 = v2/v2 = 1\"); #Voltage feedback ratio with input terminals open\n", + "\n", + "h22=1/R2; #Output admittance, mho\n", + "print(\"h22=%.1f mho\"%h22);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "To find h11 and h21, output terminals are shorted.\n", + "h11=10\u03a9.\n", + "Output current flowing into the box= input current flowing out of the box.\n", + "i2=-i1\n", + "h21=i2/i1 = -i1/i1= -1.\n", + "For finding h22 and h12, voltage source is connected at the output\n", + "v1=v2\n", + "h12=v1/v2 = v2/v2 = 1\n", + "h22=0.2 mho\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.2 : Page number 645-646\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=4.0; #1st resistor(at the input side), \u03a9\n", + "R2=4.0; #2nd resistor(at the middle), \u03a9\n", + "R3=4.0; #3rd resistor(at the output side), \u03a9\n", + "\n", + "#Calculation\n", + "print(\"To find h11 and h21, output terminals are shorted.\");\n", + "h11=R1 + (R2*R3/(R2+R3)); #Input impedance with output shorted, \u03a9\n", + "print(\"h11=%d\u03a9.\"%h11);\n", + "\n", + "#As the input current gets divided in half due to R2=R3.\n", + "print(\"Output current flowing into the box=negative of half of input current flowing out of the box.\");\n", + "print(\"i2=-i1/2 = -0.5i1\"); \n", + "print(\"h21=i2/i1 = -0.5i1/i1= -0.5.\"); #Current gain with output shorted.\n", + "\n", + "print(\"For finding h22 and h12, voltage source is connected at the output\");\n", + "#As, there will be no current through the 1st 4k\u03a9 resistor due to open circuited input,\n", + "#Voltage gets equally divided across R2 and R3 resistor\n", + "print(\"v1=v2/2 = 0.5v2\"); #Input voltage is equal to half of input voltage\n", + "print(\"h12=v1/v2 = 0.5v2/v2 = 0.5\"); #Voltage feedback ratio with input terminals open\n", + "\n", + "h22=1/(R2+R3); #Output admittance, mho\n", + "print(\"h22=%.3f mho\"%h22);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "To find h11 and h21, output terminals are shorted.\n", + "h11=6\u03a9.\n", + "Output current flowing into the box=negative of half of input current flowing out of the box.\n", + "i2=-i1/2 = -0.5i1\n", + "h21=i2/i1 = -0.5i1/i1= -0.5.\n", + "For finding h22 and h12, voltage source is connected at the output\n", + "v1=v2/2 = 0.5v2\n", + "h12=v1/v2 = 0.5v2/v2 = 0.5\n", + "h22=0.125 mho\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.3 ; Page number 649-650\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R1=10.0; #Resistor at the input side, \u03a9\n", + "R2=5.0; #Resistor at the middle, \u03a9\n", + "rL=5.0; #Load resistor, \u03a9\n", + "\n", + "#h-parameter values from 24.1\n", + "h11=10.0; #Input impedance with output shorted, \u03a9\n", + "h21=-1.0; #Current gain with output shorted\n", + "h12=1.0; #Voltage feedback ratio with input terminal open\n", + "h22=0.2; #Output admittance, mho\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Zin=h11-(h12*h21/(h22+(1/rL))); #Input impedance, \u03a9\n", + "\n", + "#(ii)\n", + "Av=-h21/(Zin*(h22+(1/rL))); #voltage gain,\n", + "\n", + "#Result\n", + "print(\"(i) The input impedance=%.1f\u03a9.\"%Zin );\n", + "print(\"(ii) The voltage gain=1/%d.\"%(1/Av));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The input impedance=12.5\u03a9.\n", + "(ii) The voltage gain=1/5.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.4 : Page number 652-653\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCE=10.0; #Collector-emitter voltage, V\n", + "IC=1.0; #Collector current, mA\n", + "rL=600.0; #a.c load seen by the transistor,\u03a9\n", + "\n", + "#h-parameters\n", + "hie=2000.0; #Input impedance with output shorted, \u03a9\n", + "hoe=10**-4; #Output impedance, mho\n", + "hre=10**-3; #Voltage feedback ratio with input terminal open\n", + "hfe=50.0; #Current gain with output shorted\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Zin=hie - (hre*hfe/(hoe+(1/rL))); #Input impedance, \u03a9\n", + "print(\"Input impedance=%.0f \u03a9. \\n As second term in the expression of Zin is small compared to first, Zin~hie=%d\u03a9.\"%(Zin,hie));\n", + "\n", + "#(ii)\n", + "Ai=hfe/(1+hoe*rL); #Current gain\n", + "print(\"Current gain=%d\"%Ai);\n", + "print(\"if hoe*rL<<1, then Ai~hfe=%d.\"%hfe);\n", + "\n", + "#(iii)\n", + "Av=-hfe/(Zin*(hoe+(1/rL))); #Voltage gain\n", + "print(\"Voltage gain=%.1f\"%Av);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Input impedance=1972 \u03a9. \n", + " As second term in the expression of Zin is small compared to first, Zin~hie=2000\u03a9.\n", + "Current gain=47\n", + "if hoe*rL<<1, then Ai~hfe=50.\n", + "Voltage gain=-14.4\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.5 : Page number 653\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import ceil\n", + "\n", + "#Variable declaration\n", + "VCE=5.0; #Collector-emitter voltage, V\n", + "IC=1.0; #Collector current, mA\n", + "rL=2.0; #a.c load seen by the transistor,\u03a9\n", + "\n", + "\n", + "#h-parameters\n", + "hie=1700.0; #Input impedance with output shorted, \u03a9\n", + "hoe=6*10**-6; #Output impedance, mho\n", + "hre=1.3*10**-4; #Voltage feedback ratio with input terminal open\n", + "hfe=38.0; #Current gain with output shorted\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Zin=hie - (hre*hfe/(hoe+(1/(rL*1000)))); #Input impedance, \u03a9\n", + "print(\"Input impedance=%.0f \u03a9.\"%Zin);\n", + "\n", + "#(ii)\n", + "Ai=ceil((hfe/round((1+hoe*rL*1000),3))*10)/10; #Current gain\n", + "print(\"Current gain=%.1f\"%Ai);\n", + "\n", + "#(iii)\n", + "Av=-hfe/(Zin*(hoe+(1/(rL*1000)))); #Voltage gain\n", + "print(\"Voltage gain=%.1f\"%abs(Av));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Input impedance=1690 \u03a9.\n", + "Current gain=37.6\n", + "Voltage gain=44.4\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.6 : Page number 653-654\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Function for calculating parallel resistance\n", + "def pr(r1,r2):\n", + " return r1*r2/(r1+r2);\n", + "\n", + "\n", + "#Variable declaration\n", + "RC=10.0; #Collector resistance, k\u03a9\n", + "RL=30.0; #Load resistance, k\u03a9\n", + "R1=80.0; #Resistor R1, k\u03a9\n", + "R2=40.0; #Resistor R2, k\u03a9\n", + "\n", + "#h-parameters\n", + "hie=1500.0; #Input impedance with output shorted, \u03a9\n", + "hoe=5*10**-5; #Output impedance, mho\n", + "hre=4*10**-4; #Voltage feedback ratio with input terminal open\n", + "hfe=50.0; #Current gain with output shorted\n", + "\n", + "\n", + "#Calculation\n", + "rL=((RC*RL)/(RC+RL))*1000; #a.c load as seen by resistance, \u03a9\n", + "\n", + "#(i)\n", + "Zin=round(hie - (hre*hfe/(hoe+(1/rL))),-1); #Input impedance, \u03a9\n", + "print(\"Input impedance=%.0f \u03a9.\"%Zin);\n", + "\n", + "#Input impedance of stage=input impedance || bias resistors\n", + "Zin_stage=round(pr(pr(R1,R2)*1000,Zin),-1); #\u03a9\n", + "print(\"Input impedance of the stage=%.0f \u03a9.\"%Zin_stage);\n", + "\n", + "#(ii)\n", + "Av=-hfe/(Zin*(hoe+(1/rL))); #Voltage gain\n", + "print(\"Voltage gain=%d\"%Av);\n", + "print(\"The negative sign represents phase reversal.\");\n", + "\n", + "\n", + "#(iii)\n", + "Zout=(1/(hoe-(hfe*hre/hie)))/1000; #Output impedance of transistor, k\u03a9\n", + "Zout_stage=pr(Zout,pr(RL,RC)); #Output impedance of the stage, k\u03a9\n", + "print(\"Output impedance=%.2f k\u03a9.\"%Zout);\n", + "print(\"Output impedance of the stage=%.2f k\u03a9.\"%Zout_stage);\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Input impedance=1390 \u03a9.\n", + "Input impedance of the stage=1320 \u03a9.\n", + "Voltage gain=-196\n", + "The negative sign represents phase reversal.\n", + "Output impedance=27.27 k\u03a9.\n", + "Output impedance of the stage=5.88 k\u03a9.\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.7 : Page number 654\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Function for calculating parallel resistance\n", + "def pr(r1,r2):\n", + " return r1*r2/(r1+r2);\n", + "\n", + "#Variable declaration\n", + "RC=4.7; #Collector resistance, k\u03a9\n", + "RL=10.0; #Load resistance, k\u03a9\n", + "R1=33.0; #Resistor R1, k\u03a9\n", + "R2=10.0; #Resistor R2, k\u03a9\n", + "\n", + "#h-parameters\n", + "hie=1; #Input impedance with output shorted, k\u03a9\n", + "hoe=25; #Output impedance, \u03bcS\n", + "hre=2.5*10**-4; #Voltage feedback ratio with input terminal open\n", + "hfe=50; #Current gain with output shorted\n", + "\n", + "\n", + "#Calculation\n", + "rL=(RC*RL)/(RC+RL); #a.c load as seen by resistance, k\u03a9\n", + "\n", + "Ai=hfe/(1+hoe*10**-6*rL*1000); #Current gain\n", + "print(\"Current gain=%.1f\"%Ai);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Current gain=46.3\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.8 : Page number 654-655\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R_S=100.0; #Series resistance, \u03a9 \n", + "\n", + "#h-parameters\n", + "hie=1.0; #Input impedance with output shorted, k\u03a9\n", + "hoe=25.0; #Output impedance, \u03bcS\n", + "hre=2.5*10**-4; #Voltage feedback ratio with input terminal open\n", + "hfe=50.0; #Current gain with output shorted\n", + "\n", + "\n", + "#Calculation\n", + "Zout=(1/(hoe*10**-6-(hfe*hre/(hie*1000+R_S))))/1000; #Output impedance of transistor, k\u03a9\n", + "print(\"Output impedance=%.1f k\u03a9.\"%Zout);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Output impedance=73.3 k\u03a9.\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.9 : Page number 656\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import floor\n", + "\n", + "#Function for calculating parallel resistance\n", + "def pr(r1,r2):\n", + " return r1*r2/(r1+r2);\n", + "\n", + "#Variable declaration\n", + "RC=12.0; #Collector resistance, k\u03a9\n", + "RL=15.0; #Load resistance, k\u03a9\n", + "R1=50.0; #Resistor R1, k\u03a9\n", + "R2=5.0; #Resistor R2, k\u03a9\n", + "hie=1.94; #Input impedance with output shorted, k\u03a9\n", + "hfe=71.0; #Current gain with output shorted\n", + "\n", + "\n", + "\n", + "#Calculation\n", + "rL=(RC*RL)/(RC+RL); #a.c load as seen by resistance, \u03a9\n", + "\n", + "#(i)\n", + "Zin_base=hie; #Transistor input impedance, k\u03a9\n", + "Zin_circuit=floor(pr(Zin_base,pr(R1,R2))*100)/100; #Circuit input impedance, k\u03a9\n", + "print(\"Circuit input impedance=%.2fk\u03a9\"%Zin_circuit);\n", + "\n", + "\n", + "#(ii)\n", + "Av=hfe*rL/hie; #Voltage gain\n", + "print(\"Voltage gain=%.0f\"%Av);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Circuit input impedance=1.35k\u03a9\n", + "Voltage gain=244\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.10 : Page number 656\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "hie_min=600; #Minimum input impedance with output shorted, \u03a9\n", + "hfe_min=110; #Minimum current gain with output shorted\n", + "hie_max=800; #Maximum input impedance with output shorted, \u03a9\n", + "hfe_max=140; #Maximum current gain with output shorted\n", + "rL=460; #a.c collector load, \u03a9\n", + "\n", + "#Calculation\n", + "hie=round(sqrt(hie_min*hie_max)); #Input impedance with output shorted, \u03a9\n", + "hfe=round(sqrt(hfe_min*hfe_max)); #Current gain with output shorted\n", + "Av=hfe*rL/hie; #Voltage gain\n", + "\n", + "#Result\n", + "print(\"Voltage gain=%.1f\"%Av);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Voltage gain=82.3\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 24.11 : Page number 658-659\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#(a)Variable declaration\n", + "Ib=10; #Base current, \u03bcA\n", + "Ic=1; #Collector current, mA\n", + "Vbe=10; #Base-emitter voltage, mV\n", + "\n", + "#Calculation\n", + "hie=Vbe*10**-3/(Ib*10**-6); #Input impedance with output shorted, \u03a9\n", + "hfe=Ic*10**-3/(Ib*10**-6); #Current gain with output shorted\n", + "\n", + "#(b) Variable declaration\n", + "Vbe=0.65; #Base-emitter voltage, mV\n", + "Ic=60; #Collector current, \u03bcA\n", + "Vce=1; #Collector-emitter voltage, V\n", + "\n", + "#Calculation\n", + "hre=Vbe*10**-3/Vce; #Voltage feedback ratio with input terminal open\n", + "hoe=Ic/Vce; #Output impedance, \u03bcmho\n", + "\n", + "\n", + "#Result\n", + "print(\"hie=%d\u03a9\"%hie);\n", + "print(\"hfe=%d\"%hfe);\n", + "print(\"hre=%.2fe\u201303\"%(hre*1000));\n", + "print(\"hoe=%d\u03bcmho\"%hoe);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "hie=1000\u03a9\n", + "hfe=100\n", + "hre=0.65e\u201303\n", + "hoe=60\u03bcmho\n" + ] + } + ], + "prompt_number": 20 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter25_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter25_2.ipynb new file mode 100644 index 00000000..d24cf79d --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter25_2.ipynb @@ -0,0 +1,2512 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CHAPTER 25 : OPERATIONAL AMPLIFIERS" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.1: Page number 664" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The output voltage of the differential amplifier = 10V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A=100.0; #Open-circuit voltage gain of differential amplifier\n", + "V1=3.25; #Input voltage to terminal 1 in V\n", + "V2=3.15; #Input voltage to terminal 2 in V\n", + "\n", + "#Calculations\n", + "V0=A*(V1-V2); #Output voltage in V\n", + "\n", + "#Results\n", + "print(\"The output voltage of the differential amplifier = %dV\"%V0);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.2: Page number 672" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The common mode rejection ratio = 10000.\n", + "The common mode rejection ratio in decibels= 80dB.\n" + ] + } + ], + "source": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "A_DM=2000.0; #Differential mode voltage gain\n", + "A_CM=0.2; #Common mode voltage gain\n", + "\n", + "#Calculations\n", + "CMRR=A_DM/A_CM; #Common mode rejection ratio\n", + "CMRR_dB=20*log10(CMRR); #Common mode rejection ratio in dB\n", + "\n", + "\n", + "#Results\n", + "print(\"The common mode rejection ratio = %d.\"%CMRR);\n", + "print(\"The common mode rejection ratio in decibels= %ddB.\"%CMRR_dB);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.3: Page number 672" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The common mode rejection ratio in decibels= 46dB.\n" + ] + } + ], + "source": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "VD_in=10.0; #Differential mode input in mV\n", + "VD_out=1.0; #Output for differential mode input in V\n", + "VC_in=10.0; #Common mode input in mV\n", + "VC_out=5.0; #Output for common mode input in mV\\\n", + "\n", + "#Calculations\n", + "A_DM=(VD_out*1000)/VD_in; #Differntial mode voltage gain\n", + "A_CM=VC_out/VC_in; #Common mode voltage gain\n", + "CMRR=A_DM/A_CM; #Common mode rejection ratio\n", + "CMRR_dB=20*log10(CMRR); #Common mode rejection ratio in dB\n", + "\n", + "#Results\n", + "print(\"The common mode rejection ratio in decibels= %ddB.\"%CMRR_dB);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.4: Page number 672" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage =7.5V\n", + "Noise on output = 4.7x10^-6V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A_DM=150.0; #Differential mode voltage gain\n", + "CMRR_dB=90.0; #Common mode rejection ratio\n", + "V1=100.0; #Input voltage for terminal 1 in mV\n", + "V2=50.0; #Input voltage for terminal 2 in mV\n", + "V_noise=1.0; #Voltage of noise signal in mV\n", + "\n", + "#Calculation\n", + "\n", + "#Case(i)\n", + "V_out=A_DM*(V1-V2)/1000.0; #Output voltage for differntial mode input, in V\n", + "\n", + "#Since CMRR_dB=20*log10(differential mode gain/common mode gain),\n", + "A_CM=A_DM/pow(10,(CMRR_dB/20)); #Common mode gain\n", + "V_OUT_noise=A_CM*(V_noise/1000); #Noise on output in V\n", + "\n", + "\n", + "#Results\n", + "print(\"Output voltage =%.1fV\"%V_out);\n", + "print(\"Noise on output = %.1fx10^-6V\"%(V_OUT_noise*pow(10,6)));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.5 : Page number 672-673" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Common mode gain =0.083\n", + "Common mode rejection ratio in decibels=89.5dB\n", + "r.m.s output signal =1.25V\n", + "r.m.s interfernce output voltage = 83mV\n" + ] + } + ], + "source": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "A_DM=2500.0; #Differential mode voltage gain\n", + "CMRR=30000.0; #Common mode rejection ratio\n", + "Input_signal=500.0; #Single ended input r.m.s signal in microvolts\n", + "Interference=1.0; #Interference signal, in V\n", + "\n", + "#Calculations\n", + "\n", + "#(i)\n", + "A_CM=A_DM/CMRR; #Common mode gain\n", + "\n", + "#(ii)\n", + "CMRR_dB=20*log10(CMRR); #Common mode rejection ratio in decibels\n", + "\n", + "#(iii)\n", + "V_out=A_DM*(Input_signal/pow(10,6)-0); #r.m.s output signal in V\n", + "\n", + "#(iv)\n", + "Interference_out=A_CM*Interference; #r.m.s interference output in V\n", + "Interference_out=Interference_out*1000; #r.m.s interference output in mV\n", + "\n", + "\n", + "#Results\n", + "print(\"Common mode gain =%.3f\"%A_CM);\n", + "print(\"Common mode rejection ratio in decibels=%.1fdB\"%CMRR_dB);\n", + "print(\"r.m.s output signal =%.2fV\"%V_out);\n", + "print(\"r.m.s interfernce output voltage = %dmV\"%Interference_out);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.6 : Page number 674-675" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VE=-0.7V\n", + "IE=0.452mA\n", + "IE1=0.226mA\n", + "IE2=0.226mA\n", + "IC1=0.226mA\n", + "IC2=0.226mA\n", + "IB1=2.26μA\n", + "IB2=2.26μA\n", + "VC1=12V\n", + "VC2=9.7V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=12; #Collector supply voltage, V\n", + "VEE=12; #Emitter supply voltage, V\n", + "RB=10; #Base resistor, kΩ\n", + "RC2=10; #Collector resistor, kΩ\n", + "RE=25; #Emitter resistor, kΩ\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=100; #Base amplification factor\n", + "\n", + "#Calculation\n", + "VE=-VBE; #Emitter voltage, V (Ignoring the base current)\n", + "IE=(VEE-VBE)/RE; #Tail current, mA\n", + "IE1=IE/2; #Emitter current of 1st transistor, mA\n", + "IE2=IE1; #Emitter current of 2nd transistor, mA\n", + "IC1=IE1; #Collector current(= emitter current) of 1st transistor, mA\n", + "IC2=IC1; #Collector current of 2nd transistor, mA\n", + "IB1=(IC1/beta)*1000; #Base current of 1st transistor, μA\n", + "IB2=IB1; #Base current of 2nd transistor, μA\n", + "VC1=VCC; #Collector voltage of 1st transistor, V\n", + "VC2=VCC-IC2*RC2; #Collector voltage of 2nd transistor, V\n", + "\n", + "#Result\n", + "print(\"VE=%.1fV\"%VE);\n", + "print(\"IE=%.3fmA\"%IE);\n", + "print(\"IE1=%.3fmA\"%IE1);\n", + "print(\"IE2=%.3fmA\"%IE2);\n", + "print(\"IC1=%.3fmA\"%IC1);\n", + "print(\"IC2=%.3fmA\"%IC2);\n", + "print(\"IB1=%.2fμA\"%IB1);\n", + "print(\"IB2=%.2fμA\"%IB2);\n", + "print(\"VC1=%dV\"%VC1);\n", + "print(\"VC2=%.1fV\"%VC2);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.7 : Page number 675" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The output voltage=7.85V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=15; #Collector supply voltage, V\n", + "VEE=15; #Emitter supply voltage, V\n", + "RB=33; #Base resistor, kΩ\n", + "RC=15; #Collector resistor, kΩ\n", + "RE=15; #Emitter resistor, kΩ\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "IE_tail=(VEE-VBE)/RE; #Tail current, mA\n", + "IE=round(IE_tail/2,3); #Emitter current in each transistor, mA\n", + "IC=IE; #Collector current(=emitter current), mA\n", + "Vout=VCC-IC*RC; #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"The output voltage=%.2fV.\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.8 : Page number 675" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) IB1=5.56μA\n", + " IB2=4.55μA\n", + "(ii) VB1=-0.183V\n", + " VB2=-0.15V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage, V\n", + "VEE=15.0; #Emitter supply voltage, V\n", + "RB=33.0; #Base resistor, kΩ\n", + "RC=15.0; #Collector resistor, kΩ\n", + "RE=15.0; #Emitter resistor, kΩ\n", + "VBE=0; #Base-emitter voltage, V\n", + "beta_dc_l=90.0; #base current amplification factor for left transistor\n", + "beta_dc_r=110.0; #base current amplification factor for right transistor\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "IE_tail=(VEE-VBE)/RE; #Tail current, mA\n", + "IE=IE_tail/2; #Emitter current in each transistor, mA\n", + "IB1=(IE/beta_dc_l)*1000; #Base current of 1st transistor, μA\n", + "IB2=(IE/beta_dc_r)*1000; #Base current of 2nd transistor, μA\n", + "\n", + "#(ii)\n", + "VB1=-IB1/1000*RB; #Base voltage of 1st transistor, V\n", + "VB2=-IB2/1000*RB; #Base voltage of 1st transistor, V\n", + "\n", + "#Result\n", + "print(\"(i) IB1=%.2fμA\"%IB1);\n", + "print(\" IB2=%.2fμA\"%IB2);\n", + "print(\"(ii) VB1=%.3fV\"%VB1);\n", + "print(\" VB2=%.2fV\"%VB2);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.9 : Page number 675-676" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VE=-0.7V\n", + "Emitter current in each transistor=0.5mA.\n", + "IC1~IE1=0.5mA and IC2~IE2=0.5mA\n", + "VC1=VC2=10V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage, V\n", + "VEE=15.0; #Emitter supply voltage, V\n", + "RB=10.0; #Base resistor, kΩ\n", + "RC1=10.0; #Collector resistor of 1st transistor, kΩ\n", + "RC2=10.0; #Collector resistor of 2nd transistor, kΩ\n", + "IE=1.0; #Tail current, mA\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "VE=-VBE; #Emitter voltage, V (Ignoring the base current)\n", + "IE1=IE/2.0; #Emitter current of 1st transistor, mA\n", + "IE2=IE1; #Emitter current of 2nd transistor, mA\n", + "IC1=IE1; #Collector current(= emitter current) of 1st transistor, mA\n", + "IC2=IE2; #Collector current of 2nd transistor, mA\n", + "VC1=VCC-IC1*RC1; #Collector voltage of 1st transistor, V\n", + "VC2=VCC-IC2*RC2; #Collector voltage of 2nd transistor, V\n", + "\n", + "\n", + "#Result\n", + "print(\"VE=%.1fV\"%VE);\n", + "print(\"Emitter current in each transistor=%.1fmA.\"%(IE/2.0));\n", + "print(\"IC1~IE1=%.1fmA and IC2~IE2=%.1fmA\"%(IE1,IE2));\n", + "print(\"VC1=VC2=%dV.\"%VC2);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.10 : Page number 676-677" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VE=0.7V\n", + "Tail current=0.452mA.\n", + "Emitter current in each transistor=0.226mA.\n", + "IC1~IE1=0.226mA and IC2~IE2=0.226mA\n", + "VC1=-12V\n", + "VC2=-9.74V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage, V\n", + "VEE=12.0; #Emitter supply voltage, V\n", + "RC2=10.0; #Collector resistor of 2nd transistor, kΩ\n", + "RE=25.0; #Emitter current, kΩ\n", + "VBE=-0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "VE=-VBE; #Emitter voltage, V (Ignoring the base current)\n", + "IE=(VCC-VE)/RE; #Tail current, mA\n", + "IE1=IE/2.0; #Emitter current of 1st transistor, mA\n", + "IE2=IE1; #Emitter current of 2nd transistor, mA\n", + "IC1=IE1; #Collector current(= emitter current) of 1st transistor, mA\n", + "IC2=IE2; #Collector current of 2nd transistor, mA\n", + "VC1=-VEE; #Collector voltage of 1st transistor, V\n", + "VC2=-VEE+IC2*RC2; #Collector voltage of 2nd transistor, V\n", + "\n", + "\n", + "#Result\n", + "print(\"VE=%.1fV\"%VE);\n", + "print(\"Tail current=%.3fmA.\"%IE);\n", + "print(\"Emitter current in each transistor=%.3fmA.\"%(IE/2.0));\n", + "print(\"IC1~IE1=%.3fmA and IC2~IE2=%.3fmA\"%(IC1,IC2));\n", + "print(\"VC1=%dV\"%VC1);\n", + "print(\"VC2=%.2fV\"%VC2);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.11 : Page number 679" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The input offset current=15.1nA\n", + "(ii) The input bias current=75.8nA\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=15; #Collector supply voltage, V\n", + "VEE=15; #Emitter supply voltage, V\n", + "RB=1; #Base resistor, MΩ\n", + "RC2=1; #Collector resistor, MΩ\n", + "RE=1; #Emitter resistor, MΩ\n", + "VBE=0; #Base-emitter voltage, V (Neglected)\n", + "beta_dc_l=90.0; #base current amplification factor for left transistor\n", + "beta_dc_r=110.0; #base current amplification factor for right transistor\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "IE=(VEE-VBE)/RE; #Tail current, μA\n", + "IE1=IE/2.0; #Emitter current of 1st transistor, μA\n", + "IE2=IE1; #Emitter current of 2nd transistor, μA\n", + "IB1=round((IE1/beta_dc_l)*1000,1); #Base current of 1st transistor, nA\n", + "IB2=round((IE2/beta_dc_r)*1000,1); #Base current of 2nd transistor, nA\n", + "I_in_offset=IB1-IB2; #Input offset current, nA\n", + "\n", + "#(ii)\n", + "I_in_bias=(IB1+IB2)/2; #Input bias current, nA\n", + "\n", + "#Result\n", + "print(\"(i) The input offset current=%.1fnA\"%I_in_offset);\n", + "print(\"(ii) The input bias current=%.1fnA\"%I_in_bias);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.12 : Page number 679" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The two base currents are: IB1=90nA and IB2=70nA.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "I_in_offset=20; #Input offset current, nA\n", + "I_in_bias=80; #Input bias current, nA\n", + "\n", + "#Calculation\n", + "IB1=I_in_bias+I_in_offset/2; #Base current in 1st transistor, nA\n", + "IB2=I_in_bias-I_in_offset/2; #Base current in 2nd transistor, nA\n", + "\n", + "\n", + "#Result\n", + "print(\"The two base currents are: IB1=%dnA and IB2=%dnA.\"%(IB1,IB2));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.13 : Page number 679-680" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The input offset voltage=2mV.\n", + "The output offset voltage=0.3V.\n" + ] + } + ], + "source": [ + "#Variable declration\n", + "I_in_offset=20; #Input offset current, nA\n", + "I_in_bias=80; #Input bias current, nA\n", + "A=150; #Voltage gain\n", + "RB=100; #Base resistor, kΩ\n", + "\n", + "\n", + "#Calculation\n", + "V_io=(I_in_offset*10**-9*RB*1000)*1000; #Input offset voltage, mV\n", + "V_out_offset=(A*V_io)/1000; #Output offset voltage, V\n", + "\n", + "#Result\n", + "print(\"The input offset voltage=%dmV.\"%V_io);\n", + "print(\"The output offset voltage=%.1fV.\"%V_out_offset);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.14 : Page number 682" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Output voltage=0.15V.\n", + "(ii) Output voltage=-0.15V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=15; #Collector supply voltage, V\n", + "VEE=15; #Emitter supply voltage, V\n", + "RE=1; #Emitter resistor, MΩ\n", + "RC=1; #Collector resistor, MΩ\n", + "\n", + "\n", + "#Calculation\n", + "IE=VEE/RE; #Tail current, μA\n", + "IE1=IE/2.0; #Emitter current of 1st transistor, μA\n", + "IE2=IE1; #Emitter current of 2nd transistor, μA\n", + "re=25/IE1; #a.c emitter resistance, kΩ\n", + "A_DM=RC/(2.0*re); #Differential voltage gain,\n", + "\n", + "#(i)\n", + "vin=1; #Input voltage, V\n", + "Vout=A_DM*vin; #Output voltage, V\n", + "\n", + "print(\"(i) Output voltage=%.2fV.\"%Vout);\n", + "\n", + "#(ii)\n", + "vin=-1; #Input voltage, V\n", + "Vout=A_DM*vin; #Output voltage, V;\n", + "print(\"(ii) Output voltage=%.2fV.\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.15 : Page number 682-683" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The input impedance=194kΩ.\n", + "(ii) The differential voltage gain=136.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=12; #Collector supply voltage, V\n", + "VEE=12; #Emitter supply voltage, V\n", + "RE=100; #Emitter resistor, kΩ\n", + "RC1=120; #Collector resistor of 1st transistor, kΩ\n", + "RC2=120; #Collector resistor of 2nd transistor, kΩ\n", + "beta=220; #Base amplification factor\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calcualtion\n", + "IE=((VEE-VBE)/RE)*1000; #Tail current, μA\n", + "IE1=IE/2.0; #Emitter current of 1st transistor, μA\n", + "IE2=IE1; #Emitter current of 2nd transistor, μA\n", + "re=(25/IE1)*1000; #a.c emitter resistance, Ω\n", + "Zin=2*beta*re/1000; #Input impedance, kΩ\n", + "A_DM=RC1*1000/(2.0*re); #Differential voltage gain,\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) The input impedance=%dkΩ.\"%Zin);\n", + "print(\"(ii) The differential voltage gain=%.0f.\"%A_DM);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.16: Page number 683-684" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Differential voltage gain=56.6.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "VCC=12; #Collector supply voltage, V\n", + "VEE=12; #Emitter supply voltage, V\n", + "RE=200; #Emitter resistor, kΩ\n", + "RC=100; #Collector resistor, kΩ\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "#Calculation\n", + "IE=round((VEE-VBE)/RE,4); #Tail current, mA\n", + "IE1=round(IE/2,4); #Emitter current of 1st transistor, mA\n", + "IE2=IE1; #Emitter current of 2nd transistor, mA\n", + "re=round(25/IE1,1); #a.c emitter resistance, Ω\n", + "A_DM=RC*1000/(2*re); #Differential voltage gain,\n", + "\n", + "#Result\n", + "print(\"Differential voltage gain=%.1f.\"%A_DM);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.17 : Page number 685-686" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Common mode rejection ratio=666.7.\n", + "Common mode rejection ratio in decibel=56.48dB\n" + ] + } + ], + "source": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "v1=0.5; #Voltage in terminal 1, mV\n", + "v2=-0.5; #Voltage in terminal 2, mV\n", + "vo=8.0; #Output voltage, V\n", + "vo_cm=12.0; #Common mode output, mV\n", + "\n", + "#Calculation\n", + "vin=v1-v2; #Differential input, mV\n", + "A_DM=vo/(vin/1000.0); #Differential mode gain,\n", + "vin_cm=1; #Common mode input, mV\n", + "A_CM=vo_cm/vin_cm; #Common mode gain\n", + "CMRR=A_DM/A_CM; #Common mode rejection ratio\n", + "CMRR_dB=20*log10(CMRR); #Common mode rejection ratio in dB\n", + "\n", + "#Result\n", + "print(\"Common mode rejection ratio=%.1f.\"%CMRR)\n", + "print(\"Common mode rejection ratio in decibel=%.2fdB\"%CMRR_dB);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.18 : Page number 686" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Common mode voltage gain=6.32.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A_DM=200000; #Differential mode gain\n", + "CMRR_dB=90; #Common mode rejection ratio, dB\n", + "\n", + "#Calculation\n", + "CMRR=10**(CMRR_dB/20.0); #Common mode rejection ratio\n", + "A_CM=A_DM/CMRR; #Common mode gain\n", + "\n", + "\n", + "\n", + "#Result\n", + "print(\"Common mode voltage gain=%.2f.\"%A_CM);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.19 : Page number 686" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The Common mode gain=0.0081\n", + "(ii) The common mode rejection ratio=81.8dB.\n" + ] + } + ], + "source": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "vin_cm=3.2; #Common input voltage, V\n", + "vout=26; #Output voltage, V\n", + "A_DM=100; #Open-circuit voltage gain\n", + "\n", + "#Calculation\n", + "#(i)\n", + "A_CM=vout*10**-3/vin_cm; #Common mode gain\n", + "\n", + "#(ii)\n", + "CMRR_dB=20*log10(A_DM/A_CM); #Common mode rejection ratio, dB\n", + "\n", + "#Result\n", + "print(\"(i) The Common mode gain=%.4f\"%A_CM);\n", + "print(\"(ii) The common mode rejection ratio=%.1fdB.\"%CMRR_dB);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.20 : Page number 686-687" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Common mode gain=0.25\n", + "(ii)Common mode rejection ratio=47.09dB\n" + ] + } + ], + "source": [ + "from math import log10\n", + "from math import floor\n", + "\n", + "#Variable declaration\n", + "VCC=12; #Collector supply voltage, V\n", + "VEE=12; #Emitter supply voltage, V\n", + "RE=200.0; #Emitter resistor, kΩ\n", + "RC=100.0; #Collector resistor, kΩ\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "A_CM=round(RC/(2*RE),2); #Common mode voltage gain\n", + "\n", + "#(ii)\n", + "IE=round((VEE-VBE)/RE,4); #Tail current, mA\n", + "IE1=round(IE/2,4); #Emitter current of 1st transistor, mA\n", + "IE2=IE1; #Emitter current of 2nd transistor, mA\n", + "re=round(25/IE1,1); #a.c emitter resistance, Ω\n", + "A_DM=RC*1000/(2*re); #Differential voltage gain,\n", + "CMRR_dB=floor(20*log10(A_DM/A_CM)*100)/100; #Common mode rejection ratio, dB\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) Common mode gain=%.2f\"%A_CM);\n", + "print(\"(ii)Common mode rejection ratio=%.2fdB\"%CMRR_dB);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.21 : Page number 691" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "f2=30kHz\n", + "ACL=75 or 37.5dB.\n" + ] + } + ], + "source": [ + "from math import log10\n", + "\n", + "#Variable declaration\n", + "ACL=500; #closed loop gain\n", + "f_unity=15; #frequency with cloased-loop unity gain, MHz\n", + "\n", + "\n", + "#Calculation\n", + "f2=f_unity*1000/500 #Upper frequency of bandwidth,kHz\n", + "BW=f2-0; #Bandwidth, kHz\n", + "A_CL=f_unity*1000/200; #Maximum value of A_CL when f2=200kHz\n", + "A_CL_dB=20*log10(A_CL); #Maximum value of A_CL in decibel\n", + "\n", + "\n", + "#Result\n", + "print(\"f2=%dkHz\"%f2);\n", + "print(\"ACL=%d or %.1fdB.\"%(A_CL,A_CL_dB));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.22 : Page number 691-692" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Operating Bandwidth=1.5MHz.\n", + "(ii) Operating Bandwidth=150kHz.\n", + "(iii) Operating Bandwidth=15kHz.\n" + ] + } + ], + "source": [ + "\n", + "#Variable declaration\n", + "GBW=1.5; #Gain-bandwidth, MHz\n", + "\n", + "#Calculation\n", + "#(i) For A_CL=1;\n", + "A_CL=1; #Closed loop gain\n", + "BW=GBW/A_CL; #Bandwidth, MHz\n", + "\n", + "print(\"(i) Operating Bandwidth=%.1fMHz.\"%BW);\n", + "\n", + "#(ii) For A_CL=10;\n", + "A_CL=10; #Closed loop gain\n", + "BW=(GBW/A_CL)*1000; #Bandwidth, kHz\n", + "\n", + "print(\"(ii) Operating Bandwidth=%dkHz.\"%BW);\n", + "\n", + "#(iii) For A_CL=100;\n", + "A_CL=100; #Closed loop gain\n", + "BW=(GBW/A_CL)*1000; #Bandwidth, kHz\n", + "\n", + "print(\"(iii) Operating Bandwidth=%dkHz.\"%BW);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.23 : Page number 692" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum operating frequency=9.95kHz.\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "slew_rate=0.5; #Slew rate, V/μs\n", + "V_supply=10; #Supply voltage, V\n", + "\n", + "\n", + "#Calculation\n", + "V_sat=V_supply-2; #Saturation voltage, V\n", + "V_pk=V_sat; #Maximum peak-output voltage, V\n", + "f_max=((slew_rate*10**6)/(2*pi*V_pk))/1000; #Maximum operating frequency, kHz\n", + "\n", + "#Result\n", + "print(\"Maximum operating frequency=%.2fkHz.\"%f_max);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.24 : Page number 692" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum operating frequency=796kHz\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "slew_rate=0.5; #Slew rate, V/μs\n", + "V_pk=100.0; #Peak-output voltage, mV\n", + "\n", + "\n", + "#Calculation\n", + "V_pk=V_pk/1000.0; #Peak-output voltage, V\n", + "f_max=(slew_rate*10**6/(2*pi*V_pk))/1000.0; #Maximum operating frequency, kHz\n", + "\n", + "#Result\n", + "print(\"Maximum operating frequency=%.0fkHz\"%f_max);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.25 : Page number 695-696" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Feedback resistor=220kΩ\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A_CL=-100; #Closed-loop voltage gain\n", + "Ri=2.2; #Input resistor, kΩ\n", + "\n", + "#Calculation\n", + "#Since, A_CL=-(Rf/Ri)\n", + "Rf=-A_CL*Ri; #Feedback resistor, kΩ\n", + "\n", + "#Result\n", + "print(\"Feedback resistor=%dkΩ\"%Rf);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.26 : Page number 696" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=-0.25V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "vin=2.5; #Input voltage, mV\n", + "Rf=200; #Feedback resistor, kΩ\n", + "Ri=2; #Input resistor, kΩ\n", + "\n", + "#Calculation\n", + "A_CL=-(Rf/Ri); #Closed-loop voltage gain\n", + "vout=A_CL*vin/1000; #Output voltage,V\n", + "\n", + "#Result\n", + "print(\"Output voltage=%.2fV\"%vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.27 : Page number 696" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Closed-loop voltage gain=-1\n", + "Therefore, output will have same amplitude but 180° phase inversion.\n" + ] + } + ], + "source": [ + "#Varaiable declaration\n", + "Rf=1.0; #Feedback resistor, kΩ\n", + "Ri=1.0; #Input resistor, kΩ\n", + "\n", + "#Calculation\n", + "A_CL=-(Rf/Ri); #Closed-loop voltage gain\n", + "\n", + "#Result\n", + "print(\"Closed-loop voltage gain=%d\"%A_CL);\n", + "print(\"Therefore, output will have same amplitude but 180° phase inversion.\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.28 : Page number 696-697" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Closed-loop voltage gain=-40\n", + "Supply voltage=±15V, saturation voltage=±13V. Since gain=-40, op-Amp will be driven to saturation.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=40; #Feedback resistor, kΩ\n", + "Ri=1; #Input resistor, kΩ\n", + "\n", + "#Calculation\n", + "A_CL=-(Rf/Ri); #Closed-loop voltage gain\n", + "\n", + "\n", + "#Result\n", + "print(\"Closed-loop voltage gain=%d\"%A_CL);\n", + "print(\"Supply voltage=±15V, saturation voltage=±13V. Since gain=-40, op-Amp will be driven to saturation.\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.29 : Page number 697" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) A_CL=-10.\n", + "(ii) Zi=10kΩ\n", + "(iii) Maximum operating frequency=15.9kHz.\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "Rf=100; #Feedback resistor, kΩ\n", + "Ri=10; #Input resistor, kΩ\n", + "Vpp=1; #Input peak-peak voltage, V\n", + "slew_rate=0.5; #Slew rate, V//μs\n", + "\n", + "#Calculation\n", + "#(i)\n", + "A_CL=-(Rf/Ri); #Closed-loop voltage gain\n", + "\n", + "#(ii)\n", + "Zi=Ri; #Input impedance(~ Input resistor), kΩ\n", + "\n", + "#(iii)\n", + "Vout=A_CL*Vpp; #Peak-to-peak voltage, V\n", + "Vpk=Vout/2; #Peak output voltage, V\n", + "f_max=(slew_rate*10**6/(2*pi*abs(Vpk)))/1000; #Maximum operating frequency, kHz\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) A_CL=%d.\"%A_CL);\n", + "print(\"(ii) Zi=%dkΩ\"%Zi);\n", + "print(\"(iii) Maximum operating frequency=%.1fkHz.\"%f_max);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.30 : Page number 697" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rf=20kΩ and Ri=5kΩ.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A_CL=-4; #Closed loop voltage gain\n", + "R=[1.0,5.0,10.0,20.0]; #List of available resistors, kΩ\n", + "\n", + "#Calculation\n", + "for i in R[:]:\n", + " for j in R[:]:\n", + " if -(i/j)==A_CL :\n", + " print(\"Rf=%dkΩ and Ri=%dkΩ.\"%(i,j));\n", + " break;\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.31 : Page number 697-698" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Closed loop voltage gain=-100.\n", + "(ii) Closed loop voltage gain=-50.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=100; #Feedback resistor, kΩ\n", + "Ri=1; #Input resistor, kΩ\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "R_source=0; #Source resistor, kΩ\n", + "A_CL=-Rf/(R_source+Ri); #Closed-loop voltage gain\n", + "\n", + "print(\"(i) Closed loop voltage gain=%d.\"%A_CL);\n", + "\n", + "#(ii)\n", + "R_source=1; #Source resistor, kΩ\n", + "A_CL=-Rf/(R_source+Ri); #Closed-loop voltage gain\n", + "\n", + "print(\"(ii) Closed loop voltage gain=%d.\"%A_CL);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.32 : Page number 699-700" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=12.12mV\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=240; #Feedback resistor, kΩ\n", + "Ri=2.4; #Input resistor, kΩ\n", + "Vin=120; #Input voltage, μV\n", + "\n", + "\n", + "#Calculation\n", + "A_CL=1+(Rf/Ri); #Closed loop voltage gain\n", + "Vout=(A_CL*Vin)/1000; #Output voltage, mV\n", + "\n", + "#Result\n", + "print(\"Output voltage=%.2fmV\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.33 : Page number 700" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Output voltage=11V\n", + "(ii) Output voltage=-11V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=10; #Feedback resistor, kΩ\n", + "Ri=1; #Input resistor, kΩ\n", + "\n", + "\n", + "#Calculation\n", + "A_CL=1+(Rf/Ri); #Closed loop voltage gain\n", + "#(i)\n", + "Vin=1; #Input voltage, V\n", + "Vout=A_CL*Vin; #Output voltage, V\n", + "\n", + "print(\"(i) Output voltage=%dV\"%Vout);\n", + "\n", + "\n", + "#(ii)\n", + "Vin=-1; #Input voltage, V\n", + "Vout=A_CL*Vin; #Output voltage, V\n", + "\n", + "print(\"(ii) Output voltage=%dV\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.34 : Page number 700" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Peak to peak output voltage=12V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=5; #Feedback resistor, kΩ\n", + "Ri=1; #Input resistor, kΩ\n", + "Vin_max=1; #Maximum input voltage, V\n", + "Vin_min=-1; #Minimum input voltage, V\n", + "\n", + "#Calculation\n", + "V_inpp=Vin_max-Vin_min; #Peak-peak input voltage, V\n", + "A_CL=1+(Rf/Ri); #Closed loop voltage gain\n", + "Vout_pp=A_CL*V_inpp; #Peak-peak output voltage, V\n", + "\n", + "#Result\n", + "print(\"Peak to peak output voltage=%dV\"%Vout_pp);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.35 : Page number 700-701" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Closed-loop voltage gain=11\n", + "(ii) Maximum operating frequency=14.47kHz\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "Rf=100; #Feedback resistor, kΩ\n", + "Ri=10; #Input resistor, kΩ\n", + "Vpp=1; #Input peak-peak voltage, V\n", + "slew_rate=0.5; #Slew rate, V/μs\n", + "\n", + "#Calculation\n", + "#(i)\n", + "A_CL=1+(Rf/Ri); #Closed loop voltage gain\n", + "\n", + "#(ii)\n", + "Vout_pp=A_CL*Vpp; #Peak-peak output voltage, V\n", + "Vpk=Vout_pp/2.0; #Peak output voltage, V\n", + "f_max=((slew_rate*10**6)/(2*pi*Vpk))/1000.0; #Maximum operating frequency, kHz\n", + "\n", + "#Result\n", + "print(\"(i) Closed-loop voltage gain=%d\"%A_CL);\n", + "\n", + "print(\"(ii) Maximum operating frequency=%.2fkHz\"%f_max);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.36 : Page number 701" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Bandwidth=44.3kHz.\n", + "(ii) Bandwidth=63.8kHz.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=220; #Feedback resistor, kΩ\n", + "Ri=3.3; #Input resistor, kΩ\n", + "unity_gain_BW=3; #Unity gain bandwidth, MHz\n", + "\n", + "#Calculation\n", + "#(i) For non-inverting amplifier\n", + "A_CL=1+(Rf/Ri); #Closed loop voltage gain\n", + "BW=unity_gain_BW*1000.0/A_CL; #Bandwidth, kHz\n", + "\n", + "print(\"(i) Bandwidth=%.1fkHz.\"%BW);\n", + "\n", + "#(ii) For inverting amplifier\n", + "Rf=47; #Feedback resistor, kΩ\n", + "Ri=1; #Input resistor, kΩ\n", + "A_CL=-(Rf/Ri); #Closed loop voltage gain\n", + "BW=unity_gain_BW*1000.0/abs(A_CL); #Bandwidth, kHz\n", + "\n", + "print(\"(ii) Bandwidth=%.1fkHz.\"%BW);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.37 : Page number 701-702" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) For voltage follower A_CL=1.\n", + "(ii) The maximum output frequency=26.53kHz.\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#(i)\n", + "A_CL=1; #Closed loop voltage gain for voltage follower\n", + "print(\"(i) For voltage follower A_CL=1.\");\n", + "\n", + "\n", + "#(ii)\n", + "slew_rate=0.5; #Slew rate, V/μs\n", + "V_inpp=6; #peak-peak input voltage, V\n", + "Vout=A_CL*V_inpp; #Peak-peak output voltage, V\n", + "Vpk=Vout/2; #Peak output voltage, V\n", + "\n", + "f_max=(slew_rate*10**6/(2*pi*Vpk))/1000; #Maximum operating frequency, kHz\n", + "\n", + "#Result\n", + "print(\"(ii) The maximum output frequency=%.2fkHz.\"%f_max);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.38 : Page number 702" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=1.78V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=470.0; #Feedback resistor, kΩ\n", + "R1=4.3; #Input resistor of 1st op-Amp, kΩ\n", + "R2=33.0; #Input resistor of 2nd op-Amp, kΩ\n", + "R3=33.0; #Input resistor of 3rd op-Amp, kΩ\n", + "Vin=80.0; #Input voltage, μV.\n", + "\n", + "#Calculation\n", + "A1=1+Rf/R1; #Gain of first op-Amp\n", + "A2=-round(Rf/R2,1); #Gain of second op-Amp\n", + "A3=-round(Rf/R3,1); #Gain of third op-Amp\n", + "A=A1*A2*A3; #Overall gain\n", + "Vout=A*Vin*10**-6; #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"Output voltage=%.2fV\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.39 : Page number 702-703" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R1=30kΩ, R2=15kΩ and R3=10kΩ.\n", + "Output voltage=0.729V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "A1=10; #Voltage gain of 1st op-Amp\n", + "A2=-18; #Voltage gain of 2nd op-Amp\n", + "A3=-27; #Voltage gain of 3rd op-Amp\n", + "Rf=270; #Feedback resistor, kΩ\n", + "Vin=150; #Input voltage, μV \n", + "\n", + "\n", + "#Calculation\n", + "R1=Rf/(A1-1); #Input resistor of 1st op-Amp, kΩ\n", + "R2=-Rf/A2; #Input resistr of 2nd op-Amp, kΩ\n", + "R3=-Rf/A3; #Input resistor of 3rd op-Amp, kΩ\n", + "\n", + "A=A1*A2*A3; #overall gain,\n", + "Vout=Vin*10**-6*A; #Output voltage, V\n", + "\n", + "\n", + "#Result\n", + "print(\"R1=%dkΩ, R2=%dkΩ and R3=%dkΩ.\"%(R1,R2,R3));\n", + "print(\"Output voltage=%.3fV.\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.40 : Page number 703-704" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R1=50kΩ, R2=25kΩ and R3=10kΩ.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=500; #Feedback resistor, kΩ\n", + "A1=-10; #Gain of 1st op-Amp\n", + "A2=-20; #Gain of 2nd op-Amp\n", + "A3=-50; #Gain of 3rd op-Amp\n", + "\n", + "#Calculation\n", + "R1=-Rf/A1; #Input resistor of 1st op-Amp, kΩ\n", + "R2=-Rf/A2; #Input resistor of 2nd op-Amp, kΩ\n", + "R3=-Rf/A3; #Input resistor of 3rd op-Amp, kΩ\n", + "\n", + "\n", + "#Result\n", + "print(\"R1=%dkΩ, R2=%dkΩ and R3=%dkΩ.\"%(R1,R2,R3));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.41 : Page number 705" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The input impedance=17202MΩ and output impedance=8.7e-03Ω.\n", + "(ii) The closed loop voltage gain=23.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Zin=2.0; #Input impedance of op-Amp, MΩ\n", + "Zout=75.0; #Output impedance of op-Amp, Ω\n", + "A_OL=200000.0; #Open-loop voltage gain\n", + "Rf=220.0; #Feedback resistor, kΩ\n", + "Ri=10.0; #Input resistor, kΩ\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "mv=round(Ri/(Ri+Rf),3); #Feedback fraction\n", + "Zin_NI=Zin*(1+(A_OL*mv)); #Input impedance, MΩ\n", + "Zout_NI=Zout/(1+A_OL*mv); #Output impedance, Ω\n", + "\n", + "#(ii)\n", + "A_CL=1+Rf/Ri; #Closed loop voltage gain\n", + "\n", + "#Result\n", + "print(\"(i) The input impedance=%dMΩ and output impedance=%.1eΩ.\"%(Zin_NI,Zout_NI));\n", + "print(\"(ii) The closed loop voltage gain=%d.\"%A_CL);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.42 : Page number 705-706" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The input impedance=400002MΩ and output impedance=0.38e-03Ω.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "#For voltage follower,\n", + "mv=1.0; #Feedback fraction\n", + "A_OL=200000.0; #Open-loop voltage gain\n", + "Zin=2.0; #Input impedance of op-Amp, MΩ\n", + "Zout=75.0; #Output impedance of op-Amp, Ω\n", + "\n", + "\n", + "#Calculation\n", + "Zin_VF=Zin*(1+(A_OL*mv)); #Input impedance, MΩ\n", + "Zout_VF=round(round(Zout/(1+A_OL*mv),6),5); #Output impedance, Ω\n", + "\n", + "#Result\n", + "print(\"The input impedance=%dMΩ and output impedance=%.2fe-03Ω.\"%(Zin_VF,Zout_VF*1000));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.43 : Page number 706" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The input impedance=1kΩ and output impedance=50Ω.\n", + "Closed-loop voltage gain=-100\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=100; #Feedback resistor, kΩ\n", + "Ri=1.0; #Input resistor, kΩ\n", + "Zin=4; #Input impedance of op-Amp, MΩ\n", + "Zout=50; #Output impedance of op-Amp, Ω\n", + "\n", + "\n", + "#Calculation\n", + "Zin_I=Ri; #Input impedance, kΩ\n", + "Zout_I=Zout; #Output impedance, Ω\n", + "A_CL=-(Rf/Ri); #Closed loop voltage gain\n", + "\n", + "\n", + "#Result\n", + "print(\"The input impedance=%dkΩ and output impedance=%dΩ.\"%(Zin_I,Zout_I));\n", + "print(\"Closed-loop voltage gain=%d\"%A_CL);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.44 : Page number 709" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=-12V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=10; #Feedback resistor, kΩ\n", + "Ri=10; #Input resistor, kΩ\n", + "V1=3; #Input voltage 1st, V\n", + "V2=1; #Input voltage 2nd, V\n", + "V3=8; #Input voltage 3rd, V\n", + "\n", + "\n", + "#Calculation\n", + "#Since, Rf=Ri, Vout=-(Rf/Ri)*(V1+V2+V3)= -(V1+V2+V3);\n", + "Vout=-(V1+V2+V3); #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"Output voltage=%dV.\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.45 : Page number 709" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=-7V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=10; #Feedback resistor, kΩ\n", + "R1=1; #Input resistor for input 1, kΩ\n", + "R2=1; #Input resistor for input 2, kΩ\n", + "V1=0.2; #Input voltage 1st, V\n", + "V2=0.5; #Input voltage 2nd, V\n", + "\n", + "\n", + "#Calculation\n", + "R=R1; #Input resistor(=R1 or R2), kΩ\n", + "Vout=-(Rf/R)*(V1+V2); #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"Output voltage=%dV.\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.46 : Page number 709-710" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=-2.5V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=1; #Feedback resistor, kΩ\n", + "Ri=10.0; #Input resistor, kΩ\n", + "V1=10; #Input voltage 1st, V\n", + "V2=8.0; #Input voltage 2nd, V\n", + "V3=7.0; #Input voltage 3rd, V\n", + "\n", + "\n", + "#Calculation\n", + "#Since, Vout=-(Rf/Ri)*(V1+V2+V3);\n", + "Vout=-(Rf/Ri)*(V1+V2+V3); #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"Output voltage=%.1fV.\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.47 : Page number 710" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output voltage=2.5V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V1=0.6; #Input voltage to 1st input resistor, V\n", + "V2=-1.4; #Input voltage to 2nd input resistor, V\n", + "Rf=200; #Feedback resistor, kΩ\n", + "R1=400; #Input resistor 1, kΩ\n", + "R2=100.0; #Input resistor 2, kΩ\n", + "\n", + "#Calculation\n", + "Vout=-Rf*(V1/R1 +V2/R2); #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"Output voltage=%.1fV\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.48 : Page number 710-711" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) The output voltage=-12.5V\n", + "(ii) The output voltage=-7.5V\n", + "(iii) The output voltage=-17.5V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=1.0; #Feedback resistor, kΩ\n", + "R1=1.0; #Input resistor 1, kΩ\n", + "R2=2.0; #Input resistor 2, kΩ\n", + "R3=4.0; #Input resistor 3, kΩ\n", + "\n", + "\n", + "#Calculation\n", + "Rf_R1=Rf/R1; #Ratio of feedback resistor and 1st input resistor\n", + "Rf_R2=Rf/R2; #Ratio of feedback resistor and 2nd input resistor\n", + "Rf_R3=Rf/R3; #Ratio of feedback resistor and 3rd input resistor\n", + "\n", + "#(i) First input combination\n", + "V1=10; #Input voltage to 1st input resistor, V\n", + "V2=0; #Input voltage to 2nd input resistor, V\n", + "V3=10; #Input voltage to 3rd input resistor, V\n", + "Vout=-(V1*Rf_R1 +V2*Rf_R2 +V3*Rf_R3); #Output voltage, V\n", + "print(\"(i) The output voltage=%.1fV\"%Vout);\n", + "\n", + "#(i) First input combination\n", + "V1=0; #Input voltage to 1st input resistor, V\n", + "V2=10; #Input voltage to 2nd input resistor, V\n", + "V3=10; #Input voltage to 3rd input resistor, V\n", + "Vout=-(V1*Rf_R1 +V2*Rf_R2 +V3*Rf_R3); #Output voltage, V\n", + "print(\"(ii) The output voltage=%.1fV\"%Vout);\n", + "\n", + "\n", + "#(i) First input combination\n", + "V1=10; #Input voltage to 1st input resistor, V\n", + "V2=10; #Input voltage to 2nd input resistor, V\n", + "V3=10; #Input voltage to 3rd input resistor, V\n", + "Vout=-(V1*Rf_R1 +V2*Rf_R2 +V3*Rf_R3); #Output voltage, V\n", + "print(\"(iii) The output voltage=%.1fV\"%Vout);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.49 : Page number 711" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Vout=-[0.5sin(1000t)+0.33sin(3000t)]V\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "Rf=330; #Feedback resistor, kΩ\n", + "R1=33.0; #Input resistor 1, kΩ\n", + "R2=10.0; #Input resistor 2, kΩ\n", + "V1_m=50; #Peak voltage of 1st input, mV\n", + "V2_m=10; #Peak voltage of 2nd input, mV\n", + "\n", + "#Calculation\n", + "#Since, Vout=-((Rf/R1)*V1 + (Rf/R2)*V2)\n", + "print(\"Vout=-[%.1fsin(1000t)+%.2fsin(3000t)]V\"%((V1_m/1000.0)*(Rf/R1),(V2_m/1000.0)*(Rf/R2)));\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.50 : Page number 715" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Vo=-1*(1/RC)∫vi dt.\n", + "=>Vo=-1*(1/1)∫vi dt\n", + "=>Vo=∫vi dt\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "R=100; #Input resistor, kΩ\n", + "C=10; #Feedback capacitor, μF\n", + "\n", + "#Calculation\n", + "RC=R*10**3*C*10**-6; #product of input resistance and feedback capacitance, s\n", + "\n", + "\n", + "#Result\n", + "print(\"Vo=-1*(1/RC)∫vi dt.\");\n", + "print(\"=>Vo=-1*(1/%d)∫vi dt\"%RC);\n", + "print(\"=>Vo=∫vi dt\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.51 : Page number 715-716" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The critical frequency=159Hz.\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#Variable declaration\n", + "Rf=100; #Feedback resistor, kΩ\n", + "C=0.01; #Feedback capacitor, μF\n", + "\n", + "\n", + "#Calculation\n", + "fc=1/(2*pi*Rf*1000*C*10**-6); #Crictical frequency, Hz\n", + "\n", + "#Result\n", + "print(\"The critical frequency=%dHz.\"%fc);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.52 : Page number 716" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Vout=-1*(1/RC)∫vi dt.\n", + " ΔVout/dt = -vin/RC = -50mV/μs.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff5052a4080>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "#Variable declaration\n", + "R=10.0; #Input resistor, kΩ\n", + "C=0.01; #Feedback capacitor, μF\n", + "vin=5; #Input voltage, V\n", + "\n", + "#Calculation\n", + "#(i)\n", + "Vout_change_rate=-vin/(R*C); #Rate of change of output voltage, V/μs \n", + "print(\"(i) Vout=-1*(1/RC)∫vi dt.\");\n", + "print(\" ΔVout/dt = -vin/RC = %dmV/μs.\"%Vout_change_rate);\n", + "\n", + "#(ii) Plotting the output waveform\n", + "vin_plot=[]; #Plotting variable for input waveform, V\n", + "dt=100; #time between edges, μs\n", + "for i in range(0,3*dt+1):\n", + " if i<dt or i>2*dt :\n", + " vin_plot.append(0);\n", + " else:\n", + " vin_plot.append(5); \n", + "\n", + "plt.subplot(211);\n", + "plt.plot(vin_plot);\n", + "plt.xlim([0,300])\n", + "plt.ylim([-5,10])\n", + "plt.xlabel(\"t(microsecond)\");\n", + "plt.ylabel(\"Vin(V)\");\n", + "plt.title(\"Input waveform\");\n", + "\n", + " \n", + "vout_plot=[]; #Plotting variable for output waveform, V\n", + "t=[i for i in range(0,301)]; #Time scale, μs\n", + "for i in t[:] :\n", + " if i<dt:\n", + " vout_plot.append(0);\n", + " elif i>2*dt:\n", + " vout_plot.append((Vout_change_rate/1000.0)*dt);\n", + " else :\n", + " vout_plot.append((-vin_plot[i]/(R*C))/1000*(i-dt));\n", + "\n", + "plt.subplot(212)\n", + "plt.plot(vout_plot);\n", + "plt.xlim([0,300])\n", + "plt.ylim([-5,5]);\n", + "plt.xlabel('t(microsecond)');\n", + "plt.ylabel(\"Vout(V)\");\n", + "plt.title(\"output waveform\");\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.53 : Page number 716-717" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Vout=-1*(1/RC)∫vi dt.\n", + "Vout=-5*t volts\n", + "Time required=2.6seconds.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "V_supply=15; #Supply voltage, V\n", + "R=10; #Input resistor, kΩ\n", + "C=0.2; #Feedback capacitor, μF\n", + "vin=10; #Input voltage, mV\n", + "\n", + "\n", + "#Calculation\n", + "Vs=-V_supply+2; #Saturation voltage, V\n", + "print(\"Vout=-1*(1/RC)∫vi dt.\");\n", + "print(\"Vout=%d*t volts\"%(-vin/(R*C)));\n", + "t=Vs/(-vin/(R*C)); #Time required, seconds\n", + "print(\"Time required=%.1fseconds.\"%t);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.54 : Page number 717-718" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Vo=-5V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "R=1; #Feedback resistor, kΩ\n", + "C=0.1; #Input capacitor, μF\n", + "Vin_change=5; #Change in input voltage, V\n", + "t=0.1; #Time taken for change in input voltage, ms\n", + "\n", + "#Calcualtion\n", + "dvi_dt=Vin_change/(t/1000); #Rate of change of input voltage, V/s\n", + "RC=R*1000*C*10**-6; #Product of feedback resistance and input capacitance, s\n", + "#Since, Vo=-R*C*(dvi/dt);\n", + "Vo=-RC*dvi_dt; #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"Vo=%dV.\"%Vo);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.55 : Page number 718" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Vo=-0.55V.\n", + "The output voltage stays constant at -0.55V.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "R=10; #Feedback resistor, kΩ\n", + "C=2.2; #Input capacitor, μF\n", + "Vin_change=10; #Change in input voltage, V\n", + "t=0.4; #Time taken for change in input voltage, s\n", + "\n", + "#Calcualtin\n", + "dvi_dt=Vin_change/t; #Rate of change of input voltage, V/s\n", + "RC=R*1000*C*10**-6; #Product of feedback resistance and input capacitance, s\n", + "#Since, Vo=-R*C*(dvi/dt);\n", + "Vo=-RC*dvi_dt; #Output voltage, V\n", + "\n", + "#Result\n", + "print(\"Vo=%.2fV.\"%Vo);\n", + "print(\"The output voltage stays constant at %.2fV.\"%Vo);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 25.56 : Page number 718-719" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "vo=-1*(dvi/dt).\n", + "vo=-5V.\n", + "Therefore, between 0 to 0.2s, the output voltage is constant at -5V.\n", + "For t>0.2s, the input is constant so that output voltage is zero.\n" + ] + } + ], + "source": [ + "#Variable declaration\n", + "R=100; #Feedback resistor, kΩ\n", + "C=10; #Input capacitor, μF\n", + "Vin_change=1; #Change in input voltage, V\n", + "t=0.2; #Time taken for change in input voltage, s\n", + "\n", + "\n", + "#Calculation\n", + "RC=R*1000*C*10**-6; #Product of feedback resistor and input capacitance, s\n", + "#(i)\n", + "print(\"vo=-%d*(dvi/dt).\"%RC);\n", + "\n", + "#(ii)\n", + "dvi_dt=Vin_change/t; #Rate of change of input voltage, V\n", + "vo=-dvi_dt; #Output voltage, V\n", + "print(\"vo=%dV.\"%vo);\n", + "\n", + "print(\"Therefore, between 0 to 0.2s, the output voltage is constant at %dV.\"%vo);\n", + "print(\"For t>0.2s, the input is constant so that output voltage is zero.\");\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + }, + "widgets": { + "state": {}, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter26_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter26_2.ipynb new file mode 100644 index 00000000..670a61b0 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter26_2.ipynb @@ -0,0 +1,472 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:a1845801144904256bc26f3ca2e0294eb55dcabb139a523d403624121bc6876a" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#CHAPTER 26 : DIGITAL ELECTRONICS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.1 : Page 732" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given\n", + "d=37; #Given decimal number\n", + "\n", + "#Calculation\n", + "b=int(bin(d)[2:]); #Equivalent Octal number \n", + "\n", + "#Result\n", + "print(\"The equivalent binary number=%s.\"%b);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equivalent binary number=100101.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.2 : Page number 733" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given\n", + "d=23; #Given decimal number\n", + "\n", + "#Calculation\n", + "b=int(bin(d)[2:]); #Equivalent Octal number\n", + "\n", + "#Result\n", + "print(\"The equivalent binary number=%d.\"%b);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equivalent binary number=10111.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.3 : Page number 733" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given \n", + "b=0b110001; #Given binary number\n", + "\n", + "#Calculation\n", + "d=int(b); #Equivalent decimal number\n", + "\n", + "#Result\n", + "print(\"Equivalent decimal number=%d.\"%d);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equivalent decimal number=49.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.4 : Page number 735" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given \n", + "d1=76; #Given decimal number\n", + "d2=255; #Given decimal number\n", + "d3=372; #Given decimal number\n", + "\n", + "#Calculation\n", + "o1=int(oct(d1)[1:]); #Equivalent octal number\n", + "o2=int(oct(d2)[1:]); #Equivalent octal number\n", + "o3=int(oct(d3)[1:]); #Equivalent octal number\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) Equivalent octal number=%d.\"%o1);\n", + "print(\"(ii) Equivalent octal number=%d.\"%o2);\n", + "print(\"(iii) Equivalent octal number=%d.\"%o3);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Equivalent octal number=114.\n", + "(ii) Equivalent octal number=377.\n", + "(iii) Equivalent octal number=564.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.5 : Page number 735" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given \n", + "o=24.6; #Given octal number\n", + "\n", + "#Calculation\n", + "o_f=o%1; #Floating part of octal number\n", + "o_i=(int)(o-(o%1)); #Integer part of octal number\n", + "d=int(str(o_i),8); #Equivalent decimal number\n", + "\n", + "s=str(o_f); #String value of floating part \n", + "i=2\n", + "while(i<len(s)):\n", + " d=d+int(s[i])*8**-(i-1);\n", + " i+=1;\n", + "#Result\n", + "print(\"Equivalent decimal number=%.2f.\"%d);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equivalent decimal number=20.75.\n" + ] + } + ], + "prompt_number": 64 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.6 : Page number 735" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given \n", + "d=177; #Given decimal number\n", + "\n", + "#Calculation\n", + "o=oct(d)[1:]; #Equivalent octal number\n", + "\n", + "b=\"\";\n", + "for i in o:\n", + " bo=bin(int(i))[2:]; #Binary of individual octal digit\n", + " b=b+((\"0\" if len(bo)==2 else (\"00\" if len(bo)==1 else\"\")) +bo); #Equivalent binary number\n", + " \n", + "#Result\n", + "print(\"Equivalent octal number=%s.\"%o);\n", + "print(\"Equivalent binary number=%s.\"%b);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equivalent octal number=261.\n", + "Equivalent binary number=010110001.\n" + ] + } + ], + "prompt_number": 63 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.7 : Page number 737" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given \n", + "d=541; #Given decimal number\n", + "\n", + "#Calculation\n", + "h=hex(d)[2:]; #Equivalent hexadecimal number\n", + "\n", + "#Result\n", + "print(\"Equivalent hexadecimal number=%s.\"%h);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equivalent hexadecimal number=21d.\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.8 : Page number 737" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "hex_to_dec={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'a':10,'b':11,'c':12,'d':13,'e':14,'f':15};\n", + " \n", + "#Given \n", + "d=378; #Given decimal number\n", + "\n", + "#Calculation\n", + "h=hex(d)[2:]; #Equivalent Hexadecimal number\n", + "\n", + "\n", + "b=\"\";\n", + "for i in h:\n", + " bh=bin(hex_to_dec[i])[2:]; #Binary of individual hexadecimaldigit\n", + " b=b+((\"0\" if len(bh)==3 else (\"00\" if len(bh)==2 else (\"000\" if len(bh)==1 else \"\")))+bh); #Equivalent binary number\n", + "\n", + "#Result\n", + "print(\"Equivalent hexadeciaml number=%s.\"%h);\n", + "print(\"Equivalent binary number=%s.\"%b);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equivalent hexadeciaml number=17a.\n", + "Equivalent binary number=000101111010.\n" + ] + } + ], + "prompt_number": 56 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 26.9 : Page number 737" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given\n", + "h=0xB2F; #Given hexadecimal number\n", + "\n", + "#Calculation\n", + "o=oct(h)[1:]; #Equivalent octal number\n", + "\n", + "#Result\n", + "print(\"Equivalent octal number=%s.\"%o);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equivalent octal number=5457.\n" + ] + } + ], + "prompt_number": 58 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.10 : Page number 738" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Given\n", + "BCD=\"0100 0000 0010\" #Given BCD string\n", + "BCD_split=BCD.split(\" \"); #Splitting th binary string into individual BCD \n", + "d=0;\n", + "for i in range(len(BCD_split),0,-1):\n", + " d+=int(BCD_split[len(BCD_split)-i],2)*10**(i-1);\n", + "\n", + "#Result\n", + "print(\"The equivalent decimal =%d.\"%d);\n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equivalent decimal =402.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.11 : Page number 745" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print(\"Boolean Expression obtained from the circuit: \\n Y'=A+B \\n Y=((A+B).A)\");\n", + "print(\"Truth Table:\");\n", + "print(\"a\\tb\\tY'=A+B\\t Y=Y'.A\");\n", + "for b in range(0,2):\n", + " for a in range(0,2):\n", + " Y_dash=1 if a or b else 0;\n", + " Y=1 if Y_dash and a else 0;\n", + " print(\"%d\\t%d\\t%d\\t %d\"%(a,b,Y_dash,Y));" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Boolean Expression obtained from the circuit: \n", + " Y'=A+B \n", + " Y=((A+B).A)\n", + "Truth Table:\n", + "a\tb\tY'=A+B\t Y=Y'.A\n", + "0\t0\t0\t 0\n", + "1\t0\t1\t 1\n", + "0\t1\t1\t 0\n", + "1\t1\t1\t 1\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 26.12 : Page number 745-746" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print(\"Boolean Expression obtained from the circuit: \\n Y'=A'.B \\n Y=Y'+B'\");\n", + "print(\"Truth Table:\");\n", + "print(\"A\\tB\\tA'\\tY'=A'.B\\t B'\\tY=Y'+B'\");\n", + "for b in range(0,2):\n", + " for a in range(0,2):\n", + " a_dash=1 if not a else 0;\n", + " b_dash=1 if not b else 0;\n", + " Y_dash=1 if a_dash and b else 0;\n", + " Y=1 if Y_dash or b_dash else 0;\n", + " print(\"%d\\t%d\\t%d\\t%d\\t %d\\t%d\"%(a,b,a_dash,Y_dash,b_dash,Y));" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Boolean Expression obtained from the circuit: \n", + " Y'=A'.B \n", + " Y=Y'+B'\n", + "Truth Table:\n", + "A\tB\tA'\tY'=A'.B\t B'\tY=Y'+B'\n", + "0\t0\t1\t0\t 1\t1\n", + "1\t0\t0\t0\t 1\t1\n", + "0\t1\t1\t1\t 0\t1\n", + "1\t1\t0\t0\t 0\t0\n" + ] + } + ], + "prompt_number": 30 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter2_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter2_2.ipynb new file mode 100644 index 00000000..06a555a6 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter2_2.ipynb @@ -0,0 +1,125 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:c0ff4f67576afe73a11c06eedd0a50709b7f5831737f83db1cd640098e3e9740" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 2 : ELECTRONIC EMISSION" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.1: Page number 31\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#variable declaration\n", + "\n", + "from math import exp\n", + "from math import pi\n", + "\n", + "l=5.0; #length of tungsten filament in cm\n", + "d=0.01; #diameter of the filament in cm\n", + "T=2500.0; #operating temperature in K\n", + "A=60.2*pow(10,4); #constant, depending upon the type of thermionic emitter, in amp/m\u00b2/K\u00b2\n", + "phi=4.517; #work function of emitter in eV\n", + "\n", + "\n", + "#Calculation\n", + "b=round(11600*phi,-1); #constant for a metal, in K\n", + "Js=round(A*T*T*exp(-b/T),-2); #Emission current density in amp/m\u00b2\n", + "a=pi*(d/100)*(l/100); #Surface area of the cathode in m\u00b2\n", + "E_I=Js*a; #Emission current in A\n", + "\n", + "#Result\n", + "print(\"emission current =%.3f A\"%E_I);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "emission current =0.047 A\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.2:Page number 31\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import log\n", + "\n", + "#Variable declaration\n", + "Js=0.1; #Emission current density in amp/cm\u00b2\n", + "A=60.2; #Constant depending upon the type of thermionic emitter, in amp/cm\u00b2/K\u00b2\n", + "T=1900.0; #Absolute temperature in K\n", + "\n", + "\n", + "#calculations\n", + "#Calculating b according to the formula Js=A*T\u00b2*exp(-b/T) for emission current density\n", + "b=-T*(log(Js/(A*T*T))); #constant for emitter, in K\n", + "phi= round(b/11600,2); # work function in eV\n", + "\n", + "print (\"Work function of the tungsten wire = %.2f eV\"%phi);\n", + "\n", + "if(phi==4.52):\n", + "\tprint(\"Given sample is pure Tungsten\");\n", + "elif(phi!=4.52 and phi>=2.63 and phi<=4.52):\n", + "\tprint (\"The sample is not pure Tungsten\");\n", + " \n", + "#Note : In the text book, the work function has been approximated to 3.56eV, but in the code it calculates as 3.52eV\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Work function of the tungsten wire = 3.52 eV\n", + "The sample is not pure Tungsten\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter6_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter6_2.ipynb new file mode 100644 index 00000000..a6008ee1 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter6_2.ipynb @@ -0,0 +1,1624 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:3452607f2168b562d941493f83083042eaa5a2d316715f9d9f089ff03d73fdb8" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 6: SEMICONDUCTOR DIODE" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.2, Page number 81" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration \n", + "Vf =20; #Peak Input Voltage in V\n", + "rf=10; #Forward Resistance in ohms\n", + "RL=500.0; #Load Resistance in ohms\n", + "V0=0.7; #Potential Barrier Voltage of the diodes in V\n", + "\n", + "#Calculation\n", + "#(1)\n", + "If_peak=(Vf-V0)/(rf+RL); #Peak current through the diode in A\n", + "If_peak=If_peak*1000; #Peak current through the diode in mA\n", + "#(2)\n", + "V_out_peak =If_peak * RL/1000 ; #Peak output voltage in V\n", + "\n", + "#For an Ideal diode\n", + "If_peak_ideal=Vf/RL; #Peak current through the ideal diode in A\n", + "If_peak_ideal=If_peak_ideal*1000; #Peak current through the ideal diode in mA\n", + "\n", + "V_out_peak_ideal=If_peak_ideal * RL/1000; # Peak output voltage in case of the ideal diode in V\n", + "\n", + "#Result\n", + "print '(i) Peak current through the diode = %.1f mA '%If_peak;\n", + "print '(ii) Peak output voltage = %.1f V'%V_out_peak;\n", + "print '(iii) Peak current through the ideal diode = %d mA '%If_peak_ideal;\n", + "print '(iv) Peak output voltage in case of the ideal diode = %d V'%V_out_peak_ideal;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Peak current through the diode = 37.8 mA \n", + "(ii) Peak output voltage = 18.9 V\n", + "(iii) Peak current through the ideal diode = 40 mA \n", + "(iv) Peak output voltage in case of the ideal diode = 20 V\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.3, Page number 82" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "V =10.0; #Battery voltage in V\n", + "R1=50.0; #Resistor 1's resistance in ohms\n", + "R2=5.0; #Resistor 2's resistance in ohms\n", + "\n", + "#Calculation\n", + "#Using Thevenin's Theorem to find current in the diode\n", + "E0=(R2/(R1+R2))*V; #Thevenin's Voltage in V\n", + "R0=(R1*R2)/(R1+R2); #Thevenin's Resistance in ohms\n", + "\n", + "I0=E0/R0; #Current through the diode in A\n", + "I0=I0*1000; #Current through the diode in mA\n", + "\n", + "#Result\n", + "print 'Current through the diode = %d mA '%Io;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Current through the diode = 200 mA \n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.4, Page number 82-83 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "V =10.0; #Battery voltage in V\n", + "R0=48.0; #Resistance of the resistor in ohms\n", + "Rd=1.0; #Forward resistance of the diodes in ohms\n", + "Vd=0.7; #Potential barrier of the diodes in V\n", + "#Calculation\n", + "V_net=V-Vd-Vd; #Net voltage in the circuit in V\n", + "R_net=R0+Rd+Rd #Net resistance of the circuit in ohms\n", + "I_net=V_net/R_net; #Net current in the circuit in A\n", + "I_net=I_net*1000; #Net current in mA\n", + "\n", + "#Result\n", + "print 'Net current in the circuit = %d mA '%I_net;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Net current in the circuit = 172 mA \n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.5, Page number 83" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "E1=24; #Voltage of first source in V\n", + "E2=4; #Voltage of second source in V\n", + "V0=0.7; #Potential barrier of diodes in V\n", + "R=2000; #Resistance of the given resistor in ohms\n", + "Rd=0; #Forward resistance of the diodes in ohms\n", + "\n", + "#Calculation\n", + "I=(E1-E2-V0)/(R+Rd); #Current in the circuit in A\n", + "I=I*1000; #Current in the circuit in mA \n", + "\n", + "#Result\n", + "print 'Current in the circuit = %.2f mA '%I;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Current in the circuit = 9.65 mA \n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.6, Page number 83-84" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "V=20; #Voltage of source in V\n", + "V0=0.3; #Potential barrier of Germanium diode in V\n", + "V0_Si=0.7; #Potetial barrier of Silicon diode in V \n", + "\n", + "#Calculation\n", + "#As only Ge diode is turned on due to less potential barrier,\n", + "VA=V-V0; #Voltage VA acroos resistor of 3k ohms\n", + "\n", + "#Result\n", + "print 'Voltage VA = %.1f mA '%VA;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Voltage VA = 19.7 mA \n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.7, Page number 84" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "V=10; #Voltage of source in V\n", + "V0=0.7; #Potetial barrier of Silicon diode in V \n", + "# Resistance of all resistors in ohms\n", + "R1=2000;\n", + "R2=2000;\n", + "R3=2000;\n", + "\n", + "#Calculation\n", + "Id=(V-V0)/(R2+2*R3); #Current through the diodes in A\n", + "VQ=2*Id*R3; #Voltage VQ across the grounded 2k ohm resistor in V\n", + "Id=Id*1000; #Current through the diodes in mA\n", + "\n", + "#Result\n", + "print 'Voltage VQ = %.1f V '%VQ;\n", + "print 'Current through the diodes, Id = %.2f mA '%Id;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Voltage VQ = 6.2 V \n", + "Current through the diodes, Id = 1.55 mA \n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.8, Page number 84" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "V=15; #Voltage of source in V\n", + "V0=0.7; #Potetial barrier of Silicon diode in V \n", + "R=500 # Resistance of all resistors in ohms\n", + "\n", + "#Calculation\n", + "I1=(V-V0)/R; #total current in the circuit in A\n", + "Id1=I1/2; #current in first diode in A\n", + "Id1=Id1*1000; #current in first diode in mA\n", + "Id2=Id1 #current in second diode in mA\n", + "\n", + "#Result\n", + "print ('Current in first diode = %.1f mA'%Id1);\n", + "print ('Current in second diode = %.1f mA'%Id2);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Current in first diode = 14.3 mA\n", + "Current in second diode = 14.3 mA\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.9, Page number 85" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "E=20; #Voltage of source in V\n", + "V0_d1=0.7; #Potetial barrier of first Silicon diode in V\n", + "V0_d2=0.7; #Potetial barrier of second Silicon diode in V\n", + "R1=5600; # Resistance of first resistor in ohms\n", + "R2=3300; # Resistance of second resistor in ohms\n", + "\n", + "#Calculation\n", + "I2=V0_d2/R2; #Current I2 through resistor R2 in A\n", + "I2=round((I2*1000),3); #Current I2 through resistor R2 in mA\n", + "I1=(E-V0_d1-V0_d2)/R1; #Current I1 through resistor R1 in A\n", + "I1=round((I1*1000),2); #Current I1 through resistor R1 in mA\n", + "I3=I1-I2; #Current I3 through diode D2 in mA\n", + "\n", + "#Result\n", + "print 'Current I1= %.2f mA'%I1;\n", + "print 'Current I1= %.3f mA'%I2;\n", + "print 'Current I1= %.3f mA'%I3;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Current I1= 3.32 mA\n", + "Current I1= 0.212 mA\n", + "Current I1= 3.108 mA\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.10, Page number 85-86" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable Declaration\n", + "E=10.0; #Voltage of source in V\n", + "V0=0.7; #Potetial barrier of Silicon diode in V\n", + "R1=2000; # Resistance of first resistor in ohms\n", + "R2=8000; # Resistance of second resistor in ohms\n", + "R3=4000; #Resistance of third resistor in ohms\n", + "R4=6000; #Resistance of fourth resistor in ohms\n", + "\n", + "#Calculation\n", + "#Assuming the given diode to be reverse bised and calculating voltage across it's terminals\n", + "V1=(E/(R1+R2))*R2; #voltage at the P side of the diode, i.e, voltage across R2 resistor,according to voltage divider rule, in V\n", + "V2=(E/(R3+R4))*R4; #voltage at the N side of the diode, i.e, voltage across R4 resistor,according to voltage divider rule, in V\n", + "\n", + "#Result\n", + "if((V1-V2)>=V0):\n", + " print 'Our assumption was wrong and, the diode is forward biased';\n", + "else:\n", + " print 'The diode is reverse biased';\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Our assumption was wrong and, the diode is forward biased\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.11, Page number 86" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V=2; #Supply voltage in V\n", + "V0=0.7; #Potential barrier voltage of the diode in V \n", + "R1=4000.0; #Resistance of first resistor in \u03a9\n", + "R2=1000.0; ##Resistance of second resistor in \u03a9\n", + "\n", + "#Calculation\n", + "#Assuming the diode to be in ON state\n", + "I1=((V-V0)/R1)*1000; #Current through resistor R1, in mA\n", + "I2=(V0/R2)*1000; #Current through resistor R2, in mA\n", + "ID=I1-I2; #Diode current, in mA\n", + "\n", + "if(ID<0):\n", + " #Since the diode current is negative, the diode must be OFF \n", + " ID=0; #True value of diode current, mA\n", + " \n", + "#As the diode is in OFF state it can be replaced by an open ciruit equivalent \n", + "VD=V*R2/(R1 +R2); #Voltage across the diode, in V\n", + "\n", + "#Result\n", + "print 'ID =%d mA'%ID;\n", + "print 'VD =%.1f V'%VD;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "ID =0 mA\n", + "VD =0.4 V\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.12, Page number 89-90" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "AC_Input_Power=100.0; #Input AC Power in watts\n", + "AC_Output_Power=40.0; #Output AC Power in watts\n", + "Accepted_Power=50.0; #Power accepted by the half-wave rectifier in watt\n", + "\n", + "#Calculation\n", + "R_eff=(AC_Output_Power/AC_Input_Power)*100; #Rectification efficiency of the half-wave rectifier\n", + "Unused_power=AC_Input_Power-Accepted_Power; #Power not used by the half_wave rectifier due to open circuited condition of the diode in watt\n", + "Power_dissipated=Accepted_Power-AC_Output_Power; #Power dissipated by the diode watt\n", + "\n", + "#Result\n", + "print 'The rectification efficiency of the half-wave rectifier= %d%% '%R_eff;\n", + "\n", + "print 'Rest 60%% of the power is the unused power and power dissipated by the diode = %d watts and %d watts' %(Unused_power ,Power_dissipated);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The rectification efficiency of the half-wave rectifier= 40% \n", + "Rest 60% of the power is the unused power and power dissipated by the diode = 50 watts and 10 watts\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.13, Page number 90" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "from math import sqrt\n", + "#Variable declaration\n", + "Vrms=230.0; #AC supply RMS voltage in V\n", + "Turns_Ratio=10/1; #turn ratio of the transformer \n", + "\n", + "#Calculation\n", + "Vpm=sqrt(2)*Vrms; #Maximum primary voltage in V\n", + "Vsm=Vpm/Turns_Ratio; #Maximum secondary voltage in V\n", + "#Case 1\n", + "Vdc=Vsm/(round(pi,2)); #Output D.C voltage, which is the average voltage in V\n", + "Vdc=round(Vdc,2);\n", + "#Case 2\n", + "PIV=Vsm; #Peak Inverse Voltage in V\n", + "\n", + "#Result\n", + "print 'The output d.c voltage= %.2f V'%Vdc;\n", + "print 'The peak inverse voltage= %.2f V'%PIV;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output d.c voltage= 10.36 V\n", + "The peak inverse voltage= 32.53 V\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.14, Page number 90-91" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "#Variable declaration\n", + "rf=20.0; #Internal resistance of the crystal diode in ohms\n", + "Vm=50.0; #Maximum applied voltage in V\n", + "RL=800.0; #Load Resistance in ohms\n", + "\n", + "#Calculation\n", + "# 1\n", + "Im=Vm/(rf+RL); #Maximum current in A\n", + "Im=Im*1000; #Maximum current in \n", + "Im=round(Im,0);\n", + "Idc=Im/pi; #Average voltage in mA\n", + "Idc=round(Idc,1);\n", + "Irms=Im/2; #RMS value of the current in mA\n", + "Irms=round(Irms,1)\n", + "\n", + "# 2\n", + "AC_Input_Power=pow(Irms/1000,2)*(rf+RL); #Input a.c power in watt\n", + "\n", + "DC_Output_Power=pow(Idc/1000,2)*RL; #Output d.c power in watt\n", + "\n", + "# 3\n", + "DC_Output_Voltage=(Idc/1000)*RL; #Output d.c voltage in V\n", + "\n", + "# 4\n", + "Rectifier_efficiency=(DC_Output_Power/AC_Input_Power)*100; # Efficiency of rectification of the half-wave rectifier\n", + "\n", + "#Result\n", + "print ' i:';\n", + "print ' Im = %d mA'%Im;\n", + "print ' Idc = %.1f mA'%Idc;\n", + "print ' Irms = %.1f mA'%Irms;\n", + "print ' ii: ';\n", + "print ' a.c input power= %.3f watt'%AC_Input_Power;\n", + "print ' d.c output power= %.3f watt'%DC_Output_Power;\n", + "print ' iii: ';\n", + "print ' d.c output voltage = %.2f volts'%DC_Output_Voltage;\n", + "print ' iv: '\n", + "print ' Efficiency of rectification = %.1f%%'%Rectifier_efficiency;\n", + "\n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " i:\n", + " Im = 61 mA\n", + " Idc = 19.4 mA\n", + " Irms = 30.5 mA\n", + " ii: \n", + " a.c input power= 0.763 watt\n", + " d.c output power= 0.301 watt\n", + " iii: \n", + " d.c output voltage = 15.52 volts\n", + " iv: \n", + " Efficiency of rectification = 39.5%\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.15, Page number 91" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "#Variable declaration\n", + "Vdc=50.0; #Output d.c voltage in V\n", + "rf=25; #Diode resistance in ohm\n", + "RL=800; #Load resistance in ohm\n", + "\n", + "\n", + "#Calculation\n", + "Vm=(pi*(rf+RL)*Vdc)/RL; #[ Vdc=Vm*RL/(pi*(rf+RL)) ]Maximum value of a.c voltage required to get a volatge of Vdc from the half-wave rectifier, in V\n", + "Vm=round(Vm,0); \n", + "#Result\n", + "print 'The a.c voltage required should have maximum value of = %d V' %Vm;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The a.c voltage required should have maximum value of = 162 V\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.16, Page number 95" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt \n", + "from math import pi\n", + "#Variable declaration\n", + "rf=20; #Internal resistance of the diodes in ohm\n", + "Vrms=50; #RMS value of transformer's secondary voltage from centre tap to each end of secondary\n", + "RL=980; #Load resistance in ohm\n", + "\n", + "#Calculation\n", + "Vm=Vrms*sqrt(2); #Maximum a.c voltage in V\n", + "Im=Vm/(rf+RL); #Maximum load current in A\n", + "Im=Im*1000; #Maximum load current in mA\n", + " \n", + "# 1:\n", + "Idc=2*Im/pi; #Mean load current\n", + "\n", + "# 2:\n", + "Irms=Im/sqrt(2); #RMS value of load current in A\n", + "\n", + "#Result\n", + "print 'i:';\n", + "print' The mean load current= %d mA'%Idc;\n", + "print 'ii:';\n", + "print ' The r.m.s value of the load current = %d mA'%Irms; " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "i:\n", + " The mean load current= 45 mA\n", + "ii:\n", + " The r.m.s value of the load current = 50 mA\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.17, Page number 95-96" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt \n", + "#Variable declaration\n", + "RL=100; #Load resistance in ohm \n", + "rf=0; #Internal resistance of the diodes in ohm\n", + "Turns_ratio=5/1; #Primary to secondary turns ratio of transformer \n", + "P_Vrms=230; #R.M.S value of voltage in primary winding in V\n", + "S_Vrms=P_Vrms/Turns_ratio; #R.M.S value of voltage in secondary winding in V\n", + "S_Vm=S_Vrms*sqrt(2); #Maximum voltage across secondary winding in V\n", + "Vm=S_Vm/2; #Maximum voltage across half seconfdary winding in V\n", + "\n", + "\n", + "#Calculation\n", + "# 1:\n", + "Idc=2*Vm/(pi*RL); #Average current in A\n", + "Vdc=Idc*RL; #d.c output voltage in V\n", + "\n", + "# 2:\n", + "PIV=S_Vm; #Peak Invers Voltage(= Maximum secondary voltage) in V\n", + "\n", + "# 3:\n", + "Pac=pow(Vm/(RL*sqrt(2)),2)*(rf+RL); #a.c input power in watt\n", + "Pdc=(pow(Idc,2)*RL); #d.c output power in watt\n", + "R_eff=(Pdc/Pac)*100; #Rectification efficiency\n", + "R_eff=round(R_eff,1);\n", + "\n", + "#Result\n", + "print 'i:';\n", + "print ' The d.c output voltage= %.1f V'%Vdc;\n", + "print 'ii:';\n", + "print ' The peak inverse voltage= %d V'%PIV;\n", + "print 'iii:';\n", + "print ' Rectification efficiency= %.1f%%'%R_eff;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "i:\n", + " The d.c output voltage= 20.7 V\n", + "ii:\n", + " The peak inverse voltage= 65 V\n", + "iii:\n", + " Rectification efficiency= 81.1%\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NOTE: The value of rectification efficiency is calculated as 81.2% in the textbook using the formula 0.812/(1 + (rf/RL)), but by calculating using the correct values in the formula we get 81.1%." + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.18, Page number 96-97" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt \n", + "#Variable declaration\n", + "fin=50; #frequency of input ac source in Hz\n", + "RL=200; #Load resistance in ohm\n", + "Turns_ratio=4/1; #Transformers turns ratio, primary to secondary.\n", + "P_Vrms=230.0; #R.M.S value of voltage in primary winding in V\n", + "S_Vrms=P_Vrms/Turns_ratio #R.M.S value of voltage in secondary winding in V\n", + "Vm=S_Vrms*sqrt(2); #Maximum voltage across secondary winding in V\n", + "\n", + "#Calculation\n", + "# 1:\n", + "Idc=2*Vm/(pi*RL); # Average current in A\n", + "Vdc=Idc*RL; #Output d.c voltage in V\n", + "Vdc=round(Vdc,0);\n", + "# 2:\n", + "PIV= Vm; #Peak Inverse Voltage(= Maximum volutage across secondary winding) in V\n", + "\n", + "# 3:\n", + "fout=2*fin; #Output frequency in Hz\n", + "\n", + "#Result\n", + "print 'i:';\n", + "print ' The d.c output voltage = %d V' %Vdc;\n", + "print 'ii:';\n", + "print ' The peak inverse voltage = %.1f V'%PIV;\n", + "print 'iii:';\n", + "print ' The output frequency = %d Hz'%fout;\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "i:\n", + " The d.c output voltage = 52 V\n", + "ii:\n", + " The peak inverse voltage = 81.3 V\n", + "iii:\n", + " The output frequency = 100 Hz\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.19, Page number 97" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "RL=100.0; #Load Resistance in ohm\n", + "Turns_ratio=5/1; #Primary to secondary turns ratio of the transformer\n", + "Vin=230.0; #R.M.S value of input voltage in V\n", + "fin=50; #Input frequency in Hz\n", + "\n", + "#Calculation\n", + "Vs_rms=Vin/Turns_ratio; #R.M.S value of the voltage in secondary winding, in v\n", + "Vs_max=Vs_rms*sqrt(2); #Maximum voltage across secondary, in V\n", + "\n", + "# (i)\n", + "#Case i: Centre-tap circuit\n", + "Vm=Vs_max/2; #Maximum voltage across half secondary winding, in V \n", + "Vdc=2*Vm*RL/(pi*RL); #DC output voltage, in V \n", + "print 'The d.c output voltage for the centre-tap circuit = %.1f V'%Vdc;\n", + "\n", + "#Case ii:\n", + "Vm=Vs_max; #Maximum voltage across secondary, in V\n", + "Vdc=2*Vm*RL/(pi*RL); #DC output voltage, in V \n", + "print 'The d.c output voltage for the bridge circuit = %.1f V'%Vdc; \n", + "\n", + "# ii:\n", + "#Case i: Centre-tap circuit\n", + "Turns_ratio=5/1; #Turns ratio of the transformer\n", + "Vs_rms=Vin/Turns_ratio; #R.M.S value of the secondary voltage in V\n", + "Vs_max=Vs_rms*sqrt(2); #Maximum voltage across the secondary in V\n", + "Vm=Vs_max/2; #Maximum voltage across half of the secondary in V\n", + "PIV=2*Vm; #Peak Inverse Voltage in V\n", + "print 'PIV in case of centre-tap circuit = %d V'%PIV;\n", + "\n", + "#Case ii: Bridge circuit\n", + "Turns_ratio=10/1; #Turns ratio of the transformer\n", + "Vs_rms=Vin/Turns_ratio; #R.M.S value of the secondary voltage in V\n", + "Vs_max=Vs_rms*sqrt(2); #Maximum voltage across the secondary in V\n", + "PIV=Vm; #Peak Inverse Voltage in V\n", + "print 'PIV in case of bridge circuit = %.1f V'%PIV;\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The d.c output voltage for the centre-tap circuit = 20.7 V\n", + "The d.c output voltage for the bridge circuit = 41.4 V\n", + "PIV in case of centre-tap circuit = 65 V\n", + "PIV in case of bridge circuit = 32.5 V\n" + ] + } + ], + "prompt_number": 46 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.20, Page number 98" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "from math import sqrt\n", + "#Variable declaration\n", + "rf=1; #forward resistance of diodes of the rectifier in ohm\n", + "RL=480; #Load resistance in ohm\n", + "Vrms=240.0; #a.c supply voltage in V\n", + "Vm=Vrms*sqrt(2); #Maximum a.c voltage in V \n", + "\n", + "#Calculation\n", + "# 1:\n", + "Rt=2*rf+RL; #Total circuit resistance at any instance in ohm\n", + "Im=Vm/Rt; #Maximum load current in A\n", + "Idc=2*Im/pi; #Mean load current in A\n", + "\n", + "# 2:\n", + "Irms=Im/2; #R.M.S value of current in A\n", + "P=pow(Irms,2)*rf; #Power dissipated in each diode in watt\n", + "\n", + "\n", + "#Result\n", + "print 'i:';\n", + "print ' Mean load current = %.2f A'%Idc;\n", + "print 'ii:';\n", + "print ' Power dissipated in each diode= %.3f W'%P;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "i:\n", + " Mean load current = 0.45 A\n", + "ii:\n", + " Power dissipated in each diode= 0.124 W\n" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NOTE: The value of power dissipated is approximately 0.124 W , but in the textbook it is approximated as 0.123W." + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.21, Page number 98-99" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt,pi\n", + "#Variable declaration\n", + "RL=12000; #Load resistance in ohm\n", + "V0=0.7; #Potential barrier voltage of diodes in V\n", + "Vrms=12; #R.M.S value of input a.c voltage in V\n", + "Vs_pk=Vrms*sqrt(2); #Peak secondary voltage in V\n", + "\n", + "#Calculation\n", + "# 1:\n", + "Vout_pk=Vs_pk-(2*V0); #Peak output voltage in V\n", + "Vav=2*Vout_pk/pi; #Average output voltage in V\n", + "Vav=round(Vav,2);\n", + "\n", + "# 2:\n", + "Iav=Vav/RL; #Average output current in A\n", + "Iav=Iav*pow(10,6); #Average output current in \u03bcA\n", + "\n", + "\n", + "#Result\n", + "print 'i:';\n", + "print ' Average output voltage=%.2f V'%Vav;\n", + "print 'ii:';\n", + "print ' Average output current=%.1f \u03bcA'%Iav;\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "i:\n", + " Average output voltage=9.91 V\n", + "ii:\n", + " Average output current=825.8 \u03bcA\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.22, Page number 102" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vdc_A=10; #Supply voltage of A in V\n", + "Vdc_B=25; #Supply voltage of B in V\n", + "Vac_rms_a=0.5; #Ripples in power supply A in V\n", + "Vac_rms_b=0.001; #Ripples in power supply B in V\n", + "\n", + "#Calculation\n", + "#For power supply A\n", + "ripple_factor_A=Vac_rms_a/Vdc_A; #Ripple factor of power supply A\n", + "\n", + "#For power supply B\n", + "ripple_factor_B=Vac_rms_b/Vdc_B; #Ripple factor of power supply B\n", + "\n", + "#Result\n", + "if(ripple_factor_A<ripple_factor_B):\n", + " print 'Power supply A is better';\n", + "else :\n", + " print 'Power supply B is better';" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power supply B is better\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.23, Page number 105-106" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "#Variable declaration\n", + "RL=2200; #Load resistance in ohm\n", + "C=50*pow(10,-6); #Capacitance of the capacitor used in filter circuit in F\n", + "V0=0.7; #Potential barrier voltage of the diodes of the rectifier in V\n", + "Vrms=115.0; #R.M.S value of input a.c voltage in V \n", + "fin=60; #Frequency of input a.c voltage in Hz\n", + "Turns_ratio=10/1; #Primary to secondary, turns ratio of the transformer \n", + "\n", + "#Calculation\n", + "Vp_prim=Vrms*sqrt(2); #Peak primary voltage in V\n", + "Vp_sec=Vp_prim/Turns_ratio; #Peak secondary voltage in V\n", + "Vp_in= Vp_sec - 2*V0; #Peak full wave rectified voltage at the filter input in V\n", + "f=2*fin; #Output frequency in Hz\n", + "Vdc=Vp_in*(1-(1/(2*f*RL*C))); #Output d.c voltage in V\n", + "\n", + "#Result\n", + "print 'The output d.c voltage is = %.1f V'%Vdc;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output d.c voltage is = 14.3 V\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.24, Page number 106" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "#Variable declaration\n", + "R=25; #d.c resistance of the choke in ohm\n", + "RL=750; #Load resistance in ohm\n", + "Vm=25.7; #Maximum value of the pulsating output from the rectifier in V\n", + "\n", + "#Calculation\n", + "V_dc=2*Vm/pi; #d.c component of the pulsating output in V\n", + "V_dc=round(V_dc,1);\n", + "V_dc_out=(V_dc*RL)/(R+RL); #Output d.c voltage in V\n", + "V_dc_out=round(V_dc_out,1);\n", + "\n", + "#Result\n", + "print ' The output d.c voltage accross the load resistance is = %.1f V'%V_dc_out;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The output d.c voltage accross the load resistance is = 15.9 V\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.25, Page number 113-114" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Ei=120.0; #Input Voltage in V\n", + "Vz=50.0; #Zener Voltage in V\n", + "R=5000.0; #Resistance of the series resistor in ohm\n", + "RL=10000.0; #Load resistance in ohm\n", + "\n", + "#Calculation\n", + "V=Ei*RL/(R+RL); #Voltage across the open circuit if the zener diode is removed\n", + "if(V>Vz):\n", + " #Zener diode is in ON state\n", + " # i:\n", + " Output_voltage=Vz; #Voltage across load resistance, in V\n", + " #ii:\n", + " Voltage_R=Ei-Vz; #Voltage across the series resistance R, in V\n", + " #iii:\n", + " IL=Vz/RL; #Load current through RL in A\n", + " IL=IL*1000; #Load current through RL in mA\n", + " I=Voltage_R/R; #Current through the series resistance in A\n", + " I=I*1000; #Current through the series resistance in mA\n", + " Iz=I-IL; #Applying Kirchhoff's first law, Zener current in mA\n", + " \n", + " #Result\n", + " print 'i) The output voltage across the load resistance RL = %d V'%Output_voltage;\n", + " print 'ii) The voltage drop across the series resistance R = %d V'%Voltage_R;\n", + " print 'iii) The current through the zener diode = %d mA'%Iz;\n", + " " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "i) The output voltage across the load resistance RL = 50 V\n", + "ii) The voltage drop across the series resistance R = 70 V\n", + "iii) The current through the zener diode = 9 mA\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.26, Page number 114-115" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Max_V=120.0; #Maximum input voltage in V\n", + "Min_V=80.0; #Minimum input voltage in V\n", + "R=5000.0; #Series resistance in ohm\n", + "RL=10000.0; #Load resistance in ohm\n", + "Vz=50.0; #Zener voltage in V\n", + "\n", + "\n", + "#Calculation\n", + "#Case i: Maximum zener current\n", + "#Zener current will be maximum when the input voltage is maximum\n", + "V_R_max=Max_V-Vz; #Voltage across series resistance R, in V\n", + "I_max=V_R_max/R; #Current through series resistance R, in A\n", + "I_max=I_max*1000; #Current through series resistance R, in mA\n", + "IL_max=Vz/RL; #Load current in A\n", + "IL_max=IL_max*1000; #Load current in mA\n", + "Iz_max=I_max-IL_max; #Applying Kirchhoff's first law, Zener current in mA;\n", + "\n", + "#Case ii: Minimum zener current\n", + "#The zener will conduct minimum current when the input voltage is minimum\n", + "V_R_min=Min_V-Vz; #Voltage across series resistance R, in V\n", + "I_min=V_R_min/R; #Current through series resistance R, in A\n", + "I_min=I_min*1000; #Current through series resistance R, in mA\n", + "IL_min=Vz/RL; #Load current in A\n", + "IL_min=IL_min*1000; #Load current in mA\n", + "Iz_min=I_min-IL_min; #Applying Kirchhoff's first law, Zener current in mA\n", + "\n", + "#Result\n", + "print 'Case i: ';\n", + "print 'Maximum zener current = %d mA'%Iz_max;\n", + "print 'Case ii: ';\n", + "print 'Minimum zener current = %d mA'%Iz_min;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Case i: \n", + "Maximum zener current = 9 mA\n", + "Case ii: \n", + "Minimum zener current = 1 mA\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.27, Page number 115" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Ei=12; #Input voltage in V\n", + "Vz=7.2; #Zener voltage in V\n", + "E0=Vz; #Voltage to be maintained across the load in V\n", + "IL_max=0.1; #Maximum load current in A\n", + "IL_min=0.012; #Minimum load current in A\n", + "Iz_min=0.01; #Minimum zener current in A\n", + "\n", + "#Calculation\n", + "#When the load current is maximum at minimum value of RL, the zener current is minimum and, as the load current decreases due to increase in value of RL\n", + "R=(Ei-E0)/(Iz_min+IL_max); #The value of series resistance R to maintain a voltage=E0 across load, in ohm\n", + "\n", + "#Result\n", + "print 'The minimum value of series resistance R to maintain a constant value of 7.2 V is = %.1f \u03a9'%R;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The minimum value of series resistance R to maintain a constant value of 7.2 V is = 43.6 \u03a9\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "NOTE: The actual value of R is 43.636363 (recurring) but, in the textbook the value of R is wrongly approximated 43.5 \u03a9" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.28, Page number 115" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Ei_min=22; #Minimum input voltage in V\n", + "Ei_max=28; #Maximum input voltage in V\n", + "Vz=18; #Zener voltage in V\n", + "E0=Vz; #Constant voltage maintained across the load resistance in V\n", + "Iz_min=0.2; #Minimum zener current in A\n", + "Iz_max=2; #Maximum zener current in A\n", + "RL=18; #Load resistance in \u03a9\n", + "\n", + "#Calculation\n", + "IL=Vz/RL; #Constant value of load current in A\n", + "#When the input voltage is minimum, the zener current will be minimum\n", + "R=(Ei_min-E0)/(Iz_min+IL) #The value of series resistance so that the voltage E0 across RL remains constant\n", + "\n", + "print 'The value of series resistance R, to maintain constant voltage E0 across RL = %.2f \u03a9.'%R;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of series resistance R, to maintain constant voltage E0 across RL = 3.33 \u03a9.\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.29, Page number 116 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=10 #Zener voltage in V\n", + "Ei_min=13; #Minimum input voltage in V\n", + "Ei_max=16; #Maximum input voltage in V\n", + "Iz_min=0.015; #Minimum zener current in A\n", + "IL_min=0.01; #Minimum load current in A \n", + "IL_max=0.085; #Maximum load curremt in A\n", + "E0=Vz; #Constant voltage to be maintained in V \n", + "\n", + "#Calculation\n", + "#The zener current will be minimum when the input voltage will be minimum and at that time the load current will be maximum\n", + "R=(Ei_min-E0)/(Iz_min+IL_max); #The value of series resistance R to maintain a constant voltage across load\n", + "\n", + "\n", + "#Result\n", + "print 'The value of series resistance to maintain a constant voltage across the load resistance is = %d \u03a9'%R;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of series resistance to maintain a constant voltage across the load resistance is = 30 \u03a9\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.30, Page number 116" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Iz=0.2; #Current rating of each zener in A\n", + "Vz=15; #Voltage rating of each zener in V\n", + "Ei=45; #Input voltage in V\n", + "\n", + "#Calculation\n", + "# i: Regulated output voltage across the two zener diodes \n", + "E0=2*Vz; # V\n", + "\n", + "# ii: Value of series resistance \n", + "R=(Ei-E0)/Iz; # \u03a9\n", + "\n", + "#Result\n", + "print 'i) The regulated output voltage = %d V'%E0;\n", + "print 'ii) The value of the series resistance = %d \u03a9'%R;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "i) The regulated output voltage = 30 V\n", + "ii) The value of the series resistance = 75 \u03a9\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.31, Page number 116-117" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Vz=10; #Voltage rating of each zener in V\n", + "Iz=1; #Current rating of each zener in A\n", + "Ei=45; #Input unregulated voltage in V\n", + "\n", + "#Calculation\n", + "#Regulated output voltage across the three zener diodes\n", + "E0=3*Vz; # V\n", + "\n", + "#Value of series resistance to obtain a 30V regulated output voltage\n", + "R=(Ei-E0)/Iz; # \u03a9\n", + "\n", + "#Result\n", + "print 'Value of series resistance to obtain a 30V regulated output voltage = %d \u03a9'%R;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of series resistance to obtain a 30V regulated output voltage = 15 \u03a9\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.32, Page number 117" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#variable declaration\n", + "RL=2000.0; #Load resistance in \u03a9\n", + "R=200.0; #Series resistance in \u03a9\n", + "Iz=0.025; #Zener current rating in A\n", + "E0=30.0; #Output regulated voltage in V \n", + "\n", + "#Calculation\n", + "#Minimum input voltage will be required when Iz=0 A, and at this condition\n", + "IL=E0/RL; #Load current during Iz=0, in A\n", + "I=IL; #According to Kirchhoff's law, total current, in A\n", + "Ei_min=E0+(I*R); #Minimum input voltage in V\n", + "\n", + "#The maximum input voltage required will be when Iz=0.025 A, and at that condition \n", + "I=IL+Iz; #According to Kirchhoff's law, total current, in A\n", + "Ei_max=E0+(I*R); #maximum input voltage in V\n", + "\n", + "\n", + "#Result\n", + "print 'The required range of input voltage is from %d V to %d V'%(Ei_min,Ei_max); \n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The required range of input voltage is from 33 V to 38 V\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.33, Page number 117-118" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Ei=16; #Unregulated input voltage in V\n", + "E0=12; #Output regulated voltage in V\n", + "IL_min=0; #Minimum load current in A\n", + "IL_max=0.2; #Maximum load current in A\n", + "Iz_min=0; #Minimum zener current in A\n", + "Iz_max=0.2; #Maximum zener current in A\n", + "\n", + "#Calculation\n", + "#As the regulated voltage required across the load is 12V\n", + "Vz=E0; #Voltage rating of zener diode in V\n", + "V_R=Ei-E0; #Constant Voltage that should remain across series resistance \n", + "#The minimum zener current will occur when the curent in the load in maximum\n", + "R=V_R/(Iz_min+IL_max); #Series resistance in \u03a9\n", + "\n", + "Max_power_rating=Vz*Iz_max; #Maximum power rating of zener diode in W\n", + "\n", + "#Result\n", + "print 'The regulator is designed using a Seris resistance of %d \u03a9 and a zener diode of zener voltage %d V'%(R,Vz);\n", + "print 'The maximum power rating of the zener diode is = %.1f W '%Max_power_rating;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The regulator is designed using a Seris resistance of 20 \u03a9 and a zener diode of zener voltage 12 V\n", + "The maximum power rating of the zener diode is = 2.4 W \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6.34, Page number 118" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V=12; #Source voltage in V\n", + "R=1000; #Series resistance in \u03a9\n", + "RL=5000; #Load resistance in \u03a9\n", + "Vz=6; #Voltage rating of zener in V\n", + "\n", + "#Calculation\n", + "#Case i: zener is working properly\n", + "#The output voltage across the load will be equal to the zener voltage.\n", + "V0=Vz; # V\n", + "\n", + "#Result\n", + "print 'Case i: Output voltage when zener is working properly is %d V'%V0;\n", + "\n", + "#Case ii: zener is shorted\n", + "#As the zener is shorted, the potential difference across the load will be zero\n", + "V0=0; #V\n", + "\n", + "#Result\n", + "print 'Case ii: Output voltage when zener is short circuited is %d V'%V0;\n", + " \n", + "#Case iii: zener is open circuited\n", + "#If the zener is open circuited, the total voltage will drop across R and RL according to the voltage divider rule\n", + "V0=V*RL/(R+RL); #V\n", + "\n", + "#Result\n", + "print 'Case iii: Output voltage when zener is open circuited is %d V'%V0;\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Case i: Output voltage when zener is working properly is 6 V\n", + "Case ii: Output voltage when zener is short circuited is 0 V\n", + "Case iii: Output voltage when zener is open circuited is 10 V\n" + ] + } + ], + "prompt_number": 4 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter7_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter7_2.ipynb new file mode 100644 index 00000000..537a179e --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter7_2.ipynb @@ -0,0 +1,212 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:e210474f5c4fc6668f4c7b5af2adf833a1c7f62577017a980ab8d11cd8ce2886" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 7 : SPECIAL-PURPOSE DIODES" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.1 : Page number 127-128\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_S=10.0; #Supply voltage in V\n", + "V_D=1.6; #Forward voltage drop of LED, in V\n", + "I_F=20.0; #Required limited current through LED, in mA\n", + "\n", + "#Calculations\n", + "R_S=(V_S-V_D)/(I_F/1000); #Series resistor required to limit the current through the LED, in \u2126\n", + "\n", + "#Result \n", + "print(\"The value of series resistor required to limit the current through the LED = %d \u2126.\"%R_S);\n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of series resistor required to limit the current through the LED = 420 \u2126.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.2: Page number 128" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_S=15.0; #Supply voltage in V\n", + "V_D=2.0; #Forward voltage drop of LED, in V\n", + "R_S=2200.0; #Series resistor required to limit the current through the LED, in \u2126\n", + "\n", + "#Calculations\n", + "I_F=((V_S-V_D)/R_S)*1000; #Required limited current through LED, in mA\n", + "\n", + "#Result \n", + "print(\"The current through the LED in the circuit = %.2f mA\"%I_F);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The current through the LED in the circuit = 5.91 mA\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.3: Page number 132-133" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Ir=50.0; #Dark current as observed from the current Illumination curve, in mA \n", + "V_R=10.0; #Reverse voltage in V\n", + "\n", + "#Calculation\n", + "R_R=V_R/(Ir/pow(10,6)); #Dark Resistance in \u2126\n", + "\n", + "#Result\n", + "print(\"The dark resistance is=%d k\u2126\"%(R_R/1000));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The dark resistance is=200 k\u2126\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.4: Page number 133" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "E=2.5; #Illumination in mW/cm\u00b2\n", + "m=37.4; #sensitivity of the photodiode in \ud835\udf07A/mW/cm\u00b2\n", + "\n", + "#Calculations\n", + "I_R=m*E; #Reverse current in \ud835\udf07A\n", + "\n", + "#Result\n", + "print(\"The reverese current in the photodiode = %.1f \ud835\udf07A\"%I_R);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The reverese current in the photodiode = 93.5 \ud835\udf07A\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7.5: Page number 137" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import pi\n", + "from math import sqrt\t\n", + "#Variable declaration\n", + "L=1.0; #Inductance of the inductor in mH\n", + "C=100.0; #Capacitance of the varactor in pF\n", + "\n", + "#Result\n", + "f_r=1/(2*pi*sqrt(L*pow(10,-3)*C*pow(10,-12))); #Resonant frequency of the circuit in Hz\n", + "f_r=f_r/1000; #Resonant frequency of the circuit in kHz\n", + "\n", + "#Result\n", + "print(\"The resonant frequency of the circuit = %.1f kHz\"%f_r);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The resonant frequency of the circuit = 503.3 kHz\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter8_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter8_2.ipynb new file mode 100644 index 00000000..4afe0858 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter8_2.ipynb @@ -0,0 +1,1851 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:9c13bdd66a3dbb3eae04903205b69bc52bf35e6dadf8b1b3ade1bab68394ae3b" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.1: Page number 147-148\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Signal=500.0; #Signal voltage in V\n", + "Rin=20.0; #Input resistance in \u03a9 \n", + "Rout=100.0; #Output resistance in \u03a9\n", + "R_C=1000.0; #Collector load in \u03a9\n", + "alpha_ac=1.0; #current amplification factor\n", + "\n", + "#Calculation\n", + "I_E=(Signal/1000)/Rin; \t#Input current in mA\n", + "I_C=I_E*alpha_ac; #Output current in mA\n", + "Vout=I_C*R_C; #Output voltage in V \n", + "Av=Vout/(Signal/1000); #Voltage amplification \n", + "\n", + "#Result\n", + "print(\"The voltage amplification = %d. \"%Av);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage amplification = 50. \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.2: Page number 150\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_E=1; #Emitter curent in mA\n", + "I_C=0.95; #Collector current in mA\n", + "\n", + "#Calculation\n", + "I_B=I_E-I_C; #Base current in mA\n", + "\n", + "#Result \n", + "print(\"The base current = %.2f mA \"%I_B);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The base current = 0.05 mA \n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 8.3: Page number 150\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#variable declaration\n", + "alpha=0.9; #Current amplification factor\n", + "I_E=1; #Emitter current in mA\n", + "\n", + "#Calculation\n", + "I_C=alpha*I_E; #Collector current in mA\n", + "I_B=I_E-I_C; #Base current in mA\n", + "\n", + "#Result\n", + "print(\"The base current =%.1f mA\"%I_B);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The base current =0.1 mA\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.4: Page number 150\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_C=0.95;\t\t\t#Collector current in mA\n", + "I_B=0.05;\t\t\t#Base current in mA\n", + "\n", + "#Calculation\n", + "I_E=I_B+I_C; #Emitter current in mA\n", + "alpha=I_C/I_E; #Current amplification factor \n", + "\n", + "#Result\n", + "print(\"The current amplification factor = %.2f .\"%alpha);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The current amplification factor = 0.95 .\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.5: Page number 150\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_E=1; #Emitter current in mA\n", + "I_CBO=50.0; #Collector current with emitter circuit open, in microAmp\n", + "alpha=0.92; #Current amplification factor\n", + "\n", + "#Calculation\n", + "I_C=alpha*I_E + (I_CBO/1000); #Total collector current in mA\n", + "\n", + "#Result\n", + "print(\"The total collector current = %.2f mA.\"%I_C);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total collector current = 0.97 mA.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.6: Page number 150-151\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "alpha=0.95; #Current amplification factor\n", + "Rc=2.0; #Resistor connected to the collector, in kilo ohm\n", + "V_Rc=2.0; #Voltage drop across the resistor connected to the collector in V\n", + "\n", + "\n", + "#Calculation\n", + "I_C=V_Rc/Rc; #Collector current in mA\n", + "I_E=I_C/alpha; #Emitter current in mA\n", + "I_B=I_E-I_C; #Base current in mA\n", + "\n", + "#Result\n", + "print(\"The base current = %.2f mA\"%I_B); \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The base current = 0.05 mA\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.7: Page number 151\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_EE=8.0; #Supply voltage at the emitter in V\n", + "V_CC=18.0; #Supply voltage at the collector in V\n", + "V_BE=0.7; #Base to emitter voltage in V\n", + "R_E=1.5; #Emitter resistance in \u03a9\n", + "R_C=1.2; #Collector resistance in \u03a9\n", + "\n", + "#Calculations\n", + "I_E=(V_EE-V_BE)/R_E; #Emitter current in mA\n", + "I_C=I_E; #Collector current in mA (approximately equal to emitter current)\n", + "V_CB=V_CC-(I_C*R_C); #Collector to base voltage in V\n", + "\n", + "#Result\n", + "print(\"The collector current =%.2f mA\"%I_C);\n", + "print(\"The collector to base voltage = %.2f V\"%V_CB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The collector current =4.87 mA\n", + "The collector to base voltage = 12.16 V\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.8:Page number 155\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Function for calculating beta from alpha\n", + "def calc_beta(a): #a is the value of alpha\n", + "\treturn(a/(1-a));\n", + "\n", + "#Case (i)\n", + "alpha=0.9; #current amplification factor\n", + "beta=calc_beta(alpha);\t\t#Base current amplification factor \n", + "print(\"(i) Value of beta =%d\"%beta );\t\t\t\t\t\t\t\t\t\n", + "\n", + "#Case (ii)\n", + "alpha=0.98; #current amplification factor\n", + "beta=calc_beta(alpha); #Base current amplification factor\n", + "print(\"(ii) Value of beta =%.0f\"%beta );\n", + "\n", + "\n", + "#Case (iii)\n", + "alpha=0.99; #current amplification factor\n", + "beta=calc_beta(alpha); #Base current amplification factor \n", + "print(\"(iii) Value of beta =%.0f\"%beta );\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Value of beta =9\n", + "(ii) Value of beta =49\n", + "(iii) Value of beta =99\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.9: Page number 155\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "beta=50.0; #Base current amplification factor\n", + "I_B=20.0; #Base current in microAmp\n", + "\n", + "#Calculation\n", + "I_B=I_B/1000; #Base current in mA\n", + "I_C=beta*I_B; #Collector current in mA\n", + "I_E=I_B+I_C; #Emitter current in mA\n", + "\n", + "#Result\n", + "print(\"The emitter curent = %.2f mA\"%I_E);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The emitter curent = 1.02 mA\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.10: Page number 155\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_B=240.0; #Base current in microAmp\n", + "I_E=12; #Emitter current in mA\n", + "beta=49.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "alpha=beta/(1+beta); #current amplification factor \n", + "I_C_alpha=alpha*I_E; #Collector current in mA calculated using alpha\n", + "I_C_beta=beta*(I_B/1000); #Collector current in mA calculated using beta\n", + "\n", + "#Results\n", + "print(\"alpha=%.2f.\"%alpha);\n", + "print(\"Collector current determined using alpha =%.2f mA\"%I_C_alpha);\n", + "print(\"Collector current determined using beta =%.2f mA\"%I_C_beta);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "alpha=0.98.\n", + "Collector current determined using alpha =11.76 mA\n", + "Collector current determined using beta =11.76 mA\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.11: Page number 156\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "beta=45.0; #Base current amplification factor\n", + "R_C=1.0; #Resistance of the collector resistance in k\u03a9\n", + "V_R_C=1.0; #Voltage drop across the collector resistance in V\n", + "\n", + "#Calculation\n", + "I_C=V_R_C/R_C; #Collector current in mA\n", + "I_B=I_C/beta; #Base current in mA\n", + "\n", + "#Result\n", + "print(\"The base current =%.3f mA\"%I_B);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The base current =0.022 mA\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.12: Page number 156\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=8.0; #Collector supply voltage in V\n", + "R_C=800.0; #Resistance of the collector resistance in \u03a9\n", + "V_R_C=0.5; #Voltage drop across collector resistance in V\n", + "alpha=0.96; #current amplification factor\n", + "\n", + "#Calculation\n", + "V_CE=V_CC-V_R_C; #Collector to emitter voltage in V\n", + "I_C=V_R_C/R_C; #Collector current in A\n", + "I_C=I_C*1000; #Collector current in mA\n", + "beta=alpha/(1-alpha); #Base current amplification factor\n", + "I_B=I_C/beta; #Base current in mA\n", + "\n", + "#Result\n", + "print(\"Collector to emitter voltage = %.1f V\"%V_CE);\n", + "print(\"Base current= %.3f mA\"%I_B);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector to emitter voltage = 7.5 V\n", + "Base current= 0.026 mA\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.13: Page number 156-157\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=5; \t#Collector supply voltage in V\n", + "I_CBO=0.2; \t#Leakage current at collector base junction with emitter open, in \u03bcA\n", + "I_CEO=20.0; \t#Leakage current with base open, in \u03bcA\n", + "I_C=1.0; #Collector current in mA\n", + "I_C=I_C*1000; \t#Collector current in \u03bcA\n", + "\n", + "\n", + "#Calculation\n", + "alpha=1-(I_CBO/I_CEO);\t\t#current amplification factor\n", + "I_E=(I_C-I_CBO)/alpha; #Emitter current in \u03bcA\n", + "I_E=round(I_E,-1);\n", + "I_B=I_E-I_C; #Base current in \u03bcA\n", + "I_B=round(I_B,-1);\n", + "\n", + "#Result\n", + "print(\"Current amplification factor = %.2f \"%alpha);\n", + "print(\"The emitter curent =%d \u03bcA \"%I_E);\n", + "print(\"The base curent =%d \u03bcA \"%I_B);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Current amplification factor = 0.99 \n", + "The emitter curent =1010 \u03bcA \n", + "The base curent =10 \u03bcA \n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.14: Page number 157\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_CEO=300.0; #Leakage current in common emitter configuration, in \u03bcA\n", + "beta=120.0; #Base current amplification factor\n", + "\n", + "#Calculation\n", + "alpha=beta/(1+beta); #Current amplification factor\n", + "alpha=round(alpha,3);\n", + "I_CBO=(1-alpha)*I_CEO; #Leakage current in common base configuration, in \u03bcA\n", + "\n", + "\n", + "#Result\n", + "print(\"Vale of I_CBO= %.1f \u03bcA\"%I_CBO);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Vale of I_CBO= 2.4 \u03bcA\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.15: Page number 157\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_B=20.0; #Base current in \u03bcA\n", + "I_C=2.0; #Collector current in mA\n", + "beta=80.0; #Base current amplification factor\n", + "\n", + "#Calculation\n", + "I_CEO=I_C-(beta*I_B/1000); #Leakage current with base open, in mA \n", + "alpha=beta/(beta+1); #Current amplification factor\n", + "alpha=round(alpha,3);\n", + "I_CBO=(1-alpha)*I_CEO; #Leakage current with emitter open, in mA\n", + "\n", + "\n", + "#Result\n", + "print(\"Value of I_CBO=%.4f mA\"%I_CBO);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of I_CBO=0.0048 mA\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.17: Page number 158\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "beta=150.0; \t#Base current amplification factor\n", + "R_B=10.0; \t#Base resistance in kilo ohm\n", + "R_C=100.0; \t#Collector resistance in kilo ohm\n", + "V_CC=10.0; #Collector supply voltage in V\n", + "V_BB=5.0; #Base supply voltage in V\n", + "V_BE=0.7; #Base to emitter voltage in V\n", + "\n", + "\n", + "#Calculation\n", + "I_B=(V_BB-V_BE)/R_B; #Base current in mA\n", + "I_C=beta*I_B; #Collector current in mA\n", + "V_CE=V_CC - (I_C/1000)*R_C; #Collector to emitter voltage in V\n", + "V_CB=V_CE-V_BE; #Collector to base voltage in V\n", + "\n", + "\n", + "#Result \n", + "print(\"Collector to base voltage, V_CB= %.2f V\"%V_CB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector to base voltage, V_CB= 2.85 V\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.18: Page number158-159\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_B=68.0; #Base current in \u03bcA\n", + "I_E=30.0; #Emitter current in mA\n", + "beta=440.0;\t #Base current amplification factor\n", + "\n", + "#Calculation\n", + "alpha=beta/(beta + 1); #current amplification factor\n", + "I_C_alpha=alpha*I_E;\t\t#Collector current using alpha rating, in mA\n", + "I_C_beta=beta*(I_B/1000.0); #Collector current using beta rating, in mA\n", + "\n", + "#Result\n", + "print(\"Collector current determined using alpha rating =%.2f mA\"%I_C_alpha);\n", + "print(\"Collector current determined using beta rating =%.2f mA\"%I_C_beta);\n", + "\n", + "#Note: In the textbook, the collector current obtained from beta rating is approximated to 29.93 mA\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector current determined using alpha rating =29.93 mA\n", + "Collector current determined using beta rating =29.92 mA\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.19: Page number 159\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "I_C_max=500.0; #Maximum collector current in mA\n", + "beta_max=300.0; #Maximum base current amplification factor\n", + "\n", + "#Calculation\n", + "I_B_max=I_C_max/beta_max; #Maximum base current in mA\n", + "\n", + "\n", + "#Result\n", + "print(\"The maximum allowable value of base current = %.2f mA\"%I_B_max);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum allowable value of base current = 1.67 mA\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.22 : Page number 167-168" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import matplotlib.pyplot as plt\n", + "\n", + "#Variable declaration\n", + "VCC=12.5; #Collector supply voltage, V\n", + "RC=2.5; #Collector resistor, k\u03a9\n", + "\n", + "#Calculation\n", + "#VCE=VCC-IC*RC\n", + "#For calculating VCE, IC=0\n", + "IC=0; #Collector current for maximum Collector-emitter voltage, mA\n", + "VCE_max=VCC-IC*RC; #Maximum collector-emitter voltage, V\n", + "\n", + "#For calculating VCE, IC=0\n", + "VCE=0; #Collector emitter voltage for maximum collector current, V\n", + "IC_max=(VCC-VCE)/RC; #Maximum collector current, mA\n", + "\n", + "\n", + "#Plotting of d.c load line\n", + "VCE_plot=[0,VCE_max]; #Plotting variable for VCE\n", + "IC_plot=[IC_max,0]; #Plotting variable for IC\n", + "p=plot(VCE_plot,IC_plot);\n", + "limit = plt.gca()\n", + "limit.set_xlim([0,15])\n", + "limit.set_ylim([0,6])\n", + "xlabel('VCE(V)');\n", + "ylabel('IC(mA)');\n", + "title('d.c load line');\n", + "plt.grid();\n", + "show(p);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEZCAYAAABoy7XpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtUlHX+B/D3EHYUTdEEvAwIeeWmg6KuHMlRE4vQTUGT\ntgso1VFzpWy3e7nu8VJpiu62bZs2dVzFLDfNyFJjXFeXYwmES+2SG7hcvOKVvHB7fn/wYxRlhhlm\nnsv3mffrHE7nmYH5vnlOfPj65pkZgyRJEoiISBd81A5ARESew6FORKQjHOpERDrCoU5EpCMc6kRE\nOsKhTkSkIxzqpGlpaWl45ZVX3HqMsrIy+Pj4oLGx0UOprjObzVi/fn2r9y1evBiPPPIIAOB///sf\n7rjjDvAKYpKbr9oBiBwxGAwwGAxqx7DLUb4bbw8JCcGlS5eUikVejDt10jxRd7ei5iaxcaiTphQU\nFGD48OHo2rUrZs2ahatXr9r93MbGRixbtgwDBgxA165dERsbi4qKijbXqKqqwtSpU3HnnXdi4MCB\neO+992z3HTp0CGPGjEH37t3Rp08fLFiwAHV1dbb7d+/ejSFDhsDf3x8LFiyAJElODe+bKyCz2YxX\nX30VY8eORdeuXTF58mRUV1fbPj8vLw9xcXHo3r07TCYT9u3b1+YaRACHOmlIbW0tHnjgATz22GM4\nd+4cZsyYgU8++cRuvbFq1SpkZ2fjiy++wMWLF/H+++/Dz8+vzXVmzZqFkJAQHD9+HB9//DFefPFF\n5ObmAgB8fX2RlZWF6upq/POf/8TevXvx9ttvAwDOnDmD5ORkLFu2DNXV1ejfvz8OHDjQ7npo8+bN\nsFgsOHXqFGpra7Fy5UoAQGVlJZKSkvDqq6/i3LlzWLlyJZKTk3HmzJl2rUPehUOdNCMvLw/19fVY\nuHAhbrvtNiQnJ2PkyJF2P3/9+vVYunQpBg4cCACIjo5Gjx49HK5RXl6OgwcP4vXXX8ftt9+OYcOG\nISMjAx9++CEAYPjw4Rg1ahR8fHzQr18/PPHEE7Zdck5ODqKiojB9+nTcdtttyMzMRK9evdr1vRoM\nBqSnp2PAgAHo2LEjZs6cicLCQgDAxo0bkZiYiHvvvRcAcM899yA2NhY5OTntWou8C4c6aUZVVRX6\n9u3b4rZ+/frZrTfKy8vRv39/l9fo0aMHOnfubLstJCQElZWVAICSkhIkJSWhd+/e6NatG1566SVb\nLVJVVQWj0dji8YKDg11a/0Y3/kLo1KkTampqAADHjh3D1q1b0b17d9vHgQMHcOLEiXavRd6DQ500\no3fv3rbh2uzYsWN2643g4GAcPXrUpTX69OmDs2fP2gYo0HS5YfOwnjt3LiIiInD06FFcuHABS5cu\ntfXgffr0QXl5ue3rJElqcXyz9tYyISEheOSRR3Du3Dnbx6VLl/Db3/62XY9H3oVDnTQjLi4Ovr6+\nWLt2Lerq6rBt2zZ88803dj8/IyMDr7zyCo4ePQpJklBUVISzZ886XCM4OBhxcXF44YUXcO3aNRQV\nFWHDhg14+OGHAQA1NTW444474Ofnh3//+9/405/+ZPvaxMREFBcX429/+xvq6+uxdu1ah7vntv6A\nau/+hx9+GJ999hm++uorNDQ04OrVq7Barbf8wiNqDYc6aUaHDh2wbds2WCwW3Hnnnfjoo4+QnJxs\nu7/5CTzNV7g888wzmDlzJhISEtCtWzc8/vjjdq+WuXHXvHnzZpSVlaFPnz6YPn06lixZggkTJgAA\nVq5ciU2bNqFr16544oknMGvWLNvX9uzZE1u3bsXzzz+Pnj174ujRoxg7dqzd7+fma9hv3rnffF/z\nsdFoxPbt27Fs2TIEBgYiJCQEq1atkuXJU6Q/BjnfJOP8+fPIyMhAcXExDAYDNmzYgF/84hdyLUdE\n5PVkfUbpwoULkZiYiI8//hj19fX4+eef5VyOiMjrybZTv3DhAmJiYvDTTz/J8fBERNQK2Tr10tJS\nBAQEID09HcOHD8fjjz+Oy5cvy7UcERFBxqFeX1+P/Px8zJs3D/n5+ejcuTNWrFgh13JERAQZO3Wj\n0Qij0Wh7RmBKSsotQ13Lr75HRKRl9ppz2XbqvXr1QnBwMEpKSgAAe/bsQWRkZKvBRPp47bXXVM+g\n98yi5WVm5lU6syOyXv2ybt06/OpXv0JtbS369++P999/X87lFFFWVqZ2BJeJllm0vAAzK0G0vIA6\nmWUd6sOGDXP4jEAiIvIsPqPURWlpaWpHcJlomUXLCzCzEkTLC6iTWdZnlLa5uMHQZj9EREQtOZqd\n3Km7yGq1qh3BZaJlFi0vwMxKEC0voE5mDnUiIh1h/UJEJBjWL0REXoJD3UXs9eQnWl6AmZUgWl6A\nnToREbmJnToRkWDYqRMReQkOdRex15OfaHkBZlaCaHkBdupEROQmdupERIJhp05E5CU41F3EXk9+\nouUFmFkJouUF2KkTEZGb2KkTEQmGnToRkZfgUHcRez35iZYXYGYliJYXYKdORERuYqdORCQYdupE\nRF6CQ91F7PXkJ1pegJmVIFpegJ06ERG5iZ06EZFg2KkTEXkJDnUXsdeTn2h5AWZWgmh5AXbqRETk\nJtk79dDQUHTt2hW33XYbOnTogEOHDl1fnJ06EZHLHM1OXyUWt1qt6NGjh9xLERF5PUXqFz3txtnr\nyU+0vAAzK0G0vIBOO3WDwYB77rkHsbGx+Mtf/iL3ckREXk32Tv348ePo3bs3Tp8+jUmTJmHdunWI\nj49vWtxgQHGxhIgIORMQEemLqp167969AQABAQGYNm0aDh06ZBvqABATk4b4+FDExQE9evjDZDLB\nbDYDuP5PFx7zmMc89uZjq9UKi8UCoOniE4ckGf3888/SxYsXJUmSpJqaGikuLk768ssvbfcDkEpL\nJWniREkaOVKSiovlTOMZubm5akdwmWiZRcsrScysBNHySpJ8mR2Nblk79ZMnTyI+Ph4mkwmjR49G\nUlISEhISWnxOaCiwezcwZw4wbhywYgVQXy9nKiIi/dLUa7+UlQEZGcDFi4DFAnbtREStEOa1X7hr\nJyJyj6aGOgAYDMCTTwLffAPs2QPExQHff692quua/3ghEtEyi5YXYGYliJYX0Ol16u3FXTsRkes0\n1anbw66diOg6YTp1e7hrJyJyjhBDHdBO185eT36i5QWYWQmi5QXYqTuFu3YiIvuE6NTtYddORN5I\n+E7dHu7aiYhaEnqoA8p37ez15CdaXoCZlSBaXoCdulu4ayciErxTt4ddOxHpmW47dXu4aycib6XL\noQ7I17Wz15OfaHkBZlaCaHkBduqy4K6diLyJLjt1e9i1E5EeeF2nbg937USkd1411AH3u3b2evIT\nLS/AzEoQLS/ATl1R3LUTkR55VaduD7t2IhIJO/U2cNdORHrBof7/nO3a2evJT7S8ADMrQbS8ADt1\nTeCunYhExk7dAXbtRKRF7NTbibt2IhINh3obbu7ao6Ksqrw3qjtE6yJFywswsxJEywuwU9e05l17\nYiJ37USkXezU24FdOxGpiZ26h7FrJyKtkn2oNzQ0ICYmBlOmTJF7KUU0d2RKvzeqO0TrIkXLCzCz\nEkTLC+i0U8/KykJERAQMBoPcS6mCu3Yi0hJZO/WKigqkpaXhpZdewltvvYXPPvus5eKCdur2sGsn\nIiWo1qk//fTTePPNN+Hj4x3VPXftRKQ2X7keeOfOnQgMDERMTIzDXiktLQ2hoaEAAH9/f5hMJpjN\nZgDX+ygtHRcWFiIzM9Ph5z/5pBmTJwPJyVZYLMC2bWZERKiXv/k2LZw/Pea9MatW8jhzvGbNGs3/\nvImc19l54ez/XxaLBQBs89IuSSYvvPCCZDQapdDQUKlXr16Sn5+f9Mgjj7T4HBmXl01ubq7Tn9vY\nKEnvvCNJPXtK0vLlklRXJ18uR1zJrAWi5ZUkZlaCaHklSb7MjmanItep79u3DytXrtR9p24Pu3Yi\n8iRNXKeu16tfnMGunYiUoshQHzduHHbs2KHEUrK7sTt1hZrXtbc3s1pEywswsxJEywvo9Dp1aom7\ndiKSE1/7RUXs2omoPTTRqdOtuGsnIk/jUHeRpzsyJbp20bpI0fICzKwE0fIC7NS9GnftROQJ7NQ1\niF07ETnCTl0w3LUTUXtxqLtIqY7Mk127aF2kaHkBZlaCaHkBdurUCu7aicgV7NQFwq6diAB26rrB\nXTsRtYVD3UVq93rt6drVzuwq0fICzKwE0fIC7NTJBdy1E1Fr2KnrALt2Iu/CTl3nuGsnomYc6i7S\naq/nqGvXamZ7RMsLMLMSRMsLsFMnD2ht197QoHYqIlKK0536uXPnUFVVhU6dOiE0NBQ+Pu7/PmCn\nLi927UT65Gh2Ohzq58+fx9tvv43Nmzfj2rVrCAwMxNWrV3HixAmMGTMG8+bNw/jx42UJRp4hScC7\n7wIvvwwsWgQ8+yzg66t2KiJyR7v/UDpjxgwYjUbs378fJSUl+Mc//oFvv/0W5eXleO6557B9+3a8\n9957soTWKtF6PYMBGDzYqsp7o7aXaOcYYGYliJYXUCezwz3b7t27W73dYDAgNjYWsbGxsoQiz2vu\n2t99t6lr566dSJ9cvk796NGj2Lx5M7Kzs1FcXOze4qxfVMGunUhsbl+nXllZibfeegsjR45EVFQU\nGhoakJ2d7dGQpBxe106kXw6H+p///GeYzWaYzWZUV1dj/fr16N27NxYvXozo6GilMmqKXno9Jd4b\ntb30co61TrTMouUFNHid+lNPPYXGxkZs2rQJS5cuxdChQ5XKRQrhrp1IXxx26mfOnMHWrVuRnZ2N\n48ePY+bMmbBYLKioqPDM4uzUNYVdO5EY2t2p9+zZE3PnzsW+ffuwd+9e+Pv7IygoCEOGDMGLL74o\nS1hSD3ftROJz+mmhwcHBePbZZ3H48GHs2LEDHTt2lDOXZum919NC1673c6wVomUWLS+gwevUm9XX\n1+Pzzz9HWVkZGhoaIEkSOnfu3ObXXb16FePGjcO1a9dQX1+PlJQULF682N3MpABe104kJqeuU7/v\nvvvQqVMnREdHt3jNl9dee63NBS5fvgw/Pz/U19dj7NixyMrKwujRo5sWZ6cuBHbtRNriaHY6te+q\nrKxEUVFRuxb38/MDANTW1qKurs4jLwRGyuKunUgcTk3Ye++9F19++WW7FmhsbITJZEJQUBASEhIw\ncuTIdj2OVnhrr6dk1+6t51hpomUWLS+g4U59zJgxmD59OhoaGtChQwcATdv/ixcvtvm1Pj4+KCws\nxIULFzBt2jQUFxcjMjLSdn9aWhpCQ0MBAP7+/jCZTDCbzQCunxAtHRcWFmoqjzPHzTz1eLt3m/Hu\nu8CYMVY8+CDw9ttm+PpqNy+PWz8uLCzUVB695fXkvLBarbBYLABgm5f2ONWph4aGYseOHYiKinKr\nPvn9738PPz8/LFq0qGlxdupCY9dOpA63X/slJCQEkZGRLg/0M2fO4Pz58wCAK1euYPfu3QgPD3fp\nMUi7eF07kfY4NaXDwsIwfvx4LF++HKtWrcKqVavw1ltvtfl1x48fx4QJEzBs2DCMGjUKCQkJSExM\ndDu0mm6uCEQgZ2Y5unaeY2WIllm0vICGO/WwsDCEhYWhtrYWtbW1Tj94dHQ08vPz2x2OxMErZIi0\nweXXU/fo4uzUdYldO5G82t2pZ2Rk4MiRI63eV1NTg/Xr12Pjxo3uJyRdYddOpB6HQ33+/PlYsmQJ\nhgwZgpSUFMydOxfp6emIj49HXFwcLl26hBkzZiiVVRPY6znHna6d51gZomUWLS+gwU49JiYGW7du\nxaVLl/Dtt9/i+PHj8PPzQ3h4OAYPHqxURhIYu3YiZTns1E+dOoXTp0+3eLIQABQXFyMwMBABAQHu\nLc5O3auwayfyjHZ36gsWLMCZM2duub26uhoLFy70TDryGuzaieTncKgfPXoU48aNu+X2u+++G999\n951sobSMvZ57nOnatZTXWcwsP9HyAhp8j9JLly7Zva+urs7jYch7cNdOJA+HnXpiYiLmz5+P+++/\nv8XtOTk5WLduHb744gv3FmenTmDXTuQqR7PT4VAvKSlBUlIS4uLiMGLECEiShMOHD+PgwYPYuXOn\n21fAcKhTM0lqukLm5Zd5hQxRW9r9h9JBgwahqKgId999N0pLS3Hs2DGMGzcORUVFXntJI3s9edzY\ntW/dalXlvVHdIcI5vplomUXLC2jwOnUA6NixI2bPnq1EFiKEhgIrVwIlJbyunag9HNYvXbp0gcFg\naP0LnXyTDIeLs34hB9i1E7Wu3Z263DjUqS3s2olu5fabZNB17PXkd2NeJd8b1R2inWNAvMyi5QU0\neJ06kVbwunYi57B+IeGwaydvx/qFdIW7diL7ONRdxF5Pfs7k1VrXLto5BsTLLFpegJ06kcu4aydq\niZ066Qa7dvIW7NTJK3DXTsSh7jL2evJzJ69aXbto5xgQL7NoeQF26kQew107eSt26qR77NpJb9ip\nk1fjrp28CYe6i9jryU+OvHJ37aKdY0C8zKLlBdipE8mOu3bSO1k79fLycjz66KM4deoUDAYDnnji\nCfz617++vjg7dVIRu3YSlWqvp37ixAmcOHECJpMJNTU1GDFiBD799FOEh4e3GYxICXy9dhKRan8o\n7dWrF0wmE4Cmd1EKDw9HVVWVnEvKjr2e/JTM66muXbRzDIiXWbS8gM479bKyMhQUFGD06NFKLUnk\nNHbtpBeK/EOzpqYGKSkpyMrKQpcuXVrcl5aWhtDQUACAv78/TCYTzGYzgOu/5bR23EwreXjsmeN9\n+6wYPBj45hszMjIAi8WK558H0tLa/nqz2ax6flePm2/TSh695W0+vjF7ex/ParXCYrEAgG1e2iP7\nk4/q6uqQlJSE++67D5mZmS0XZ6dOGsWunbRMtU5dkiTMmTMHERERtwx0Ud3821cEomXWQl5Xu3Yt\nZHaVaJlFywvosFM/cOAANm7ciNzcXMTExCAmJga7du2Sc0kij2LXTqLha78QOYnXtZNW8LVfiDyA\nu3YSAYe6i9jryU/Lee117VrObI9omUXLC+iwUyfSq5t37Zs2cddO2sBOnchN7NpJaezUiWTErp20\nhEPdRez15CdaXqDp2ahqvDeqO0Q7z6LlBdipEwmPu3ZSGzt1Ipmwaye5sFMnUgF37aQGDnUXsdeT\nn2h5AfuZ5X5vVHeIdp5FywuwUyfSLe7aSSns1IkUxq6d3MVOnUhDuGsnOXGou4i9nvxEywu4nlkL\nXbto51m0vAA7dSKvw107eRo7dSKNYNdOzmKnTiQA7trJEzjUXcReT36i5QU8l1nJrl208yxaXoCd\nOhH9P+7aqb3YqRNpHLt2uhk7dSKBcddOruBQdxF7PfmJlheQP7McXbto51m0vAA7dSJqA3ft1BZ2\n6kSCYtfuvdipE+kQd+3UGg51F7HXk59oeQH1MrvTtYt2nkXLC7BTJ6J24q6dmrFTJ9IZdu36p1qn\nPnv2bAQFBSE6OlrOZYjoBty1ezdZh3p6ejp27dol5xKKY68nP9HyAtrL7EzXrrXMbREtL6DDTj0+\nPh7du3eXcwkicoC7du8je6deVlaGKVOm4MiRI7cuzk6dSDHs2vWD16kTEXftXsJX7QBpaWkIDQ0F\nAPj7+8NkMsFsNgO43kdp6biwsBCZmZmayePMcfNtWsmjt7w3ZtVKHkfHTz5pxuTJQELCGlgsJmzb\nZkZEhHby2Ttes2aN5ufDzceemhdWqxUWiwUAbPPSLklmpaWlUlRUVKv3KbC8x+Xm5qodwWWiZRYt\nrySJmfnrr3Old96RpJ49JWn5ckmqq1M7kWMinmO5MjuanbJ26qmpqdi3bx+qq6sRGBiIJUuWID09\n3XY/O3Ui9bFrF4+j2cknHxERJAl4913g5ZeBRYuAZ58FfFUvZ8ke/qHUg27sTkUhWmbR8gLiZ1by\nvVHbS/RzrBQOdSKy4RUy4mP9QkStYteuXaxfiMhl3LWLiUPdRez15CdaXkC/mbXUtev1HHsahzoR\ntYm7dnGwUycil7BrVx87dSLyGO7atY1D3UXs9eQnWl7A+zKr0bV72zluLw51Imo37tq1h506EXkE\nu3blsFMnItlx164NHOouYq8nP9HyAszcTM6unefYORzqRORx3LWrh506EcmKXbvnsVMnItVw164s\nDnUXsdeTn2h5AWZuiye6dp5j53CoE5FiuGuXHzt1IlIFu/b2Y6dORJrDXbs8ONRdxF5PfqLlBZi5\nvVzp2rWQ11Xs1InIK3HX7jns1IlIU9i1t42dOhEJg7t293Cou4i9nvxEywsws6e11rVbLFa1Y7mM\nnToR0Q1u3LUvXMhduzPYqRORENi1X8dOnYiEx67dObIO9V27dmHIkCEYOHAgXn/9dTmXUoyWe0h7\nRMssWl6AmZVgtVpVeW9Ud+iqU29oaMBTTz2FXbt24fvvv8fmzZvxww8/yLWcYgoLC9WO4DLRMouW\nF2BmJdyYV5RduxrnWLahfujQIQwYMAChoaHo0KEDZs2ahe3bt8u1nGLOnz+vdgSXiZZZtLwAMyvh\n5rwi7NrVOMeyDfXKykoEBwfbjo1GIyorK+Vajoi8lCi7dqXINtQNBoNcD62qsrIytSO4TLTMouUF\nmFkJjvK2tmv/+WflstmjxjmW7ZLGvLw8LF68GLt27QIALF++HD4+PnjuueeuL67TwU9EJDd7o1u2\noV5fX4/Bgwdj79696NOnD0aNGoXNmzcjPDxcjuWIiAiAr2wP7OuLP/zhD5g8eTIaGhowZ84cDnQi\nIpmp+oxSIiLyLNWeUSraE5PKy8sxfvx4REZGIioqCmvXrlU7klMaGhoQExODKVOmqB3FKefPn0dK\nSgrCw8MRERGBvLw8tSO1afXq1YiKikJ0dDQeeughXLt2Te1ILcyePRtBQUGIjo623Xb27FlMmjQJ\ngwYNQkJCguYub2wt829+8xuEh4dj2LBhmD59Oi5cuKBiwpZay9ts1apV8PHxwdmzZxXJospQF/GJ\nSR06dMDq1atRXFyMvLw8/PGPf9R8ZgDIyspCRESEMH+UXrhwIRITE/HDDz+gqKhI85VdZWUl1q1b\nh8OHD+PIkSNoaGhAdna22rFaSE9Pt12w0GzFihWYNGkSSkpKMHHiRKxYsUKldK1rLXNCQgKKi4vx\n3XffYdCgQVi+fLlK6W7VWl6gaTO4e/du9OvXT7Esqgx1EZ+Y1KtXL5hMJgBAly5dEB4ejqqqKpVT\nOVZRUYGcnBxkZGQI8cJpFy5cwP79+zF79mwATX+X6datm8qp2lZfX4/Lly/b/tu3b1+1I7UQHx+P\n7t27t7htx44deOyxxwAAjz32GD799FM1otnVWuZJkybBx6dpZI0ePRoVFRVqRGtVa3kB4JlnnsEb\nb7yhaBZVhrroT0wqKytDQUEBRo8erXYUh55++mm8+eabth8ErSstLUVAQADS09MxfPhwPP7447h8\n+bLasRzq27cvFi1ahJCQEPTp0wf+/v6455571I7VppMnTyIoKAgAEBQUhJMnT6qcyDUbNmxAYmKi\n2jEc2r59O4xGI4YOHarouqr8tItSBbSmpqYGKSkpyMrKQpcuXdSOY9fOnTsRGBiImJgYIXbpQNOO\nNz8/H/PmzUN+fj46d+6suVrgZufOncOOHTtQVlaGqqoq1NTU4K9//avasVxiMBiE+plcunQpbr/9\ndjz00ENqR7Hr8uXLWLZsGX73u9/ZblPq51CVod63b1+Ul5fbjsvLy2E0GtWI4pK6ujokJyfj4Ycf\nxgMPPKB2HIcOHjyIHTt2ICwsDKmpqfj666/x6KOPqh3LIaPRCKPRiJEjRwIAUlJSkJ+fr3Iqx/bs\n2YOwsDDceeed8PX1xfTp03Hw4EG1Y7UpKCgIJ06cAAAcP34cgYGBKidyjsViQU5OjuZ/cf73v/9F\nWVkZhg0bhrCwMFRUVGDEiBE4deqU7GurMtRjY2Px448/oqysDLW1tdiyZQumTp2qRhSnSZKEOXPm\nICIiApmZmWrHadOyZctQXl6O0tJSZGdnY8KECfjwww/VjuVQr169EBwcjJKSEgBNAzMyMlLlVI71\n69cPeXl5uHLlCiRJwp49exAhwLs3TJ06FR988AEA4IMPPtD8JgVoumLuzTffxPbt29GxY0e14zgU\nHR2NkydPorS0FKWlpTAajcjPz1fml6ekkpycHGnQoEFS//79pWXLlqkVw2n79++XDAaDNGzYMMlk\nMkkmk0n64osv1I7lFKvVKk2ZMkXtGE4pLCyUYmNjpaFDh0rTpk2Tzp8/r3akNr322mvSkCFDpKio\nKOnRRx+Vamtr1Y7UwqxZs6TevXtLHTp0kIxGo7RhwwapurpamjhxojRw4EBp0qRJ0rlz59SO2cLN\nmdevXy8NGDBACgkJsf38zZ07V+2YNs15b7/9dts5vlFYWJhUXV2tSBY++YiISEfEuCyCiIicwqFO\nRKQjHOpERDrCoU5EpCMc6kREOsKhTkSkIxzqREQ6wqFOujRhwgR89dVXLW5bs2YN5s2bh5KSEiQm\nJmLQoEEYMWIEHnzwQZw6dQpWqxXdunVDTEyM7WPv3r0AgCtXrsBsNqOxsRF33XWX7VmvzTIzM/HG\nG2/gX//6F9LT0xX7PoluxqFOupSamnrL65pv2bIFqampSEpKwvz581FSUoLDhw9j3rx5OH36NAwG\nA+6++24UFBTYPiZOnAig6VUBk5OT4ePjc8tjNzY24pNPPkFqaiqioqJQUVHR4rWNiJTEoU66lJyc\njM8//xz19fUAYHsVxR9//BFxcXG4//77bZ87btw4REZGOnwVvU2bNuGXv/wlgKZfGFu2bLHd9/e/\n/x39+vWzvZz0lClTNPdGGeQ9ONRJl3r06IFRo0YhJycHAJCdnY2ZM2eiuLgYw4cPt/t1+/fvb1G/\nlJaWora2Fj/99BNCQkIAAFFRUfDx8UFRUZHtsW98GdjY2Fjs379fxu+OyD4OddKtG2uSLVu2OPX6\n2/Hx8S3ql7CwMJw5cwb+/v6tPnZDQwO2b9+OGTNm2O4LCAjQ/LtikX5xqJNuTZ06FXv37kVBQQEu\nX76MmJihLsulAAABOUlEQVQYREZG4vDhwy49TqdOnXD16tUWt82aNQsfffQR9uzZg6FDhyIgIMB2\n39WrV9GpUyePfA9EruJQJ93q0qULxo8fj/T0dNsu/aGHHsLBgwdttQzQ1IkXFxfbfZzu3bujoaEB\ntbW1ttvuuusu9OzZE88///wt/wIoKSlBVFSUh78bIudwqJOupaam4siRI0hNTQUAdOzYETt37sS6\ndeswaNAgREZG4p133kFAQAAMBsMtnfq2bdsANL2T/c09eWpqKv7zn/9g+vTpLW7Pzc1FUlKSMt8g\n0U34eupETigoKMDq1avbfPeoa9euwWw248CBA8K84TfpC/+vI3JCTEwMxo8fj8bGRoefV15ejtdf\nf50DnVTDnToRkY5wO0FEpCMc6kREOsKhTkSkIxzqREQ6wqFORKQj/wfxISNkMYU3cgAAAABJRU5E\nrkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f2eadbe6710>" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.23 : Page number 168" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import matplotlib.pyplot as plt\n", + "\n", + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage, V\n", + "RC=6.0; #Collector resistor, k\u03a9\n", + "IB=20.0; #Zero signal base current, \u03bcA\n", + "beta=50.0; #Base current amplification factor\n", + "\n", + "#Calculation\n", + "#VCE=VCC-IC*RC\n", + "#For calculating VCE, IC=0\n", + "IC=0; #Collector current for maximum Collector-emitter voltage, mA\n", + "VCE_max=VCC-IC*RC; #Maximum collector-emitter voltage, V\n", + "\n", + "#For calculating VCE, IC=0\n", + "VCE=0; #Collector emitter voltage for maximum collector current, V\n", + "IC_max=(VCC-VCE)/RC; #Maximum collector current, mA\n", + "\n", + "\n", + "#Plotting of d.c load line\n", + "VCE_plot=[0,VCE_max]; #Plotting variable for VCE\n", + "IC_plot=[IC_max,0]; #Plotting variable for IC\n", + "p=plot(VCE_plot,IC_plot);\n", + "limit = plt.gca()\n", + "limit.set_xlim([0,15])\n", + "limit.set_ylim([0,5])\n", + "xlabel('VCE(V)');\n", + "ylabel('IC(mA)');\n", + "title('d.c load line');\n", + "plt.grid();\n", + "show(p);\n", + "\n", + "#Calculating Q-point\n", + "IC=beta*(IB/1000); #Collector current, mA\n", + "VCE=VCC-IC*RC; #Collector emitter voltage, V\n", + "\n", + "#Result\n", + "print(\"Operating point: IC=%dmA and VCE=%dV.\"%(IC,VCE));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nAAAASUVORK5CYII=\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f8947e0f0d0>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point: IC=1mA and VCE=6V.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.24 : Page number 168" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "RC=4.0; #Collector load, k\u03a9\n", + "IC_Q=1.0; #Quiescent current, mA\n", + "\n", + "#Calculation\n", + "#(i)\n", + "VCC=10; #Collector supply voltage, V\n", + "VCE=VCC-IC*RC; #Collector emitter voltage, V\n", + "\n", + "print(\"(i) Operating point: VCE=%dV and IC=%dmA.\"%(VCE,IC) );\n", + "\n", + "#(ii)\n", + "RC=5.0; #Collector load, k\u03a9\n", + "VCE=VCC-IC*RC; #Collector emitter voltage, V\n", + "print(\"(ii) Operating point: VCE=%dV and IC=%dmA.\"%(VCE,IC) );\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Operating point: VCE=6V and IC=1mA.\n", + "(ii) Operating point: VCE=5V and IC=1mA.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##Example 8.25 : Page number 168-169" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20.0; #Collector supply voltage, V\n", + "VBB=10.0; #Base supply voltage, V\n", + "RC=330.0; #Collector resistor, \u03a9\n", + "RB=47.0; #Base resistoe, k\u03a9\n", + "beta=200.0; #Base current amplification factor\n", + "VBE=0.7; #Base -emitter voltage, V\n", + "\n", + "#Calculation\n", + "#VBB-IB*RB-VBE=0\n", + "IB=round(((VBB-VBE)/RB)*1000,0); #Base current, \u03bcA\n", + "IC=beta*IB/1000; #Collector current, mA\n", + "VCE=VCC-IC*(RC/1000); #Collector-emitter voltage, V\n", + "\n", + "print(\"Operating point: IC=%.1fmA and VCE=%.2fV.\"%(IC,VCE));\n", + "\n", + "#For d.c load line\n", + "#VCE=VCC-IC*RC\n", + "#For calculating VCE, IC=0\n", + "IC=0; #Collector current for maximum Collector-emitter voltage, mA\n", + "VCE_max=VCC-IC*RC; #Maximum collector-emitter voltage, V\n", + "\n", + "#For calculating VCE, IC=0\n", + "VCE=0; #Collector emitter voltage for maximum collector current, V\n", + "IC_max=(VCC-VCE)/(RC/1000.0); #Maximum collector current, mA\n", + "\n", + "\n", + "#Plotting of d.c load line\n", + "VCE_plot=[0,VCE_max]; #Plotting variable for VCE\n", + "IC_plot=[IC_max,0]; #Plotting variable for IC\n", + "p=plot(VCE_plot,IC_plot);\n", + "limit = plt.gca()\n", + "limit.set_xlim([0,25])\n", + "limit.set_ylim([0,65])\n", + "xlabel('VCE(V)');\n", + "ylabel('IC(mA)');\n", + "title('d.c load line');\n", + "plt.grid();\n", + "show(p);\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point: IC=39.6mA and VCE=6.93V.\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nIRiBRQAAAABJRU5ErkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f8947baebd0>" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.26 : Page number 169-170" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V\n", + "VEE=10.0; #Emitter supply voltage, V\n", + "RC=1.0; #Collector resistor, k\u03a9\n", + "RE=4.7; #Collector resistor, k\u03a9\n", + "RB=47.0; #Base resistoe, k\u03a9\n", + "beta=100.0; #Base current amplification factor\n", + "VBE=0.7; #Base -emitter voltage, V\n", + "\n", + "#Calculation\n", + "#-IB*RB-VBE-IE*RE+VEE=0\n", + "#AS, IC=beta*IB and IC~IE\n", + "IE=round((VEE-VBE)/(RE+(RB/beta)),1); #Emitter current, mA\n", + "IC=IE; #Collector current, mA\n", + "\n", + "#VCC-IC*RC-VCE-IE*RE+VEE=0\n", + "#IC~IE\n", + "VCE=VCC+VEE-IC*(RC+RE); #Collector-emitter voltage, V\n", + "\n", + "print(\"Operating point: IC=%.1fmA and VCE=%.2fV.\"%(IC,VCE));\n", + "\n", + "\n", + "#For d.c load line\n", + "#VCE=VCC-IC*RC\n", + "#For calculating VCE, IC=0\n", + "IC=0; #Collector current for maximum Collector-emitter voltage, mA\n", + "VCE_max=VCC+VEE-IC*(RC+RE); #Maximum collector-emitter voltage, V\n", + "\n", + "#For calculating VCE, IC=0\n", + "VCE=0; #Collector emitter voltage for maximum collector current, V\n", + "IC_max=(VCC+VEE-VCE)/(RC+RE); #Maximum collector current, mA\n", + "\n", + "\n", + "#Plotting of d.c load line\n", + "VCE_plot=[0,VCE_max]; #Plotting variable for VCE\n", + "IC_plot=[IC_max,0]; #Plotting variable for IC\n", + "p=plot(VCE_plot,IC_plot);\n", + "limit = plt.gca()\n", + "limit.set_xlim([0,25])\n", + "limit.set_ylim([0,5])\n", + "xlabel('VCE(V)');\n", + "ylabel('IC(mA)');\n", + "title('d.c load line');\n", + "plt.grid();\n", + "show(p);\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point: IC=1.8mA and VCE=9.74V.\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nQmCC\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f8947c78950>" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.27 : Page number 170-171" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VEE=10.0; #Emitter supply voltage, V\n", + "IE=1.8; #Emitter current, mA\n", + "RE=4.7; #Emitter resistor, k\u03a9\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "VCC=10.0; #Collector supply voltage, V\n", + "IC=1.8; #Collector current, mA\n", + "RC=1.0; #Collector resistor, k\u03a9\n", + "\n", + "\n", + "#Calculation\n", + "#(i)\n", + "VE=-VEE+IE*RE; #Emitter voltage, V\n", + "\n", + "#(ii)\n", + "VB=VEE+VBE; #Base voltage, V\n", + "\n", + "#(iii)\n", + "VC=VCC-IC*RC; #Collector voltage, V\n", + "\n", + "\n", + "#Result\n", + "print(\"(i) Emitter voltage=%.2fV.\"%VE);\n", + "print(\"(i) Base voltage=%.1fV.\"%VB);\n", + "print(\"(i) Collector voltage=%.1fV.\"%VC);\n", + "\n", + "#Note: In the textbook, VB=VE+VBE has been written, which is worng. It should be VB=VEE+VBE. " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Emitter voltage=-1.54V.\n", + "(i) Base voltage=10.7V.\n", + "(i) Collector voltage=8.2V.\n" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "\n", + "Example 8.28: Page number 173-174\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_BE_change=200.0; #Change in base-emitter voltage in mV\n", + "I_B_change=100.0; #Change in base current in \u03bcA\n", + "\n", + "#Calculations\n", + "Ri=V_BE_change/I_B_change; #Input resistance in k\u03a9\n", + "\n", + "#Result\n", + "print(\"Input resistance =%d k\u03a9\"%Ri);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Input resistance =2 k\u03a9\n" + ] + } + ], + "prompt_number": 35 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.29; Page number 174\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CE_final=10.0;\t\t\t#Final value of collector-emitter voltage in V\n", + "V_CE_initial=2.0; #Initial value of collector-emitter voltage in V\n", + "I_C_final=3.0; #Final value of collector current in mA\n", + "I_C_initial=2.0; #Initial value of collector current in mA\n", + "\n", + "#Calculations\n", + "V_CE_change=V_CE_final-V_CE_initial;\t\t#Change in collector to emitter voltage in V\n", + "I_C_change=I_C_final-I_C_initial; #Change in collector current in mA\n", + "R0=V_CE_change/I_C_change; #Output resistance in k\u03a9\n", + "\n", + "#Result\n", + "print(\"The output resistance =%dk\u03a9\"%R0);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The output resistance =8k\u03a9\n" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.30: Page number 174\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "R_C=2.0;\t\t#Collector load in kilo ohm\n", + "R_i=1.0;\t\t#Input resistance in kilo ohm\n", + "R_AC=R_C; #Effective collector load for single stage in kilo ohm(appoximately equal to collector load for single stage)\n", + "beta=50.0; #Current gain\n", + "\n", + "#Calculations\n", + "A_v=beta*(R_AC/R_i);\t\t#Voltage gain of the amplifier\n", + "\n", + "#Result \n", + "print(\"The voltage gain of the amplifier =%d \"%A_v);\t\t\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The voltage gain of the amplifier =100 \n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.31: Page number 175-176\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=20;\t\t#Collector supply voltage in V\n", + "R_C=1; #Collector resistance in kilo ohm\n", + "V_knee_Si=1;\t\t#Knee voltage of V_CE for Si in V \n", + "V_knee_Ge=0.5;\t\t#Knee voltage of V_CE for Ge in V\n", + "\n", + "#Calculations\n", + "I_C_sat_Si=(V_CC-V_knee_Si)/R_C;\t\t#Saturation (maximum) value of collector current in mA (for Si transistor)\n", + "I_C_sat_Ge=(V_CC-V_knee_Ge)/R_C;\t\t#Saturation (maximum) value of collector current in mA (for Ge transistor)\n", + "I_C_sat=(V_CC)/R_C;\t\t\t\t#Saturation (maximum) value of collector current in mA (neglecting knee voltage)\n", + "V_CE_cut_off=V_CC; #Collector to emitter voltage in cutoff when base current=0, in V\n", + "\n", + "#Result\n", + "print(\"Collector current during saturation = %d mA\"%I_C_sat);\n", + "print(\"Collector emitter voltage during cutoff = %d V.\"%V_CE_cut_off);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector current during saturation = 20 mA\n", + "Collector emitter voltage during cutoff = 20 V.\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.32: Page number 176-177\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=12.0;\t\t#Collector supply voltage in V\n", + "V_EE=12.0;\t\t#Emitter supply voltage in V\n", + "R_C=750.0;\t\t#Collector resistance in ohm\n", + "R_E=1.5;\t\t#Emitter resistance in kilo ohm\n", + "R_B=100.0;\t\t#Base resistance in ohm\n", + "beta=200;\t\t#base current amplification factor\n", + "\n", + "#Calculations\n", + "\n", + "#Applying Kirchhoff's voltage law to the collector side of the circuit\n", + "#using the equation: Vcc -IcRc-Vce -IeRe+Vee=0\n", + "#we get Vce=Vcc+Vee-Ic(Rc+Re), [Ie=Ic, approximately]\n", + "#We get Vce(off), when Ic=0;\n", + "\n", + "I_C_Vce_off=0;\t\t\t\t\t#Collector current for Vce(off) in mA\n", + "V_CE_off=V_CC+V_EE -(I_C_Vce_off * (R_C +R_E));\t#Collector to emitter voltage in V, during transistor in off state\n", + "\n", + "#We get Ic(sat), when Vce=0\n", + "V_CE_Ic_sat=0;\t\t\t\t\t\t#Collector to emitter voltage for saturation current of collector in V\n", + "I_C_sat=(V_CC+V_EE-V_CE_Ic_sat)/(R_C+(R_E*1000));\t#Saturated collector current in A \n", + "I_C_sat=I_C_sat*1000;\t\t\t\t\t#Saturated collector current in mA\n", + "#Result\n", + "print(\"Vce(off)= %dV\"%V_CE_off);\n", + "print(\"Ic(sat) = %.2f mA\"%I_C_sat);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Vce(off)= 24V\n", + "Ic(sat) = 10.67 mA\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.33 : Page number 177\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_knee=0.2;\t\t\t\t#Knee voltage of collector-emitter voltage in V\n", + "V_CC=10.0;\t\t\t\t#Collector supply voltage in V\n", + "V_BB=3.0;\t\t\t\t#Base supply voltage in V\n", + "V_BE=0.7;\t\t\t\t#Base-emitter voltage in V \t\n", + "R_B=10.0;\t\t\t\t#Base resistor's resistance in kilo ohm\n", + "R_C=1.0;\t\t\t\t#Collector resistor's resistance in kilo ohm\n", + "beta=50.0;\t\t\t\t#base current amplification factor\n", + "\n", + "#Calculations\n", + "\n", + "#applying Kirchhoff's voltage law along the collector side of the circuit,\n", + "#We get Vcc-Ic(sat)*Rc-V_knee=0\n", + "#From the above equation, we get:\n", + "I_C_sat=(V_CC-V_knee)/R_C;\t\t#Saturated collector current in mA\n", + "\n", + "#Applying Kirchhoff's voltage law along base emitter side,\n", + "#We get VBB-IB*RB-VBE=0;\n", + "#From the above equation, we get:\n", + "I_B=(V_BB-V_BE)/R_B;\t\t\t#Base current in mA\n", + "\n", + "\n", + "I_C=beta*I_B\t\t\t\t#Collector current in mA\n", + "\n", + "#Result\n", + "if(I_C>I_C_sat):\n", + "\tprint(\"The base current is large enough to produce Ic greater than Ic(sat), therefore the transistor is saturated.\");\n", + "else:\n", + "\tprint(\"The base current is not large enough to produce Ic greater than Ic(sat), therefore the transistor isn't saturated. \");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The base current is large enough to produce Ic greater than Ic(sat), therefore the transistor is saturated.\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.34: Page number 177-178\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Variable declaration\n", + "V_CC=10.0;\t\t\t\t#Collector supply voltage in V\n", + "V_BE=0.95;\t\t\t\t#Base-emitter voltage in V \t\n", + "I_B=100.0;\t\t\t\t#Base current in microAmp\n", + "R_C=970.0;\t\t\t\t#Collector resistor's resistance in ohm\n", + "beta=100.0;\t\t\t\t#base current amplification factor\n", + "\n", + "#Calculations\n", + "I_C=(I_B/1000)*beta;\t\t\t\t#Collector current in mA \n", + "\n", + "#Applying Kirchhoff's voltage law along collector side\n", + "#We get Vcc-IcRc-Vce=0\n", + "#From the above equation, we get:\n", + "\n", + "V_CE=V_CC-((I_C/1000)*R_C);\t\t\t\t#Collector-emitter voltage in V\n", + "\n", + "#From the equation, V_CE=V_CB+V_BE,\n", + "V_CB=V_CE-V_BE;\t\t\t\t\t\t#Collector-base voltage in V\n", + "\n", + "\n", + "#Result\n", + "if(V_CB<0 and V_BE >0):\n", + "\tprint(\"As both collector-base and emitter-base junction are forward biased, the transistor is operating in the saturation region. \");\n", + "else:\n", + "\tprint(\"No. The transistor isn't operating in the saturation region.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "As both collector-base and emitter-base junction are forward biased, the transistor is operating in the saturation region. \n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.35: Page number 178\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=10.0;\t\t\t\t#Collector supplu voltage in V\n", + "V_BE=0.7;\t\t\t\t#Base-emitter voltage in V\n", + "R_B=50.0;\t\t\t\t#Base resistor's resistance in kilo ohm\n", + "R_C=2.0;\t\t\t\t#Collector resistor's resistance in kilo ohm\n", + "beta=200.0;\t\t\t\t#Base current amplification factor\n", + "\n", + "#Calculations\n", + "\n", + "#Applying Kirchhoff's voltage law along the collector side,\n", + "#We get, Vcc-Ic(sat)*Rc-Vce=0;\n", + "#From the above equation, we get:\n", + "#I_C_sat=(V_CC-V_CE)/R_C, but as transistor goes into saturation, Vce=0;\n", + "\n", + "V_CE=0;\t\t\t\t\t\t#Collector-emiter voltage in V, for transistor in saturation \n", + "I_C_sat=(V_CC-V_CE)/R_C;\t\t\t#Saturated collector current in mA\n", + "\n", + "I_B=I_C_sat/beta;\t\t\t\t#Base current in mA\n", + "\n", + "#Applying Kirchhoff's voltage law to the base circuit,\n", + "#We get, VBB - IB*RB - VBE=0\n", + "#From the above equation. we get:\n", + "V_BB=V_BE+ I_B*R_B;\t\t\t\t#Base supply voltage to put transistor in saturation, in V\n", + "\n", + "#Result\n", + "print(\"Therefore, for putting transistor in saturation, VBB >= %.2f V\"%V_BB);\n", + " \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Therefore, for putting transistor in saturation, VBB >= 1.95 V\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.36: Page number 178-179\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=10.0;\t\t\t#Collector supply voltage in V\n", + "V_BB=2.7;\t\t\t#Base supply voltage in V\n", + "V_BE=0.7;\t\t\t#Base-emitter voltage in V\n", + "beta=100.0;\t\t\t#Base current amplification factor\n", + "R_E=1.0;\t\t\t#Emitter resistor's resistance in kilo ohm\n", + "\n", + "\n", + "#Calcultaion\t\n", + "V_B=V_BB;\t\t\t#Base voltage in V\n", + "V_E=V_B-V_BE;\t\t\t#Emitter voltage in V\n", + "I_E=V_E/R_E;\t\t\t#Emitter current in mA\n", + "I_C=I_E;\t\t\t#Collector current (approximately equal to emitter current) in mA\n", + "I_B=I_C/beta;\t\t\t#Base current in mA\n", + "\n", + "#Case (i):\n", + "R_C=2;\t\t\t\t#Collector resistor's resistance in kilo ohm\n", + "\n", + "#Assuming transistor to be in active state\n", + "#Applying Kirchhoff's voltage law along collector side,\n", + "#We get,Vcc-IcRc=Vc,\n", + "\n", + "V_C=V_CC-I_C*R_C;\t\t#Collector voltage in V\n", + "\n", + "if(V_C>V_E):\n", + "\tprint(\"(i)Our assumption was correct, the transistor is in active state for Rc=2 kilo ohm.\");\n", + "elif(V_C<V_E):\n", + "\tprint(\"(i)Our assumption was wrong, the transistor is in saturation for Rc=2 kilo ohm.\");\n", + "elif(V_C==V_E):\n", + "\tprint(\"(i)The transistor is at the edge of saturation for Rc=2 kilo ohm, therefore relation between transistor currents are same for both saturation and active state.\");\n", + "\n", + "#Case (ii):\n", + "R_C=4;\t\t\t\t#Collector resistor's resistance in kilo ohm\n", + "\n", + "#Assuming transistor to be in active state\n", + "#Applying Kirchhoff's voltage law along collector side,\n", + "#We get,Vcc-IcRc=Vc,\n", + "\n", + "V_C=V_CC-I_C*R_C;\t\t#Collector voltage in V\n", + "if(V_C>V_E):\n", + "\tprint(\"(ii)Our assumption was correct, the transistor is in active state for Rc=4 kilo ohm.\");\n", + "elif(V_C==V_E):\n", + "\tprint(\"(ii)The transistor is at the edge of saturation for Rc=4 kilo ohm, therefore relation between transistor currents are same for both saturation and active state.\");\n", + "elif(V_C<V_E):\n", + "\tprint(\"(ii)Our assumption was wrong, the transistor is in saturation for Rc=4 kilo ohm.\");\n", + "\n", + "\n", + "#Case (iii):\n", + "R_C=8;\t\t\t\t#Collector resistor's resistance in kilo ohm\n", + "\n", + "#Assuming transistor to be in active state\n", + "#Applying Kirchhoff's voltage law along collector side,\n", + "#We get,Vcc-IcRc=Vc,\n", + "\n", + "V_C=V_CC-I_C*R_C;\t\t#Collector voltage in V\n", + "if(V_C>V_E):\n", + "\tprint(\"(iii)Our assumption was correct, the transistor is in active state for Rc=8 kilo ohm.\");\n", + "elif(V_C<V_E):\n", + "\tprint(\"(iii)Our assumption was wrong, the transistor is in saturation for Rc=8 kilo ohm.\");\n", + "elif(V_C==V_E):\n", + "\tprint(\"(iii)The transistor is at the edge of saturation for Rc=8 kilo ohm, therefore relation between transistor currents are same for both saturation and active state.\");\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)Our assumption was correct, the transistor is in active state for Rc=2 kilo ohm.\n", + "(ii)The transistor is at the edge of saturation for Rc=4 kilo ohm, therefore relation between transistor currents are same for both saturation and active state.\n", + "(iii)Our assumption was wrong, the transistor is in saturation for Rc=8 kilo ohm.\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.37 : Page number 179-180" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=15.0;\t\t\t#Collector supply voltage in V\n", + "R_C=10.0;\t\t\t#Collector resistor's resistance in kilo ohm\n", + "V_BE=0.7;\t\t\t#Base-emitter voltage in V\n", + "beta=100.0;\t\t\t#Base current amplification factor\n", + "R_E=1.0;\t\t\t#Emitter resistor's resistance in kilo ohm\n", + "\n", + "\n", + "#Calculation\t\n", + "\n", + "#Case (i):\n", + "V_BB=0.5;\t\t\t#Base supply voltage in V\n", + "VB=V_BB; #Base voltage, V\n", + "print(\"(i) Base voltage =%.1fV is less than VBE=%.1fV, therefore, transistor is cut-off.\"%(VB,V_BE));\n", + "\n", + "\n", + "#Case (ii):\n", + "V_BB=1.5;\t\t\t#Base supply voltage in V\n", + "VB=V_BB; #Base voltage, V\n", + "VE=VB-V_BE; #Emitter voltage, V\n", + "IE=round(VE/R_E,1); #Emitter current, mA\n", + "#Assuming transistor to be in active state\n", + "#Applying Kirchhoff's voltage law along collector side,\n", + "IC=IE; #Collector current, mA\n", + "IB=IC/beta; #Base current, mA\n", + "VC=V_CC-IC*R_C; #Collector voltage, V\n", + "print(VE,IE,VC);\n", + "print(\"(ii) VC=%dV > VE=%.1fV, therefore the transistor is active. Our assumption was correct.\"%(VC,VE));\n", + "\n", + "#Case (iii):\n", + "V_BB=3; \t\t\t#Base supply voltage in V\n", + "VB=V_BB; #Base voltage, V\n", + "VE=VB-V_BE; #Emitter voltage, V\n", + "IE=round(VE/R_E,1); #Emitter current, mA\n", + "#Assuming transistor to be in active state\n", + "#Applying Kirchhoff's voltage law along collector side,\n", + "IC=IE; #Collector current, mA\n", + "IB=IC/beta; #Base current, mA\n", + "VC=V_CC-IC*R_C; #Collector voltage, V\n", + "\n", + "print(\"(iii) VC=%dV < VE=%.1fV, therefore the transistor is saturated. Our assumption was wrong.\"%(VC,VE));" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) Base voltage =0.5V is less than VBE=0.7V, therefore, transistor is cut-off.\n", + "(0.8, 0.8, 7.0)\n", + "(ii) VC=7V > VE=0.8V, therefore the transistor is active. Our assumption was correct.\n", + "(iii) VC=-8V < VE=2.3V, therefore the transistor is saturated. Our assumption was wrong.\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.38: Page number 181\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "P_D_max=100.0;\t\t\t#Maximum power dissipation of a transistor in mW\n", + "V_CE=20.0;\t\t\t#Collector emitter voltage in V\n", + "\n", + "#Calculation\n", + "#As power=curent*voltage\n", + "#P_D_max=I_C_max*V_CE\n", + "#From the above equation, we get:\n", + "\n", + "I_C_max=P_D_max/V_CE;\t\t#Maximum collector current that can be allowed without destruction of the transistor, in mA\n", + "\n", + "#Result\n", + "print(\"Maximum collector current that can be allowed without destruction of the transistor = %d mA.\"%I_C_max); \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum collector current that can be allowed without destruction of the transistor = 5 mA.\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.39: Page number 181\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=5.0;\t\t\t\t#Collector supply voltage in V\n", + "V_BB=5.0;\t\t\t\t#Base supply voltage in V\n", + "V_BE=0.7;\t\t\t\t#Base-emitter voltage in V\n", + "R_B=1.0;\t\t\t\t#Base resistor's resistance in kilo ohm\n", + "R_C=0;\t\t\t\t\t#Collector resistor's resistance in kilo ohm\n", + "beta=200.0;\t\t\t\t#base current amplification factor\n", + "\n", + "#Calculation\n", + "\n", + "#Applying Kirchhoff's voltage law along base circuit<\n", + "#We get, VBB- IB*RB - VBE=0.\n", + "#From the above equation, we get:\n", + "\n", + "I_B=(V_BB-V_BE)/R_B;\t\t\t#Base current in mA\n", + "\n", + "I_C=beta*I_B;\t\t\t\t#Collector current in mA\n", + "\n", + "#Applying Kirchhoff's voltage law along collector circuit:\n", + "\n", + "V_CE=V_CC-I_C*R_C;\t\t\t#Collector-emitter voltage in V\n", + "\n", + "#As power=curent*voltage\n", + "#P_D=I_C*V_CE\n", + "#From the above equation, we get:\n", + "P_D=V_CE*I_C;\t\t\t\t#Power dissipated in mW\n", + "P_D=P_D/1000;\t\t\t\t#Power dissipated in W\n", + "\n", + "#Result\n", + "print(\"Power dissipated = %.1fW\"%P_D);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power dissipated = 4.3W\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.40: Page number 181-182\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=5.0;\t\t\t\t#Collector supply voltage in V\n", + "V_BB=1.0;\t\t\t\t#Base supply voltage in V\n", + "V_BE=0.7;\t\t\t\t#Base-emitter voltage in V\n", + "R_B=10.0;\t\t\t\t#Base resistor's resistance in kilo ohm\n", + "R_C=1.0;\t\t\t\t\t#Collector resistor's resistance in kilo ohm\n", + "beta=100.0;\t\t\t\t#base current amplification factor\n", + "\n", + "#Calculation\n", + "\n", + "#Applying Kirchhoff's voltage law along base circuit<\n", + "#We get, VBB- IB*RB - VBE=0.\n", + "#From the above equation, we get:\n", + "\n", + "I_B=(V_BB-V_BE)/R_B;\t\t\t#Base current in mA\n", + "\n", + "I_C=beta*I_B;\t\t\t\t#Collector current in mA\n", + "\n", + "#Applying Kirchhoff's voltage law along collector circuit:\n", + "\n", + "V_CE=V_CC-I_C*R_C;\t\t\t#Collector-emitter voltage in V\n", + "\n", + "#As power=curent*voltage\n", + "#P_D=I_C*V_CE\n", + "#From the above equation, we get:\n", + "P_D=V_CE*I_C;\t\t\t\t#Power dissipated in mW\n", + "\n", + "\n", + "#Result\n", + "print(\"Power dissipated = %.0fmW\"%P_D);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Power dissipated = 6mW\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8.41 : Page number 182" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VBB=5.0; #Base supply voltage, V\n", + "RB=22.0; #Base resistor, kilo ohm\n", + "RC=1.0; #Collector resistor, kilo ohm\n", + "beta=100.0; #Base current amplification factor\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "PD_max=800.0; #Maximum power dissipation, mW\n", + "VCE_max=15.0; #Maximum collector-emitter voltage, V\n", + "IC_max=100.0; #Maximum collector current, mA\n", + "\n", + "#Calculation\n", + "IB=((VBB-VBE)/RB)*1000; #Base current, \u03bcA\n", + "IC=beta*IB/1000; #Collector current, mA\n", + "\n", + "print(\"IC=%.1fmA is much less than IC_max=%dmA. Therefore, will not change with VCC and current rating is not exceeded.\"%(IC,IC_max));\n", + "\n", + "#VCC=VCE+IC*RC\n", + "VCC_max=VCE_max+IC*RC; #Maximum value of Collector supply voltage, V\n", + "PD=VCE_max*IC; #Power dissipation, mW\n", + "\n", + "print(\"PD=%dmW is less than PD_max=%dmW. Therefore, power rating is not exceeded.\"%(PD,PD_max));\n", + "\n", + "print(\"If base current is removed, transistor will turn off. Hence, VCE_max will be exceeded because entire supply voltage VCC will be dropped across the transistor.\");" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "IC=19.5mA is much less than IC_max=100mA. Therefore, will not change with VCC and current rating is not exceeded.\n", + "PD=293mW is less than PD_max=800mW. Therefore, power rating is not exceeded.\n", + "If base current is removed, transistor will turn off. Hence, VCE_max will be exceeded because entire supply voltage VCC will be dropped across the transistor.\n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter9_2.ipynb b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter9_2.ipynb new file mode 100644 index 00000000..e8168ab8 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/chapter9_2.ipynb @@ -0,0 +1,1907 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:1e5463fc2e8c67a2f9099cf3f6c078bc1c9dccccd63589a75ad6ce5024fe6432" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "CHAPTER 9 : TRANSISTOR BIASING" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.1: Page number 195-196" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "V_CC=6.0; #Collector supply voltage\n", + "R_C=2.5; #Collector load in k\u2126\n", + "\n", + "#Calculations\n", + "\n", + "#(i)\n", + "#For faithful amplification Vce (collector-emitter voltage)> 1V for Si transistor.\n", + "V_CE_max=1; #Maximum allowed collector-emitter voltage for faithful amplification, in V.\n", + "V_Rc_max=V_CC-V_CE_max; #maximum voltage drop across collector load in V.\n", + "I_C_max=V_Rc_max/R_C; #Maximum allowed collector current in mA\n", + "\n", + "#(ii)\n", + "IC_min_zero_signal=I_C_max/2; #Minimum zero signal collector current in mA\n", + "\n", + "#Results\n", + "print(\"The maximum allowed collector current during application of signal for faithful amplification = %d mA.\"%I_C_max);\n", + "print(\"The minimum zero signal collector current required = %d mA.\"%IC_min_zero_signal);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The maximum allowed collector current during application of signal for faithful amplification = 2 mA.\n", + "The minimum zero signal collector current required = 1 mA.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.2: Page number 196\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=13.0; #Collector supply voltage in V\n", + "V_knee=1.0; #Knee voltage in V\n", + "R_C=4.0; #Collector load in k\u2126\n", + "rate_IC_VBE=5.0; #Rate of change of collector current IC with base-emitter voltage VBE in mA/V.\n", + "beta=100.0; #base current amplification factor\n", + "\n", + "\n", + "#Calculations\n", + "V_Rc_max=VCC-V_knee; #Maximum allowed voltage across collector load in V\n", + "I_C_max=V_Rc_max/R_C; #Maximum allowed collector current in mA\n", + "I_B_max=I_C_max/beta; #Maximum base current in mA\n", + "I_B_max=I_B_max*1000; #Maximum base current in \ud835\udf07A\n", + "\n", + "V_B_max=I_C_max/rate_IC_VBE; #Maximum base voltage signal in V\n", + "V_B_max=V_B_max*1000; #Maximum base voltage signal in mV\n", + "\n", + "#Results\n", + "print(\"Maximum base current =%d \ud835\udf07A.\"%I_B_max);\n", + "print(\"Maximum input signal voltage =%d mV.\"%V_B_max);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum base current =30 \ud835\udf07A.\n", + "Maximum input signal voltage =600 mV.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.3: Page number 200-201" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=9.0; #Colector supply voltage in V\n", + "VBB=2.0; #Base supply voltage in V\n", + "R_B=100.0; #Base resistor's resistance in k\u2126\n", + "R_C=2.0; #Collector load in k\u2126\n", + "beta=50.0; #base current amplification factor\n", + "\n", + "#Calculations\n", + "\n", + "#Case (i):\n", + "\n", + "#Applying Kirchhoff's law to the input circuit\n", + "#We get, IB*RB +VBE =VBB.\n", + "#Neglecting the small base-emitter voltage, we get:\n", + "I_B=VBB/R_B; #Base current in mA\n", + "I_C=beta*I_B; #Collector current in mA\n", + "\n", + "print(\"Collector current = %dmA\"%I_C);\n", + "\n", + "#Applying Kirchhoff's law to the output ciruit\n", + "#We get, IC*RC + VCE= VCC.\n", + "#From the above equation, we get:\n", + "V_CE=VCC-I_C*R_C; #Collector emitter voltage in V\n", + "\n", + "print(\"Collector emitter voltage =%dV.\"%V_CE);\n", + "\n", + "\n", + "#Case (ii):\n", + "\n", + "R_B=50.0;\n", + "I_B=VBB/R_B;\n", + "I_C=beta*I_B;\n", + "V_CE=VCC - I_C*R_C;\n", + "\n", + "print(\"The new operating point for base resistor RB=50 k\u2126 is, VCE=%dV and IC=%dmA.\"%(V_CE,I_C));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector current = 1mA\n", + "Collector emitter voltage =7V.\n", + "The new operating point for base resistor RB=50 k\u2126 is, VCE=5V and IC=2mA.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.4: Page number 201-202" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import matplotlib.pyplot as plt\n", + "\n", + "#variable declaration\n", + "beta=100.0; #base current amplification factor\n", + "VCC=6.0; #Collector suply voltagein V\n", + "VBE=0.7 #Base emitter voltage in V\n", + "R_B=530.0; #Base resistor's resistance in k\u2126 .\n", + "R_C=2.0; #Collector resistor's resistance in k\u2126 .\n", + "\n", + "#Calculation\n", + "#D.C load line equation : VCE=VCC-IC*RC;\n", + "#Calculating maximum VCE ,by IC=0;\n", + "I_C_Vce_max=0; #Collector current for maximum collector-emitter voltage, in mA\n", + "VCE_max=VCC;-I_C_Vce_max*R_C; #Maximum collector-emitter voltage in V\n", + "\n", + "\n", + "#Calculating maximum collector current IC,by VCE=0;\n", + "V_CE_IC_max=0; #Collector-emitter voltage for maximum collector current, in V \n", + "I_C_max=(VCC-V_CE_IC_max)/R_C; #Maximum collector current in mA\n", + "\n", + "\n", + "#Operating point:\n", + "#For input circuit, applying Kirchhoff's law, We get,\n", + "#VCC=IB*RB + VBE.\n", + "#From the above equation,\n", + "IB=(VCC-VBE)/R_B; #Base current in mA\n", + "IC=beta*IB; #Collector current\n", + "\n", + "#From the output circuit, applying Kirchhoff's law, we get:\n", + "VCE=VCC-IC*R_C; #Collector-emitter voltage in V\n", + "\n", + "\n", + "#Stability factor\n", + "SF=beta+1; \n", + "\n", + "#Result\n", + "print(\"Operating point: VCE= %dV and IC=%d mA\"%(VCE,IC));\n", + "print(\"Stability factor= %d.\"%SF);\n", + "\n", + "\n", + "#plot\n", + "limit = plt.gca()\n", + "limit.set_xlim([0,10])\n", + "limit.set_ylim([0,5])\n", + "VCE=[i for i in range(0,(int)(VCC+1))]; #Plot variable for V_CE\n", + "IC=[((VCC-i)/(R_C)) for i in (VCE[:])]; #Plot variable for I_C\n", + "\n", + "p=plot(VCE,IC);\n", + "xlabel(\"VCE(V)\");\n", + "ylabel(\"IC(mA)\");\n", + "title(\"d.c load line\");\n", + "show(p);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point: VCE= 4V and IC=1 mA\n", + "Stability factor= 101.\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEZCAYAAACZwO5kAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGk5JREFUeJzt3XtQVPfdx/HPIqTexQugCKjxEpVFwetoNVk0XqsmijFi\nNQZjMqONo0lnWmsatZ3RxMTUYFrTPonGWCsYGxuNEms1WWu11NbLo6FpiVNJuHi/U0Vu+/zhwwoo\nCMjZs3v2/ZphIrvL/r7smA8ff5xz1uZyuVwCAFhWgNkDAACMRdADgMUR9ABgcQQ9AFgcQQ8AFkfQ\nA4DFEfTwas8++6xeffXVB3qOrKwsBQQEqLS0tJ6musPhcGjt2rX3vG/p0qWaMWOGJOnbb79Vs2bN\nxNHMMEOg2QMA1bHZbLLZbGaPUaXq5it/e1RUlK5fv+6psYAKaPTwer7agn11blgPQQ+vcvToUfXp\n00fNmzfX1KlTVVBQUOVjS0tLtXz5cnXp0kXNmzdXv379lJOTc9818vLyNGHCBLVu3Vpdu3bV+++/\n777v0KFDGjRokFq2bKnw8HDNmzdPRUVF7vv/9Kc/qXv37goODta8efPkcrlqFOiVt48cDocWL16s\nIUOGqHnz5ho1apQuXrzofnx6eroGDx6sli1bKjY2Vvv27bvvGkBVCHp4jcLCQj355JOaOXOmLl++\nrKeeekoff/xxlVsjb731llJTU/XZZ5/p2rVr+uCDD9S4ceP7rjN16lRFRUXp9OnT+v3vf69Fixbp\niy++kCQFBgYqOTlZFy9e1F//+lft3btXa9askSRduHBBCQkJWr58uS5evKjOnTvrwIEDdd5aSklJ\n0fr163Xu3DkVFhZq5cqVkqTc3FyNGzdOixcv1uXLl7Vy5UolJCTowoULdVoHIOjhNdLT01VcXKz5\n8+erQYMGSkhIUP/+/at8/Nq1a7Vs2TJ17dpVkhQTE6NWrVpVu0Z2drYOHjyoFStW6KGHHlLv3r01\ne/ZsbdiwQZLUp08fDRgwQAEBAerQoYNeeOEFd5tOS0uT3W7XpEmT1KBBAy1YsEBt27at0/dqs9mU\nlJSkLl26qGHDhpoyZYqOHTsmSdq4caPGjh2r0aNHS5Ief/xx9evXT2lpaXVaCyDo4TXy8vLUvn37\nCrd16NChyq2R7Oxsde7cudZrtGrVSk2aNHHfFhUVpdzcXElSZmamxo0bp3bt2qlFixZ65ZVX3Fsq\neXl5ioiIqPB8kZGRtVq/vPI/JBo1aqT8/HxJ0jfffKMtW7aoZcuW7o8DBw7ozJkzdV4L/o2gh9do\n166dO3DLfPPNN1VujURGRurkyZO1WiM8PFyXLl1yh6p0+9DHsgCfM2eOevbsqZMnT+rq1atatmyZ\ne189PDxc2dnZ7q9zuVwVPq+srls6UVFRmjFjhi5fvuz+uH79un70ox/V6fkAgh5eY/DgwQoMDNTq\n1atVVFSkrVu36u9//3uVj589e7ZeffVVnTx5Ui6XS8ePH9elS5eqXSMyMlKDBw/WT37yE926dUvH\njx/XunXrNH36dElSfn6+mjVrpsaNG+tf//qX3n33XffXjh07VhkZGfrDH/6g4uJirV69utqWfb9f\n0lZ1//Tp0/Xpp59q9+7dKikpUUFBgZxO510/BIGaIujhNYKCgrR161atX79erVu31kcffaSEhAT3\n/WUnHZUdWfPyyy9rypQpGjlypFq0aKHnn3++yqN0yrfrlJQUZWVlKTw8XJMmTdLPf/5zDRs2TJK0\ncuVKbdq0Sc2bN9cLL7ygqVOnur+2TZs22rJlixYuXKg2bdro5MmTGjJkSJXfT+Vj7Cs3/Mr3lX0e\nERGhbdu2afny5QoNDVVUVJTeeustQ074gn+wGf3GIx07dlTz5s3VoEEDBQUF6dChQ0YuBwCoxPAz\nY202m5xO532PhgAAGMMjWzecIQgA5jE86G02m/s44Pfee8/o5QAAlRi+dXPgwAG1a9dO58+f14gR\nI9S9e3cNHTrU6GUBAP/P8KBv166dJCkkJEQTJ07UoUOH3EHvzVclBABvVpstcUO3bm7cuOG+NOt/\n//tf7d69WzExMRUeU3ZRKH//WLJkiekzeMsHrwWvBa9F9R+1ZWijP3v2rCZOnChJKi4u1ve//32N\nHDnSyCUBAJUYGvSdOnVyX6gJAGAOzoz1Eg6Hw+wRvAavxR28FnfwWtSd4WfGVru4zVan/SYA8Ge1\nzU4aPQBYHEEPABZH0AOAxRH0AGBxBD0AWBxBDwAWR9ADgMUR9ABgcQQ9AFgcQQ8AFkfQA4DFEfQA\nYHEEPQBYHEEPABZH0AOAxRH0AGBxBD0AWBxBDwAWR9ADgMUR9ABgcQQ9AFgcQQ8AFkfQA4DFEfQA\nYHEEPQBYHEEPABZH0AOAxRH0AGBxBD0AWBxBDwAWR9ADgMUR9ABgcQQ9AFgcQQ8AFmd40JeUlCgu\n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\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f8eea67df10>" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.5: Page number 202" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage in V\n", + "beta=100.0; #base current amplification factor\n", + "I_C_zero_signal=1.0; #zero signal collector current in mA\n", + "VBE=0.3; #Base-emitter voltage of Ge transistor in V\n", + "\n", + "#calculations\n", + "\n", + "#Case(i)\n", + "I_B_zero_signal=I_C_zero_signal/beta; #Zero signal base current in mA\n", + "\n", + "#applying the Kirchhoff's law along input circuit:\n", + "#We get, VCC=IB*RB +VBE\n", + "#From the above equation we get,\n", + "R_B=(VCC-VBE)/I_B_zero_signal; #Required base resistor's resistance in k\u2126\n", + "\n", + "print(\"Value of base resistor for operating the given Ge transistor at zero signal IC=1mA is = %d k\u2126\"%R_B);\n", + "\n", + "\n", + "\n", + "#Case(ii)\n", + "beta=50;\n", + "I_B=(VCC-VBE)/R_B; #Base current of another transistor with beta=50, in mA\n", + "I_C_zero_signal=beta*I_B; #Zero signal collector current for beta=50 , in mA\n", + "\n", + "print(\"The new value of zero signal collector current =%.1fmA\"%I_C_zero_signal);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of base resistor for operating the given Ge transistor at zero signal IC=1mA is = 1170 k\u2126\n", + "The new value of zero signal collector current =0.5mA\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.6:Page number 202-203" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Varaible declaration\n", + "VCC=10.0; #Collector supply voltage in V\n", + "VBE=0; #Base emitter voltage in V(considering itas zero due to it's small value)\n", + "R_B=1.0; #Base resistor's resistance in M\u2126\n", + "R_C=2.0; #Collector resistor's resistance in k\u2126 \n", + "R_E=1.0; #Emitter resistor's resistance in k\u2126\n", + "beta=100.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "#using Kirchhoff's law in the input circuit, we get:\n", + "#VCC=IB*RB +VBE +IE*RE\n", + "#Since, IE=(beta +1)*I_B\n", + "#From the above equation we get:\n", + "I_B=round((VCC-VBE)/((beta + 1)*R_E + R_B*1000),4); #Base current in mA\n", + "I_C=round(beta*I_B,2); #Collector current in mA\n", + "I_E=I_B+I_C; #Emitter current in mA\n", + "\n", + "#Result\n", + "print(\"Base current =%.4f mA\"%I_B);\n", + "print(\"Collector current =%.2f mA\"%I_C);\n", + "print(\"Emitter current =%.3f mA\"%I_E);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Base current =0.0091 mA\n", + "Collector current =0.91 mA\n", + "Emitter current =0.919 mA\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.7: Page number 203-204" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCE=8.0; #Collector-emitter voltage at operating point in V\n", + "IC=2.0; #Colector current at operating point in mA\n", + "VCC=15.0; #Collector supply voltagein V\n", + "beta=100.0; #base current amplification factor\n", + "VBE=0.6; #base emitter voltage in V\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's law along the output circuit,\n", + "#we get, VCC=VCE+IC*RC.\n", + "#So, from above equation we get:\n", + "RC=(VCC-VCE)/IC; #Collector resistor's resistance in k\u2126 .\n", + "IB=IC/beta; #Base current in mA\n", + "\n", + "#Applying Kirchhoff's law along the input circuit,\n", + "#we get, VCC=IB*RB + VBE\n", + "#So, from the above equation:\n", + "RB=(VCC-VBE)/IB; #Base resistor's resistance in k\u2126 .\n", + "\n", + "\n", + "#Results\n", + "print(\"Collector load =%.1f k\u2126 .\"%RC);\n", + "print(\"Base resistor=%d k\u2126 .\"%RB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector load =3.5 k\u2126 .\n", + "Base resistor=720 k\u2126 .\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.8: Page number 204" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage in V\n", + "VBE=0.7; #Base-emitter voltage in V\n", + "RB=100.0; #Base resistor's resistance in k\u2126\n", + "RC=560.0; #Collector resistor's resistance in \u2126\n", + "beta_25=100.0; #base current amplification factor at 25 degree celsius\n", + "beta_75=150.0; #base current amplification factor at 25 degree celsius\n", + "\n", + "\n", + "#Calculations\n", + "\n", + "\n", + "#Applying Kirchhoff's law along input circuit, we get\n", + "#VCC=IB*RB+VBE\n", + "IB=(VCC-VBE)/RB; #Base current at 25 degree celsius, in mA\n", + "\n", + "\n", + "#For temperature 25 degree celsius\n", + "IC_25=beta_25*IB; #Collector current at 25 degree celsius, in mA\n", + "\n", + "\n", + "#Applying Kirchhoff's alw at the output circuit,\n", + "#we get: VCC=IC*RC + VCE\n", + "#From the above equation,\n", + "VCE_25=round(VCC-(IC_25/1000)*RC,2); #Collector emitter voltage at 25 degree celsius, in V\n", + "\n", + "\n", + "#For temperature 75 degree celsius\n", + "IC_75=round(beta_75*IB,0); #Collector current at 75 degree celsius, in mA\n", + "\n", + "#Applying Kirchhoff's alw at the output circuit,\n", + "#we get: VCC=IC*RC + VCE\n", + "#From the above equation,\n", + "VCE_75=round(VCC-(IC_75/1000)*RC,2); #Collector emitter voltage at 75 degree celsius, in V\n", + "\n", + "\n", + "change_IC=(IC_75-IC_25)*100.0/IC_25; #percentage change in collector current\n", + "change_VCE=(VCE_75-VCE_25)*100.0/VCE_25; #Percentage change in collector-emitter voltage \n", + "\n", + "#Results\n", + "print(\"The percentage change in collector current =%d%%\"%change_IC);\n", + "print(\"The percentage change in collector-emitter voltage =%.1f%%\"%change_VCE);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The percentage change in collector current =50%\n", + "The percentage change in collector-emitter voltage =-56.3%\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.10: Page number 205" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCE_max=20.0; #Maximum collector-emitter voltage in V\n", + "VBE=0.7; #Base-emitter voltage in V\n", + "IC_max=8.0; #Maximum collector current in mA\n", + "IB=40.0; #Base current in microampere\n", + "\n", + "#Calculations\n", + "\n", + "#During cut off state the collector-emitter voltage is maximum and equal to collector supply voltage\n", + "VCC=VCE_max; #Collector supply voltage in V\n", + "\n", + "#Maximum collector current IC_max=collector supply voltage(VCC)/collector load(RC)\n", + "#Collector load(RC)=VCC*IC_max\n", + "RC=VCC/IC_max; #Collector load in k\u2126 .\n", + "\n", + "#Applying Kirchhoff's law along input circuit,\n", + "#we get, VCC=IB*RB +VBE.\n", + "#From the above equation, we get:\n", + "RB=(VCC-VBE)/(IB/1000); #Base resistor's resistance in k\u2126 .\n", + "\n", + "#Results\n", + "print(\"Collector supply voltage = %dV\"%VCC);\n", + "print(\"Collector load=%.1f k\u2126 .\"%RC);\n", + "print(\"Base resistor's resistance=%.1f k\u2126 .\"%RB);\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector supply voltage = 20V\n", + "Collector load=2.5 k\u2126 .\n", + "Base resistor's resistance=482.5 k\u2126 .\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.12: Page number 208" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20.0; #Collector supply voltage in V\n", + "VEE=-20.0; #Emitter supply voltage in V\n", + "RB=100.0; #Base resistor's resistance in k\u2126\n", + "RC=4.7; #Collector resistor's resistance in k\u2126\n", + "RE=10.0; #Emitter resistor's resistance in k\u2126\n", + "VBE=0.7; #Base-emitter voltage in V\n", + "beta=85.0; #Base current amplification factor\n", + "\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's voltage law along the base-emitter circuit (input circuit),\n", + "#we get,IB*RB +IE*RE +VBE -VEE=0.\n", + "#Since IB=IC/beta and IC~IE,\n", + "#(IE/beta)*RB + IE*RE + VBE + VEE =0.\n", + "IE=(-VEE-VBE)/(RE + RB/beta); #Emitter current in mA\n", + "IC=IE; #Collector current (approximately equal to emitter current) in mA\n", + "\n", + "#Applying Kirchhoff's law from VCC till collector terminal,\n", + "#we get, VCC - IC*RC =VC\n", + "VC=VCC-IC*RC; #voltage at collector terminal in V\n", + "\n", + "#Applying Kirchhoff's law from emitter terminal to VEE\n", + "#we get, VE -IE*RE =VEE\n", + "VE=VEE + IE*RE; #Voltage at emitter treminal in V\n", + "\n", + "VCE=VC-VE; #Collector-emitter voltage in V\n", + "\n", + "#Results\n", + "print(\"The collector current = %.2f mA\"%IC);\n", + "print(\"The emitter current = %.2f mA\"%IE);\n", + "print(\"The voltage at collector terminal = %.1f V\"%VC);\n", + "print(\"The collector-emitter voltage = %.1f V\"%VCE);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The collector current = 1.73 mA\n", + "The emitter current = 1.73 mA\n", + "The voltage at collector terminal = 11.9 V\n", + "The collector-emitter voltage = 14.6 V\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.13: Page number 208-209\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20.0; #Collector supply voltage in V\n", + "VEE=-20.0; #Emitter supply voltage in V\n", + "RB=100.0; #Base resistor's resistance in k\u2126\n", + "RC=4.7; #Collector resistor's resistance in k\u2126\n", + "RE=10.0; #Emitter resistor's resistance in k\u2126\n", + "beta1=85.0; #Base current amplification factor for case 1 \n", + "beta2=100.0; #Base current amplification factor for case 1\n", + "VBE_1=0.7; #Base emitter voltage for case 1 in V\n", + "VBE_2=0.6; #Base emitter voltage for case 2 in V\n", + "\n", + "\n", + "#Calculations\n", + "#For beta=85 and VBE=0.7,\n", + "#As calculated in the previous question,\n", + "IC_1=1.73; #Collector current in mA.\n", + "VCE_1=14.6; #Collector-emitter voltage in V.\n", + "\n", + "\n", + "#For case (ii)\n", + "#beta=100 and VBE=0.6\n", + "\n", + "#Applying Kirchhoff's voltage law along the base-emitter circuit (input circuit),\n", + "#we get,IB*RB +IE*RE +VBE -VEE=0.\n", + "#Since IB=IC/beta and IC~IE,\n", + "#(IE/beta)*RB + IE*RE + VBE +VEE =0.\n", + "IE_2=round((-VEE-VBE_2)/(RE + RB/beta2),2); #Emitter current in mA\n", + "IC_2=IE_2; #Collector current (approximately equal to emitter current) in mA\n", + "\n", + "#Applying Kirchhoff's law from VCC till collector terminal,\n", + "#we get, VCC - IC*RC =VC\n", + "VC=round(VCC-IC_2*RC,1); #voltage at collector terminal in V\n", + "\n", + "#Applying Kirchhoff's law from emitter terminal to VEE\n", + "#we get, VE -IE*RE =VEE\n", + "VE=round(VEE + IE_2*RE,1); #Voltage at emitter treminal in V\n", + "\n", + "VCE_2=VC-VE; #Collector-emitter voltage in V\n", + "\n", + "\n", + "change_IC= (IC_2-IC_1)*100/IC_1; #%age change in collector current\n", + "\n", + "change_VCE=(VCE_2-VCE_1)*100/VCE_2; #%age change in collector-emitter voltage\n", + "\n", + "\n", + "\n", + "#Results\n", + "print(\"Percentage change in collector current =%.1f%%\"%change_IC);\n", + "print(\"Percentage change in collector-emitter voltage =%.1f%%\"%change_VCE);" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Percentage change in collector current =1.7%\n", + "Percentage change in collector-emitter voltage =-3.5%\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.14: Page number 210\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20.0; #Collector supply voltage in V\n", + "VBE=0.7 #Base-emitter voltage in V\n", + "RB=100.0; #Base resistor's resistance in k\u2126\n", + "RC=1.0; #Collector resistor's resistance in k\u2126\n", + "beta=100.0; #base current amplification factor\n", + "\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's law along input circuit,\n", + "#we get, VCC -IC*RC -IB*RB -VBE=0.\n", + "#since IC= beta*IB,\n", + "#We get,\n", + "IB=(VCC-VBE)/(RB + beta*RC); #Base current in mA\n", + "IC=beta*IB; #Collector current in mA\n", + "\n", + "#Applying Kirchhoff's law along the output circuit,\n", + "#we get, VCC-VCE - IC*RC=0.\n", + "#From the above equation,\n", + "VCE=VCC-IC*RC; #Collector emitter voltage in V\n", + "\n", + "\n", + "#Results\n", + "print(\"The operating point : VCE=%.2fV and IC=%.2fmA.\"%(VCE,IC));\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The operating point : VCE=10.35V and IC=9.65mA.\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.15: Page number 210-211\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage in V\n", + "VBE=0.3; #Base emitter voltage in V\n", + "IC=1.0; #Collector current in mA\n", + "VCE=8.0; #Collector emitter voltage in V\n", + "beta=100.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "\n", + "#Case(i)\n", + "\n", + "#Applying Kirchhoff's law along the output circuit,\n", + "#we get, VCC-IC*RC-VCE=0.\n", + "#from the above equation we get,\n", + "RC=(VCC-VCE)/IC; #Collector load in kilo ohm\n", + "IB=IC/beta; #Base current in mA\n", + "\n", + "#Applying Kirchhoff's law along input circuit\n", + "#we get, VCC-VBE-(beta*IB*RC)-IB*RB=0.\n", + "#From the above equation we get,\n", + "RB=round((VCC-VBE-beta*IB*RC)/IB,0); #Base resistor's resistance in k\u2126\n", + "\n", + "#Results\n", + "print(\"The resistance value of base resistor=%d k\u2126 and collector load= %d k\u2126.\"%(RB,RC));\n", + "\n", + "#Case(ii)\n", + "\n", + "beta=50;\n", + "\n", + "#Applying Kirchhoff's law along input circuit,\n", + "#we get, VCC -IC*RC -IB*RB -VBE=0.\n", + "#since IC= beta*IB,\n", + "#We get,\n", + "IB=(VCC-VBE)/(RB + beta*RC); #Base current in mA\n", + "IC=beta*IB; #Collector current in mA\n", + "\n", + "#Applying Kirchhoff's law along the output circuit,\n", + "#we get, VCC-VCE - IC*RC=0.\n", + "#From the above equation,\n", + "VCE=round(VCC-IC*RC,1); #Collector emitter voltage in V\n", + "\n", + "#Results\n", + "print(\"The operating point : VCE=%.1fV and IC=%.1fmA.\"%(VCE,IC));\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The resistance value of base resistor=770 k\u2126 and collector load= 4 k\u2126.\n", + "The operating point : VCE=9.6V and IC=0.6mA.\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.16 : Page number 211" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCE=2.0; #Collector-emitter voltage at operating point in V\n", + "VBE=0.7; #Base-emitter voltage in V \n", + "IC=1.0; #Collector current at operating point in mA\n", + "beta=100.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "IB=IC/beta; #Base current in mA\n", + "\n", + "#As, VCE=VCB +VBE\n", + "#we get,\n", + "VCB=VCE-VBE; #Collector-base voltage in V\n", + "RB=VCB/IB; #Base resistor's resistance in k\u2126\n", + "\n", + "#Results\n", + "print(\"Value of base resistor's resistance=%d k\u2126.\"%RB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of base resistor's resistance=130 k\u2126.\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.17 : Page number 211-212" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage in V\n", + "VBE=0.7 #Base-emitter voltage in V\n", + "RB=400.0; #Base resistor's resistance in k\u2126\n", + "RC=4.0; #Collector resistor's resistance in k\u2126\n", + "RE=1.0; #Emitter resistor's resistance in k\u2126\n", + "beta=100.0; #Base current amplification factor\n", + "\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's law along outut circuit,\n", + "#we get, VCC -(IC+IB)*RC -IB*RB -VBE - IE*RE=0.\n", + "#since IC= beta*IB, IC+IB ~ IC and IE~IC,\n", + "#We get, VCC - IC*RC -(IC/beta)*RB -VBE - IE*RE\n", + "IC=(VCC-VBE)/(RB/beta + RC + RE); #Collector current current in mA.\n", + "IE=IC; #Emitter current in mA\n", + "\n", + "#Applying Kirchhoff's law along the output circuit,\n", + "#we get, VCC-VCE - IC*RC -IE*RE=0. (IE~IC)\n", + "#From the above equation,\n", + "VCE=VCC-IC*(RC+RE); #Collector emitter voltage in V\n", + "\n", + "\n", + "#Results\n", + "print(\"The operating point : VCE=%.1fV and IC=%.2fmA.\"%(VCE,IC));\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The operating point : VCE=5.7V and IC=1.26mA.\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.18 : Page number 212" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage in V\n", + "RB=100.0; #Base resistor's resistance in k\u2126\n", + "RC=10.0; #Collector resistor's resistance in k\u2126\n", + "RE=0; #Emitter resistor's resistance in k\u2126\n", + "VBE=0.7; #Base-emitter voltage in V\n", + "beta=100.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's law along outut circuit,\n", + "#we get, VCC -(IC+IB)*RC -IB*RB -VBE - IE*RE=0.\n", + "#since IC= beta*IB, IC+IB ~ IC and IE~IC,\n", + "#We get, VCC - IC*RC -(IC/beta)*RB -VBE - IE*RE\n", + "IC=(VCC-VBE)/(RC +RB/beta + RE); #Collector current in mA\n", + "\n", + "#Applying Kirchhoff's law along the output circuit,\n", + "#we get, VCC-VCE - IC*RC =0. (IE~IC)\n", + "#From the above equation,\n", + "VCE=VCC-IC*RC; #Collector-emitter voltage in V\n", + "\n", + "#Results\n", + "print(\"The d.c bias values are: VCE=%.2fV and IC=%.3fmA\"%(VCE,IC));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The d.c bias values are: VCE=1.55V and IC=0.845mA\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.19: Page number 214-215\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import matplotlib.pyplot as plt\n", + "\n", + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage in V\n", + "R1=10.0; #Resistor R1's resistance in k\u2126\n", + "R2=5.0; #Resistor R2's resistance in k\u2126\n", + "RC=1.0; #Collector resistor's resistance in k\u2126 \n", + "RE=2.0; #Emitter resistor's resistance in k\u2126\n", + "VBE=0.7; #Base-emitter voltage in V\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's law along output circuit\n", + "#VCE=VCC-IC*(RC+RE);\n", + "#IC=0, for VCE_max\n", + "VCE_max=VCC; #Maximum collector-emitter voltage in V\n", + "#VCE=0, for IC_max\n", + "IC_max=VCC/(RC+RE); #Maximum collector current in mA\n", + "\n", + "#Operating point\n", + "V2=(VCC*R2)/(R1+R2); #Voltage across R2 resistor V\n", + "IE=(V2-VBE)/RE; #Emitter current in mA\n", + "IC=IE; #Collector current(Approx. equal to emitter current) in mA\n", + "VCE=VCC-IC*(RC+RE); #Collector-emitter voltage in V\n", + "\n", + "#Results\n", + "print(\"Collector-emitter voltage at operating point=%.2fV\"%VCE);\n", + "print(\"Collector current at operating point = %.2fmA\"%IC);\n", + "\n", + "#plot\n", + "limit = plt.gca()\n", + "limit.set_xlim([0,20])\n", + "limit.set_ylim([0,6])\n", + "VCE=[i for i in range(0,(int)(VCC+1))]; #Plot variable for V_CE\n", + "IC=[((VCC-i)/(RC+RE)) for i in (VCE[:])]; #Plot variable for I_C\n", + "\n", + "p=plot(VCE,IC);\n", + "xlabel(\"VCE(V)\");\n", + "ylabel(\"IC(mA)\");\n", + "title(\"d.c load line\");\n", + "show(p);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector-emitter voltage at operating point=8.55V\n", + "Collector current at operating point = 2.15mA\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nAAAAAElFTkSuQmCC\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f8eeacf1ad0>" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.20: Page number 215-216\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage in V\n", + "R1=10.0; #Resistor R1's resistance in k\u2126 .\n", + "R2=5.0; #Resistor R2's resistance in k\u2126 .\n", + "RC=1.0; #Collector resistor's resistance in k\u2126 . \n", + "RE=2.0; #Emitter resistor's resistance in k\u2126 .\n", + "VBE=0.7; #Base-emitter voltage in V\n", + "\n", + "#Calculations\n", + "#Using Thevenin's Theorem for replacing circuit consisting of VCC,R1,R2\n", + "E0=(VCC*R2)/(R1+R2); #Thevenin's voltage in V\n", + "R0=(R1*R2)/(R1+R2); #Thevenin's equivalent resistance in k\u2126 .\n", + "\n", + "#Applying Kirchhoff' law along thevenin's equivalent circuit,\n", + "#E0=IB*R0+VBE+IE*RE;\n", + "#Since IE~IC and IC=beta*IB\n", + "#IC=(E0-VBE)/(R0/beta +RE);\n", + "IC=(E0-VBE)/RE; #(Since R0/beta << RE) collector current in mA\n", + "VCE=VCC-IC*(RC+RE); #Collector emitter voltage in V\n", + "\n", + "\n", + "#Results\n", + "print(\"Collector-emitter voltage at operating point=%.2fV\"%VCE);\n", + "print(\"Collector current at operating point = %.2fmA\"%IC);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Collector-emitter voltage at operating point=8.55V\n", + "Collector current at operating point = 2.15mA\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.21: Page number 216-217\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage in V\n", + "RE=1.0; #Emitter resistor, k\u2126 .\n", + "R1=50.0; #Resistor R1, k\u2126 .\n", + "R2=10.0; #Resistor R2, k\u2126 .\n", + "\n", + "\n", + "#Calculations\n", + "\n", + "#(i)\n", + "VBE=0.1; #Base-emitter voltage in V\n", + "V2=(VCC*R2)/(R1+R2); #Voltage drop across resistor R2, V \n", + "IE=(V2-VBE)/RE; #Emitter current in mA\n", + "\n", + "print(\"(i)Emitter current= %.1fmA\"%IE);\n", + "\n", + "#(ii)\n", + "VBE=0.3; #Base-emitter voltage in V\n", + "V2=(VCC*R2)/(R1+R2); #Voltage drop across resistor R2, V\n", + "IE=(V2-VBE)/RE; #Emitter current in mA\n", + "\n", + "print(\"(ii)Emitter current= %.1fmA\"%IE);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i)Emitter current= 1.9mA\n", + "(ii)Emitter current= 1.7mA\n" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.22: Page number 217\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=20.0; #Collector supply voltage, V\n", + "R1=10.0; #Resistor R1, k\u2126\n", + "R2=10.0; #Resistor R2, k\u2126 .\n", + "RC=1.0; #Collector resistor, k\u2126 .\n", + "RE=5.0; #Emitter resistor, k\u2126 .\n", + "\n", + "\n", + "#Calculations\n", + "V2=(VCC*R2)/(R1+R2); #Voltage drop across resistor R2, V\n", + "\n", + "#Applying kirchhoff's law from base terminal to emitter resistor\n", + "#V2=VBE+IE*RE\n", + "#VBE is neglected due to its small value\n", + "\n", + "IE=V2/RE; #Emitter current in mA\n", + "IC=IE; #Collector current (approx. equal to emitter current), mA\n", + "\n", + "#Applying Kirchhoff's law along output circuit\n", + "VCE=VCC-IC*(RC+RE); #Collector-emitter voltage , V\n", + "VC=VCC-IC*RC; #Voltage at collector terminal,V\n", + "\n", + "\n", + "#Results\n", + "print(\"Emitter current =%dmA\"%IE);\n", + "print(\"Collector-emitter voltage=%dV\"%VCE);\n", + "print(\"Collector terminal's voltage=%dV\"%VC);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Emitter current =2mA\n", + "Collector-emitter voltage=8V\n", + "Collector terminal's voltage=18V\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.23: Page number 219-220\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Variable declaration\n", + "VCC=12.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=50; #Base current amplification factor\n", + "R1=150; #Resistor R1, k\u2126 .\n", + "R2=100; #Resistor R2, k\u2126 .\n", + "RC=4.7; #Collector resistor, k\u2126 .\n", + "RE=2.2; #Emitter resistor, k\u2126 .\n", + "\n", + "#Calculations\n", + "#Using Thevenin's theorem, calculating Thevenin's voltage and resistance\n", + "E0=(VCC*R2)/(R1+R2); #Thevenin's voltage, V\n", + "R0=(R1*R2)/(R1+R2); #Thevenin's resistance, k\u2126 .\n", + "\n", + "#Applying Kirchhoff' law along thevenin's equivalent circuit,\n", + "#E0=IB*R0+VBE+IE*RE;\n", + "#Since IE~IC and IC=beta*IB\n", + "IB=round((E0-VBE)/(R0+beta*RE),3); #Base current in mA\n", + "IC=round(beta*IB,1); #Collector current, mA\n", + "\n", + "#Applying Kirchhoff's law along the output circuit\n", + "VCE=VCC-IC*(RC+RE); #Collector-emitter voltage, V\n", + "\n", + "S=(beta+1)*(1+R0/RE)/(beta +1+R0/RE); #Stability factor\n", + "\n", + "\n", + "#Results\n", + "print(\"Operating point : VCE= %.2fV and IC=%.1fmA\"%(VCE,IC));\n", + "print(\"Stability factor=%.1f\"%S);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point : VCE= 3.72V and IC=1.2mA\n", + "Stability factor=18.4\n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.24 : Page number 220\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base-emitter voltage , V\n", + "beta=100.0; #Base current amplification factor\n", + "R1=6.0; #Resistor R1, k\u2126 .\n", + "R2=3.0; #Resistor R2, k\u2126 .\n", + "RC=470.0; #Collector resistor, \u2126.\n", + "RE=1.0; #Emitter resistor, k\u2126 .\n", + "\n", + "#Calculations\n", + "#Using Thevenin's theorem, calculating Thevenin's voltage and resistance\n", + "E0=(VCC*R2)/(R1+R2); #Thevenin's voltage, V\n", + "R0=(R1*R2)/(R1+R2); #Thevenin's resistance, k\u2126 .\n", + "\n", + "#Applying Kirchhoff' law along thevenin's equivalent circuit,\n", + "#E0=IB*R0+VBE+IE*RE;\n", + "#Since IE~IC and IC=beta*IB\n", + "IB=round((E0-VBE)/(R0+beta*RE),3); #Base current in mA\n", + "IC=round(beta*IB,1); #Collector current, mA\n", + "\n", + "#Applying Kirchhoff's law along the output circuit\n", + "VCE=VCC-IC*(RC/1000+RE); #Collector-emitter voltage, V\n", + "\n", + "S=(beta+1)*(1+R0/RE)/(beta +1+R0/RE); #Stability factor\n", + "\n", + "#Results\n", + "print(\"Operating point : VCE= %.2fV and IC=%.1fmA\"%(VCE,IC));\n", + "print(\"Stability factor=%.2f\"%S);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point : VCE= 8.83V and IC=4.2mA\n", + "Stability factor=2.94\n" + ] + } + ], + "prompt_number": 36 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.25 : Page number 221-222\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Varaible declaration\n", + "VCC=9; #Collector supply voltage, V\n", + "VCE=3; #Collector-emitter voltage, V\n", + "VBE=0.3; #Base-emitter voltage in V\n", + "RC=2.2; #Collector resistor , k\u2126 .\n", + "IC=2; #Collector current, mA\n", + "beta=50.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "IB=IC/beta; #Base current in mA\n", + "\n", + "#According to given relation, I1=10*IB\n", + "I1=IB*10; #Current through the resistor R1, mA\n", + "\n", + "#I1=VCC/(R1+R2), .'s LAW\n", + "R1_R2_sum=VCC/I1; #Sum of the resistor's R1 and R2, k\u2126 (OHM'S LAW).\n", + "\n", + "#Applying Kirchhoff's law along the output circuit\n", + "#VCC=IC*RC+VCE+IE*RE\n", + "#IC~IE\n", + "RE=(VCC-IC*RC-VCE)/IC; #Emitter resistor, k\u2126 .\n", + "RE=round(RE*1000,0); #Emittter resistor, \u2126 .\n", + "\n", + "IE=IC; #Emittter current(approximately equal to collector current), mA\n", + "VE=IE*(RE/1000); #Voltage at emitter terminal (OHM's LAW), V\n", + "V2=VBE+VE; #Voltage drop across resistor R2, V\n", + "\n", + "R2=V2/I1; #Resistor R2,(OHM's LAW), k\u2126 .\n", + "R1=R1_R2_sum-R2; #Resistor R1, k\u2126 .\n", + "\n", + "\n", + "\n", + "#Results\n", + "print(\"RE=%d \u2126., R1=%.2f k\u2126 . and R2=%.2f k\u2126 .\"%(RE,R1,R2));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "RE=800 \u2126., R1=17.75 k\u2126 . and R2=4.75 k\u2126 .\n" + ] + } + ], + "prompt_number": 38 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.26 : Page number 222\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=16.0; #Collector supply voltage, V\n", + "R2=20.0; #Resistor R2, k\u2126\n", + "RE=2.0; #Emitter resistor, k\u2126\n", + "VCE=6.0; #Collector-emitter voltage, V\n", + "IC=2.0; #Collector current , mA\n", + "VBE=0.3; #Base-emitter voltage,V\n", + "alpha=0.985; #Current amplification factor\n", + "\n", + "#Calculations\n", + "beta=alpha/(1-alpha); #Base current amplificatioon factor\n", + "IE=IC; #Emitter current, mA\n", + "IB=IC/beta; #Base current, mA\n", + "VE=IE*RE; #Emitter voltage,(OHM's LAW) V\n", + "V2=VBE+VE; #Voltage drop across resistor R2,(Kirchhoff's law) V\n", + "V_R1=VCC-V2; #Voltage drop across resistor R1, V\n", + "I1=V2/R2; #Current through resistor R2 an R1,(OHM's LAW) mA\n", + "R1=V_R1/I1; #Resistor R1,(OHM's LAW) k\u2126\n", + "\n", + "V_RC=(VCC-VCE-VE); #Voltage across collector resistor, V\n", + "RC=V_RC/IC; #Collector resistor,(OHM's LAW) k\u2126\n", + "\n", + "\n", + "#Results\n", + "print(\"R1=%.1f k\u2126 and RC=%d k\u2126.\"%(R1,RC));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "R1=54.4 k\u2126 and RC=3 k\u2126.\n" + ] + } + ], + "prompt_number": 37 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.27 :Page number 222-223\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=15.0; #Collector supply voltage, V\n", + "R1=10.0; #Resistor R1, k\u2126 \n", + "R2=5.0; #Resistor R2, k\u2126 \n", + "RC=1.0; #Collector resistor, k\u2126 \u007f\n", + "RE=2.0; #Emitter resistor, k\u2126 \n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=100; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "#Using Thevenin's theorem, calculating Thevenin's voltage and resistance\n", + "E0=(VCC*R2)/(R1+R2); #Thevenin's voltage, V\n", + "R0=(R1*R2)/(R1+R2); #Thevenin's resistance, k\u2126 \n", + "\n", + "#Applying Kirchhoff' law along Thevenin's equivalent circuit,\n", + "#E0=IB*R0+VBE+IE*RE;\n", + "#Since IE~IC and IB=IE/beta,\n", + "IE=(E0-VBE)/(R0/beta + RE); #Emitter current , mA\n", + "\n", + "\n", + "#Calculations\n", + "print(\"The exact value of emitter current in the circuit = %.2fmA.\"%IE);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The exact value of emitter current in the circuit = 2.11mA.\n" + ] + } + ], + "prompt_number": 40 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2.28: Page number 223-224\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "#Variable declaration\n", + "IE=2.0; #Emitter current, mA\n", + "IB=50.0; #Base current, mA\n", + "VCC=10.0; #Collector supply voltage, V\n", + "VBE=0.2; #Base-emitter voltage, V\n", + "R2=10.0; #Resistor R2, k\u2126\n", + "RE=1.0; #Emitter resistance, k\u2126\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's law from the base to the emitter resistor,\n", + "V2=VBE+IE*RE; #Voltage at base terminal, V\n", + "I2=V2/R2; #Current through the resistor R2, mA\n", + "I1=I2+IB/1000; #Current through the resistor R2, mA\n", + "V1=VCC-V2; #Voltage drop across the resistor R2\n", + "R1=V1/I1; #Resistor R1, k\u2126\n", + "\n", + "\n", + "#Results\n", + "print(\"The value of the resistor R1=%.2f k\u2126.\"%R1);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of the resistor R1=28.89 k\u2126.\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.30 :Page number 225-226\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=8.0; #Collector supply voltage, V\n", + "RB=360.0; #Base resistor, k\u2126\n", + "RC=2.0; #Collector resistor, k\u2126\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=100.0; #base current amplification factor\n", + "\n", + "\n", + "#Calculations\n", + "IC_max=VCC/RC; #Maximum collector current, mA\n", + "VCE_max=VCC; #Maximum collector voltage, V\n", + "\n", + "#Operating point\n", + "#Applying Kirchhoff's law along the input circuit\n", + "IB=(VCC-VBE)/RB; #Base current, mA\n", + "IC=beta*IB; #Collector current, mA\n", + "\n", + "#Kirchhoff' law along the output circuit\n", + "VCE=VCC-IC*RC; #Collector-emitter voltage, V\n", + "\n", + "#Results\n", + "print(\"VCE=%.2fV, is approximately half of VCC=%dV \\n therefore it is mid-point biased.\"%(VCE,VCC));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "VCE=3.94V, is approximately half of VCC=8V \n", + " therefore it is mid-point biased.\n" + ] + } + ], + "prompt_number": 42 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.31: page number 226\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=50.0; #Base current amplification factor\n", + "R1=12.0; #Resistor R1, k\u2126 \n", + "R2=2.7; #Resistor R2, k\u2126 \n", + "RC=620.0; #Collector resistor, \u2126 \n", + "RE=180.0; #Emitter resistor, \u2126\n", + "\n", + "\n", + "#Calculations\n", + "#Voltage divder rule across R1 and R2\n", + "V2=round((VCC*R2)/(R1+R2),2); #Voltage drop across resistor R2, V\n", + "IE=round(((V2-VBE)/RE)*1000,2); #Emitter current, mA\n", + "IC=IE; #Collector current(Approximately equal to emitter current), mA\n", + "print(\"IC~IE=%.2fmA.\"%IC);\n", + "\n", + "#Applying Kirchhoff's law along the output circuit\n", + "VCE=VCC-(IC/1000)*(RC+RE); #Collector-emitter voltage, V\n", + "\n", + "#Results\n", + "print(\"VCE=%.2fV, is approximately half of VCC=%dV \\n therefore it is mid-point biased.\"%(VCE,VCC));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "IC~IE=6.33mA.\n", + "VCE=4.94V, is approximately half of VCC=10V \n", + " therefore it is mid-point biased.\n" + ] + } + ], + "prompt_number": 49 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.32 : Page number 227\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import sqrt\n", + "\n", + "#Variable declaration\n", + "VCC=10.0; #Collector supply voltage, V\n", + "IC=10.0; #Collector current, mA \n", + "VBE=0.7; #Base-emitter voltage, V\n", + "R1=1.5; #Resistor R1, k\u2126 \n", + "R2=680.0; #Resistor R2, \u2126 \n", + "RC=260.0; #Collector resistor, \u2126 \n", + "RE=240.0; #Emitter resistor, \u2126 \n", + "beta_min=100; #Minimum value of base current amplification factor\n", + "beta_max=400; #Maximum value of base current amplification factor\n", + "\n", + "#Calculations\n", + "#Voltage divder rule across R1 and R2\n", + "V2=round((VCC*R2/1000)/(R1+R2/1000),2); #Voltage drop across resistor R2, V\n", + "IE=round((V2-VBE)/(RE/1000),0); #OHM' LAW, Emitter current, mA\n", + "IC=IE; #Collector current(approx. equal to emitter current),mA\n", + "beta_avg=sqrt(beta_min*beta_max); #Average value of base current amplification factor\n", + "IB=IE/(beta_avg +1); #Base current, mA\n", + "IB=IB*1000; #Base current, \ud835\udf07A\n", + "\n", + "#Results\n", + "print(\"Base current= %.2f \ud835\udf07A\"%IB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Base current= 49.75 \ud835\udf07A\n" + ] + } + ], + "prompt_number": 51 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.33 : Page number 227-228\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VEE=12.0; #Emitter supply voltage, V\n", + "RC=1.5; #Collector resistor, k\u2126\n", + "RB=120.0; #Base resistor k\u2126\n", + "RE=510.0; #Emitter resistor, \u2126 \n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=60.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's voltage law,\n", + "#IB*RB - VBE - IE*RE +VEE=0\n", + "#Since IE~IC and IC=beta*IB,\n", + "IB=(VEE-VBE)/(RB + beta*RE/1000); #Base current , mA\n", + "IC=round(beta*IB,1); #Collector current, mA\n", + "\n", + "#Applying Kirchhoff's voltage law along output circuit,\n", + "VCE=VEE-IC*(RC + RE/1000); #Collector-emitter voltage, V\n", + "\n", + "\n", + "#Results\n", + "print(\"Operating point : VCE= %.2fV and IC=%.1fmA.\"%(VCE,IC));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point : VCE= 2.96V and IC=4.5mA.\n" + ] + } + ], + "prompt_number": 60 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.34 : Page number 228-229\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from math import floor\n", + "\n", + "#Variable declaration\n", + "VEE=9.0; #Emitter supply voltage, V\n", + "RC=1.2; #Collector resistor, k\u2126\n", + "RB=100.0; #Base resistor ,k\u2126\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "beta=45.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "#Applying Kirchhoff's voltage law,\n", + "#IB*RB + VBE=VEE\n", + "#Since IE~IC and IC=beta*IB,\n", + "IB=round((VEE-VBE)/RB,3); #Base current , mA\n", + "IC=floor(beta*IB*100)/100; #Collector current, mA\n", + "\n", + "#Applying Kirchhoff's voltage law along output circuit,\n", + "VCE=VEE-IC*RC; #Collector-emitter voltage, V\n", + "\n", + "#Results\n", + "print(\"Operating point : VCE= %.2fV and IC=%.2fmA.\"%(VCE,IC));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Operating point : VCE= 4.52V and IC=3.73mA.\n" + ] + } + ], + "prompt_number": 68 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.35 : Page number 229\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "VCC=16.0; #Collector supply voltage, V\n", + "VBE=0.7; #Base-emitter voltage, V\n", + "IC=1.0; #Collector current, mA\n", + "VCE=6.0; #Collector-emitter voltage, V\n", + "beta=150.0; #Base current amplification factor\n", + "\n", + "#Calculations\n", + "#For a good design, VE=VCC/10;\n", + "VE=VCC/10; #Emitter terminal's voltage, V\n", + "#OHM's Law\n", + "#And, taking IE~IC\n", + "RE=VE/IC; #Emitter resistor, k\u2126\n", + "\n", + "#Applying Kirchhoff's voltage law alog output circuit:\n", + "#VCC=IC*RC + VCE + VE\n", + "RC=(VCC-VCE-VE)/IC; #Collector resistor, k\u2126\n", + "V2=VE+VBE; #Voltage drop across resistor R2,V\n", + "#From the relation I1=10*IB\n", + "R2=(beta*RE)/10; #Resistor R2, kilo ohm\n", + "\n", + "#From voltage divider rule across R1 and R2,\n", + "#V2=(VCC*R2)/(R1+R2)\n", + "R1=(VCC-V2)*R2/V2; #Resistor R1, k\u2126 \n", + "\n", + "#Results\n", + "print(\"RE=%.1f k\u2126 , RC=%.1f k\u2126, R1=%.0f k\u2126 and R2=%d k\u2126.\"%(RE,RC,R1,R2));\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "RE=1.6 k\u2126 , RC=8.4 k\u2126, R1=143 k\u2126 and R2=24 k\u2126.\n" + ] + } + ], + "prompt_number": 69 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.36 : Page number 230-231\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "ICBO=5.0; #Collector to base leakage current, microampere\n", + "beta=40.0; #Base current amplification factor\n", + "IC_zero_signal=2.0; #Zero signal collector current, mA\n", + "op_temp=25.0; #operating temperature, degree celsius\n", + "temp_risen=55.0; #Temperature risen, degree celsius\n", + "temp_ICBO_doubles=10.0; #Temperature after which ICBO doubles, degree celsius\n", + "\n", + "#Calculations\n", + "\n", + "#(i)\n", + "ICEO=(beta+1)*ICBO; #Collector to emitter leakage current, microampere\n", + "\n", + "#(ii)\n", + "Number_of_times_ICBO_doubled=(temp_risen - op_temp)/temp_ICBO_doubles; #Number of times ICBO doubles\n", + "ICBO_final=ICBO*2**Number_of_times_ICBO_doubled; #Final value of collector to base leakage current, microampere\n", + "ICEO_final=ICBO_final*(beta + 1); #Final value of collector to emitter leakage current, microampere\n", + "\n", + "IC_zero_signal_55=(ICEO_final/1000) +IC_zero_signal; #Zero signal collector current at 55 degree celius\n", + "change=(IC_zero_signal_55-IC_zero_signal)*100/IC_zero_signal; #Percentage change in zero signal collector current\n", + "\n", + "#Result\n", + "print(\"(i) The percentage change in the zero signal collector current=%.0f%%. \"%change)\n", + "\n", + "#(iii)\n", + "#For the silicon transistor\n", + "ICBO=0.1; #Collector to base leakage current, microampere\n", + "\n", + "ICEO=(beta+1)*ICBO; #Collector to emitter leakage current, microampere\n", + "\n", + "Number_of_times_ICBO_doubled=(temp_risen - op_temp)/temp_ICBO_doubles; #Number of times ICBO doubles\n", + "ICBO_final=ICBO*2**Number_of_times_ICBO_doubled; #Final value of collector to base leakage current, microampere\n", + "ICEO_final=ICBO_final*(beta + 1); #Final value of collector to emitter leakage current, microampere\n", + "\n", + "IC_zero_signal_55=(ICEO_final/1000) +IC_zero_signal; #Zero signal collector current at 55 degree celius\n", + "change=(IC_zero_signal_55-IC_zero_signal)*100/IC_zero_signal; #Percentage change in zero signal collector current\n", + "\n", + "\n", + "#Result\n", + "print(\"(ii) The percentage change in the zero signal collector current=%.1f%%. \"%change)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(i) The percentage change in the zero signal collector current=82%. \n", + "(ii) The percentage change in the zero signal collector current=1.6%. \n" + ] + } + ], + "prompt_number": 70 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9.37 : Page number 231\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "ICBO=0.02 #Collector to base leakage current, \ud835\udf07A\n", + "alpha=0.99; #Current amplification factor\n", + "IE=1.0; #Emitter current, mA\n", + "op_temp=27.0; #operating temperature, degree celsius\n", + "temp_risen=57.0; #Temperature risen, degree celsius\n", + "temp_ICBO_doubles=6.0; #Temperature after which ICBO doubles, degree celsius\n", + "\n", + "#Calculations\n", + "Number_of_times_ICBO_doubled=(temp_risen - op_temp)/temp_ICBO_doubles; #Number of times ICBO doubles\n", + "ICBO_55=ICBO*2**Number_of_times_ICBO_doubled; #collector to base leakage current at 55 degree celsius, \ud835\udf07A\n", + "IC=alpha*IE + ICBO_55/1000; #Collector current, mA\n", + "IB=IE-IC; #Base current, mA\n", + "IB=IB*1000; #Base current,\ud835\udf07A\n", + "\n", + "#Results\n", + "print(\"Base current at 57 degree celsius=%.1f \ud835\udf07A \"%IB);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Base current at 57 degree celsius=9.4 \ud835\udf07A \n" + ] + } + ], + "prompt_number": 71 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter10_ac_load_line_2.png b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter10_ac_load_line_2.png Binary files differnew file mode 100644 index 00000000..d7feffd7 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter10_ac_load_line_2.png diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter18_clipping_ckt_output_2.png b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter18_clipping_ckt_output_2.png Binary files differnew file mode 100644 index 00000000..76486c7b --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter18_clipping_ckt_output_2.png diff --git a/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter8_dc_load_line_2.png b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter8_dc_load_line_2.png Binary files differnew file mode 100644 index 00000000..9b26fbe2 --- /dev/null +++ b/Principles_of_Electronics_____by_V.K._Mehta_and_Rohit_Mehta/screenshots/chapter8_dc_load_line_2.png diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_7.ipynb new file mode 100644 index 00000000..7cd2fd61 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_7.ipynb @@ -0,0 +1,280 @@ +{
+ "metadata": {
+ "name": "chapter no.10.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Theory of Failures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.1,Page No.401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P_e=300 #N/mm**2 #Elastic Limit in tension\n",
+ "FOS=3 #Factor of safety\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "P=12*10**3 #N Pull \n",
+ "Q=6*10**3 #N #Shear force\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let d be the diameter of the shaft\n",
+ "\n",
+ "#Direct stress\n",
+ "#P_x=P*(pi*4**-1*d**3)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P_x=48*10**3\n",
+ "\n",
+ "#Now shear stress at the centre of bolt\n",
+ "#q=4*3**-1*q_av\n",
+ "#After substituting values and further simplifying we get\n",
+ "#q=32*10**3*(pi*d**2)**-1\n",
+ "\n",
+ "#Principal stresses are\n",
+ "#P1=P_x*2**-1+((P_x*2**-1)**2+q**2)**0.5\n",
+ "#After substituting values and further simplifying we get\n",
+ "#p1=20371.833*(d**2)**-1\n",
+ "\n",
+ "#P2=P_x*2**-1-((P_x*2**-1)**2+q**2)**0.5\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P2=-5092.984*(d**2)**-1\n",
+ "\n",
+ "#q_max=((P_x*2**-1)**2+q**2)**0.5\n",
+ "\n",
+ "#From Max Principal stress theory\n",
+ "#Permissible stress in Tension\n",
+ "P1=100 #N/mm**2 \n",
+ "d=(20371.833*P1**-1)**0.5\n",
+ "\n",
+ "#Max strain theory\n",
+ "#e_max=P1*E**-1-mu*P2*E**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#e_max=21899.728*(d**2*E)**-1\n",
+ "\n",
+ "#According to this theory,the design condition is\n",
+ "#e_max=P_e*(E*FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d2=(21899.728*3*300**-1)**0.5 #mm\n",
+ "\n",
+ "#Max shear stress theory\n",
+ "#e_max=shear stress at elastic*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d3=(12732.421*6*300**-1)**0.5 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of Bolt by:Max Principal stress theory\",round(d,2),\"mm\"\n",
+ "print\" :Max strain theory\",round(d2,2),\"mm\"\n",
+ "print\" :Max shear stress theory\",round(d3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of Bolt by:Max Principal stress theory 14.27 mm\n",
+ " :Max strain theory 14.8 mm\n",
+ " :Max shear stress theory 15.96 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.2.Page No.402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "M=40*10**6 #N-mm #Bending moment\n",
+ "T=10*10**6 #N-mm #TOrque\n",
+ "mu=0.25 #Poissoin's ratio\n",
+ "P_e=200 #N/mm**2 #Stress at Elastic Limit\n",
+ "FOS=2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let d be the diameter of the shaft\n",
+ "\n",
+ "#Principal stresses are given by\n",
+ "\n",
+ "#P1=16*(pi*d**3)**-1*(M+(M**2+T**2)**0.5)\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P1=4.13706*10**8*(d**3)**-1 ............................(1)\n",
+ "\n",
+ "#P2=16*(pi*d**3)**-1*(M-(M**2+T**2)**0.5)\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P2=-6269718*(pi*d**3)**-1 ..............................(2)\n",
+ "\n",
+ "#q_max=(P1-P2)*2**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#q_max=2.09988*10**8*(d**3)**-1\n",
+ "\n",
+ "#Max Principal stress theory\n",
+ "#P1=P_e*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d=(4.13706*10**8*2*200**-1)**0.33333 #mm \n",
+ "\n",
+ "#Max shear stress theory\n",
+ "#q_max=shear stress at elastic limit*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d2=(2.09988*10**8*4*200**-1)**0.33333\n",
+ "\n",
+ "#Max strain energy theory\n",
+ "#P_3=0\n",
+ "#P1**2+P2**2-2*mu*P1*P2=P_e**2*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d3=(8.62444*10**12)**0.166666\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of shaft according to:MAx Principal stress theory\",round(d,2),\"mm\"\n",
+ "print\" :Max shear stress theory\",round(d2,2),\"mm\"\n",
+ "print\" :Max strain energy theory\",round(d3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of shaft according to:MAx Principal stress theory 160.52 mm\n",
+ " :Max shear stress theory 161.33 mm\n",
+ " :Max strain energy theory 143.2 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.3,Page No.403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "f_x=40 #N/mm**2 #Internal Fliud Pressure\n",
+ "d1=200 #mm #Internal Diameter\n",
+ "r1=d1*2**-1 #mm #Radius\n",
+ "q=300 #N/mm**2 #Tensile stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have,\n",
+ "\n",
+ "#Hoop Stress\n",
+ "#f_x=b*(x**2)**-1+a ..........................(1)\n",
+ "\n",
+ "#Radial Pressure\n",
+ "#p_x=b*(x**2)**-1-a .........................(2)\n",
+ "\n",
+ "#the boundary conditions are\n",
+ "x=d1*2**-1 #mm \n",
+ "#After sub values in equation 1 and further simplifying we get\n",
+ "#40=b*100**-1-a ..........................(3)\n",
+ "\n",
+ "#Max Principal stress theory\n",
+ "#q*(FOS)**-1=b*100**2+a ..................(4)\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "a=80*2**-1\n",
+ "#Sub value of a in equation 3 we get\n",
+ "b=(f_x+a)*100**2\n",
+ "\n",
+ "#At outer edge where x=r_0 pressure is zero\n",
+ "r_0=(b*a**-1)**0.5 #mm\n",
+ "\n",
+ "#thickness\n",
+ "t=r_0-r1 #mm\n",
+ "\n",
+ "#Max shear stress theory\n",
+ "P1=b*(100**2)**-1+a #Max hoop stress\n",
+ "P2=-40 #pressure at int radius (since P2 is compressive)\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(P1-P2)*2**-1\n",
+ "\n",
+ "#According max shear theory the design condition is\n",
+ "#q_max=P_e*2**-1*(FOS)**-1\n",
+ "#After sub values in equation we get and further simplifying we get\n",
+ "#80=b*(100**2)**-1+a\n",
+ "#After sub values in equation 1 and 3 and further simplifying we get\n",
+ "b2=120*100**2*2**-1\n",
+ "\n",
+ "#from equation(3)\n",
+ "a2=120*2**-1-a\n",
+ "\n",
+ "#At outer radius r_0,radial pressure=0\n",
+ "r_02=(b2*a2**-1)**0.5\n",
+ "\n",
+ "#thickness\n",
+ "t2=r_02-r1\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of metal by:Max Principal stress theory\",round(t,2),\"mm\"\n",
+ "print\" :Max shear stress thoery\",round(t2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of metal by:Max Principal stress theory 41.42 mm\n",
+ " :Max shear stress thoery 73.21 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_7.ipynb new file mode 100644 index 00000000..8274c67e --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_7.ipynb @@ -0,0 +1,2785 @@ +{
+ "metadata": {
+ "name": "chapter no.2.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Simple Stresses And Strains"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.1,Page No.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "P=45*10**3 #N #Load\n",
+ "E=200*10**3 #N/mm**2 #Modulus of elasticity of rod\n",
+ "L=500 #mm #Length of rod\n",
+ "d=20 #mm #Diameter of rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*d**2*4**-1 #mm**2 #Area of circular rod\n",
+ "p=P*A**-1 #N/mm**2 #stress\n",
+ "e=p*E**-1 #strain\n",
+ "dell_l=(P*L)*(A*E)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"The stress in bar due to Load is\",round(p,5),\"N/mm\"\n",
+ "print\"The strain in bar due to Load is\",round(e,5),\"N/mm\"\n",
+ "print\"The Elongation in bar due to Load is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress in bar due to Load is 143.23945 N/mm\n",
+ "The strain in bar due to Load is 0.00072 N/mm\n",
+ "The Elongation in bar due to Load is 0.36 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.2,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "A=15*0.75 #mm**2 #area of steel tape\n",
+ "P=100 #N #Force apllied\n",
+ "L=30*10**3 #mm #Length of tape\n",
+ "E=200*10**3 #N/m**2 #Modulus of Elasticity of steel tape\n",
+ "AB=150 #m #Measurement of Line AB \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "dell_l=P*L*(A*E)**-1 #mm #Elongation\n",
+ "l=L+dell_l*10**-3 #mm #Actual Length \n",
+ "AB1=AB*l*L**-1 #m Actual Length of AB\n",
+ "\n",
+ "#Result\n",
+ "print\"The Actual Length of Line AB is\",round(AB1,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Actual Length of Line AB is 150.0 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.3,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Let y be the yield stress\n",
+ "\n",
+ "y=250 #N/mm**2 #yield stress\n",
+ "FOS=1.75 #Factor of safety\n",
+ "P=140*10**3 #N #compressive Load\n",
+ "D=101.6 #mm #External diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "p=y*(FOS)**-1 #N/mm**2 #Permissible stress\n",
+ "A=P*p**-1 #mm**2 #Area of hollow tube\n",
+ "\n",
+ "#Let d be the internal diameter of tube\n",
+ "d=-((A*4*(pi)**-1)-D**2)\n",
+ "X=d**0.5\n",
+ "t=(D-X)*2**-1 #mm #Thickness of steel tube\n",
+ "\n",
+ "#result\n",
+ "print\"The thickness of steel tube is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of steel tube is 3.17 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.4,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #diameter of steel\n",
+ "d2=18 #mm #Diameter at neck\n",
+ "L=200 #mm #length of stee\n",
+ "P=80*10**3 #KN #Load\n",
+ "P1=160*10**3 #N #Load at Elastic Limit\n",
+ "P2=180*10**3 #N #Max Load\n",
+ "L1=56 #mm #Total Extension\n",
+ "dell_l=0.16 #mm #Extension\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*d**2*4**-1 #Area of steel #mm**2\n",
+ "\n",
+ "p=P1*A**-1 #Stress at Elastic Limit #N/mm**2\n",
+ "Y=P*L*(A*dell_l)**-1 #Modulus of elasticity\n",
+ "\n",
+ "#Let % elongation be x\n",
+ "x=L1*L**-1*100 \n",
+ "\n",
+ "#Percentage reduction in area\n",
+ "#Let % A be a\n",
+ "a=((pi*4**-1*d**2)-(pi*4**-1*d2**2))*(pi*4**-1*d**2)**-1*100\n",
+ "\n",
+ "#Ultimate tensile stress\n",
+ "sigma=P2*A**-1 #N/mm**2\n",
+ "\n",
+ "#result\n",
+ "print\"Stress at Elastic limit is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Young's Modulus is\",round(Y,2),\"N/mm**2\"\n",
+ "print\"Percentage Elongation is\",round(a,2)\n",
+ "print\"Percentage reduction in area is\",round(P2,2)\n",
+ "print\"Ultimate tensile stress\",round(sigma,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress at Elastic limit is 325.95 N/mm**2\n",
+ "Young's Modulus is 203718.33 N/mm**2\n",
+ "Percentage Elongation is 48.16\n",
+ "Percentage reduction in area is 180000.0\n",
+ "Ultimate tensile stress 366.69 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.5,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of bar\n",
+ "d2=14.7 #mm #Diameter at neck\n",
+ "L=200 #mm #guage Length \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,10,20,30,40,50,60]\n",
+ "Y1=[0,32,64,95,127,160,190]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Extension in divisions\")\n",
+ "plt.ylabel(\"Load in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of Bar\n",
+ "A2=pi*4**-1*d2**2\n",
+ "\n",
+ "P=45 #KN #Load obtained from graph\n",
+ "dell=0.143 #mm #Divisions\n",
+ "\n",
+ "#Modulus of Elasticity\n",
+ "E=P*L*(dell*A)**-1 \n",
+ "\n",
+ "BL=93*10**3 #N #Breaking Load\n",
+ "\n",
+ "#Nominal stress at Breaking point\n",
+ "sigma=BL*A**-1 #KN/mm**2 \n",
+ "\n",
+ "#True stress at breaking Point\n",
+ "sigma1=BL*A2**-1\n",
+ "\n",
+ "#Percentage Elongation \n",
+ "dell_l=(A-A2)*A**-1*100\n",
+ "\n",
+ "#Result\n",
+ "print\"The Value of ELongation is\",round(E,2),\"N/mm**2\"\n",
+ "print\"The Nominal stress at the Breaking Point\",round(sigma,2),\"KN/mm**2\"\n",
+ "print\"The True stress at the Breaking Point\",round(sigma1,2),\"KN/mm**2\"\n",
+ "print\"The Percentage Reduction in Area is\",round(dell_l,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4d1d370>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of ELongation is 200.33 N/mm**2\n",
+ "The Nominal stress at the Breaking Point 296.03 KN/mm**2\n",
+ "The True stress at the Breaking Point 547.97 KN/mm**2\n",
+ "The Percentage Reduction in Area is 45.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.6,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=40*10**3 #N #Load\n",
+ "L1=160 #mm #Length of Bar1\n",
+ "L2=240 #mm #Length of bar2\n",
+ "L3=160 #mm #Length of bar3\n",
+ "d1=25 #mm #Diameter of Bar1\n",
+ "d2=20 #mm #diameter of bar2\n",
+ "d3=25 #mm #diameter of bar3\n",
+ "dell_l=0.285 #mm #Total Extension of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "E=P*4*(dell_l*pi)**-1*(L1*(d1**2)**-1+L2*(d2**2)**-1+L3*(d3**2)**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Young's Modulus of the material\",round(E,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Young's Modulus of the material 198714.72 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.7,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E1=2*10**5 #N/mm**2 #modulus of Elasticity of material1\n",
+ "E2=1*10**5 #N/mm**2 #modulus of Elasticity of material2\n",
+ "P=25*10**3 #N #Load \n",
+ "t=20 #mm #thickness of material\n",
+ "b1=40 #mm #width of material1\n",
+ "b2=30 #mm #width of material2\n",
+ "L1=500 #mm #Length of material1\n",
+ "L2=750 #mm #Length of material2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A1=b1*t #mm**2 #Area of materila1\n",
+ "A2=b2*t #mm**2 #Area of material2\n",
+ "\n",
+ "dell_l1=P*L1*(A1*E1)**-1 #Extension of Portion1\n",
+ "dell_l2=P*L2*(A2*E2)**-1 #Extension of portion2\n",
+ "\n",
+ "#Total Extension of Bar is\n",
+ "dell_l=dell_l1+dell_l2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Extension of the Bar is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Extension of the Bar is 0.39 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.8,Page No.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of Bar\n",
+ "l=400 #mm #Length upto which bire is drilled \n",
+ "D=30 #mm #diameter of bar\n",
+ "d1=10 #mm #diameter of bore\n",
+ "P=25*10**3 #N #Load\n",
+ "dell_l=0.185 #mm #Extension of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "L1=L-l #Length of bar above the bore\n",
+ "L2=400 #mm #Length of bore\n",
+ "\n",
+ "A1=pi*4**-1*D**2 #Area of bar\n",
+ "A2=pi*4**-1*(D**2-d1**2) #Area of bore\n",
+ "\n",
+ "E=P*dell_l**-1*(L1*A1**-1+L2*A2**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Modulus of ELasticity is\",round(E,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Modulus of ELasticity is 200735.96 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.11,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=10 #mm #Thickness of steel\n",
+ "b1=60 #mm #width of plate1\n",
+ "b2=40 #mm #width of plate2\n",
+ "P=60*10**3 #Load\n",
+ "L=600 #mm #Length of plate\n",
+ "E=2*10**5 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Extension of taperong bar of rectangular section\n",
+ "dell_l=P*L*(t*E*(b1-b2))**-1*log(b1*b2**-1)\n",
+ "\n",
+ "A_av=(b1*t+b2*t)*2**-1 #Average Area #mm**2\n",
+ "dell_l2=P*L*(A_av*E)**-1 \n",
+ "\n",
+ "#PErcentage Error\n",
+ "e=(dell_l-dell_l2)*(dell_l)**-1*100\n",
+ "\n",
+ "#Result\n",
+ "print\"The Percentage Error is\",round(e,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Percentage Error is 1.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.12,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1.5 #m #Length of steel bar\n",
+ "L1=1000 #m0 #Length of steel bar 1\n",
+ "L2=500 #m #Length of steel bar 2\n",
+ "d1=40 #Diameter of steel bar 1\n",
+ "d2=20 #diameter of steel bar 2\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "P=160*10**3 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A1=pi*4**-1*d1**2 #Area of Portion 1\n",
+ "\n",
+ "#Extension of uniform Portion 1\n",
+ "dell_l1=P*L1*(A1*E)**-1 #mm\n",
+ "\n",
+ "#Extension of uniform Portion 2\n",
+ "dell_l2=4*P*L2*(pi*d1*d2*E)**-1 #mm\n",
+ "\n",
+ "#Total Extension of Bar\n",
+ "dell_l=dell_l1+dell_l2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Elongation of the Bar is\",round(dell_l,2),\"mm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.14,Page No.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Portion AB\n",
+ "L_AB=600 #mm #Length of AB\n",
+ "A_AB=40*40 #mm**2 #Cross-section Area of AB\n",
+ "\n",
+ "#Portion BC\n",
+ "L_BC=800 #mm #Length of BC\n",
+ "A_BC=30*30 #mm #Length of BC\n",
+ "\n",
+ "#Portion CD\n",
+ "L_CD=1000 #mm #Length of CD\n",
+ "A_CD=20*20 #mm #Area of CD\n",
+ "\n",
+ "P1=80*10**3 #N #Load1\n",
+ "P2=60*10**3 #N #Load2\n",
+ "P3=40*10**3 #N #Load3\n",
+ "\n",
+ "E=2*10**5 #Modulus of Elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "P4=P1-P2+P3 #Load4\n",
+ "\n",
+ "#Now Force in AB\n",
+ "F_AB=P1\n",
+ "\n",
+ "#Force in BC\n",
+ "F_BC=P1-P2\n",
+ "\n",
+ "#Force in CD\n",
+ "F_CD=P4\n",
+ "\n",
+ "#Extension of AB\n",
+ "dell_l_AB=F_AB*L_AB*(A_AB*E)**-1\n",
+ "\n",
+ "#Extension of BC\n",
+ "dell_l_BC=F_BC*L_BC*(A_BC*E)**-1\n",
+ "\n",
+ "#Extension of CD\n",
+ "dell_l_CD=F_CD*L_CD*(A_CD*E)**-1\n",
+ "\n",
+ "#Total Extension\n",
+ "dell_l=dell_l_AB+dell_l_BC+dell_l_CD\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Extension in Bar is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Extension in Bar is 0.99 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.15,Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=800 #mm #Length of bar\n",
+ "F1=30*10**3 #N #Force acting on the bar\n",
+ "F2=60*10**3 #N #force acting on the bar\n",
+ "L=800 #mm #Length of bar\n",
+ "d=25 #mm #diameter of bar\n",
+ "L_AC=275 #mm #Length of AC\n",
+ "L_CD=150 #mm #Length of CD\n",
+ "L_DB=375 #mm #Length of DB\n",
+ "E=2*10**5 #Pa #Modulus of elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P be the Reaction on tne Bar from support at A\n",
+ "\n",
+ "#Shortening of Portion AC\n",
+ "#dell_l_AC1=P*L_AC*(A*E)**-1\n",
+ "\n",
+ "#Shortening of Portion CD\n",
+ "#dell_l_CD1=(30+P)*L_CD*(A*E)**-1\n",
+ "\n",
+ "#Extension of Portion DB\n",
+ "#dell_l_DB1=(30-P)*L_DB*(A*E)**-1\n",
+ "\n",
+ "#Total Extensions=1*(A*E)**-1*(P*L_AC-(30+P)*L_CD+(30-P)*L_DB)\n",
+ "#As Supports are unyielding,Total Extensions=0\n",
+ "\n",
+ "#After substituting values in above equation and Further simplifying we get\n",
+ "P=(30*375-150*30)*800**-1\n",
+ "\n",
+ "#Reaction of support A\n",
+ "R_A=P\n",
+ "\n",
+ "#Reaction of support B\n",
+ "R_B=30-P\n",
+ "\n",
+ "#Cross-sectional Area\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Stress in Portion AC\n",
+ "sigma1=P*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in Portion CD\n",
+ "sigma2=(30+P)*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in Portion DB\n",
+ "sigma3=(30-P)*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Shortening of Portion AC\n",
+ "dell_l_AC2=P*10**3*L_AC*(A*E)**-1 #mm \n",
+ "\n",
+ "#Shortening of Portion CD\n",
+ "dell_l_CD2=(30+P)*10**3*L_CD*(A*E)**-1 #mm \n",
+ "\n",
+ "#Extension of Portion DB\n",
+ "dell_l_DB2=(30-P)*10**3*L_DB*(A*E)**-1 #mm \n",
+ "\n",
+ "#result\n",
+ "print\"The Reactios at two Ends are:R_A\",round(R_A,2),\"KN\"\n",
+ "print\" :R_B\",round(R_B,2),\"KN\"\n",
+ "print\"Stress in Portion AC\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\"Stress in Portion CD\",round(sigma2,2),\"N/mm**2\"\n",
+ "print\"Stress in Portion DB\",round(sigma3,2),\"N/mm**2\"\n",
+ "print\"Shortening of Portion AC\",round(dell_l_AC2,3),\"mm\"\n",
+ "print\"Shortening of Portion CD\",round(dell_l_CD2,3),\"mm\"\n",
+ "print\"Shortening of Portion DB\",round(dell_l_DB2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Reactios at two Ends are:R_A 8.44 KN\n",
+ " :R_B 21.56 KN\n",
+ "Stress in Portion AC 17.19 N/mm**2\n",
+ "Stress in Portion CD 78.3 N/mm**2\n",
+ "Stress in Portion DB 43.93 N/mm**2\n",
+ "Shortening of Portion AC 0.024 mm\n",
+ "Shortening of Portion CD 0.059 mm\n",
+ "Shortening of Portion DB 0.082 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.19,Page No.29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "h=4 #m #height of Pillars\n",
+ "P=20 #KN #Load at M\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_A,P_B,P_C,P_D be the forces introduced in the Pillars\n",
+ "#Sun of All Vertical Forces\n",
+ "#P_A+P_B+P_C+P_D=20 ....................(1)\n",
+ "\n",
+ "#Sum of moment about AB, we get\n",
+ "#P_D+P_C=12 ....................(2)\n",
+ "\n",
+ "#Sum of Moment about AD\n",
+ "#P_C+P_B=8 ....................(3)\n",
+ "\n",
+ "#Let dell_l_A,dell_l_B,dell_l-C,dell_l_D be the deformations of Pillars A,B,C,D respectively\n",
+ "#Diagonals AC and BD will remain straight Lines even after the Load is applied.\n",
+ "#Deflection of central Point is given by (dell_l_A+dell_l_C)*2**-1 & (dell_l_B+dell_l_D)*2**-1\n",
+ "\n",
+ "#dell_l_A+dell_l_C=dell_l_B+ell_l_D\n",
+ "#P_A*L*(A*E)**-1+P_C*L*(A*E)**-1=P_B*L*(A*E)**-1+P_D*L*(A*E)**-1\n",
+ "\n",
+ "#Since Pillars are identical in Length,cross-sectional area,material Property\n",
+ "#P_A+P_C=P_B+P_D ..............(4)\n",
+ "\n",
+ "#From Equations 1 and 4 we get\n",
+ "#P_B+P_D=10 ....................(5)\n",
+ " \n",
+ "#Substracting Equation 3 from Equation 2 we get\n",
+ "#P_D-P_B=4 ....................(6)\n",
+ "\n",
+ "#Adding Equation 5 and 6 we get\n",
+ "\n",
+ "P_D=14*2**-1\n",
+ "P_C=12-P_D\n",
+ "P_B=8-P_C\n",
+ "\n",
+ "#Now substituting values of P_B,P_C,P_D in equation1 we get\n",
+ "P_A=20-(P_B+P_C+P_D)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Forces Developed in the Pillars are:P_A\",round(P_A,2),\"KN\"\n",
+ "print\" :P_B\",round(P_B,2),\"KN\"\n",
+ "print\" :P_C\",round(P_C,2),\"KN\"\n",
+ "print\" :P_D\",round(P_D,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Forces Developed in the Pillars are:P_A 5.0 KN\n",
+ " :P_B 3.0 KN\n",
+ " :P_C 5.0 KN\n",
+ " :P_D 7.0 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.20,Page No.31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma=150 #N/mm**2 #Stress\n",
+ "P=40*10**3 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt P_A.P_B,P_C,P_D be the forces developed in wires A,B,C,D respectively\n",
+ "\n",
+ "#Let sum of all Vertical Forces=0\n",
+ "#P_A+P_B+P_C+P_D=40 ..........................(1)\n",
+ "\n",
+ "#Let x be the distance between each wires\n",
+ "#sum of all moments=0\n",
+ "#P_B*x+P_C*2*x+P_D*3*x=40*2*x\n",
+ "\n",
+ "#After further simplifying we get\n",
+ "#P_B+2*P_C+3*P_D=80 ..........................(2)\n",
+ "\n",
+ "#As the equations of statics ae not enough to find unknowns,Consider compatibilit Equations\n",
+ "\n",
+ "#Let dell_l be the increse in elongation of wire\n",
+ "\n",
+ "#dell_l_B=dell_l_A+dell_l\n",
+ "#dell_l_C=dell_l_A+2*dell_l\n",
+ "#dell_l_D=dell_l_A+3*dell_l\n",
+ "\n",
+ "#Let P1 be the force required for the Elongation of wires,then\n",
+ "#P_B=P_A+P1 ]\n",
+ "#P_C=P_A+2*P1 ]\n",
+ "#P_D=P_A+3*P1 ] ................................(3) \n",
+ "\n",
+ "#from Equation (3) and (1) we get\n",
+ "#2*P_A+3*P1=20 ................................(4)\n",
+ "\n",
+ "#from Equation (3) and (2) we get\n",
+ "#6*P_A+14*P1=80 \n",
+ "\n",
+ "#subtracting 3 times equation (4) from (3) we get\n",
+ "P1=20*5**-1\n",
+ "\n",
+ "#from Equation 4 we get\n",
+ "P_A=(80-14*P1)*6**-1\n",
+ "P_B=P_A+P1\n",
+ "P_C=P_A+2*P1\n",
+ "P_D=P_A+3*P1\n",
+ "\n",
+ "#Let d be the diameter required,then\n",
+ "d=(P_D*10**3*4*(pi*150)**-1)**0.5\n",
+ "\n",
+ "#result\n",
+ "print\"The Required Diameter is\",round(d,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Required Diameter is 11.65 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.21,Page No.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=20*10**3 #N #Load\n",
+ "d=6 #mm #diameter of wire\n",
+ "E=2*10**5 #N/mm**2 \n",
+ "L_BO=4000 #mm #Length of BO\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let theta be the angle between OA and OB and also between OC and OB\n",
+ "theta=30\n",
+ "\n",
+ "#Let P_OA,P_OB,P_OC be the Forces introduced in wires OA,OB,OC respectively\n",
+ "#Due to symmetry P_OA=P_OC (same angles)\n",
+ "\n",
+ "#Sum of all Vertical Forces=0\n",
+ "#P_OA*cos(theta)+P_OB+P_OC*cos(theta)=P\n",
+ "\n",
+ "#After further simplifyinf we get\n",
+ "#2*P_OA*cos(theta)+P_OB=20 ...............(1)\n",
+ "\n",
+ "#Let oo1 be the extension of BO\n",
+ "#oo1=L_A1o1*(cos(theta))**-1\n",
+ "\n",
+ "#From relation we get\n",
+ "#P_OB*L_BO=P_OA*L_AO*(cos(theta))**-1\n",
+ "\n",
+ "#But L_AO=L_BO*(cos(theta))**-1\n",
+ "\n",
+ "#After substituting value of L_AO in above equation we get\n",
+ "#P_OB=0.75*P_OA .......................(2)\n",
+ "\n",
+ "#substituting in Equation 1 we get\n",
+ "#2*P_OA*cos(theta)+0.75*P_OA=20\n",
+ "\n",
+ "P_OA=20*(2*cos(theta*pi*180**-1)+0.75)**-1\n",
+ "\n",
+ "P_OB=0.75*P_OA\n",
+ "\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Vertical displacement of Load\n",
+ "dell_l_BO=P_OB*10**3*L_BO*(A*E)**-1\n",
+ " \n",
+ "#Result\n",
+ "print\"Forces in each wire is:P_OA\",round(P_OA,2),\"KN\"\n",
+ "print\" :P_OB\",round(P_OB,2),\"KN\"\n",
+ "print\"Vertical displacement of Loadis\",round(dell_l_BO,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forces in each wire is:P_OA 8.06 KN\n",
+ " :P_OB 6.04 KN\n",
+ "Vertical displacement of Loadis 4.27 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.22,Page No.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_s=L_a=L=500 #mm #Length of bar\n",
+ "A_a=50*20 #mm #Area of aluminium strip\n",
+ "A_s=50*15 #mm #Area of steel strip\n",
+ "P=50*10**3 #N #Load\n",
+ "E_a=1*10**5 #N/mm**2 #Modulus of aluminium \n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_a and P_s br the Load shared by aluminium and steel strip\n",
+ "#P_a+P_s=P ..................(1)\n",
+ "\n",
+ "#For compatibility condition,dell_l_a=dell_l_s\n",
+ "#P_a*L_a*(A_a*E_a)**-1=P_s*L_s*(A_s*E_s)**-1 .....(2)\n",
+ "\n",
+ "#As L_a=L_s we get\n",
+ "#P_s=1.5*P_a .................(3)\n",
+ "\n",
+ "#From Equation 1 and 2 we get\n",
+ "P_a=P*2.5**-1\n",
+ "\n",
+ "#Substituting in equation 1 we get\n",
+ "P_s=P-P_a\n",
+ "\n",
+ "#stress in aluminium strip \n",
+ "sigma_a=P_a*A_a**-1\n",
+ "\n",
+ "#stress in steel strip\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Now from the relation we get\n",
+ "dell_l_a=dell_l_s=P_s*L_s*(A_s*E_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Stress in Aluminium strip is\",round(sigma_a,2),\"N/mm**2\"\n",
+ "print\"Stress in steel strip is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"The Extension of the bar is\",round(dell_l_s,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in Aluminium strip is 20.0 N/mm**2\n",
+ "Stress in steel strip is 40.0 N/mm**2\n",
+ "The Extension of the bar is 0.1 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.23,Page No.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D_s=20 #mm #Diameter of steel\n",
+ "D_Ci=20 #mm #Internal Diameter of Copper\n",
+ "t=5 #mm #THickness of copper bar\n",
+ "P=100*10**3 #N #Load\n",
+ "E_s=2*10**5 #N/mm**2 #modulus of elasticity of steel\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of Elasticity of Copper\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A_s=pi*4**-1*D_s**2 #mm**2 #Area of steel\n",
+ "D_Ce=D_s+2*t #mm #External Diameterof Copper Tube\n",
+ "\n",
+ "A_c=pi*4**-1*(D_Ce**2-D_Ci**2) #mm**2 #Area of Copper\n",
+ "\n",
+ "#From static Equilibrium condition\n",
+ "#Let P_s and P_c be the Load shared by steel and copper in KN\n",
+ "#P_s+P_c=100 ....................................(1)\n",
+ "\n",
+ "#From compatibility Equation,dell_l_s=dell_l_c\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "\n",
+ "#Substituting values in above Equation we get\n",
+ "#P_s=1.3333*P_C \n",
+ "\n",
+ "#Now Substituting value of P_s in Equation (1),we get\n",
+ "P_c=100*2.3333**-1 #KN\n",
+ "P_s=100-P_c #KN\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in copper\n",
+ "sigma_c=P_c*10**3*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Two material are:sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\" :sigma_c\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Two material are:sigma_s 181.89 N/mm**2\n",
+ " :sigma_c 109.14 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.24,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "A_C=230*400 #mm #Area of column\n",
+ "D_s=12 #mm #Diameter of steel Bar\n",
+ "P=600*10**3 #N #Axial compression\n",
+ "#E_s*E_c=18.67\n",
+ "n=8 #number of steel Bars\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A_s=pi*4**-1*D_s**2*n #Area of steel #mm**2 \n",
+ "A_c=A_C-A_s #mm**2 #Area of concrete\n",
+ "\n",
+ "#From static Equilibrium condition\n",
+ "#P_s+P_c=600 .........(1)\n",
+ "\n",
+ "#Now from compatibility Equation dell_l_s=dell_l_c we get,\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "\n",
+ "#Substituting values in above Equation we get\n",
+ "#P_s=0.1854*P_c\n",
+ "\n",
+ "#Now Substituting value of P_s in Equation (1),we get\n",
+ "P_c=600*1.1854**-1\n",
+ "P_s=600-P_c\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in copper\n",
+ "sigma_c=P_c*10**3*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Two material are:sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\" :sigma_c\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Two material are:sigma_s 103.72 N/mm**2\n",
+ " :sigma_c 5.56 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.25,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=200*10**3 #N #Load\n",
+ "A_a=1000 #mm**2 #Area of Aluminium\n",
+ "A_s=800 #mm**2 #Area of steel\n",
+ "E_a=1*10**5 #N/mm**2 #Modulus of Elasticity of Aluminium\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of ELasticity of steel\n",
+ "sigma_a1=65 #N/mm**2 #stress in aluminium\n",
+ "sigma_s1=150 #N/mm**2 #Stress in steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_a and P_s be the force in aluminium and steel pillar respectively\n",
+ "\n",
+ "#Now,sum of forces in Vertical direction we get\n",
+ "#2*P_a+P_s=200 .........................................(1)\n",
+ "\n",
+ "#By compatibility Equation dell_l_s=dell_l_a we get\n",
+ "#P_s=1.28*P_a ..........................................(2)\n",
+ "\n",
+ "#Now substituting value of P_s in Equation 1 we get\n",
+ "P_a=200*3.28**-1 #KN\n",
+ "P_s=200-2*P_a #KN\n",
+ "\n",
+ "#Stress developed in aluminium\n",
+ "sigma_a=P_a*10**3*A_a**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress developed in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Let sigma_a1 and sigma_s1 be the stresses in Aluminium and steel due to Additional LOad\n",
+ "\n",
+ "P_a1=sigma_a1*A_a #Load carrying capacity of aluminium\n",
+ "P_s1=1.28*P_a1\n",
+ "\n",
+ "#Total Load carrying capacity \n",
+ "P1=2*P_a1+P_s1 #N \n",
+ "\n",
+ "P_s2=sigma_s1*A_s #Load carrying capacity of steel\n",
+ "P_a2=P_s2*1.28**-1\n",
+ "\n",
+ "#Total Load carrying capacity\n",
+ "P2=2*P_a2+P_s2\n",
+ "\n",
+ "#Additional Load\n",
+ "P3=P1-P\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Each Pillar is:sigma_a\",round(sigma_a,2),\"N/mm**2\"\n",
+ "print\" :sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"Additional Load taken by pillars is\",round(P3,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Each Pillar is:sigma_a 60.98 N/mm**2\n",
+ " :sigma_s 97.56 N/mm**2\n",
+ "Additional Load taken by pillars is 13200.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.26,Page No.37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=500 #mm #Length of assembly\n",
+ "D=16 #mm #Diameter of steel bolt\n",
+ "Di=20 #mm #internal Diameter of copper tube\n",
+ "Do=30 #mm #External Diameter of copper tube\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of Elasticity of copper\n",
+ "p=2 #mm #Pitch of nut\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the Force in bolt and P_c be the FOrce in copper tube\n",
+ "#P_s=-P_s\n",
+ "\n",
+ "dell=1*4**-1*2 #Quarter turn of nut total movement\n",
+ "\n",
+ "#dell=dell_s+dell_c\n",
+ "\n",
+ "#Area of steel\n",
+ "A_s=pi*4**-1*D**2\n",
+ "\n",
+ "#Area of copper\n",
+ "A_c=pi*4**-1*(Do**2-Di**2)\n",
+ "\n",
+ "#dell=P*L*(A_s*E_s)**-1+P*L*(A_c*E_c)**-1\n",
+ "P=dell*(1*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1*L**-1 #LOad\n",
+ "\n",
+ "P_s=P*A_s**-1\n",
+ "P_c=P*A_c**-1\n",
+ "\n",
+ "#result\n",
+ "print\"stress introduced in bolt is\",round(P_s,2),\"N/mm**2\"\n",
+ "print\"stress introduced in tube is\",round(P_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stress introduced in bolt is 107.91 N/mm**2\n",
+ "stress introduced in tube is 55.25 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.27,Page No.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=20 #mm #Diameter of Bolts\n",
+ "Di=25 #m #internal Diameter\n",
+ "t=10 #mm #Thickness of bolt\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of copper\n",
+ "p=3 #mm #Pitch\n",
+ "theta=30 #degree\n",
+ "L_c=500 #Lengh of copper \n",
+ "L_s=600 #Length of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the Force in each bolt and P_c be the FOrce in copper tube\n",
+ "#From Static Equilibrium condition\n",
+ "#P_c=2*P_s\n",
+ "\n",
+ "#As nut moves by 60 degree.If nut moves by 360 degree its Longitudinal movement is by 3 mm\n",
+ "dell=theta*360**-1*p\n",
+ "\n",
+ "#From Compatibility Equaton we get\n",
+ "#dell=dell_c+dell_s\n",
+ "\n",
+ "\n",
+ "A_s=pi*4**-1*Di**2 #mm**2 #Area of steel\n",
+ "A_c=pi*4**-1*(45**2-Di**2) #mm**2 #Area of copper\n",
+ "\n",
+ "#Force introduced in steel\n",
+ "P_s=0.5*(2*L_c*(A_c*E_c)**-1+L_s*(A_s*E_s)**-1)**-1 #N\n",
+ "P_s2=P_s*A_s**-1\n",
+ "\n",
+ "#Force introduced in copper\n",
+ "P_c=2*P_s*A_c**-1 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress introduced in bolt is\",round(P_s2,2),\"N/mm**2\"\n",
+ "print\"stress introduced in tube is\",round(P_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress introduced in bolt is 74.4 N/mm**2\n",
+ "stress introduced in tube is 66.43 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.28,Page No.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=9 #m #Length of rigid bar\n",
+ "L_b=3000 #Length of bar\n",
+ "A_b=1000 #mm**2 #Area of bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brasss bar\n",
+ "L_s=5000 #mm #Length of steel bar\n",
+ "A_s=445 #mm**2 #Area of steel bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of elasticity of steel bar\n",
+ "P=3000 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From static equilibrium Equation of the rod after appliying Load is\n",
+ "#P_b+P_s=P ......................(1)\n",
+ "\n",
+ "#P_b=1.8727*P_s ..................(2)\n",
+ "\n",
+ "#NOw substituting equation 2 in equation 1 we get\n",
+ "P_s=P*2.8727**-1\n",
+ "P_b=P-P_s\n",
+ "\n",
+ "d=P_s*L*P**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Distance at which Load applied even after which bar remains horizontal is\",round(d,2),\"m\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Distance at which Load applied even after which bar remains horizontal is 3.13 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.29,Page No.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "A_b=1000 #MM**2 #Area of brass bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brass\n",
+ "A_s=600 #N/mm**2 #Area of steel rod\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of eLasticity of steel bar\n",
+ "P=10*10**2 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_b be the tensile force in brass bar and P_s be the compressive force in steel bar\n",
+ "#Now taking moment about A we get static Equilibrium condition as\n",
+ "#P_b+2*P_s=27500 ......................................(1)\n",
+ "\n",
+ "#Now from deformed shape we get\n",
+ "#dell_s=2*dell_b\n",
+ "\n",
+ "#P_s*L_s*(A_s*E_s)**-1=P_b*L_b*(A_b*E_b)**-1\n",
+ "#Further simplifying we get\n",
+ "#P_s=1.2*P_b .........................................(2)\n",
+ "\n",
+ "#Now substituting equation 1 in equation 2 we get\n",
+ "P_b=27500*3.4**-1\n",
+ "P_s=1.2*P_b\n",
+ "\n",
+ "#Tensile stress in brass bar \n",
+ "sigma_b=P_b*A_b**-1\n",
+ "\n",
+ "#compressive stress in steel bar\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Compressive Stress in Bar is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"tensile Stress in Bar is\",round(sigma_b,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressive Stress in Bar is 16.18 N/mm**2\n",
+ "tensile Stress in Bar is 8.09 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.30,Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=12.6 #m #Length of rail\n",
+ "t1=24 #Degree celsius\n",
+ "t2=44 #degree celsius\n",
+ "alpha=12*10**-6 #Per degree celsius\n",
+ "E=2*10**5 #N/mm**2 #Modulus of ELasticity\n",
+ "gamma=2 #mm #Gap provided for Expansion\n",
+ "sigma=20 #N/mm**2 #Stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "t=t2-t1 #Temperature Difference\n",
+ "\n",
+ "#Free Expansion of the rails\n",
+ "dell=alpha*t*L*1000 #mm \n",
+ "\n",
+ "#When no expansion joint is provided then\n",
+ "p=dell*E*(L*10**3)**-1\n",
+ "\n",
+ "#When a gap of 2 mm is provided,then free expansion prevented is\n",
+ "dell_1=dell-gamma\n",
+ "p2=dell_1*E*(L*10**3)**-1\n",
+ "\n",
+ "#When stress is developed,then gap left is\n",
+ "gamma2=-(sigma*L*10**3*E**-1-dell)\n",
+ "\n",
+ "#Result\n",
+ "print\"The minimum gap between the two rails is\",round(dell,2),\"mm\"\n",
+ "print\"Thermal Developed in the rials if:No expansionn joint is provided:p\",round(p,2),\"N/mm**2\"\n",
+ "print\" :If a gap of is provided then :p2\",round(p2,2),\"N/mm**2\"\n",
+ "print\"When stress is developed gap left between the rails is\",round(gamma2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum gap between the two rails is 3.02 mm\n",
+ "Thermal Developed in the rials if:No expansionn joint is provided:p 48.0 N/mm**2\n",
+ " :If a gap of is provided then :p2 16.25 N/mm**2\n",
+ "When stress is developed gap left between the rails is 1.76 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.31,Page No.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=20 #degree celsius\n",
+ "E_a=70*10**9 #N/mm**2 #Modulus of Elasticicty of aluminium\n",
+ "alpha_a=11*10**-6 #per degree celsius #Temperature coeff of aluminium\n",
+ "alpha_s=12*10**-6 #Per degree celsius #Temperature coeff of steel\n",
+ "L_a=1000 #mm #Length of aluminium \n",
+ "L_s=3000 #mm #Length of steel\n",
+ "E_a=7*10**4 #N/mm**2 #Modulus of Elasticity of aluminium\n",
+ "E_s=2*10**5 #N/mm*2 #Modulus of Elasticity of steel\n",
+ "A_a=600 #mm**2 #Area of aluminium\n",
+ "A_s=300 #mm**2 #Area of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Free Expansion \n",
+ "dell=alpha_a*t*L_a+alpha_s*t*L_s\n",
+ "\n",
+ "#support Reaction\n",
+ "P=dell*(L_a*(A_a*E_a)**-1+L_s*(A_s*E_s)**-1)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Reaction at support is\",round(P,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reaction at support is 12735.48 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.33,Page No.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=25 #mm #Diameter of Brass\n",
+ "De=50 #mm #External Diameter of steel tube\n",
+ "Di=25 #mm #Internal Diameter of steel tube\n",
+ "L=1.5 #m #Length of both bars\n",
+ "t1=30 #degree celsius #Initial Temperature\n",
+ "t2=100 #degree celsius #final Temperature\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of ELasticity of steel bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brass bar\n",
+ "alpha_s=11.6*10**-6 #Temperature Coeff of steel\n",
+ "alpha_b=18.7*10**-6 #Temperature coeff of brass bar\n",
+ "d=20 #mm #diameter of pins\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "t=t2-t1 #Temperature Difference\n",
+ "A_s=pi*4**-1*(De**2-Di**2) #mm**2 #Area of steel\n",
+ "A_b=pi*4**-1*D**2 #mm**2 #Area of brass\n",
+ "\n",
+ "#Let P_b be the tensile force in brass bar and P_s be the compressive force in steel bar\n",
+ "#But from Equilibrium of Forces \n",
+ "#P_b=P_s=P\n",
+ "\n",
+ "#Let dell=dell_s+dell_b\n",
+ "dell=(alpha_b-alpha_s)*t*L*1000\n",
+ "\n",
+ "P=dell*(1*(A_s*E_s)**-1+1*(A_b*E_b)**-1)**-1*(L*1000)**-1\n",
+ "P_b=P_s=P\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Stress in Brass\n",
+ "sigma_b=P_b*A_b**-1\n",
+ "\n",
+ "#Area of Pins\n",
+ "A_p=pi*4**-1*d**2\n",
+ "\n",
+ "#Since,the force is resisted by two cross section of pins\n",
+ "tou=P*(2*A_p)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress in steel bar is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"Stress in Brass bar is\",round(sigma_b,2),\"N/mm**2\"\n",
+ "print\"Shear Stresss induced in pins is\",round(tou,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in steel bar is 14.2 N/mm**2\n",
+ "Stress in Brass bar is 42.6 N/mm**2\n",
+ "Shear Stresss induced in pins is 33.28 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.34,Page No.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b_s=60 #mm #width of steel Bar\n",
+ "t_s=10 #mm #thickness of steel Bar\n",
+ "b_c=40 #mm #width of copper bar\n",
+ "t_c=5 #mm #thickness of copper bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel bar\n",
+ "E_c=1*10**5 #N/mm**2 #Modulus of Elasticity of copper bar\n",
+ "alpha_s=12*10**-6 #Per degree celsius #Temperature coeff of steel bar\n",
+ "alpha_c=17*10**-6 #Per degree celsius #Temperature coeff of copper bar\n",
+ "L_s=L_c=L=1000 #mm #Length of bar\n",
+ "t=80 #degree celsius\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A_s=b_s*t_s #Area of steel bar\n",
+ "A_c=b_c*t_c #Area of copper bar\n",
+ "\n",
+ "#Let P_s be the tensile force in steel bar and P_c be the compressive force in copper bar\n",
+ "#The equilibrium of forces gives \n",
+ "#P_s=2*P_c\n",
+ "\n",
+ "#Let dell=dell_s+dell_b\n",
+ "dell=(alpha_c-alpha_s)*t\n",
+ "\n",
+ "P_c=dell*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1\n",
+ "P_s=2*P_c\n",
+ "\n",
+ "#Stress in copper \n",
+ "sigma_c=P_c*A_c**-1\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Change in Length of bar\n",
+ "dell_2=alpha_s*t*L+P_s*L_s*(A_s*E_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Stress in copper is\",round(sigma_c,2),\"N/mm**2\"\n",
+ "print\"Stress in steel is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"the change in Length is\",round(dell_2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in copper is 30.0 N/mm**2\n",
+ "Stress in steel is 20.0 N/mm**2\n",
+ "the change in Length is 1.06 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.35,Page No.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=2*10**5 #N #Weight\n",
+ "L=1 #m #Length of each rod\n",
+ "A_c=A_s=A=500 #mm**2 #Area of each rod\n",
+ "t=40 #degree celsius #temperature\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel rod\n",
+ "E_c=1*10**5 #N/mm**2 #modulus of Elastictiy of copper rod\n",
+ "alpha_s=1.2*10**-5 #Per degree Celsius #temp coeff of steel rod\n",
+ "alpha_c=1.8*10**-5 #Per degree Celsius #Temp coeff of copper rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the force in each one of the copper rods and P_s be the force in steel rod\n",
+ "#2*P_c+P_s=P .....................(1)\n",
+ "\n",
+ "#Extension of copper bar=Extension of steel bar\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "#after simplifying above equation we get\n",
+ "#P_s=2*P_c ........................(2)\n",
+ "\n",
+ "#Now substituting value of P_s in Equation 1 we get\n",
+ "P_c=P*4**-1\n",
+ "P_s=2*P_c\n",
+ "\n",
+ "#Now EXtension due to copper Load\n",
+ "dell_1=P_c*L*1000*(A_c*E_c)**-1\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Due to rise of temperature of40 degree celsius\n",
+ "\n",
+ "#As bars are rigidly joined,let P_c1 be the compressive forccesdeveloped in copper bar and P_s1 be the tensile force in steel causing changes\n",
+ "#P_s1=2*P_c1\n",
+ "\n",
+ "#dell_s+dell_c=(alpha_c-alpha_s)*t*L .......................................(3)\n",
+ "#P_s1*L*(A_s*E_s)**-1+P_c1*L*(A_c*E_c)**-1=(alpha_c-alpha_s)*t*L ................(4)\n",
+ "#After substituting values in above equation and further simplifying we get,\n",
+ "P_c1=(alpha_c-alpha_s)*t*L*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1 #.................(5)\n",
+ "P_s1=2*P_c1\n",
+ "\n",
+ "#Extension of bar due to temperature rise\n",
+ "dell_2=alpha_s*t*L+P_s1*L*(A_s*E_s)**-1\n",
+ "\n",
+ "#Amount by which bar will descend\n",
+ "dell_3=dell_1+dell_2\n",
+ "\n",
+ "#Load carried by steel bar\n",
+ "P_S=P_s+P_s1\n",
+ "\n",
+ "#Load carried by copper bar\n",
+ "P_C=P_c-P_c1\n",
+ "\n",
+ "#Part-3\n",
+ "\n",
+ "#Let P_c1_1=P_c #For convenience\n",
+ "#Rise in temperature if Load is to be carried out by steel rod alone\n",
+ "P_c1_1=P_c\n",
+ "\n",
+ "#From equation 5 \n",
+ "t=P_c1_1*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)*(alpha_c-alpha_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Extension Due top copper Load\",round(dell_1,2),\"mm\"\n",
+ "print\"Load carried by each rod:P_s\",round(P_s,2),\"N\"\n",
+ "print\" :P_c\",round(P_c,2),\"N\"\n",
+ "print\"Rise in Temperature of steel rod should be\",round(t,2),\"degree Celsius\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extension Due top copper Load 1.0 mm\n",
+ "Load carried by each rod:P_s 100000.0 N\n",
+ " :P_c 50000.0 N\n",
+ "Rise in Temperature of steel rod should be 333.33 degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.36,Page No.53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=40 #degree celsius #temperature\n",
+ "A_s=400 #mm**2 #Area of steel bar\n",
+ "A_c=600 #mm**2 #Area of copper bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel bar\n",
+ "E_c=1*10**5 #N/mm**2 #Modulus of Elasticity of copper bar\n",
+ "alpha_s=12*10**-6 #degree celsius #Temperature coeff of steel bar\n",
+ "alpha_c=18*10**-6 #degree celsius #Temperature coeff of copper bar\n",
+ "L_c=800 #mm #Length of copper bar\n",
+ "L_s=600 #mm #Length of steel bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the tensile force in steel bar and P_c be the compressive force in copper bar\n",
+ "#Static Equilibrium obtained by taking moment about A\n",
+ "#P_c=2*P_s\n",
+ "\n",
+ "#From property of similar triangles we get\n",
+ "#(alpha_c*Lc-dell_c)*1**-1=(alpha_s*L_s-dell_s)*2**-1\n",
+ "#After substituting values in above equations and further simplifying we get\n",
+ "P_s=(2*alpha_c*L_c-alpha_s*L_s)*t*(L_s*(A_s*E_s)**-1+4*L_c*(A_c*E_c)**-1)**-1\n",
+ "P_c=2*P_s\n",
+ "\n",
+ "#Stress in steel rod\n",
+ "sigma_s=P_s*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress in copper rod\n",
+ "sigma_c=P_c*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress in steel rod is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"STress in copper rod is\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in steel rod is 35.51 N/mm**2\n",
+ "STress in copper rod is 47.34 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.37,Page No.61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of bar\n",
+ "P=37.7*10**3 #N #Load\n",
+ "L=200 #mm #Guage Length \n",
+ "dell=0.12 #mm #Extension\n",
+ "dell_d=0.0036 #mm #contraction in diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of bar\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Let s and dell_s be the Linear strain and Lateral strain\n",
+ "s=dell*L**-1\n",
+ "dell_s=dell_d*d**-1\n",
+ "mu=dell_s*s**-1 #Poissoin's ratio \n",
+ "\n",
+ "#dell=P*L*(A*E)**-1\n",
+ "E=P*L*(dell*A)**-1 #N/mm**2 #Modulus of Elasticity of bar\n",
+ "\n",
+ "#Modulus of Rigidity\n",
+ "G=E*(2*(1+mu))**-1 #N/mm**2\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "#result\n",
+ "print\"Poisson's ratio is\",round(mu,2)\n",
+ "print\"The Elastic constant are:E\",round(E,2)\n",
+ "print\" :G\",round(G,2)\n",
+ "print\" :K\",round(K,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Poisson's ratio is 0.3\n",
+ "The Elastic constant are:E 200004.71\n",
+ " :G 76924.89\n",
+ " :K 166670.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.38,Page No.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=100 #mm #Diameter of circular rod\n",
+ "P=1*10**6 #N #Tensile Force\n",
+ "mu=0.3 #Poisson's ratio\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "L=500 #mm #Length of rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Modulus of Rigidity\n",
+ "G=E*(2*(1+mu))**-1 #N/mm**2\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of Circular rod\n",
+ "#Let sigma be the Longitudinal stress\n",
+ "sigma=P*A**-1 #N/mm**2 \n",
+ "\n",
+ "s=sigma*E**-1 #Linear strain\n",
+ "e_x=s\n",
+ "\n",
+ "#Volumetric strain\n",
+ "e_v=e_x*(1-2*mu)\n",
+ "\n",
+ "v=pi*4**-1*d**2*L\n",
+ "#Change in VOlume\n",
+ "dell_v=e_v*v\n",
+ "\n",
+ "#Result\n",
+ "print\"Bulk Modulus is\",round(E,2),\"N/mm**2\"\n",
+ "print\"Modulus of Rigidity is\",round(G,2),\"N/mm**2\"\n",
+ "print\"The change in Volume is\",round(dell_v,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bulk Modulus is 200000.0 N/mm**2\n",
+ "Modulus of Rigidity is 76923.08 N/mm**2\n",
+ "The change in Volume is 1000.0 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.39,Page No.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=500 #mm #Length of rectangular cross section bar\n",
+ "A=20*40 #mm**2 #Area of rectangular cross section bar\n",
+ "P1=4*10**4 #N #Tensile Force on 20mm*40mm Faces\n",
+ "P2=2*10**5 #N #compressive force on 20mm*500mm Faces\n",
+ "P3=3*10**5 #N #Tensile Force on 40mm*500mm Faces\n",
+ "E=2*10**5 #N/mm**2 #young's Modulus \n",
+ "mu=0.3 #Poisson's Ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_x,P_y,P_z be the forces n x,y,z directions\n",
+ "\n",
+ "P_x=P1*A**-1\n",
+ "P_y=P2*A**-1\n",
+ "P_z=P3*A**-1\n",
+ "\n",
+ "#Let e_x,e_y,e_z be the strains in x,y,z directions\n",
+ "e_x=1*E**-1*(50+mu*20-15*mu)\n",
+ "e_y=1*E**-1*(-mu*50-20-mu*15)\n",
+ "e_z=1*E**-1*(-mu*50+mu*20+15)\n",
+ "\n",
+ "#Volumetric strain\n",
+ "e_v=e_x+e_y+e_z\n",
+ "\n",
+ "#Volume\n",
+ "V=20*40*500 #mm**3\n",
+ "#Change in Volume \n",
+ "dell_v=e_v*V #mm**3\n",
+ "\n",
+ "#Result\n",
+ "print\"The change in Volume is\",round(dell_v,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in Volume is 36.0 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.41,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2.1*10**5 #N/mm**2 #Young's Modulus \n",
+ "G=0.78*10**5 #N/mm**2 #Modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Now using the relation\n",
+ "#E=2*G*(1+mu)\n",
+ "mu=E*(2*G)**-1-1 #Poisson's ratio\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"The Poisson's Ratio is\",round(mu,2)\n",
+ "print\"The modulus of Rigidity\",round(K,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Poisson's Ratio is 0.35\n",
+ "The modulus of Rigidity 227500.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.42,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=0.4*10**5 #N/mm**2 #Modulus of rigidity\n",
+ "K=0.75*10**5 #N/mm**2 #Bulk Modulus \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Young's Modulus\n",
+ "E=9*G*K*(3*K+G)**-1\n",
+ "\n",
+ "#Now from the relation\n",
+ "#E=2*G(1+2*mu)\n",
+ "mu=E*(2*G)**-1-1 #POissoin's ratio \n",
+ "\n",
+ "#result\n",
+ "print\"Young's modulus is\",round(E,2),\"N/mm**2\"\n",
+ "print\"Poissoin's ratio is\",round(mu,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Young's modulus is 101886.79 N/mm**2\n",
+ "Poissoin's ratio is 0.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.43,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=60 #mm #width of bar\n",
+ "d=30 #mm #depth of bar\n",
+ "L=200 #mm #Length of bar\n",
+ "A=30*60 #mm**2 #Area of bar\n",
+ "A2=30*200 #mm**2 #Area of bar along which expansion is restrained\n",
+ "P=180*10**3 #N #Compressive force\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#The bar is restrained from expanding in Y direction\n",
+ "P_z=0\n",
+ "P_x=P*A**-1 #stress developed in x direction\n",
+ "\n",
+ "#Now taking compressive strain as positive\n",
+ "#e_x=P_x*E**-1-mu*P_y*E**-1 .......................(1)\n",
+ "#e_y=-mu*P_x*E**-1+P_y*E**-1 ....................(2)\n",
+ "#e_z=-mu*P_x*E**-1-mu*P_y*E**-1 ......................(3)\n",
+ "\n",
+ "#Part-1\n",
+ "#When it is fully restrained\n",
+ "e_y=0\n",
+ "P_y=30 #N/mm**2 \n",
+ "e_x=P_x*E**-1-mu*P_y*E**-1\n",
+ "e_z=-mu*P_x*E**-1-mu*P_y*E**-1\n",
+ "\n",
+ "#Change in Length \n",
+ "dell_l=e_x*L #mm\n",
+ "\n",
+ "#Change in width\n",
+ "dell_b=b*e_y\n",
+ "\n",
+ "#change in Depth\n",
+ "dell_d=d*e_z\n",
+ "\n",
+ "#Volume of bar\n",
+ "V=b*d*L #mm**3\n",
+ "#Change in Volume\n",
+ "e_v=(e_x+e_y+e_z)*V #mm**3\n",
+ "\n",
+ "#Part-2\n",
+ "#When 50% is restrained\n",
+ "\n",
+ "#Free strain in Y direction\n",
+ "e_y1=mu*P_x*E**-1\n",
+ "\n",
+ "#As 50% is restrained,so\n",
+ "e_y2=-50*100**-1*e_y1\n",
+ "\n",
+ "#But form Equation 2 we have e_y=-mu*P_x*E**-1+P_y*E**-1 \n",
+ "#After substituting values in above equation and furthe simplifying we get\n",
+ "P_y=e_y2*E+d\n",
+ "\n",
+ "e_x2=P_x*E**-1-mu*P_y*E**-1 \n",
+ "e_z2=-mu*P_x*E**-1-mu*P_y*E**-1\n",
+ "\n",
+ "#Change in Length \n",
+ "dell_l2=e_x2*L #mm\n",
+ "\n",
+ "#Change in width\n",
+ "dell_b2=b*e_y2\n",
+ "\n",
+ "#change in Depth\n",
+ "dell_d2=d*e_z2\n",
+ "\n",
+ "#Change in Volume\n",
+ "e_v2=(e_x2+e_y2+e_z2)*V #mm**3\n",
+ "\n",
+ "#REsult\n",
+ "print\"Change in Dimension of bar is:dell_l\",round(dell_l,2),\"mm\"\n",
+ "print\" :dell_b\",round(dell_b,4),\"mm\"\n",
+ "print\" :dell_d\",round(dell_d,2),\"mm\"\n",
+ "print\"Change in Volume is\",round(e_v,2),\"mm**3\"\n",
+ "print\"Changes in material when only 50% of expansion can be reatrained:dell_l2\",round(dell_l2,2),\"mm\"\n",
+ "print\" :dell_b2\",round(dell_b2,4),\"mm\"\n",
+ "print\" :dell_d2\",round(dell_d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in Dimension of bar is:dell_l 0.09 mm\n",
+ " :dell_b 0.0 mm\n",
+ " :dell_d -0.01 mm\n",
+ "Change in Volume is 93.6 mm**3\n",
+ "Changes in material when only 50% of expansion can be reatrained:dell_l2 0.1 mm\n",
+ " :dell_b2 -0.0045 mm\n",
+ " :dell_d2 -0.01 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.44,Page No.72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=10*10**3 #N #Load\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "d2=12 #mm #Diameter of bar1\n",
+ "d1=16 #mm #diameter of bar2\n",
+ "L1=200 #mm #Length of bar1\n",
+ "L2=500 #mm #Length of bar2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let A1 and A2 be the cross Area of Bar1 & bar2 respectively\n",
+ "A1=pi*4**-1*d1**2 #mm**2\n",
+ "A2=pi*4**-1*d2**2 #mm**2\n",
+ "\n",
+ "#Let p1 and p2 be the stress in Bar1 nad bar2 respectively\n",
+ "p1=P*A1**-1 #N/mm**2\n",
+ "p2=P*A2**-1 #N/mm**2\n",
+ "\n",
+ "#Let V1 nad V2 be the Volume of of Bar1 and Bar2\n",
+ "V1=A1*(L1+L1)\n",
+ "V2=A2*L2\n",
+ "\n",
+ "#Let E be the strain Energy stored in the bar\n",
+ "E=p1**2*(2*E)**-1*V1+p2**2*V2*(2*E)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"The Strain Energy stored in Bar is\",round(E,2),\"N-mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Strain Energy stored in Bar is 1602.6 N-mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.45,Page No.73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Bar-A\n",
+ "d1=30 #mm #Diameter of bar1\n",
+ "L=600 #mm #length of bar1\n",
+ "\n",
+ "#Bar-B\n",
+ "d2=30 #mm #Diameter of bar2\n",
+ "d3=20 #mm #Diameter of bar2\n",
+ "L2=600 #mm #length of bar2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of bar-A\n",
+ "A1=pi*4**-1*d1**2\n",
+ "\n",
+ "#Area of bar-B\n",
+ "A2=pi*4**-1*d2**2\n",
+ "A3=pi*4**-1*d3**2\n",
+ "\n",
+ "#let SE be the Strain Energy\n",
+ "#Strain Energy stored in Bar-A\n",
+ "#SE=p**2*(2*E)**-1*V\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE=P**2*E**-1*0.4244\n",
+ "\n",
+ "#Strain Energy stored in Bar-B\n",
+ "#SE2=p1**2*V1*(2*E)**-1+p2**2*V2*(2*E)**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE2=0.6897*P**2*E**-1\n",
+ "\n",
+ "#Let X be the ratio of SE in Bar-B and SE in Bar-A\n",
+ "X=0.6897*0.4244**-1\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#When Max stress is produced is same:Let p be the max stress produced\n",
+ "\n",
+ "#Stress in bar A is p throughout \n",
+ "#In bar B:stress in 20mm dia.portion=p2=p\n",
+ "\n",
+ "#Stress in 30 mm dia.portion\n",
+ "#p1=P*A2*A3**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#p1=4*9**-1*p\n",
+ "\n",
+ "#Strain Energy in bar A\n",
+ "#SE_1=p**2*(2*E)**-1*A1*L1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE_1=67500*p**2*pi*E**-1\n",
+ "\n",
+ "#Strain Energy in bar B\n",
+ "#SE_2=p1**2*V1*(2*E)**-1+p2**2*V2*(2*E)**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE_2=21666.67*pi*p**2*E**-1\n",
+ "\n",
+ "#Let Y be the Ratio of SE in bar B and SE in bar A\n",
+ "Y=21666.67*67500**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Gradually applied Load is\",round(X,2)\n",
+ "print\"Gradually applied Load is\",round(Y,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gradually applied Load is 1.63\n",
+ "Gradually applied Load is 0.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.46,Page No.74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables \n",
+ "\n",
+ "W=100 #N #Load\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "h=60 #mm #Height through Load falls down\n",
+ "L=400 #mm #Length of collar\n",
+ "d=30 #mm #diameter of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of bar\n",
+ "\n",
+ "#Instantaneous stress produced is\n",
+ "p=W*A**-1*(1+(1+(2*A*E*h*(W*L)**-1))**0.5)\n",
+ "\n",
+ "#Now the EXtension of the bar is neglected in calculating work doneby the Load,then\n",
+ "P=(2*E*h*W*(A*L)**-1)**0.5\n",
+ "\n",
+ "#Let percentage error be denoted by E1\n",
+ "#Percentage error in approximating is\n",
+ "E1=(p-P)*p**-1*100\n",
+ "\n",
+ "#Instantaneous Extension produced is\n",
+ "dell_l=round(P,3)*E**-1*L\n",
+ "\n",
+ "#Result\n",
+ "print\"The Instantaneous stress is\",round(p,2),\"N/mm\"\n",
+ "print\"Percentage Error is\",round(E1,2)\n",
+ "print\"The Instantaneous extension is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Instantaneous stress is 92.27 N/mm\n",
+ "Percentage Error is 0.15\n",
+ "The Instantaneous extension is 0.18 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.47,Page No.75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of steel bar\n",
+ "L=1000 #mm #Length of bar\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "p=300 #N/mm**2 #max Permissible stress\n",
+ "h=50 #mm #Height through which weight will fall\n",
+ "w=600 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#ARea of steel bar\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Instantaneous extension is\n",
+ "dell_l=p*L*E**-1 #mm \n",
+ "\n",
+ "#Work done by Load \n",
+ "#W=W1*(h+dell_l)\n",
+ "\n",
+ "#Volume of bar\n",
+ "V=round(A,2)*L\n",
+ "#Let E1 be the strain Energy\n",
+ "E1=p**2*(2*E)**-1*V\n",
+ "\n",
+ "#Answer in Book for Strain Energy is Incorrect \n",
+ "\n",
+ "#Now Equating Workdone by Load to strain Energy \n",
+ "W1=E1*51.5**-1\n",
+ "\n",
+ "#Now when w=600 N\n",
+ "#Let W2 be the Work done by the Load\n",
+ "#W2=w(h2*dell_l)\n",
+ "\n",
+ "h=E1*w**-1-dell_l\n",
+ "\n",
+ "#Result\n",
+ "print\"The Max Lodad which can Fall from a height of 50 mm on the collar is\",round(W1,2),\"N\"\n",
+ "print\"the Max Height from which a 600 N Load can fall on the collar is\",round(h,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Max Lodad which can Fall from a height of 50 mm on the collar is 1372.54 N\n",
+ "the Max Height from which a 600 N Load can fall on the collar is 116.31 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.48,Page No.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D_s=30 #mm #Diameter of steel rod\n",
+ "d=30 #mm #Internal Diameter of copper tube\n",
+ "D=40#mm #External Diameter of copper tube\n",
+ "E_s=2*10**5 #N/mm**2 #Young's Modulus of Steel rod\n",
+ "E_c=1*10**5#N/mm**2 #Young's Modulus of copper tube\n",
+ "P=100 #N #Load\n",
+ "h=40 #mm #height from which Load falls\n",
+ "L=800 #mm #Length \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of steel rod\n",
+ "A_s=pi*4**-1*D_s**2\n",
+ "\n",
+ "#Area of copper tube\n",
+ "A_c=pi*4**-1*(D**2-d**2)\n",
+ "\n",
+ "#But Dell_s=dell_c=dell\n",
+ "#p_s*E_s**-1*L=p_c*L*E_c\n",
+ "#After simplifying furthe we get\n",
+ "#p_s=2*p_c\n",
+ "\n",
+ "#Now Equating internal Energy to Workdone we get\n",
+ "p_c=(2*P*h*L**-1*(4*A_s*E_s**-1+A_c*E_c**-1))**0.5\n",
+ "p_s=2*p_c\n",
+ "\n",
+ "#Result\n",
+ "print A_s\n",
+ "print\"STress produced in steel is\",round(p_s,2),\"N/mm**2\"\n",
+ "print\"STress produced in copper is\",round(p_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "706.858347058\n",
+ "STress produced in steel is 0.89 N/mm**2\n",
+ "STress produced in copper is 0.44 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.49,Page No.77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "dell=0.25 #mm #Instantaneous Extension\n",
+ "\n",
+ "#Bar-A\n",
+ "b1=25 #mm #width of bar\n",
+ "D1=500 #mm #Depth of bar\n",
+ "\n",
+ "#Bar-B\n",
+ "b2_1=25 #mm #width of upper bar\n",
+ "b2_2=15 #mm #Width of Lower Bar\n",
+ "L2=200 #mm #Length of upper bar\n",
+ "L1=300 #mm #Length of Lower bar\n",
+ "\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Strain\n",
+ "e=dell*D1**-1 \n",
+ "\n",
+ "#Load\n",
+ "p=e*E\n",
+ "\n",
+ "#Area of bar-A\n",
+ "A=pi*4**-1*25**2\n",
+ "\n",
+ "#Volume of bar-A\n",
+ "V=A*D1\n",
+ "\n",
+ "#Let E1 be the Energy of Blow\n",
+ "#Energy of Blow\n",
+ "E1=p**2*(E)**-1*V\n",
+ "\n",
+ "#Let p2 be the Max stress in bar B When this blow is applied.\n",
+ "#the max stress occurs in the 15mm dia. portion,Hence, the stress in 25 mm dia.portion is\n",
+ "#p2*pi*4**-1*b2_2**2*(pi*4**-1*b2_2**2=0.36*p\n",
+ "\n",
+ "#Strain Energy of bar B\n",
+ "#E2=p**2*(2*E)**-1*v1+1*(2*E)**-1*(0.36*p2)**2*v2\n",
+ "#After substituting values and Further substituting values we get\n",
+ "#E2=0.1643445*p2**2\n",
+ "\n",
+ "#Equating it to Energy of applied blow,we get\n",
+ "p2=(12271.846*0.1643445**-1)**0.5\n",
+ "\n",
+ "#Stress in top portion\n",
+ "sigma=0.36*p2\n",
+ "\n",
+ "#Extension in Bar-1\n",
+ "dell_1=p2*E**-1*L1\n",
+ "\n",
+ "#Extension in Bar-2\n",
+ "dell_2=0.36*p2*E**-1*L2\n",
+ "\n",
+ "#Extension of bar\n",
+ "dell_3=dell_1+dell_2\n",
+ "\n",
+ "#Result\n",
+ "print\"Instantaneous Max stress is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\"extension in Bar is\",round(dell_3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Instantaneous Max stress is 98.37 N/mm**2\n",
+ "extension in Bar is 0.51 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_7.ipynb new file mode 100644 index 00000000..6e4aedd8 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_7.ipynb @@ -0,0 +1,1601 @@ +{
+ "metadata": {
+ "name": "chapter no.3.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Shear Force And Bending Moment Diagrams in Statically Determinate Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.1,Page No.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=L_CD=1 #m #Length of AC & CD\n",
+ "L_DB=1.5 #m #Lengh of DB\n",
+ "L=3.5 #m #Length of Beam\n",
+ "F_B=10 #KN #Force at pt B\n",
+ "F_C=F_D=20 #KN #Force at pt C & D\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "R_A=F_C+F_D+F_B #KN #Force at support A \n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At pt B\n",
+ "V_B1=0 #KN \n",
+ "V_B2=F_B #KN\n",
+ "\n",
+ "#S.F At pt D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1+F_D #KN\n",
+ "\n",
+ "#S.F At pt C \n",
+ "V_C1=V_D2 #KN\n",
+ "V_C2=V_D2+F_C #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2 #KN\n",
+ "V_A2=V_C2-R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M AT Pt D\n",
+ "M_D=F_B*L_DB #KN.m\n",
+ "\n",
+ "#B.M At pt C\n",
+ "M_C=F_B*(L_DB+L_CD)+F_D*L_CD #KN.m\n",
+ "\n",
+ "#B.M At pt A\n",
+ "M_A=F_B*L+F_D*(L_CD+L_AC)+F_C*L_AC\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_CD+L_DB,L_CD+L_DB,L_CD+L_DB+L_AC,L_CD+L_DB+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB+L_CD,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5dde2d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5df0ab0>"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.2,Page No.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "w1=10 #KN/m #u.d.L\n",
+ "F_D=20 #KN #Force at pt D\n",
+ "F_C=30 #KN #Force at pt C\n",
+ "L_DB=4 #m #Length of DB\n",
+ "L_CD=L_AC=2 #m #Length of AC & CD\n",
+ "L=8 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A And R_B be the Reactions at pt A and B \n",
+ "#R_A+R_B=90 \n",
+ "#Now Taking moment at A,M_A we get\n",
+ "R_A=(w1*L_DB*(L_DB*2**-1)+F_D*L_DB+F_C*(L_CD+L_DB))*L**-1\n",
+ "R_B=90-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=0 #KN\n",
+ "V_B2=R_B #KN\n",
+ "\n",
+ "#S.F At pt D\n",
+ "V_D1=R_B-w1*L_DB #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F at Pt C\n",
+ "V_C1=V_D2 #KN\n",
+ "V_C2=V_C1-F_C \n",
+ "\n",
+ "#S.F at PT A\n",
+ "V_A1=V_C2 #KN\n",
+ "V_A2=V_C2+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D=-R_B*L_DB+w1*L_DB*L_DB*2**-1 #KN.m\n",
+ "\n",
+ "#B.M At PT C\n",
+ "M_C=-R_B*(L_DB+L_CD)+w1*L_DB*(L_DB*2**-1+L_CD)+F_D*L_CD #KN.m\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=-R_B*L+w1*L_DB*(L_DB*2**-1+L_CD+L_AC)+F_D*(L_CD+L_AC)+F_C*L_AC\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_CD+L_DB,L_CD+L_DB,L_CD+L_DB+L_AC,L_CD+L_DB+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB+L_CD,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRQWwZQuwdSvw8MMtS0sPPwz8718lIpKByZaPtFotXn/9ddy4cQOvvvoqJk2a1O1w1dXVqK6uRkRE\nBOrq6hAVFYXPPvsM27dvx4ABA7B8+XKsXbsWV65cQXp6etvQLAWbwbkDkfXodikcPHgQq1evhrOz\nM1599VWDS0qmMHXqVCxevBiLFy/G0aNH4e3tjerqakRHR+P7779vG5qlYHM4dyCSX7dKYfjw4fj5\n55/x4osvYvTo0dIvvC0yMtJkQXU6HcaOHYtz587hgQcewJUrVwAAQgh4enpKj6XQLAWbxrkDkTw6\n893paOgHLi4ucHFxQUZGBjIyMtr9/MiRI91PCKCurg4zZszApk2b4Obm1uZnCoWiTRG1tnLlSul+\ndHQ0oqOjTZKHzO/28Q635w6jRnHuQGQOWq0WWq22S+8xOlNobm6Gg0PbY9xu3ryJe+65p8sB73Tr\n1i089thjmDRpEp577jkAQHBwMLRaLXx8fFBVVYWYmBguH/VwnDsQWYZJTnMxf/78No/r6uowefLk\n7iVDy9LQs88+C7VaLRUCAMTHx2Pnzp0AgJ07d2Lq1Knd/iyybi4uwKJFwPffAytWAO+9B/z+98C6\ndcAdK4dEZGZGS8HX1xcpKSkAgCtXrmDixIl4+umnu/3BX375JT788EMcOXIEGo0GGo0GBw8eRGpq\nKrKzsxEUFIScnBykpqZ2+7PINvA8S0Ty69QuqS+99BKuXr2Kr7/+GqmpqUhISLBENoO4fGQ/eLwD\nkel0a++j28Pl279k1apVGD58OB599FEoFApMnz7d9Ik7iaVgfzh3IOq+bpXCM88802bPHyFEm8fb\nt283UcyuYynYLx7vQHT3eEI86tF4vANR1/AiO9Sj8foORKbHLQXqMTh3IOoYl4/ILnHuQKSfSUrh\n5s2byMjIgE6nQ2Njo/SLV6xYYbqkXcRSoM5qPXd46qmWuUNgoNypiORhkpnC448/jqysLDg5OcHV\n1RWurq5wcXExWUgic2o9d3BzA0aP5tyBqCNGtxTCwsJw7tw5S+XpFG4p0N1qPXdwd2+ZO8ycybkD\n2QeTbCk8+OCDKCgoMFkoIjm1Ps/Sa68Bf/87z7NE1JrRLYWQkBBcuHAB/v7+6N27d8ubFApZi4Jb\nCmRKnDuQvTDJoFmn0+l9XqVS3W2ubmMpkDlUVracZ+m993ieJeqZulUKV69ehbu7O2pqavS+0dPT\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5be93d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nsrBgEBGRLP8PAOBgfwTG6goAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5de54f0>"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.3,Page No.102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DB=L_CD=1.5 #m #Length of DB & CD\n",
+ "L_AC=3 #m #Length of AC\n",
+ "F_D=80 #KN #Force at Pt D\n",
+ "w=40 #KN/m #u.v.l\n",
+ "L=6 #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the Reactions at Pt A & B respectively\n",
+ "#R_A+R_B=140 \n",
+ "#Taking moment at B we get,M_B\n",
+ "R_A=(1*2**-1*L_AC*w*(1*3**-1*L_AC+(L_CD+L_DB))+F_D*L_DB)*L**-1\n",
+ "R_B=140-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F at B\n",
+ "V_B1=0 #KN\n",
+ "V_B2=R_B #KN\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F at C\n",
+ "V_C=V_D2 #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_C-1*2**-1*w*L_AC #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=-R_B*L_DB\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_D*L_CD-R_B*(L_DB+L_CD)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=F_D*(L_CD+L_AC)-R_B*L+1*2**-1*w*L_AC*(1*3**-1*L_AC)+R_A\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_DB+L_CD,L_DB+L_CD+L_AC,L_DB+L_CD+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_DB,L_CD+L_DB,L_AC+L_CD+L_DB]\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x58f0c10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x562f910>"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.4,Page No.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "M_D=120 #KN.m #B.M at Pt D\n",
+ "F_C=40 #KN #Force at Pt C\n",
+ "w1=20 #KN.m\n",
+ "L_DB=1.5 #m #Length of DB\n",
+ "L_CD=1.5 #m #Length of CD\n",
+ "L_AC=3 #m #Length of AC\n",
+ "L=6 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A And R_B be the Reactions at pt A and B \n",
+ "#R_A+R_B=100\n",
+ "#Now Taking Moment At Pt B We get,M_B\n",
+ "R_A=-(M_D-F_C*(L_CD+L_DB)-w1*L_AC*(L_AC*2**-1+L_CD+L_DB))*L**-1\n",
+ "R_B=100-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=0\n",
+ "V_B2=R_B\n",
+ "\n",
+ "#S.F at Pt D\n",
+ "V_D=V_B2 #KN\n",
+ "\n",
+ "#S.F At Pt C\n",
+ "V_C1=V_D #KN\n",
+ "V_C2=V_C1-F_C\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2-w1*L_AC #KN\n",
+ "V_A2=V_A1+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=M_B-R_B*L_DB #KN.m\n",
+ "M_D2=M_B+M_D-R_B*L_DB\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=M_D-R_B*(L_CD+L_DB)\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=M_D-R_B*L+F_C*L_AC+w1*L_AC*L_AC*2**-1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB+L_CD,L_DB+L_CD,L_DB+L_CD+L_AC,L_DB+L_CD+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D1,M_D2,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB,L_CD+L_DB,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55dae90>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5669170>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.5,Page No.105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_C=20 #KN #Force at Pt C\n",
+ "F_D=40 #KN #Force at pt D\n",
+ "w=20 #KN.m #u.d.l \n",
+ "L_AD=L_DB=2 #m #Length of AD & DB\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L=5 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_A and R_B be the reactions at A & B respectively\n",
+ "#R_A+R_B=100 \n",
+ "#Now Taking Moment at B,M_B we get\n",
+ "R_A=-(F_C*L_BC-F_D*L_DB-w*L_AD*(L_AD*2**-1+L_DB))*(L_AD+L_DB)**-1\n",
+ "R_B=100-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At pt C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-F_C #KN\n",
+ "\n",
+ "#S.F At PT B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN\n",
+ "\n",
+ "#S.F At Pt D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_D2-w*L_AD #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=0 \n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=F_C*L_BC\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D=F_C*(L_BC+L_DB)-R_B*L_DB\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=F_C*L-R_B*(L_DB+L_AD)+F_D*L_AD+w*L_AD*L_AD*2**-1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_BC+L_DB,L_BC+L_DB,L_BC+L_DB+L_AD,L_BC+L_DB+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_D1,V_D2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_C,M_B,M_D,M_A]\n",
+ "X2=[0,L_BC,L_BC+L_DB,L_BC+L_DB+L_AD]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\niJj+H1U+eMmY8O6MAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d9c6f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n776bzMxMs8Myxc0338yVV15pdhiW0KZNG2JjYwEIDQ2la9euHDx40OSozNOsWTMAKisrqa6urvNN\nwJ8dOHCAtWvX8tBDD+kQTXDpd+BTSaG0tJR27do5v9fmNjlfSUkJhYWFJCQkmB2KaU6fPk1sbCyt\nW7emX79+REVFmR2SaZ588knmzp1LUJBPvdV5hM1mIzExkZ49e7Jw4cJaH+dTvymtRJKLqaio4K67\n7uKVV14hNDTU7HBMExQURFFREQcOHOCzzz4L2GMe1qxZQ6tWrYiLi9MoAcjPz6ewsJB169Yxf/58\nNm7cWOPjfCoptG3blv379zu/379//znHYkjg+uWXXxgxYgT33nsvw4YNMzscS2jRogW33347X331\nldmhmOKLL75g9erVdOjQgdTUVD799FPuv/9+s8MyzZm9Yddccw133nlnrefK+VRS6NmzJ7t27aKk\npITKykqWL19OcnKy2WGJyRwOB+PGjSMqKoqJEyeaHY6pjhw54jxL7OTJk6xfv564uDiTozLHrFmz\n2L9/P3v37mXZsmX84Q9/4O233zY7LFOcOHGC48ePA/Dzzz+Tk5NT68pFn0oKwcHBzJs3j4EDBxIV\nFcWoUaMCdoVJamoqN910Ezt37qRdu3ZkZGSYHZJp8vPzeeedd9iwYYOzR0d2drbZYZni0KFD/OEP\nfyA2NpaEhASGDh1K//79zQ7LEgJ5+vnw4cPcfPPNzr8XQ4YMYcCAATU+1qeWpIqIiGf51EhBREQ8\nS0lBRESclBRERMRJSUFERJyUFERExElJQUREnJQUxK95+riL8PBwfvzxxwvuz8vL48svv6zxOVlZ\nWQF97LtYmymd10S8xdMblmw2W43n6mzYsIHmzZvTu3fvC342dOjQgD/bX6xLIwUJOHv27GHQoEH0\n7NmTW265hR07dgAwduxYnnjiCfr06UNERAQrVqwAjFNHx48fT9euXRkwYAC3336782cAr732GvHx\n8XTv3p0dO3ZQUlLCG2+8wV//+lfi4uL4/PPPz7n+W2+9xWOPPXbRa56tpKSEyMhIHnjgAbp06cI9\n99xDTk4Offr0oXPnzmzZssVTvyoJQEoKEnD++Mc/8tprr/HVV18xd+5cxo8f7/xZWVkZ+fn5rFmz\nhilTpgDw4Ycf8t1337F9+3aWLl3Kl19+ec4I5JprrmHr1q08+uijvPjii4SHh/PII48wadIkCgsL\nL2hwc/7opaZrnm/Pnj1MnjyZb7/9lh07drB8+XLy8/N58cUXmTVrlrt+NSKaPpLAUlFRwZdffsnI\nkSOd91VWVgLGm/WZE1a7du3K4cOHAfj8889JSUkBcPYoONvw4cMB6NGjBx9++KHzfldOkKntmufr\n0KED3bp1A6Bbt24kJiYCEB0dTUlJSZ3XEXGVkoIElNOnT3PFFVdQWFhY48+bNm3q/PrMm/r5dYPz\n3+wvueQSAJo0aUJVVVW9Y6rpmuc7cw0w+iWceU5QUFCDrilSG00fSUC5/PLL6dChAx988AFgvAn/\n61//uuhz+vTpw4oVK3A4HBw+fJi8vLw6r9O8eXPnUcXn0xmUYmVKCuLXTpw4Qbt27Zy3//3f/+Xd\nd99l0aJFxMbGEh0dfU4z97Pn+898PWLECMLCwoiKiuK+++6jR48etGjR4oJr2Ww253OGDh3KypUr\niYuLIz8/v9bH1XbNml67tu8D+UhocT8dnS3igp9//pnLLruM//znPyQkJPDFF1/QqlUrs8MScTvV\nFERcMGTIEMrLy6msrGTatGlKCOK3NFIQEREn1RRERMRJSUFERJyUFERExElJQUREnJQURETESUlB\nRESc/j+iaB8fTwtkoQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c1ead0>"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.6,Page No.107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=L_EB=L_AD=1 #m #Length of spans BC,ED,AD\n",
+ "L_ED=2 #m #Length of ED\n",
+ "w=60 #KNm #u.d.l\n",
+ "F_C=20 #KN Pt Load at C\n",
+ "L=5 #m #Span of beam \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A & R_B be the reactions at A & B respectively\n",
+ "#R_A+R_B=80 \n",
+ "#Taking Moment At A,we get M_A\n",
+ "R_B=(F_C*L+1*2**-1*L_ED*w*(2*3**-1*L_ED+L_AD))*(L_AD+L_ED+L_EB)**-1\n",
+ "R_A=80-R_B\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-F_C #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN \n",
+ "\n",
+ "#S.F aT E\n",
+ "V_E=V_B2 #KN\n",
+ "\n",
+ "#S.F AT D\n",
+ "V_D=V_B2-1*2**-1*L_ED*w #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_D #KN \n",
+ "V_A2=V_D+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at C\n",
+ "M_C=0 #KN.m\n",
+ "\n",
+ "#B.M at B\n",
+ "M_B=F_C*L_BC #KN.m\n",
+ "\n",
+ "#B.M at E\n",
+ "M_E=F_C*(L_EB+L_BC)-R_B*L_EB #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D=F_C*(L_ED+L_EB+L_BC)-R_B*(L_ED+L_EB)+1*2**-1*L_ED*w*1*3**-1*L_ED #KN.m\n",
+ "\n",
+ "#B.M at A\n",
+ "M_A=1*2**-1*L_ED*w*(2*3**-1*L_ED+L_AD)-R_B*(L_AD+L_ED+L_EB)+F_C*L\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_EB+L_BC,L_ED+L_EB+L_BC,L_AD+L_ED+L_EB+L_BC,L_ED+L_EB+L_BC+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_E,V_D,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_BC,L_BC+L_EB,L_EB+L_BC+L_ED,L_EB+L_BC+L_ED+L_AD]\n",
+ "Y2=[M_C,M_B,M_E,M_D,M_A]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x58a6f70>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nkeDZfAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x567bcf0>"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.7,Page No.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L_DB=2 #m #Length of DB\n",
+ "L_AD=4 #m #Length 0f AD\n",
+ "M_D=30 #KN.m #Moment at D\n",
+ "w=45 #KN/m #u.d.l\n",
+ "L=7 #m #Span of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_B & R_A be the Reactions at B & A respectively\n",
+ "#R_B+R_A=180+P ............(1)\n",
+ "\n",
+ "#Now Taking Moment about A,we get\n",
+ "#R_B=7*P+390 ...............(2)\n",
+ "\n",
+ "#Since R_A & R_B Are Equal\n",
+ "#2*R_B=180+P ...................(3)\n",
+ "\n",
+ "#From equation 1 and 3 we get\n",
+ "#3*(180+P)=7P+390\n",
+ "#After simplifying Further above equation we get\n",
+ "P=150*4**-1 #KN\n",
+ "R_A=R_B=(180+P)*2**-1\n",
+ "F_C=P\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-P #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN \n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=V_B2 #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_D-w*L_AD #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at C\n",
+ "M_C=0 #KN.m \n",
+ "\n",
+ "#B.M at B\n",
+ "M_B=F_C*L_BC #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D1=F_C*(L_BC+L_DB)-R_B*L_DB #KN.m\n",
+ "M_D2=M_D1+M_D\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=w*L_AD*L_AD*2**-1+M_D-R_B*(L_AD+L_DB)+P*L\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_DB+L_BC,L_DB+L_BC+L_AD,L_DB+L_BC+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_D,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_BC,L_DB+L_BC,L_DB+L_BC,L_AD+L_DB+L_BC]\n",
+ "Y2=[M_C,M_B,M_D1,M_D2,M_A]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEPCAYAAABRHfM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9c1fWhx/HXAYlNkcQNUYGJV1CEKEHz50MHmj+YgZLK\nQuevIr362Ky7e1de7x6bM0u709m0uDOvqdlKK+ePfujUFFMn2JRuK5qSQRcRzTKvhhkC3/vHt840\nhXNAOJ9z4P18PHjscH5w3jo7b77fz+f7+Tgsy7IQERFxwc90ABER8Q0qDBERcYsKQ0RE3KLCEBER\nt6gwRETELSoMERFxi9HCuO+++wgLCyMhIcF537lz5xg+fDjdu3dnxIgRnD9/3vnYokWLiImJITY2\nlp07d5qILCLSYhktjOnTp7Njx45r7lu8eDHDhw/n+PHjDBs2jMWLFwNQWFjIxo0bKSwsZMeOHcye\nPZuamhoTsUVEWiSjhTF48GBCQkKuuW/btm1MnToVgKlTp7JlyxYAtm7dSlZWFgEBAURFRREdHc3h\nw4c9nllEpKXyujGMM2fOEBYWBkBYWBhnzpwB4NSpU0RERDifFxERQVlZmZGMIiItkdcVxtUcDgcO\nh6POx0VExDNamQ7wbWFhYZw+fZqOHTtSXl5Ohw4dAAgPD6e0tNT5vJMnTxIeHn7d66Ojozlx4oTH\n8oqINAfdunXjww8/rPM5XneEkZ6ezrp16wBYt24dY8eOdd6/YcMGKisrKS4upqioiL59+173+hMn\nTmBZls9+/frXvzaeoSVmV37zX8pv9sudX7SNHmFkZWWxb98+Pv30UyIjI1mwYAFz584lMzOT1atX\nExUVxUsvvQRAXFwcmZmZxMXF0apVK3JycnRKSkTEg4wWxosvvnjD+3fv3n3D++fNm8e8efOaMpKI\niNTC605JtXTJycmmIzSYL2cH5TdN+b2fw7KsZrWBksPhoJn9kUREmpw7n506whAREbeoMERExC0q\nDBERcYsKQ0RE3KLCEBERt6gwRETELSoMERFxiwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyi\nwhAREbeoMERExC0qDBERcYsKQ0RE3KLCEBERt6gwRETELa1MB5B/OHECTp82naLlCguD6GjTKUS8\nl/b09iK33w7+/tC6tekkLdPx4/DYYzBjhukkIp7nzmenjjC8SHU1vPgixMebTtIyFRXB3XdDYSEs\n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\nImzdCg88AMuW2WtSmaDCEBHxAQMGwKFDsGYNzJwJX+8+4VEqDBERH9GlCxw8COXlMHIkeHq3bBWG\niIgPadvWnnKblGRfGX78uOfeW4UhIuJj/P1hyRJ4+GEYPBjefNMz76vCEBHxUdnZ9tTbiRNh5cqm\nfz8VhoiID0tJgQMH4He/g4cegurqpnsvI4Xx8ssvEx8fj7+/P0ePHr3msUWLFhETE0NsbCw7d+50\n3n/kyBESEhKIiYnhwQcf9HRkERGvFRNjLyfy/vv2pkwXLjTN+xgpjISEBDZv3syQIUOuub+wsJCN\nGzdSWFjIjh07mD17tnPLwFmzZrF69WqKioooKipix44dJqKLiHilkBB44w178cKBA6G4uPHfw0hh\nxMbG0r179+vu37p1K1lZWQQEBBAVFUV0dDT5+fmUl5dz8eJF+vbtC8CUKVPYsmWLp2OLiHi1gAB4\n+mn7Oo2BA+0puI3Jq8YwTp06RUREhPP7iIgIysrKrrs/PDycMm/fmkpExACHA372M3j2WXu59PXr\nG+9nN9l+GMOHD+f06dPX3f/444+TlpbWVG8LwPz58523k5OTSU5ObtL3ExHxNqmpsHevPabxwQew\ncKG9NtU3cnNzyc3NBdy/ALDJCmPXrl31fk14eDilpaXO70+ePElERATh4eGcPHnymvvDw8Nr/TlX\nF4aISEsVHw/5+XDPPfYWsM89B23a2I9d/cv088/D55//xuXPM35KyrpqFa309HQ2bNhAZWUlxcXF\nFBUV0bdvXzp27EhwcDD5+flYlsX69esZO3aswdQiIr4hNBR274agIBgyBG7mbL6Rwti8eTORkZHk\n5eUxevRoUlNTAYiLiyMzM5O4uDhSU1PJycnB8fX+hDk5OWRnZxMTE0N0dDSjRo0yEV1ExOcEBsLa\ntfZRRv/+cORIw36Ow7JMLZTbNBwOB83sjyQi0mg2b4YZM+C//gvGj7fvi46GEydcf3Y22RiGiIh4\nn4wM+1qNMWPg2DGYN8/916owRERamMRE+8rwMWPsGVSVle69zvigt4iIeF7nzrBvn10WV01OrZPG\nMEREWrCaGntcY/x415+dKgwREXHrs1OnpERExC0qDBERcYsKQ0RE3KLCEBERt6gwRETELSoMERFx\niwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDBERcYsKQ0RE3KLCEBER\nt6gwRETELSoMERFxiwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDBER\ncYsKQ0RE3KLCEBERt6gwRETELSoMERFxi5HCePnll4mPj8ff35+jR4867y8pKeG73/0uiYmJJCYm\nMnv2bOdjR44cISEhgZiYGB588EETsUVEWjQjhZGQkMDmzZsZMmTIdY9FR0dTUFBAQUEBOTk5zvtn\nzZrF6tWrKSoqoqioiB07dngyssfk5uaajtBgvpwdlN805fd+RgojNjaW7t27u/388vJyLl68SN++\nfQGYMmUKW7Zsaap4RvnyPzpfzg7Kb5ryez+vG8MoLi4mMTGR5ORkDhw4AEBZWRkRERHO54SHh1NW\nVmYqoohIi9SqqX7w8OHDOX369HX3P/7446Slpd3wNZ07d6a0tJSQkBCOHj3K2LFjef/995sqooiI\n1IdlUHJysnXkyBGXj586dcqKjY113v/CCy9YM2fOvOFrunXrZgH60pe+9KWvenx169bN5Wd2kx1h\nuMuyLOftTz/9lJCQEPz9/fnoo48oKirin/7pn2jXrh3BwcHk5+fTt29f1q9fz5w5c2748z788ENP\nRRcRaVGMjGFs3ryZyMhI8vLyGD16NKmpqQDs27ePO+64g8TERCZMmMDKlStp164dADk5OWRnZxMT\nE0N0dDSjRo0yEV1EpMVyWFf/ii8iIlILr5sl1VA7duwgNjaWmJgYnnjiCdNx6u2+++4jLCyMhIQE\n01HqrbS0lJSUFOLj47nttttYvny56Uj1cvnyZfr160evXr2Ii4vj3//9301HapDq6moSExNrnVTi\nzaKiorj99ttJTEx0Tp/3FefPn2f8+PH07NmTuLg48vLyTEdy27Fjx5wXSicmJnLrrbfW/d9vPcep\nvVJVVZXVrVs3q7i42KqsrLTuuOMOq7Cw0HSsennrrbeso0ePWrfddpvpKPVWXl5uFRQUWJZlWRcv\nXrS6d+/uc3//FRUVlmVZ1pUrV6x+/fpZ+/fvN5yo/pYuXWpNnDjRSktLMx2l3qKioqzPPvvMdIwG\nmTJlirV69WrLsux/P+fPnzecqGGqq6utjh07Wv/7v/9b63OaxRHG4cOHiY6OJioqioCAAO699162\nbt1qOla9DB48mJCQENMxGqRjx4706tULgKCgIHr27MmpU6cMp6qf1q1bA1BZWUl1dTXt27c3nKh+\nTp48yRtvvEF2dvY1E0l8iS/m/r//+z/279/PfffdB0CrVq249dZbDadqmN27d9OtWzciIyNrfU6z\nKIyysrJjFZu/AAAGPklEQVRr/pARERG6sM+QkpISCgoK6Nevn+ko9VJTU0OvXr0ICwsjJSWFuLg4\n05Hq5V/+5V/47W9/i5+fb/4n7XA4uOuuu+jTpw+rVq0yHcdtxcXFhIaGMn36dJKSknjggQe4dOmS\n6VgNsmHDBiZOnFjnc3zzX9e3OBwO0xEE+OKLLxg/fjy///3vCQoKMh2nXvz8/HjnnXc4efIkb731\nlk8t8/Daa6/RoUMHEhMTffK3dICDBw9SUFDA9u3befrpp9m/f7/pSG6pqqri6NGjzJ49m6NHj9Km\nTRsWL15sOla9VVZW8uqrrzJhwoQ6n9csCiM8PJzS0lLn96WlpdcsJSJN78qVK4wbN46f/OQnjB07\n1nScBrv11lsZPXo0f/3rX01Hcdtf/vIXtm3bRteuXcnKymLPnj1MmTLFdKx66dSpEwChoaFkZGRw\n+PBhw4ncExERQUREBHfeeScA48ePv2YFbl+xfft2evfuTWhoaJ3PaxaF0adPH4qKiigpKaGyspKN\nGzeSnp5uOlaLYVkW999/P3FxcTz00EOm49Tbp59+yvnz5wH48ssv2bVrF4mJiYZTue/xxx+ntLSU\n4uJiNmzYwNChQ3nuuedMx3LbpUuXuHjxIgAVFRXs3LnTZ2YLduzYkcjISI4fPw7Y4wDx8fGGU9Xf\niy++SFZWlsvnGb/SuzG0atWKp556ipEjR1JdXc39999Pz549Tceql6ysLPbt28dnn31GZGQkCxYs\nYPr06aZjueXgwYM8//zzzmmRAIsWLfKZiyvLy8uZOnUqNTU11NTUMHnyZIYNG2Y6VoP52inaM2fO\nkJGRAdineCZNmsSIESMMp3LfihUrmDRpEpWVlXTr1o01a9aYjlQvFRUV7N69262xI124JyIibmkW\np6RERKTpqTBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDGkRmnqpkieffJIvv/yy0d/v1Vdf\n9cnl+qV50nUY0iK0bdvWeTVxU+jatSt//etf+d73vueR9xMxQUcY0mKdOHGC1NRU+vTpw5AhQzh2\n7BgA06ZN48EHH2TQoEF069aNTZs2AfaKtrNnz6Znz56MGDGC0aNHs2nTJlasWMGpU6dISUm55grx\nX/7yl/Tq1YsBAwbwySefXPf+Dz30EI8++igAf/7zn/nhD3943XPWrl3Lz372szpzXa2kpITY2Fim\nT59Ojx49mDRpEjt37mTQoEF0796dt99+++b/4qTl8sC+HCLGBQUFXXff0KFDraKiIsuyLCsvL88a\nOnSoZVmWNXXqVCszM9OyLMsqLCy0oqOjLcuyrJdfftn60Y9+ZFmWZZ0+fdoKCQmxNm3aZFnW9RsA\nORwO67XXXrMsy7Iefvhha+HChde9/6VLl6z4+Hhrz549Vo8ePayPPvrouuesXbvW+ulPf1pnrqsV\nFxdbrVq1st577z2rpqbG6t27t3XfffdZlmVZW7dutcaOHevy70qkNs1iLSmR+vriiy84dOjQNcs5\nV1ZWAvZaTN+suNuzZ0/OnDkDwIEDB8jMzARw7ptRm1tuuYXRo0cD0Lt3b3bt2nXdc7773e+yatUq\nBg8ezO9//3u6du1aZ+bacn1b165dnQvgxcfHc9dddwFw2223UVJSUud7iNRFhSEtUk1NDe3ataOg\noOCGj99yyy3O29bXw3wOh+Oa/SasOob/AgICnLf9/Pyoqqq64fPeffddQkND3d7w60a5vi0wMPCa\n9/7mNXXlEHGHxjCkRQoODqZr16688sorgP3h++6779b5mkGDBrFp0yYsy+LMmTPs27fP+Vjbtm25\ncOFCvTJ8/PHH/O53v3NuHHSjPSDqKiURT1NhSItw6dIlIiMjnV9PPvkkf/zjH1m9ejW9evXitttu\nY9u2bc7nX71E+De3x40bR0REBHFxcUyePJmkpCTn/s0zZsxg1KhRzkHvb7/+20uOW5ZFdnY2S5cu\npWPHjqxevZrs7GznabHaXlvb7W+/prbvfW3pc/EumlYrUg8VFRW0adOGzz77jH79+vGXv/yFDh06\nmI4l4hEawxCph7vvvpvz589TWVnJr371K5WFtCg6whAREbdoDENERNyiwhAREbeoMERExC0qDBER\ncYsKQ0RE3KLCEBERt/w/DSM1oLe5H2sAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d6f150>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n1FS8vLzw8PDAxcWFfv36kZiYqHescnnkkUe455579I5RIY0aNSIwMBCAWrVq0bx5c06cOKFzqvK5\n++67ASgsLKS4uJh69erpnKh8jh8/zooVKxg6dOgNG0lsiS3m/vPPP9mwYQNDhgwBoFq1atSpU0fn\nVBWzZs0aPD09ady4camfYxcFIzs7+4Y/pLu7uxzs00lmZia7d+8mNDRU7yjlUlJSQmBgIA0bNqRj\nx474+fnpHalcXn/9dT766COcnGzzn7TBYKBz5860bt2aWbNm6R3HZMeOHaN+/fo8++yztGrViuef\nf54LFy7oHatC5s2bR//+/e/4Obb5t+sm1/ejEvo5f/48vXv3ZurUqdSqVUvvOOXi5OTEnj17OH78\nOD///LNNtXlYtmwZDRo0ICgoyCa/SwfYtGkTu3fvZuXKlXzyySds2LBB70gmKSoqYteuXQwfPpxd\nu3ZRs2ZN4uPj9Y5VboWFhSxdupQ+ffrc8fPsomC4ubmRlZVl/DgrK+uGViLC8q5cuUKvXr14+umn\n6dGjh95xKqxOnTp069aNHTt26B3FZJs3b2bJkiU0bdqU6Oho1q5dy6BBg/SOVS73338/oBqQ9uzZ\nk9TUVJ0Tmcbd3R13d3ceeughAHr37s2uXbt0TlV+K1euJDg4mPr169/x8+yiYLRu3ZrDhw+TmZlJ\nYWEh8+fP5/HHH9c7lsPQNI3nnnsOPz8/XnvtNb3jlNvp06fJy8sD4OLFiyQnJxMUFKRzKtNNmDCB\nrKwsjh07xrx583j00Uf56quv9I5lsgsXLpCfnw9AQUEBq1evtpndgo0aNaJx48akp6cDah3A399f\n51Tl9/333xMdHV3m5+l+0tscqlWrxvTp0+nSpQvFxcU899xzNG/eXO9Y5RIdHc369es5c+YMjRs3\n5oMPPuDZZ5/VO5ZJNm3axDfffGPcFgkQFxdnM4crc3JyGDx4MCUlJZSUlDBw4EA6deqkd6wKs7Up\n2pMnT9KzZ09ATfEMGDCAiIgInVOZbtq0aQwYMIDCwkI8PT2ZO3eu3pHKpaCggDVr1pi0diQH94QQ\nQpjELqakhBBCWJ4UDCGEECaRgiGEEMIkUjCEEEKYRAqGEEIIk0jBEEIIYRIpGMJhWbp9iYeHB2fP\nnr3l8fXr17Nly5bbPmfp0qU22Z5fOAa7OLgnREVY+oCbwWC4bW+ndevW4erqesM1xNdERUXZ5H0W\nwjHICEOI62RkZBAZGUnr1q1p3749hw4dAuCZZ55hxIgRtG3bFk9PTxYuXAioLrfDhw+nefPmRERE\n0K1bN+PvgToFHBwcTMuWLTl06BCZmZl8+umnfPzxxwQFBbFx48Yb3v+LL77gH//4xx3f83qZmZn4\n+vry7LPP0qxZMwYMGMDq1atp27YtPj4+bN++3VL/qYQDkoIhxHVeeOEFpk2bxo4dO/joo48YPny4\n8fdyc3PZtGkTy5YtIyYmBoAff/yR//73vxw4cICvv/6aLVu23DByqV+/Pjt37uSll15i0qRJeHh4\n8OKLL/LGG2+we/du2rVrd8P73zzqud173iwjI4ORI0dy8OBBDh06xPz589m0aROTJk1iwoQJ5vpP\nI4RMSQlxzfnz59myZcsNLZ4LCwsB9YX8Whfe5s2bc/LkSQA2btxI3759AYx3aVzvySefBKBVq1b8\n+OOPxsdN6chT2nverGnTpsaGd/7+/nTu3BmAFi1akJmZWeb7CGEqKRhCXFVSUkLdunXZvXv3bX+/\nevXqxl9f+4J/8zrFzYWgRo0aADg7O1NUVFTuTLd7z5tdew9Q93pce46Tk1OF3lOI0siUlBBX1a5d\nm6ZNm/LDDz8A6gv0vn377victm3bsnDhQjRN4+TJk6xfv77M93F1dTW2876Z9AIV1kwKhnBYFy5c\noHHjxsYfU6ZM4dtvv2X27NkEBgbSokULlixZYvz869cXrv26V69euLu74+fnx8CBA2nVqtVt73Q2\nGAzG50RFRbFo0SKCgoLYtGlTqZ9X2nve7rVL+9jWWp0L6ybtzYWopIKCAmrWrMmZM2cIDQ1l8+bN\nNGjQQO9YQpidrGEIUUndu3cnLy+PwsJC3nvvPSkWwm7JCEMIIYRJZA1DCCGESaRgCCGEMIkUDCGE\nECaRgiGEEMIkUjCEEEKYRAqGEEIIk/w/Ax1NdOgaZEcAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d79470>"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.8,Page No.110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6 #m #Span Of beam\n",
+ "w=30 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Due to Symmetry\n",
+ "#Let R_B and R_C be the reactions at B & C Respectively\n",
+ "R_B=R_C=w*L*2**-1 #KN\n",
+ "\n",
+ "#Let a be the overhang.The Max -ve moment occurs at the support and max +ve moment at middle of the beam\n",
+ "#Now Equating these two equations we get\n",
+ "#30*a*a*2**-1=90*(3-a)-w*L*2**-1*L*4**-1\n",
+ "#After simplifying we get an equation as\n",
+ "#a**2+6*a-9=0\n",
+ "x=1\n",
+ "y=6\n",
+ "z=-9\n",
+ "\n",
+ "p=y**2-4*x*z\n",
+ "\n",
+ "a1=(-y+p**0.5)*2**-1\n",
+ "a2=(-y-p**0.5)*2**-1\n",
+ "\n",
+ "#Now Length cannot be negative,so taking a1 into Consideration\n",
+ "\n",
+ "L_CD=L_AB=a1\n",
+ "L_BC=L-2*a1\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=0\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=V_D-w*L_CD #KN\n",
+ "V_C2=V_C1+R_C #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=-w*(L_BC+L_CD)+R_C\n",
+ "V_B2=V_B1+R_B\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A=round(V_B2,2)-round(w*L_AB,2)\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=0\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=w*L_CD*L_CD*2**-1 #KN.m\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=w*(L_BC+L_CD)*(L_BC+L_CD)*2**-1-R_C*L_BC*L_BC*2**-1\n",
+ "\n",
+ "#B.M At A\n",
+ "X=w*L*L*2**-1\n",
+ "Y=-R_C*(L_AB+L_BC)-R_B*L_AB\n",
+ "M_A=X+Y\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,L_CD,L_CD,L_CD+L_BC,L_CD+L_BC,L_CD+L_BC+L_AB]\n",
+ "Y1=[V_D,V_C1,V_C2,V_B1,V_B2,V_A]\n",
+ "Z1=[0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_CD,L_BC+L_CD,L_AB+L_BC+L_CD]\n",
+ "Y2=[M_D,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5945590>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nICIiWf4/U4J8H+TjvqoAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x58e1750>"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.9,Page No.112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_F=6 #KN #Force at F\n",
+ "w1=w2=w=3 #KN.m #u.d.l\n",
+ "M_D=24 #KN.m \n",
+ "L_AB=L_CD=L_DE=L_EF=4 #m #Length of AB,CD,DE,EF\n",
+ "L_BC=2 #m #Length of BC\n",
+ "L=18 #m #Span of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_B and R_E be the Reactions at B & E respectively\n",
+ "#R_B+R_E=42\n",
+ "\n",
+ "#Taking Moment At Pt B,M_B\n",
+ "R_E=(F_F*(L_BC+L_CD+L_DE+L_EF)+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC)-w*L_AB*L_AB*2**-1-M_D)*(L_BC+L_CD+L_DE)**-1\n",
+ "R_B=42-R_E #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F aT F\n",
+ "V_F1=0 #KN \n",
+ "V_F2=-F_F #KN\n",
+ "\n",
+ "#S.F at E\n",
+ "V_E1=V_F2 #KN\n",
+ "V_E2=V_E1+R_E #KN\n",
+ "\n",
+ "#S.F aT C\n",
+ "V_C=V_E2-w*(L_CD+L_DE) #KN\n",
+ "\n",
+ "#S.F at B\n",
+ "V_B1=V_C #KN \n",
+ "V_B2=V_C+R_B #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A=V_B2-w*L_AB #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At F\n",
+ "M_F=0\n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=F_F*L_EF #KN.m\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D1=F_F*(L_DE+L_EF)-R_E*L_DE+w*L_DE*L_DE*2**-1 #KN.m\n",
+ "M_D2=M_D1-M_D\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_F*(L_CD+L_DE+L_EF)-R_E*(L_CD+L_DE)+w*(L_CD+L_DE)*(L_CD+L_DE)*2**-1-M_D\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_F*(L_BC+L_CD+L_DE+L_EF)-R_E*(L_BC+L_CD+L_DE)-M_D+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=w*L_AB*L_AB*2**-1-R_B*L_AB+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC+L_AB)-R_E*(L_AB+L_BC+L_CD+L_DE)+F_F*L-M_D\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_EF,L_EF,L_EF+L_DE+L_CD,L_EF+L_DE+L_CD+L_BC,L_EF+L_DE+L_CD+L_BC,L_EF+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y1=[V_F1,V_F2,V_E1,V_E2,V_C,V_B1,V_B2,V_A]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_EF,L_DE+L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC+L_AB]\n",
+ "Y2=[M_F,M_E,M_D1,M_D2,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d75ab0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nfyRzHAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c44130>"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.10,Page No.114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DC=L_BA=2 #m #Length of BA & DC\n",
+ "L_CB=1 #m #Length of CB\n",
+ "F_A=10 #KN #Force at pt A\n",
+ "F_B=20 #KN #Force at pt B\n",
+ "w=4 #KN.m #u.d.l\n",
+ "L=5 #m #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_D be the reactions at Pt D\n",
+ "R_D=F_B+F_A+w*L_DC #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F at Pt A\n",
+ "V_A1=0 #KN\n",
+ "V_A2=F_A #KN\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=V_A2\n",
+ "V_B2=F_B+F_A\n",
+ "\n",
+ "#S.F at Pt C\n",
+ "V_C=F_B+F_A #KN \n",
+ "\n",
+ "#S.F At Pt D\n",
+ "V_D1=V_B2+w*L_DC\n",
+ "V_D2=F_B+F_A+w*L_DC-R_D\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=0\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=F_A*L_BA\n",
+ "\n",
+ "#B.M at Pt C\n",
+ "M_C=F_B*L_CB+F_A*(L_BA+L_CB) #KN\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=F_A*L+F_B*(L_CB+L_DC)+w*L_DC*L_DC*2**-1\n",
+ "M_D2=(F_A*L+F_B*(L_CB+L_DC)+w*L_DC*L_DC*2**-1)-M_D1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BA,L_BA,L_BA+L_CB,L_BA+L_CB+L_DC,L_BA+L_CB+L_DC]\n",
+ "Y1=[V_A1,V_A2,V_B1,V_B2,V_C,V_D1,V_D2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_A,M_B,M_C,M_D1,M_D2]\n",
+ "X2=[0,L_BA,L_CB+L_BA,L_CB+L_BA+L_DC,L_CB+L_BA+L_DC]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5738d10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nCwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5788db0>"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.11,Page No.115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "w=20 #KN/m #u.v.l\n",
+ "F_C=40 #KN #Force at Pt C\n",
+ "M_D=40 #KN.m #Moment at pt D\n",
+ "L_AB=3 #m #Length of AB\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L_CD=L_DE=2 #m #Length of CD & DE\n",
+ "L=8 #8 #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A & R_E be the Reactions at A & E respectively\n",
+ "#R_A+R_E=70\n",
+ "\n",
+ "#Taking Moments At Pt A we get,M_A\n",
+ "R_E=(F_C*(L_AB+L_BC)+1*2**-1*L_AB*w*2+40)*L**-1\n",
+ "R_A=70-R_E\n",
+ "\n",
+ "#shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt E\n",
+ "V_E1=0\n",
+ "V_E2=R_E #KN\n",
+ "\n",
+ "#S.F aT pt D\n",
+ "V_D=V_E2\n",
+ "\n",
+ "#S.F At PT C\n",
+ "V_C1=V_D\n",
+ "V_C2=V_D-F_C #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2-(1*2**-1*w*L_AB)\n",
+ "V_A2=V_A1+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt E\n",
+ "M_E=0\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=M_E-R_E*L_DE\n",
+ "M_D2=M_D1+M_D\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=-R_E*(L_DE+L_CD)+M_D\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=-R_E*(L_DE+L_CD+L_BC)+M_D+F_C*L_BC\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=-R_E*L+M_D+(1*2**-1*L_AB*w*2)+F_C*(L_BC+L_AB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DE,L_CD+L_DE,L_CD+L_DE,L_CD+L_DE+L_AB,L_CD+L_DE+L_AB]\n",
+ "Y1=[V_E1,V_E2,V_D,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_E,M_D1,M_D2,M_C,M_B,M_A]\n",
+ "X2=[0,L_DE,L_DE,L_CD+L_DE,L_DE+L_CD+L_BC,L_AB+L_BC+L_CD+L_DE]\n",
+ "Z2=[0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5df5230>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nMplYVsqi8ZiYGA4dOnTZ41OmTKGgoIC//vqLLVu2sHXrVmJjY/nNTsEek52/KRc2VtHR0URHR18x\nT2XWs6e6kS5eDN5+xLbJBK+9Bs8/D717q96D8F7PPqv+LJs1053EN6WkpJCSklKm19htFB49fzL2\niBEjyhVm9erVdr83d+5cevfuDUC7du2oUqUK//vf/wgICGD//v225x04cICAgIAS38MdPRhfVXwj\nffpp6NNHzTV4s65d1alsn32mVqwI75ScDHv3+sbOe0916S/MkxypMGlo8N577xnjx483DMMw0tLS\njMaNGxuGYRh79uwxIiMjjbNnzxq//fab0axZM6OoqOiy12uK7dWKigzj7rsNY8GCix9PSjKMvn21\nRHLKunWGERhoGGfP6k4iyiMvzzCaNDGM77/XnaRyceTeafd3xoiICLsNiclkYteuXWVory42ePBg\nBg8eTEREBNWqVeOTTz4BwGKxEBsbi8Viwc/Pj8TERLvDR6JsTCZ1aM3DD8OAAVC9uu5EzrnrLmjR\nQu3F+Oc/dacRZTV5Mtx5p1oVJzyL3c1rWVlZACQmJgJqOMkwDD7//HMArWcpyOa18uveXU04Dxum\nvvaWzWsl2bpVTTynp0PNmrrTCEft3q02IO7eDQ0b6k5Tubik9lGrVq3YuXPnRY9FRUWxY8cO5xOW\nkzQK5bd9O/TooW6kV13l3Y0CqEbhzjtViW3h+YqK4O671Z6T+HjdaSofl+xoNgyDDRs22L7euHGj\n3JC9WOvWcOut8O67upO4xquvqoPdndw6IyrIxx/D2bPw5JO6kwh7Su0pbNu2jccff5zjx48DUL9+\nfT788ENat25dIQFLIj0F51itqvueng4rV3p3TwHUPEloqNqLITzXkSMQFqZ2pGu8fVRqLiudDdga\nhXr16jmfzEnSKDhv4EB15kJIiPc3CunpqveTng5XX607jbBn6FA19zN7tu4klZdLGoUzZ86wZMkS\nsrKyKCgosL3x+PHjXZe0jKRRcN5vv0H79mr/wg8/eHejAOpAluuvV5v0hOfZtEntQLdawQN+r6y0\nXDKn8MADD7Bs2TL8/f2pXbs2tWvXplatWi4LKfRo1gweekjVnfEF48fDvHnwxx+6k4hLFRSognez\nZkmD4A1K7SmEh4eze/fuisrjEOkpuMaBA2oIqWdP7+8pgCqZUKWKqrYpPMcbb6hTAFetkvpGurmk\n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\nGhPHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5dff130>"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.12,Page No.116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_G=10 #KN #Force at Pt G\n",
+ "F_B=F_E=15 #KN #Force at Pt B & E\n",
+ "w=20 #KN/m #U.d.L\n",
+ "L_FG=L_EF=L_DE=L_CD=L_BC=L_AB=1 #m #Lengths of FG,EF,DE,CD,BC,AB respectively\n",
+ "L=6 #m #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_F & R_A be the Reactions at E & A respectively\n",
+ "#R_F+R_A=60\n",
+ "\n",
+ "#Taking Moment At Pt A,M_A\n",
+ "R_F=(F_G*L+F_E*(L_AB+L_BC+L_CD+L_DE)+w*L_CD*(L_AB+L_BC+L_CD*2**-1)+F_B*L_AB)*(L_AB+L_BC+L_CD+L_DE+L_EF)**-1\n",
+ "R_A=60-R_F\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At G\n",
+ "V_G1=0 #KN \n",
+ "V_G2=F_G #KN\n",
+ "\n",
+ "#S.F At F\n",
+ "V_F1=V_G2 #KN\n",
+ "V_F2=V_F1-R_F\n",
+ "\n",
+ "#S.F At E\n",
+ "V_E1=V_F2 #KN\n",
+ "V_E2=V_F2+F_E\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=V_E2\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C=V_E2+w*L_CD\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C\n",
+ "V_B2=V_B1+F_B\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_B2\n",
+ "V_A2=V_B2-R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt G\n",
+ "M_G=0\n",
+ "\n",
+ "#B.M At F\n",
+ "M_F=F_G*L_FG \n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=F_G*(L_FG+L_EF)-R_F*L_EF\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=F_G*(L_FG+L_EF+L_DE)-R_F*(L_EF+L_DE)+F_E*L_DE\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_G*(L_FG+L_EF+L_DE+L_CD)-R_F*(L_EF+L_DE+L_CD)+F_E*(L_DE+L_CD)+w*L_CD*L_CD*2**-1\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_G*(L_FG+L_EF+L_DE+L_CD+L_BC)-R_F*(L_EF+L_DE+L_CD+L_BC)+F_E*(L_DE+L_CD+L_BC)+w*L_CD*(L_CD*2**-1+L_BC)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=F_G*L-R_F*(L_EF+L_DE+L_CD+L_BC+L_AB)+F_E*(L_DE+L_CD+L_BC+L_AB)+F_B*L_AB+w*L_CD*(L_CD*2**-1+L_BC+L_AB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_FG,L_FG,L_FG+L_EF,L_FG+L_EF,L_FG+L_EF+L_DE,L_FG+L_EF+L_DE+L_CD,L_FG+L_EF+L_DE+L_CD+L_BC,L_FG+L_EF+L_DE+L_CD+L_BC,L_FG+L_EF+L_DE+L_CD+L_BC+L_AB,L_FG+L_EF+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y1=[V_G1,V_G2,V_F1,V_F2,V_E1,V_E2,V_D,V_C,V_B1,V_B2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_FG,L_EF+L_FG,L_EF+L_FG+L_DE,L_EF+L_FG+L_DE+L_CD,L_EF+L_FG+L_DE+L_CD+L_BC,L_EF+L_FG+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y2=[M_G,M_F,M_E,M_D,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHZJJREFUeJzt3XtYVAX+x/HPIOgmYt6hB3ie8eESF03whtZaoIKVK1kq\nhWUsZvbLrd32ktlly3IT3GrLLm5tP1O7PWnLFtiF1DVMKjTDbFf2UUowQGBLIu+LwPn9wXp+KgyD\nOTMHhvfreXicyxnPZ8pnPpzznXOOzTAMQwAASPKxOgAAoPOgFAAAJkoBAGCiFAAAJkoBAGCiFAAA\nJstK4cSJE0pISFBcXJxiYmJ07733SpLq6uqUnJysyMhIpaSkqL6+3qqIANDt2Kw8TuHYsWPq3bu3\nGhsb9dOf/lSPP/648vLyNGjQIC1cuFDLli3T999/r+zsbKsiAkC3Yunuo969e0uSGhoa1NTUpP79\n+ysvL08ZGRmSpIyMDL399ttWRgSAbsXSUmhublZcXJwCAwOVlJSk2NhY1dbWKjAwUJIUGBio2tpa\nKyMCQLfia+XKfXx89MUXX+iHH37QlClT9OGHH57xvM1mk81msygdAHQ/lpbCKRdeeKGmTp2qzz//\nXIGBgaqpqVFQUJCqq6s1ZMiQVsuHh4fr66+/tiApAHRdYWFh+uqrr9pdxrLdR9999535zaLjx49r\n48aNio+PV2pqqtasWSNJWrNmjaZPn97qtV9//bUMw/Dan4ceesjyDLw/3l93fH/e/N4Mw+jQL9OW\nbSlUV1crIyNDzc3Nam5u1pw5czRp0iTFx8crLS1NK1eulN1u17p166yKCADdjmWlMHz4cBUXF7d6\nfMCAAdq0aZMFiQAAHNHcCSUmJlodwa14f12bN78/b35vHWXpwWs/ls1mUxeMDQCW6shnJ1sKAAAT\npQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAA\nMFEKAAATpQAAMFEKAAATpQAAMFEKAACTr9UBAKAzaGyUxo6VDh2yOom1bIazqzh3Qh25+DQAnIvj\nx6V+/aTdu61O4h47dkjp6c4/O9lSAID/8vGRwsOtTuEeNTUdW46ZAgDARCkAAEyUAgDARCkAAEyW\nlUJFRYWSkpIUGxurYcOG6emnn5Yk1dXVKTk5WZGRkUpJSVF9fb1VEQGg27GsFPz8/PTkk09q9+7d\nKioq0nPPPad//etfys7OVnJysvbu3atJkyYpOzvbqogA0O1YVgpBQUGKi4uTJPXp00fR0dGqqqpS\nXl6eMjIyJEkZGRl6++23rYoIAN1Op5gplJeXa+fOnUpISFBtba0CAwMlSYGBgaqtrbU4HQB0H5aX\nwpEjRzRjxgwtX75cAQEBZzxns9lks9ksSgYA3Y+lRzSfPHlSM2bM0Jw5czR9+nRJLVsHNTU1CgoK\nUnV1tYYMGdLmaxcvXmzeTkxMVGJiogcSA0DXUVBQoIKCAknSN9907DWWnfvIMAxlZGRo4MCBevLJ\nJ83HFy5cqIEDB+qee+5Rdna26uvrWw2bOfcRAFc7flwaMKDlT29UWChNmOD8s9OyUigsLNTll1+u\nSy65xNxFlJWVpbFjxyotLU3ffPON7Ha71q1bp379+p0ZmlIA4GKUQgvOkgoAohROsXzQDADoPCgF\nAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJ\nUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAA\nmCgFAIDJ19ETSUlJbT5us9kkSZs3b3ZPIgCAZRyWwmOPPWbePlUERUVFWrZsmYYMGeKSlc+dO1fv\nvvuuhgwZon/84x+SpLq6Ol1//fXav3+/7Ha71q1bp379+rlkfQCA9jncfTR69Gjz5/Dhw7rnnnv0\n+uuv64UXXtCOHTtcsvLMzEzl5+ef8Vh2draSk5O1d+9eTZo0SdnZ2S5ZFwDAOYdbCpKUn5+vRx99\nVD179tQDDzzgcJfSjzVhwgSVl5ef8VheXp62bNkiScrIyFBiYiLFAAAe4rAUxowZo2+//Va/+93v\nNH78eElScXGx+fzIkSPdEqi2tlaBgYGSpMDAQNXW1ra53OLFbll9pxAXJ02fbnUKAN2Rw1Lw9/eX\nv7+/cnJylJOT0+r5Dz/80K3BpJZZxql5xtkKChabt+32RNntiW7P4wnffCNt2kQpADh/BQUFKigo\nkNTy2dIRDkvh1F/U3NwsH58zRw8nTpz4UQE7IjAwUDU1NQoKClJ1dbXDofbppeBNCgulRYusTgHA\nGyQmJioxMVFSy2fLqlUPO32N0+MU5s2bd8b9I0eO6Oqrr/5xCTsgNTVVa9askSStWbNG0/mVGQA8\n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\nKQAATP8HttSK1NQ812EAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x57502f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nDsV00dHRjsOHD1sdhsfce++9jlmzZjkcDuPv6NGjR8t9nl+NFHJycmjatCnR0dGEh4dz1113kZmZ\naXVYpmnfvj116tSxOgyPadiwIUlJSQBEREQQFxfHvn37LI7KPJdeeikAxcXFlJSUULduXYsjMtcP\nP/zAf//7Xx544AEcATrrHKi/108//cTKlSsZPHgwAGFhYdSqVavc5/pVUsjPz6dRo0bOP0dFRZGf\nn29hRFJdeXl55ObmkpKSYnUopjl9+jRJSUk0aNCADh06EB8fb3VIpnr88cd5/vnnCQnxq7cNl9ls\nNjp16kSbNm2YOXOm1eGYavfu3VxxxRUMGjSIVq1aMWTIEIqKisp9rl/917XZbFaHICYoLCykb9++\nvPTSS0RERFgdjmlCQkJYt24dP/zwAytWrAiokgmLFy+mfv36JCcnB+yn6VWrVpGbm8uSJUt49dVX\nWblypdUhmebUqVOsXbuWoUOHsnbtWi677DImTZpU7nP9KilcffXVzoqqYCxcRkVFWRiRVNXJkye5\n4447uPvuu+nVq5fV4XhErVq16NGjB19//bXVoZjmyy+/ZOHChTRp0oQBAwbw2Wefce+991odlqmu\nvPJKAK644gp69+5NTk6OxRGZJyoqiqioKH7/+98D0LdvX9auXVvuc/0qKbRp04bt27eTl5dHcXEx\nc+fOpWfPnlaHJS5yOBzcf//9xMfHM3z4cKvDMdWhQ4c4evQoAL/88guffPKJ81BmIJgwYQJ79+5l\n9+7d/Otf/+LWW2/lnXfesTos0xQVFTlL6hw/fpylS5cG1C7Ahg0b0qhRI7Zt2wbAp59+SosWLcp9\nrmUF8aojLCyMV155hS5dulBSUsL9999PXFyc1WGZZsCAASxfvpzDhw/TqFEjxo4dy6BBg6wOyzSr\nVq3ivffec277A5g4cSJdu3a1ODL37d+/nz/84Q+cPn2a06dPc88999CxY0erw/KYQJvKPXDgAL17\n9waMqZaBAwfSuXNni6My18svv8zAgQMpLi4mJiaGOXPmlPs8HV4TEREnv5o+EhERz1JSEBERJyUF\nERFxUlIQEREnJQUREXFSUhARESclBQloni6jER0dzZEjR8o8vnz5clavXl3uaxYtWhRwZd8lcPjV\n4TWRqvL0ISubzVZuLaDPP/+cyMhIbrjhhjI/S0tLC8h+BBIYNFKQoLNz5066detGmzZtuPnmm9m6\ndSsA9913H4899hjt2rUjJiaGefPmAUb106FDhxIXF0fnzp3p0aOH82dgnBRt3bo11113HVu3biUv\nL4/p06fzj3/8g+TkZL744otS93/rrbf405/+dMF7nisvL4/Y2FgGDRrE7373OwYOHMjSpUtp164d\nzZs3Z82aNZ76VyVBSElBgs6DDz7Iyy+/zNdff83zzz/P0KFDnT8rKChg1apVLF68mBEjRgAwf/58\n9uzZw+bNm3n33XdZvXp1qRHIFVdcwTfffMMf//hHpkyZQnR0NA8//DBPPPEEubm53HTTTaXuf/7o\npbx7nm/nzp08+eSTbNmyha1btzJ37lxWrVrFlClTmDBhgln/akQ0fSTBpbCwkNWrV9OvXz/nY8XF\nxYDxZn22cmtcXBwHDhwA4IsvvuDOO+8EcPZKOFefPn0AaNWqFfPnz3c+7koFmYrueb4mTZo4C5i1\naNGCTp06AZCQkEBeXl6l9xFxlZKCBJXTp09Tu3ZtcnNzy/15jRo1nN+ffVM/f93g/Df7iy66CIDQ\n0FBOnTpV5ZjKu+f5zt4DjL4NZ18TEhJSrXuKVETTRxJUatasSZMmTfi///s/wHgT/vbbby/4mnbt\n2jFv3jwcDgcHDhxg+fLlld4nMjLSWYr5fKpBKb5MSUECWlFREY0aNXJ+vfjii7z//vvMmjWLpKQk\nEhISWLhwofP55873n/3+jjvuICoqivj4eO655x5atWpVbn9bm83mfE1aWhoLFiwgOTmZVatWVfi8\niu5Z3rUr+nOglbEWa6l0togLjh8/zmWXXcbhw4dJSUnhyy+/pH79+laHJWI6rSmIuOC2227j6NGj\nFBcXM2rUKCUECVgaKYiIiJPWFERExElJQUREnJQURETESUlBRESclBRERMRJSUFERJz+P8O/Vq30\nkcIBAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x58b0ed0>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.13,Page No.117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "L_AB=L_BC=L_CD=L_DE=L_EF=1 #m #LEngth of AB,BC,CD,DE,EF respectively\n",
+ "M_A=50 #KN/m #Moment at A\n",
+ "w=5 #KN/m #u.v.l\n",
+ "F_D=10 #KN\n",
+ "w2=5 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_B & R_E be the Reactions at B and E respectively\n",
+ "#R_B+R_E=20\n",
+ "\n",
+ "#Taking Moment At Pt B,M_B\n",
+ "R_E=(w2*L_EF*(L_EF*2**-1+L_DE+L_CD+L_BC)+w*L_BC*2**-1*2*3**-1+50+F_D*(L_BC+L_CD))*3**-1\n",
+ "R_B=17.5-R_E #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At F\n",
+ "V_F=0\n",
+ "\n",
+ "#S.F aT E\n",
+ "V_E1=-w2*L_EF #KN\n",
+ "V_E2=V_E1+R_E\n",
+ "\n",
+ "#S.F at D\n",
+ "V_D1=R_E-w2*L_EF #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C=V_D2\n",
+ "\n",
+ "#S.F aT B\n",
+ "V_B1=-L_BC*w*2**-1-F_D+R_E-w2*L_EF\n",
+ "V_B2=V_B1+R_B\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at F\n",
+ "M_F=0 #KN.m\n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=w2*L_EF*L_EF*2**-1 #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D=-R_E*L_DE+w2*L_EF*(L_EF*2**-1+L_DE) #KN.m\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_D*L_CD*R_E*(L_CD+L_DE)+w2*L_EF*(L_EF*2**-1+L_DE+L_CD) #KN.m\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_D*(L_CD+L_BC)-R_E*(L_BC+L_CD+L_DE)+w2*L_EF*(L_EF*2**-1+L_BC+L_CD+L_DE)+1*2**-1*L_BC*w*2*3**-1\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A1=w*L_EF*(L_EF*2**-1+L_AB+L_BC+L_CD+L_DE)-R_E*(L_AB+L_BC+L_CD+L_DE)+F_D*(L_AB+L_BC+L_CD)+1*2**-1*L_BC*w*(2*3**-1*L_BC+L_AB)-R_B*L_AB\n",
+ "M_A2=M_A1+M_A\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,L_EF,L_EF,L_DE+L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC]\n",
+ "Y1=[V_F,V_E1,V_E2,V_D1,V_D2,V_C,V_B1,V_B2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC+L_AB,L_CD+L_DE+L_EF+L_BC+L_AB]\n",
+ "Y2=[M_F,M_E,M_D,M_C,M_B,M_A1,M_A2]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n9fRALU6VlZUpPDxckrRlyxaNHDmyxfVc+YUAAK6xZIRw8803q6ioSIZhKDo6WuvXr1doaKi3ywAA\nnMPyXUYAAN/gE2cq5+fna8SIERo6dKjuv//+Fte57bbbNHToUCUkJKiwsNDLFTZwVmdBQYEuuugi\n+wl399xzj9drnDdvnkJDQx3uhpN8oy+d1ekLfVlaWqq0tDTFxcUpPj5ejz76aIvrWd2fbanTF/rz\n7NmzSk5OVmJiomJjY/Wb3/ymxfWs7s+21OkL/SlJdXV1SkpK0owZM1p8v919aVqstrbWHDx4sFlc\nXGxWV1ebCQkJ5v79+5uss23bNnPq1KmmaZrmnj17zOTkZJ+s8+233zZnzJjh9drOtXPnTvPjjz82\n4+PjW3zfF/rSNJ3X6Qt9WVZWZhYWFpqmaZonTpwwhw0b5pP/NttSpy/0p2ma5qlTp0zTNM2amhoz\nOTnZfPfdd5u87wv9aZrO6/SV/nzooYfMn/70py3W4kpfWj5C2Lt3r4YMGaKoqCj5+/vrhhtu0Nat\nW5usk5eXp+zsbElScnKyqqqqVFFR4XN1StafcJeSkqJ+/fo5fN8X+lJyXqdkfV+GhYUpMTFRkhQY\nGKiYmBgdPXq0yTq+0J9tqVOyvj8lqU+fPpKk6upq1dXVqX///k3e94X+bEudkvX9efjwYb3++uta\nsGBBi7W40peWB8KRI0cUGRlpfx0REaEjR444Xefw4cNeq9FRDefXaRiG3n//fSUkJGjatGnav3+/\nV2tsC1/oy7bwtb4sKSlRYWGhkpOTmyz3tf50VKev9Gd9fb0SExMVGhqqtLQ0xcbGNnnfV/rTWZ2+\n0J+//OUv9cADD8jPr+WvcVf60vJAMNp4ttT5CdjWz7lLW9obPXq0SktL9cknn2jp0qWaOXOmFypr\nP6v7si18qS9PnjypWbNmae3atQoMDGz2vq/0Z2t1+kp/+vn5qaioSIcPH9bOnTtbvBSEL/Snszqt\n7s/XXntNISEhSkpKanWk0t6+tDwQBg0apNLSUvvr0tJSRUREtLrO4cOHNWjQIK/V2FINLdUZFBRk\nH2pOnTpVNTU1qqys9GqdzvhCX7aFr/RlTU2NsrKydOONN7b4R+8r/emsTl/pz0YXXXSRpk+fro8+\n+qjJcl/pz0aO6rS6P99//33l5eUpOjpac+bM0Y4dO3TzzTc3WceVvrQ8EMaOHauDBw+qpKRE1dXV\nevHFF5WZmdlknczMTD377LOSpD179qhv375eP2+hLXVWVFTYE3nv3r0yTbPFfY9W8oW+bAtf6EvT\nNDV//nzFxsZq2bJlLa7jC/3Zljp9oT+/++47+3XLzpw5o+3btyspKanJOr7Qn22p0+r+XL16tUpL\nS1VcXKwXXnhBEydOtPdbI1f60pIzlZsU0LOnHnvsMV111VWqq6vT/PnzFRMTo/Xr10uSFi1apGnT\npun111/XkCFDFBAQoI0bN/pknZs3b9af/vQn9ezZU3369NELL7zg9TrnzJmjd955R999950iIyN1\n9913q6amxl6jL/RlW+r0hb7ctWuXNm3apFGjRtm/EFavXq1//etf9jp9oT/bUqcv9GdZWZmys7NV\nX1+v+vp63XTTTZo0aZLP/a23pU5f6M9zNe4K6mhfcmIaAECSD+wyAgD4BgIBACCJQAAA2BAIAABJ\nBAIAwIZAAABIIhDQCbV0+Qh3euSRR3TmzBm3t/fqq686vLw74As4DwGdTlBQkE6cOOGx7UdHR+uj\njz7SgAEDvNIe4CsYIaBL+PrrrzV16lSNHTtWP/7xj3XgwAFJ0i233KJf/OIXmjBhggYPHqzc3FxJ\nDVezXLJkiWJiYpSRkaHp06crNzdX69at09GjR5WWlqZJkybZt3/nnXcqMTFR48eP17ffftus/WXL\nlmnVqlWSpH/84x+68sorm63z9NNPa+nSpa3Wda6SkhKNGDFCc+fO1fDhw/Wzn/1Mb7zxhiZMmKBh\nw4bpww8/7HjHAedy9cYMgFUCAwObLZs4caJ58OBB0zQbbgYyceJE0zRNMzs727zuuutM0zTN/fv3\nm0OGDDFN0zRffvllc9q0aaZpmmZ5ebnZr18/Mzc31zRN04yKijK///57+7YNwzBfe+010zRN8447\n7jDvueeeZu2fPn3ajIuLM3fs2GEOHz7cPHToULN1nn76afPWW29tta5zFRcXmz179jQ/++wzs76+\n3hwzZow5b9480zRNc+vWrebMmTOd9hXQHpZfywjoqJMnT2r37t2aPXu2fVl1dbWkhmu8NF79MyYm\nxn6DkPfee0/XXXedJNmvee9Ir169NH36dEnSmDFjtH379mbrXHjhhXryySeVkpKitWvXKjo6utWa\nHdV1vujoaMXFxUmS4uLiNHnyZElSfHy8SkpKWm0DaC8CAZ1efX29+vbt6/Cesb169bI/N21TZoZh\nNLlWvNnKVJq/v7/9uZ+fn2pra1tcb9++fRo4cGCzGyc50lJd5+vdu3eTths/01odgKuYQ0CnFxwc\nrOjoaG3evFlSw5frvn37Wv3MhAkTlJubK9M0VVFRoXfeecf+XlBQkI4fP96uGr755hv94Q9/UGFh\nof7+979r7969zdZpLXQAX0AgoNM5ffq0IiMj7Y9HHnlEzz33nDZs2KDExETFx8crLy/Pvv65d4lq\nfJ6VlaWIiAjFxsbqpptu0ujRo3XRRRdJkhYuXKgpU6bYJ5XP//z5d50yTVMLFizQQw89pLCwMG3Y\nsEELFiyw77Zy9FlHz8//jKPXvninO3RuHHaKbuvUqVMKCAjQ999/r+TkZL3//vsKCQmxuizAMswh\noNu6+uqrVVVVperqat11112EAbo9RggAAEnMIQAAbAgEAIAkAgEAYEMgAAAkEQgAABsCAQAgSfp/\np8METwRPdJcAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4d39390>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5578410>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_7.ipynb new file mode 100644 index 00000000..5a167d34 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_7.ipynb @@ -0,0 +1,1661 @@ +{
+ "metadata": {
+ "name": "chapter no.4.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:Stresses in Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.1,Page no.130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=5000 #mm #Length of Beam\n",
+ "a=2000 #mm #Length of start of beam to Pt Load\n",
+ "b=3000 #mm #Length of Pt load to end of beam\n",
+ "A=150*250 #m**2 #Area of beam \n",
+ "b=150 #mm #Width of beam\n",
+ "d=250 #mm #Depth of beam\n",
+ "sigma=10#N/mm**2 #stress\n",
+ "l=2000 #m #Load applied from one end\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*d**3 #m**4\n",
+ "\n",
+ "#Distance from N.A to end\n",
+ "y_max=d*2**-1 #m\n",
+ "\n",
+ "#Section Modulus\n",
+ "Z=1*6**-1*b*d**2 #mm**3\n",
+ "\n",
+ "#Moment Carrying Capacity\n",
+ "M=sigma*Z #N-mm\n",
+ "\n",
+ "#Let w be the Intensity of the Load in N/m,then Max moment\n",
+ "#M_max=w*L**2*8**-1 #N-mm\n",
+ "#After substituting values and further simplifying we get\n",
+ "#M_max=w*25*100*8**-1\n",
+ "\n",
+ "#EQuating it to moment carrying capacity,we get max intensity load\n",
+ "w=M*(25*1000)**-1*8*10**-3\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Let P be the concentrated load,then max moment occurs under the load and its value\n",
+ "#M1=P*a*b*L**-1 #N-mm\n",
+ "\n",
+ "#Equting it to moment carrying capacity we get\n",
+ "P=M*1200**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Intensity of u.d.l it can carry\",round(w,3),\"KN-m\"\n",
+ "print\"MAx concentrated Load P apllied at 2 m from one end is\",round(P,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Intensity of u.d.l it can carry 5.0 N-mm\n",
+ "MAx concentrated Load P apllied at 2 m from one end is 13.021 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.2,Page no.131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=70 #mm #External Diameter\n",
+ "t=8 #mm #Thickness of pipe\n",
+ "L=2500 #mm #span \n",
+ "sigma=150 #N/mm**2 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Internal Diameter \n",
+ "d=D-2*t #mm\n",
+ "\n",
+ "#M.I Of Pipe\n",
+ "I=pi*64**-1*(D**4-d**4) #mm**4\n",
+ "\n",
+ "y_max=D*2**-1 #mm\n",
+ "Z=I*(y_max)**-1 #mm**3\n",
+ "\n",
+ "#Moment Carrying capacity\n",
+ "M=sigma*Z #N*mm\n",
+ "\n",
+ "#Max moment int the beam occurs at the mid-span and is equal to\n",
+ "#m=P*L*4**-1\n",
+ "\n",
+ "#Equating Max moment to moment carrying capacity we get,\n",
+ "#M=P*2.5*L*4**-1\n",
+ "#After substituting and simplifying we get\n",
+ "P=4*M*(L)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Max concentrated load that can be applied at the centre of span is\",round(P,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max concentrated load that can be applied at the centre of span is 5.22 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.3,Page no.132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges Dimension\n",
+ "b1=180 #mm #Width\n",
+ "d1=10 #mm #Thickness\n",
+ "\n",
+ "D=500 #mm #Overall depth\n",
+ "t=8 #mm #Thickness of web\n",
+ "\n",
+ "#Plate Dimensions\n",
+ "b2=240 #mm #Width\n",
+ "t2=12 #mm #Thickness\n",
+ "\n",
+ "sigma=150 #N/mm**2 #Stress\n",
+ "L=3000 #mm #span\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of centroid from bottom fibre\n",
+ "y_bar=(b2*t2*(D+t2*2**-1)+b1*d1*(D-t1*2**-1)+(D-2*t1)*t*D*2**-1+(b1*t1*t1*2**-1))*(b2*t2+b1*d1+b1*d1+(D-2*d1)*t)**-1\n",
+ "\n",
+ "#M.I of section\n",
+ "I=(1*12**-1*b2*t2**3+b2*t2*(D+t2*2**-1-y_bar)**2+1*12**-1*b1*d1**3+b1*d1*(D-t1*2**-1-y_bar)**2+1*12**-1*b1*t1**3+b1*t1*(t1*2**-1-y_bar)**2+1*12**-1*t*(D-2*t1)**3+t*(D-2*t1)*(D*2**-1-y_bar)**2)\n",
+ "\n",
+ "#Section Modulus\n",
+ "Z=I*(y_bar)**-1 #mm**3\n",
+ "\n",
+ "#Moment or Resistance\n",
+ "M=sigma*Z\n",
+ "\n",
+ "#Let Load on Cantilever be w/m Length \n",
+ "#Max M.I produced\n",
+ "#M_max=w*L**2**-1 \n",
+ "\n",
+ "#Now Equating Moment of resistance to Max moment,we get Max load\n",
+ "#4.5*w=M\n",
+ "#After rearranging and further simplifying we get\n",
+ "w=M*4.5**-1*10**3*10**-9\n",
+ "\n",
+ "#Result\n",
+ "print\"Moment of Resistance is\",round(M,2),\"KN-mm\"\n",
+ "print\"Load the section can carry is\",round(w,3),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of Resistance is 198770121.83 KN-mm\n",
+ "Load the section can carry is 44.171 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.4,Page no.134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flange (Top)\n",
+ "b1=80 #mm #Width \n",
+ "t1=40 #mm #Thickness\n",
+ "\n",
+ "#Flange (Bottom)\n",
+ "b2=160 #mm #width\n",
+ "t2=40 #mm #Thickness\n",
+ "\n",
+ "#web\n",
+ "d=120 #mm #Depth\n",
+ "t3=20 #mm #Thickness\n",
+ "\n",
+ "D=200 #mm #Overall Depth\n",
+ "sigma1=30 #N/mm**2 #Tensile stress\n",
+ "sigma2=90 #N/mm**2 #Compressive stress\n",
+ "L=6000 #mm #Span\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of centroid from bottom fibre\n",
+ "y_bar=(b1*t1*(D-t1*2**-1)+d*t3*(d*2**-1+t2)+b2*t2*t2*2**-1)*(b1*t1+d*t3+b2*t2)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b1*t1**3+b1*t1*(D-t1*2**-1-round(y_bar,2))**2+1*12**-1*t3*d**3+t3*d*(d*2**-1+t2-round(y_bar,2))**2+1*12**-1*b2*t2**3+b2*t2*(t2*2**-1-round(y_bar,2))**2\n",
+ "\n",
+ "#Extreme fibre distance of top and bottom fibres are y_t and y_c respectively\n",
+ "\n",
+ "y_t=y_bar #mm\n",
+ "y_c=D-y_bar #mm\n",
+ "\n",
+ "#Moment carrying capacity considering Tensile strength \n",
+ "M1=sigma1*I*y_t**-1*10**-6 #KN-m\n",
+ "\n",
+ "#Moment carrying capacity considering compressive strength \n",
+ "M2=sigma2*I*y_c**-1*10**-6 #KN-m\n",
+ "\n",
+ "#Max Bending moment in simply supported beam 6 m due to u.d.l\n",
+ "#M_max=w*L*10**-3*8**-1\n",
+ "#After simplifying further we get\n",
+ "#M_max=4.5*w\n",
+ "\n",
+ "#Now Equating it to Moment carrying capacity, we get load carrying capacity\n",
+ "w=M1*4.5**-1 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Uniformly Distributed Load is\",round(w,3),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Uniformly Distributed Load is 5.096 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.5,Page no.136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges\n",
+ "b=200 #mm #Width\n",
+ "t=25 #mm #Thickness \n",
+ "\n",
+ "D1=500 #mm #Overall Depth\n",
+ "t2=20 #mm #Thickness of web\n",
+ "\n",
+ "d=450 #mm #Depth of web\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider,Element of Thickness \"y\" at Distance \"dy\" from N.A \n",
+ "#Let Bending stress \"sigma_max\"\n",
+ "\n",
+ "#Stress on the element \n",
+ "#sigma=y*(D*2**-1)*sigma_max ..............(1)\n",
+ "\n",
+ "#Area of Element\n",
+ "#A=b*dy .................................(2)\n",
+ "\n",
+ "#Force on Element \n",
+ "#F=y*250**-1*sigma_max*b*dy\n",
+ "\n",
+ "#Let M be the Moment of resistance\n",
+ "#M=y*250**-1*sigma_max*b*dy*y\n",
+ "\n",
+ "#Moment of Resistance of top flange be M1\n",
+ "def integrand(y, b, D):\n",
+ " return b*y**2*D**-1\n",
+ "b=200 \n",
+ "D=250\n",
+ "\n",
+ "X = quad(integrand, 225, 250, args=(b,D))\n",
+ "\n",
+ "Y=2*X[0]\n",
+ "\n",
+ "#M1=Y*sigma\n",
+ "\n",
+ "#Now Moment of Inertia I section is\n",
+ "X=b*D1**3\n",
+ "Y=(b-t2)*d**3\n",
+ "I=(X-Y)*12**-1*10**-8\n",
+ "\n",
+ "#Moment acting on the entire section\n",
+ "#since sigmais the value at y=250\n",
+ "y_max=250\n",
+ "Z=I*10**8*y_max**-1\n",
+ "#M=sigma*Z \n",
+ "#After Simplifying Further we get\n",
+ "#M2=Z*sigma\n",
+ "\n",
+ "#Percentage Moment resisted by Flanges\n",
+ "P1=2258333.3*(2865833.3)**-1*100\n",
+ "\n",
+ "#Percentage Moment resisted by web\n",
+ "P2=100-P1\n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage Moment resisted by Flanges\",round(P1,2),\"%\"\n",
+ "print\"Percentage Moment resisted by web\",round(P2,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Moment resisted by Flanges 78.8 %\n",
+ "Percentage Moment resisted by web 21.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.6,Page no.137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges\n",
+ "b1=200 #mm #Width\n",
+ "t1=10 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=380 #mm #Depth \n",
+ "t2=8 #mm #Thickness\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "sigma=150 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area\n",
+ "A=b1*t1+d*t2+b1*t1 #mm**2\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*(b1*D**3-(b1-t2)*d**3)\n",
+ "\n",
+ "#Bending Moment\n",
+ "M=sigma*I*(D*2**-1)**-1\n",
+ "\n",
+ "#Square Section\n",
+ "\n",
+ "#Let 'a' be the side\n",
+ "a=A**0.5\n",
+ "\n",
+ "#Moment of Resistance of this section\n",
+ "M1=1*6**-1*a*a**2*sigma\n",
+ "\n",
+ "X=M*M1**-1\n",
+ "\n",
+ "#Rectangular section\n",
+ "#Let 'a' be the side and depth be 2*a\n",
+ "\n",
+ "a=(A*2**-1)**0.5\n",
+ "\n",
+ "#Moment of Rectangular secction\n",
+ "M2=1*6**-1*a*(2*a)**2*sigma\n",
+ "\n",
+ "X2=M*M2**-1\n",
+ "\n",
+ "#Circular section\n",
+ "#A=pi*d1**2*4**-1\n",
+ "\n",
+ "d1=(A*4*pi**-1)**0.5\n",
+ "\n",
+ "#Moment of circular section\n",
+ "M3=pi*32**-1*d1**3*sigma\n",
+ "\n",
+ "X3=M*M3**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Moment of resistance of beam section\",round(M,2),\"mm\"\n",
+ "print\"Moment of resistance of square section\",round(X,2),\"mm\"\n",
+ "print\"Moment of resistance of rectangular section\",round(X2,2),\"mm\"\n",
+ "print\"Moment of resistance of circular section\",round(X3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of resistance of beam section 141536000.0 mm\n",
+ "Moment of resistance of square section 9.58 mm\n",
+ "Moment of resistance of rectangular section 6.78 mm\n",
+ "Moment of resistance of circular section 11.33 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.7,Page no.139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=12 #KN #Force at End of beam\n",
+ "L=2 #m #span\n",
+ "\n",
+ "#Square section \n",
+ "b=d=200 #mm #Width and depth of beam\n",
+ "\n",
+ "#Rectangular section\n",
+ "b1=150 #mm #Width\n",
+ "d1=300 #mm #Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max bending Moment\n",
+ "M=F*L*10**6 #N-mm\n",
+ "\n",
+ "#M=sigma*b*d**2\n",
+ "sigma=M*6*(b*d**2)**-1 #N/mm**2\n",
+ "\n",
+ "#Let W be the central concentrated Load in simply supported beam of span L1=3 m\n",
+ "#MAx Moment\n",
+ "#M1=W*L1*4**-1\n",
+ "#After Further simplifying we get\n",
+ "#M1=0.75*10**6 #N-mm\n",
+ "\n",
+ "#The section has a moment of resistance\n",
+ "M1=sigma*1*6**-1*b1*d1**2\n",
+ "\n",
+ "#Equating it to moment of resistance we get max load W\n",
+ "#0.75*10**6*W=M1\n",
+ "#After Further simplifying we get\n",
+ "W=M1*(0.75*10**6)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Minimum Concentrated Load required to brek the beam\",round(W,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum Concentrated Load required to brek the beam 54.0 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.8,Page no.140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3 #m #span\n",
+ "sigma_t=35 #N/mm**2 #Permissible stress in tension\n",
+ "sigma_c=90 #N/mm**2 #Permissible stress in compression\n",
+ "\n",
+ "#Flanges\n",
+ "t=30 #mm #Thickness\n",
+ "d=250 #mm #Depth\n",
+ "\n",
+ "#Web\n",
+ "t2=25 #mm #Thickness\n",
+ "b=600 #mm #Width\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let y_bar be the Distance of N.A from Extreme Fibres\n",
+ "y_bar=(t*d*d*2**-1*2+(b-2*t)*t2*t2*2**-1)*(t*d*2+(b-2*t)*t2)**-1\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=(1*12**-1*t*d**3+t*d*(d*2**-1-y_bar)**2)*2+1*12**-1*(b-2*t)*t2**3+(b-2*t)*t2*(t2*2**-1-y_bar)**2\n",
+ "\n",
+ "#Part-1\n",
+ "\n",
+ "#If web is in Tension\n",
+ "y_t=y_bar #mm\n",
+ "y_c=d-y_bar #mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of tensile stress\n",
+ "M=sigma_t*I*(y_bar)**-1 #N-mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of compressive stress\n",
+ "M1=sigma_c*I*(y_c)**-1 #N-mm\n",
+ "\n",
+ "#If w KN/m is u.d.l in beam,Max bending moment\n",
+ "#M=wl**2*8**-1\n",
+ "#After further simplifyng we get\n",
+ "#M=1.125*w*10**6 N-mm\n",
+ "w=M*(1.125*10**6)**-1 #KN\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#If web is in compression\n",
+ "y_t2=178.299 #mm\n",
+ "y_c2=71.71 #mm \n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of tensile stress\n",
+ "M2=sigma_t*I*(y_t2)**-1 #N-mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of compressive stress\n",
+ "M3=sigma_c*I*(y_c2)**-1 #N-mm\n",
+ "\n",
+ "#Moment of resistance is M2\n",
+ "\n",
+ "#Equating it to bending moment we get\n",
+ "#M2=1.125*10**6*w2\n",
+ "#After further simplifyng we get\n",
+ "w2=M2*(1.125*10**6)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Uniformly Distributed Load carrying capacity if:web is in Tension\",round(w,2),\"KN\"\n",
+ "print\" :web is in compression\",round(w2,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniformly Distributed Load carrying capacity if:web is in Tension 73.21 KN\n",
+ " :web is in compression 29.446 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.9,Page no.141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b1=200 #mm #Width at base\n",
+ "b2=100 #mm #Width at top\n",
+ "\n",
+ "L=8 #m Length\n",
+ "P=500 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider a section at y metres from top\n",
+ "\n",
+ "#At this section diameter d is\n",
+ "#d=b2+y*L**-1*(b1-b2)\n",
+ "#After Further simplifying we get\n",
+ "#d=b2+12.5*y #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "#I=pi*64**-1*d**4\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=pi*32**-1*(b1+12.5*y)**3\n",
+ "\n",
+ "#Moment \n",
+ "#M=5*10**5*y #N-mm\n",
+ "\n",
+ "#Let sigma be the fibre stress at this section then\n",
+ "#M=sigma*Z\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "#sigma=5*10**5*32*pi**-1*y*((b2+12.5*y)**3)**-1\n",
+ "\n",
+ "#For sigma to be Max,d(sigma)*(dy)**-1=0\n",
+ "#16*10**6*pi**-1*((b2+12.5*y)**-3+y*(-3)*(b2+12.5*y)**-4*12.5)\n",
+ "#After Further simplifying we get\n",
+ "#b2+12.5*y=37.5*y\n",
+ "#After Further simplifying we get\n",
+ "y=b2*25**-1 #m\n",
+ "\n",
+ "#Stress at this section\n",
+ "sigma=5*10**5*32*pi**-1*y*((b2+12.5*y)**3)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress at Extreme Fibre is max\",round(y,2),\"m\"\n",
+ "print\"Max stress is\",round(sigma,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress at Extreme Fibre is max 4.0 m\n",
+ "Max stress is 6.04 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.10,Page no.143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "H=10 #mm #Height\n",
+ "A1=160*160 #mm**2 #area of square section at bottom\n",
+ "L1=160 #mm #Length of square section at bottom\n",
+ "b1=160 #mm #width of square section at bottom\n",
+ "A2=80*80 #mm**2 #area of square section at top\n",
+ "L2=80 #mm #Length of square section at top\n",
+ "b2=80 #mm #Width of square section at top\n",
+ "P=100 #N #Pull\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider a section at distance y from top.\n",
+ "#Let the side of square bar be 'a'\n",
+ "#a=L2+y*(H)**-1*(b1-b2)\n",
+ "#After further simplifying we get\n",
+ "#a=L2+8*y\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "#I=2*1*12**-1*a*(2)**0.5*(a*((2)**0.5)**-1)**3\n",
+ "#After further simplifying we get\n",
+ "#I=a**4*12**-1\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=a**4*(12*a*(2)**0.5)**-1\n",
+ "#After further simplifying we get\n",
+ "#Z=2**0.5*a**3*(12)**-1 #mm**3\n",
+ "\n",
+ "#Bending moment at this section=100*y N-mm\n",
+ "#M=100*10**3*y #N-mm\n",
+ "\n",
+ "#But\n",
+ "#M=sigma*Z\n",
+ "#After sub values in above equation we get\n",
+ "#sigma=M*Z**-1\n",
+ "#After further simplifying we get\n",
+ "#sigma=1200*10**3*(2**0.5)**-1*y*((80+80*y)**3)**-1 .......(1)\n",
+ "\n",
+ "#For Max stress df*(dy)**-1=0\n",
+ "#After taking Derivative of above equation we get\n",
+ "#df*(dy)**-1=1200*10**3*(2**0.5)**-1*((80+8*y)**-3+y(-3)*(80+8*y)**-4*8)\n",
+ "#After further simplifying we get\n",
+ "y=80*16**-1 #m\n",
+ "\n",
+ "#Max stress at this level is\n",
+ "sigma=1200*10**3*(2**0.5)**-1*y*((80+8*y)**3)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Bending stress is Developed at\",round(y,3),\"m\"\n",
+ "print\"Value of Max Bending stress is\",round(sigma,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Bending stress is Developed at 5.0 m\n",
+ "Value of Max Bending stress is 2.455 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.12,Page no.147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=200 #mm #Width of timber \n",
+ "d=400 #mm #Depth of timber\n",
+ "t=6 #mm #Thickness\n",
+ "b2=200 #mm #width of steel plate\n",
+ "t2=20 #mm #Thickness of steel plate\n",
+ "M=40*10**6 #KN-mm #Moment\n",
+ "#Let E_s*E_t**-1=X\n",
+ "X=20 #Ratio of Modulus of steel to timber\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#let y_bar be the Distance of centroidfrom bottom most fibre\n",
+ "y_bar=(b*d*(b+t)+t2*b2*t*t*2**-1)*(b*d+t2*b2*t)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*d**3+b*d*(b+t-round(y_bar,3))**2+1*12**-1*t2*b2*t**3+b2*t2*t*(round(y_bar,3)-t*2**-1)**2\n",
+ "\n",
+ "#distance of the top fibre from N-A\n",
+ "y_1=d+t-y_bar #mm\n",
+ "\n",
+ "#Distance of the junction of timber and steel From N-A\n",
+ "y_2=y_bar-t #mm\n",
+ "\n",
+ "#Stress in Timber at the top\n",
+ "Y=M*I**-1*y_1 #N/mm**2\n",
+ "\n",
+ "#Stress in the Timber at the junction point\n",
+ "Z=M*I**-1*y_2\n",
+ "\n",
+ "#Coressponding stress in steel at the junction point\n",
+ "Z2=X*Z #N/mm**2 \n",
+ "\n",
+ "#The stress in Extreme steel fibre \n",
+ "Z3=X*M*I**-1*y_bar\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress in Extreme steel Fibre\",round(Z3,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in Extreme steel Fibre 69.67 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.13,Page no.149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Timber size\n",
+ "b=150 #mm #Width\n",
+ "d=300 #mm #Depth\n",
+ "\n",
+ "t=6 #mm #Thickness of steel plate\n",
+ "l=6 #m #Span\n",
+ "\n",
+ "#E_s*E_t**-1=20 \n",
+ "#m=E_s*E_t**-1\n",
+ "m=20 \n",
+ "sigma_timber=8 #N/mm**2 #Stress in timber\n",
+ "sigma_steel=150 #N/mm**2 #Stress in steel plate\n",
+ "\n",
+ "#Let m*t=Y\n",
+ "Y=m*t #mm\n",
+ "L=(2*t+b)*m #mm #Width of flitched beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Due to synnetry cenroid,the neutral axis is half the depth\n",
+ "I=(1*12**-1*L*t**3+L*t*(b+t*2**-1)**2)*2+1*12**-1*(Y+b+Y)*d**3 #mm**4\n",
+ "\n",
+ "y_max1=150 #mm #For timber\n",
+ "y_max2=156 #mm #For steel\n",
+ "\n",
+ "#stress in steel\n",
+ "f_t1=1*m**-1*sigma_steel #N/mm**2\n",
+ "\n",
+ "#Moment of resistance\n",
+ "M=f_t1*(I*y_max2**-1)\n",
+ "\n",
+ "#load\n",
+ "w=8*M*(l**2)**-1*10**-6 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Load beam can carry is\",round(w,2),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load beam can carry is 19.1 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.14,Page no.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6000 #mm #Span of beam\n",
+ "W=20*10**3 #N #Load\n",
+ "sigma=8 #N/mm**2 #Stress\n",
+ "b=200 #mm #Width of section\n",
+ "d=300 #mm #Depth of section\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#let x be the distance from left side of beam\n",
+ "\n",
+ "#Bending moment\n",
+ "#M=W*2**-1*x #Nmm .......(1)\n",
+ "\n",
+ "#But M=sigma*Z ..........(2)\n",
+ "\n",
+ "#Equating equation 1 and 2 we get\n",
+ "#W*2**-1*x=sigma*Z ............(3)\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=1*6*b*d**2 ...............(4)\n",
+ "\n",
+ "#Equating equation 3 and 4 we get\n",
+ "#b*d**2=3*W*x*sigma**-1 .............(5)\n",
+ "\n",
+ "#Beam of uniform strength of constant depth\n",
+ "#b=3*W*x*(sigma*d**2) \n",
+ "\n",
+ "#When x=0\n",
+ "b=0\n",
+ "\n",
+ "#When x=L*2**-1\n",
+ "b2=3*W*L*(2*sigma*d**2)**-1 #mm\n",
+ "\n",
+ "#Beam with constant width of 200 mm\n",
+ "\n",
+ "#We have\n",
+ "#d=(3*W*x*(sigma*d)**-1)**0.5\n",
+ "#thus depth varies as (x)**0.5\n",
+ "\n",
+ "#when x=0\n",
+ "d1=0\n",
+ "\n",
+ "#when x=L*2**-1\n",
+ "d2=(3*W*L*(2*sigma*200)**-1)**0.5 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Cross section of rectangular beam is:\",round(b2,2),\"mm\"\n",
+ "print\" :\",round(d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cross section of rectangular beam is: 250.0 mm\n",
+ " : 335.41 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.15,Page no.154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=800 #mm #Span\n",
+ "n=5 #number of leaves\n",
+ "b=60 #mm #Width\n",
+ "t=10 #mm #thickness\n",
+ "sigma=250 #N/mm**2 #Stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#section Modulus\n",
+ "Z=n*6**-1*b*t**2 #mm**3\n",
+ "\n",
+ "#from the relation\n",
+ "#sigma*Z=M ...................(1)\n",
+ "#M=P*L*4**-1\n",
+ "#sub values of M in equation 1 we get\n",
+ "P=sigma*Z*4*L**-1*10**-3 #KN #Load\n",
+ "\n",
+ "#Length of Leaves\n",
+ "L1=0.2*L #mm\n",
+ "L2=0.4*L #mm\n",
+ "L3=0.6*L #mm\n",
+ "L4=0.8*L #mm\n",
+ "L5=L #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Load it can take is\",round(P,2),\"KN\"\n",
+ "print\"Length of leaves:L1\",round(L1,2),\"mm\"\n",
+ "print\" :L2\",round(L2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Load it can take is 6.25 KN\n",
+ "Length of leaves:L1 160.0 mm\n",
+ " :L2 320.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.16,Page no.161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=20*10**3 #N #Shear Force\n",
+ "\n",
+ "#Tee section\n",
+ "\n",
+ "#Flange\n",
+ "b=100 #mm #Width\n",
+ "t=12 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=88 #mm #Depth\n",
+ "t2=12 #mm #Thicknes\n",
+ "\n",
+ "D=100 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of C.G from Top Fibre\n",
+ "y=(b*t*t*2**-1+t2*d*(d*2**-1+t))*(b*t+d*t2)**-1 #mm \n",
+ "\n",
+ "#Moment Of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-t*2**-1)**2+1*12**-1*t2*d**3+t2*d*(t+d*2**-1-y)**2 #mm**4\n",
+ "\n",
+ "#shear stress at bottom Flange\n",
+ "\n",
+ "#Area above this level\n",
+ "A=b*t #mm**2\n",
+ "\n",
+ "#C.G of this area from N-A\n",
+ "y2=y-t*2**-1\n",
+ "\n",
+ "#Stress at bottom of flange\n",
+ "sigma=F*A*y2*(b*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#sigma2 at same level but in web where width is 12 mm\n",
+ "sigma2=F*A*y2*(t2*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#To find shear stress at N-A\n",
+ "X=t*b*(y-t*2**-1)+t2*(y-t2)*(y-t2)*2**-1 #mm**3\n",
+ "\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at top and bottom fibre is zero\n",
+ "#sigma4 and sigma5 are top and bottom fibre shear stress\n",
+ "sigma4=sigma5=0\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,t,t,y,D]\n",
+ "Y1=[sigma4,sigma,sigma2,sigma3,sigma5]\n",
+ "Z1=[0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nnntYs2YN3bt3p3nz5nzxxRflv3Ail3JWibWIM/j5+V32Wq9evawDBw5YlmVZW7dutXr16mVZlmXd\nd9991tChQy3LsqxvvvnGuvXWWy3Lsqy3337b6tevn2VZlpWZmWndeOON1rJlyyzLsqygoCDr6NGj\nhcd2OBzWqlWrLMuyrCeeeMJ65plnLjv/qVOnrPDwcGvdunVWSEiI9d133132nvnz51sTJky4alwX\nS0lJsapWrWp9/fXXVkFBgdW+fXtr9OjRlmVZ1vLly62BAweWeK1ErlVVuxOSSHnk5OSwZcsWhgwZ\nUvhabm4uYJb6Pb/QV4sWLQrXid+4cSNDhw4FzEqRUVFRxR6/WrVq9O/fH4D27duzdu3ay95z/fXX\nM3fuXHr06MGsWbMIDg6+aszFxXWp4OBgwsPDAQgPD6d3794AtGzZktTU1KueQ6QslBDEoxUUFFCn\nTh127Nhxxd9Xq1at8Ll1brjM4XAU2WPBusowmq+vb+FzHx8f8vLyrvi+Xbt20aBBg1Jv6HSluC5V\nvXr1Iuc+/5mrxSFSHhpDEI9Wu3ZtgoODeeeddwBzc921a9dVP9O9e3eWLVuGZVlkZWWxfv36wt/V\nqlWLEydOXFMM33//PX/729/YsWMHH374Idu2bbvsPVdLOiLuQglBPMqpU6do0qRJ4ePFF1/kzTff\n5NVXX6Vt27a0bNmSFStWFL7/4h2izj9PTEwkMDCQsLAwhg8fTrt27bjhhhsAuP/+++nbt2/hoPKl\nn790xynLshg7diwvvPACAQEBvPrqq4wdO7aw26q4zxb3/NLPFPezt+4IJs6laafilU6ePEnNmjU5\nevQonTt3ZvPmzV61y5bIlWgMQbzSgAEDyM7OJjc3l6eeekrJQAS1EERE5ByNIYiICKCEICIi5ygh\niIgIoIQgIiLnKCGIiAighCAiIuf8f5wqyy9KzUKHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56a6270>"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.17,Page no.163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=40*10**3 #N #shear Force\n",
+ "\n",
+ "#I-section\n",
+ "\n",
+ "#Flanges\n",
+ "b=80 #mm #Width of flange\n",
+ "t=20 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=200 #mm #Depth\n",
+ "t2=20 #mm #Thickness\n",
+ "\n",
+ "#Flange-2\n",
+ "b2=160 #mm #Width\n",
+ "t3=20 #mm #Thickness\n",
+ "\n",
+ "D=240 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of N-A from Top Fibre \n",
+ "y=(b*t*t*2**-1+d*t2*(t+d*2**-1)+b2*t3*(t+d+t3*2**-1))*(b*t+d*t2+b2*t3)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-(t*2**-1))**2+1*12**-1*t2*d**3+t2*d*(y-(t+d*2**-1))**2+1*12**-1*b2*t3**3+t3*b2*((d+t+t3*2**-1)-y)**2 #mm**4\n",
+ "\n",
+ "#Shear stress bottom of flange\n",
+ "sigma=F*b*t*(y-t*2**-1)*(b*I)**-1 #N/mm**2\n",
+ "\n",
+ "#At same Level but in web\n",
+ "sigma2=F*b*t*(y-t*2**-1)*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#for shear stress at N.A\n",
+ "X=b*t*(y-t*2**-1)+t2*(y-t)*(y-t)*2**-1 #mm**3\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at bottom of web\n",
+ "\n",
+ "X=b2*t3*((D-y)-t3*2**-1) #mm**3\n",
+ "\n",
+ "#Stress at bottom of web\n",
+ "sigma4=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Stress at Lower flange\n",
+ "sigma5=F*X*(b2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force Diagram is the result\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,20,20,140,220,220,240]\n",
+ "Y1=[0,sigma,sigma2,sigma3,sigma4,sigma5,0]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length in mm\")\n",
+ "plt.ylabel(\"Shear Force in N\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force Diagram is the result\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n/w/qZz1xEBCKMwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5614110>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.18,Page no.164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=30*10**3 #N #Shear Force\n",
+ "\n",
+ "#Channel Section\n",
+ "d=400 #mm #Depth of web \n",
+ "t=10 #mm #THickness of web\n",
+ "t2=15 #mm #Thickness of flange\n",
+ "b=100 #mm #Width of flange\n",
+ "\n",
+ "#Rectangular Welded section\n",
+ "b2=80 #mm #Width\n",
+ "d2=60 #mm #Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of Centroid From Top Fibre\n",
+ "y=(d*t*t*2**-1+2*t2*(b-t)*((b-t)*2**-1+10)+d2*b2*(d2*2**-1+t))*(d*t+2*t2*(b-t)+d2*b2)**-1 #mm\n",
+ "\n",
+ "#Moment Of Inertia of the section about N-A\n",
+ "I=1*12**-1*d*t**3+d*t*(y-t*2**-1)**2+2*(1*12**-1*t2*(b-t)**3+t2*(b-t)*(((b-t)*2**-1+t)-y)**2)+1*12**-1*d2**3*b2+d2*b2*(d2*2**-1+t-y)**2\n",
+ "\n",
+ "#Shear stress at level of weld\n",
+ "sigma=F*d*t*(y-t*2**-1)*((b2+t2+t2)*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Max Shear Stress occurs at Neutral Axis\n",
+ "X=d*t*(y-t*2**-1)+2*t2*(y-t)*(y-t)*2**-1+b2*(y-t)*(y-t)*2**-1\n",
+ "\n",
+ "sigma_max=F*X*((b+t)*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Shear stress in the weld is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\"Max shear stress is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear stress in the weld is 3.62 N/mm**2\n",
+ "Max shear stress is 4.48 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.19,Page no.165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Wooden Section\n",
+ "b=300 #mm #Width\n",
+ "d=300 #mm #Depth\n",
+ "\n",
+ "D=100 #mm #Diameter of Bore\n",
+ "F=10*10**3 #N #Shear Force\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment Of Inertia Of Section\n",
+ "I=1*12**-1*b*d**3-pi*64**-1*D**4\n",
+ "\n",
+ "#Shear stress at crown of circle\n",
+ "sigma=F*b*D*(d*2**-1-D*2**-1)*(b*I)**-1\n",
+ "\n",
+ "#Let a*y_bar=X\n",
+ "X=b*d*2**-1*d*4**-1-pi*8**-1*D**2*4*D*2**-1*(3*pi)**-1 #mm**3\n",
+ "\n",
+ "#Shear Stress at Neutral Axis\n",
+ "sigma2=F*X*((b-D)*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shearing Stress at Crown of Bore\",round(sigma,3),\"N/mm**2\"\n",
+ "print\"Shear Stress at Neutral Axis\",round(sigma2,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shearing Stress at Crown of Bore 0.149 N/mm**2\n",
+ "Shear Stress at Neutral Axis 0.246 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.20,Page no.166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#flanges\n",
+ "b=200 #mm #width\n",
+ "t1=25 #mm #Thickness\n",
+ "\n",
+ "#web\n",
+ "d=450 #mm #Depth \n",
+ "t2=20 #mm #thickness\n",
+ "\n",
+ "D=500 #mm #Total Depth of section\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment Of Inertia of the section about N-A\n",
+ "I=1*12**-1*b*D**3-1*12**-1*(b-t2)*d**3 #mm**4\n",
+ "\n",
+ "#Consider an element in the web at distance y from y from N-A\n",
+ "#Depth of web section=225-y\n",
+ "\n",
+ "#C.G From N-A\n",
+ "#y2=y+(((D*2**-1-t)-y)*2**-1)\n",
+ "\n",
+ "#ay_bar for section at y\n",
+ "#Let ay_bar be X\n",
+ "#X=X1 be of Flange + X2 be of web above y\n",
+ "#X=b*t1*(D*2**-1-t1*2**-1)+t2*(d-t1)*(d-t1+y)*2**-1\n",
+ "#After Sub values and Further simplifying we get\n",
+ "#X=1187500+10*(225**2-y**2)\n",
+ "\n",
+ "#Shear stress at y\n",
+ "#sigma_y=F*(X)*(t2*I)**-1\n",
+ "\n",
+ "#Shear Force resisted by the Element\n",
+ "#F1=F*X*t2*dy*(t2*I)**-1\n",
+ "\n",
+ "#Shear stress resisted by web \n",
+ "#sigma=2*F*I**-1*(X)*dy\n",
+ "\n",
+ "#After Integrating above equation and further simplifying we get\n",
+ "#sigma=0.9578*F\n",
+ "\n",
+ "sigma=0.9578*100\n",
+ "\n",
+ "#Result\n",
+ "print\"Shear Resisted by web\",round(sigma,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear Resisted by web 95.78 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.21,Page no.167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Wooden Beam\n",
+ "\n",
+ "b=150 #mm #width\n",
+ "d=250 #mm #Depth\n",
+ "\n",
+ "L=5000 #mm #span\n",
+ "m=11.2 #N/mm**2 #Max Bending stress\n",
+ "sigma=0.7 #N/mm**2 #Max shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let 'a' be the distance from left support\n",
+ "#Max shear force\n",
+ "#F=R_A=W*(L-a)*L**-1 \n",
+ "\n",
+ "#Max Moment\n",
+ "#M=W*(L-a)*a*L**-1\n",
+ "\n",
+ "#But M=sigma*Z\n",
+ "#W*(L-a)*a*L**-1=m*1*6**-1*b*d**2 .....................(1)\n",
+ "\n",
+ "#In Rectangular Section MAx stress is 1.5 times Avg shear stress\n",
+ "F=sigma*b*d*1.5**-1\n",
+ "\n",
+ "#W*(L-a)*L**-1=F .....................(2)\n",
+ "\n",
+ "#Dividing Equation 1 nad 2 we get\n",
+ "a=m*6**-1*b*d**2*1.5*(sigma*b*d)**-1\n",
+ "\n",
+ "#Sub above value in equation 2 we get\n",
+ "W=(L-a)**-1*L*F*10**-3 #KN \n",
+ "\n",
+ "#Result\n",
+ "print\"Load is\",round(W,2),\"KN\"\n",
+ "print\"Distance from Left support is\",round(a,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load is 21.87 KN\n",
+ "Distance from Left support is 1000.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.22,Page no.168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #span\n",
+ "\n",
+ "#Rectangular Section\n",
+ "\n",
+ "b=200 #mm #width\n",
+ "d=400 #mm #depth\n",
+ "\n",
+ "sigma=1.5 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let AB be the cantilever beam subjected to load W KN at free end\n",
+ "\n",
+ "#MAx shear Force\n",
+ "#F=W*10**3 #KN\n",
+ "\n",
+ "#Since Max shear stress in Rectangular section\n",
+ "#sigma_max=1.5*F*A**-1 \n",
+ "#After sub values and further simplifyng we get\n",
+ "W=1.5*b*d*(1.5*1000)**-1 #KN\n",
+ "\n",
+ "#Moment at fixwed end\n",
+ "M=W*1 #KN-m\n",
+ "y_max=d*2**-1 #mm\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*d**3 #mm**3\n",
+ "\n",
+ "#MAx Stress\n",
+ "sigma_max=M*10**6*I**-1*y_max\n",
+ "\n",
+ "#Result\n",
+ "print\"Concentrated Load is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentrated Load is 15.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.24,Page no.170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=4000 #mm #span\n",
+ "\n",
+ "#Rectangular Cross-section\n",
+ "b=100 #mm #Width\n",
+ "d=200 #mm #Thickness\n",
+ "\n",
+ "F_per=10 #N/mm**2 #Max Bending stress\n",
+ "q_max=0.6 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#If the Load W is in KN/m\n",
+ "\n",
+ "#Max shear Force\n",
+ "#F=w*l*2**-1 #KN\n",
+ "#After substituting values and further simplifying we get\n",
+ "#M=2*w #KN-m\n",
+ "\n",
+ "#Max Load from Consideration of moment\n",
+ "#M=1*6**-1*b*d**2*F_per\n",
+ "#After substituting values and further simplifying we get\n",
+ "w=(1*6**-1*b*d**2*F_per)*(2*10**6)**-1 #KN/m\n",
+ "\n",
+ "#Max Load from Consideration of shear stress\n",
+ "#q_max=1.5*F*(b*d)**-1 #N\n",
+ "#After substituting values and further simplifying we get\n",
+ "F=q_max*(1.5)*b*d #N\n",
+ "\n",
+ "#If w is Max Load in KN/m,then\n",
+ "#2*w*1000=8000\n",
+ "#After Rearranging and Further simplifying we get\n",
+ "w2=8000*(2*1000)**-1 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Uniformly Distributed Load Beam can carry is\",round(w,2),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniformly Distributed Load Beam can carry is 3.33 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_7.ipynb new file mode 100644 index 00000000..df0cb600 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_7.ipynb @@ -0,0 +1,1019 @@ +{
+ "metadata": {
+ "name": "chapter no.5.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:Deflections Of Beams By Double Integration Methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.2,Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #span of beam\n",
+ "a=2000 #mm\n",
+ "W1=20*10**3 #N #Pt Load Acting on beam\n",
+ "W2=30*10**3 #N #Pt Load Acting on beam\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "I=2*10**8 #mm**4 #M.I\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Deflection at free End Due to W2\n",
+ "dell1=W2*L**3*(3*E*I)**-1 #mm\n",
+ "\n",
+ "#Deflection at free end Due to W1\n",
+ "dell2=W1*a**3*(3*E*I)**-1+(L-a)*W1*a**2*(2*E*I)**-1 #mm\n",
+ "\n",
+ "#Total Deflection at free end\n",
+ "dell=dell1+dell2 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection at Free End is\",round(dell,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection at Free End is 9.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.4,Page No.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "I=180*10**6 #mm**4 #M.I\n",
+ "W1=20 #N/m #u.d.l\n",
+ "W2=20*10**3 #N #Pt load\n",
+ "L=3000 #m #Span of beam\n",
+ "a=2000 #m #Span of u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Displacement of free End due to 20 KN Pt load at free end\n",
+ "dell1=W2*L**3*(3*E*I)**-1 #mm\n",
+ "\n",
+ "#Displacement of free end due to u.d.l\n",
+ "dell2=W1*a**4*(8*E*I)**-1+(L-a)*W1*a**3*(6*E*I)**-1\n",
+ "\n",
+ "#Deflection at free end\n",
+ "dell=dell1+dell2 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"The Displacement of Free End of cantilever beam is\",round(dell,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Displacement of Free End of cantilever beam is 6.85 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.10,Page No.201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200*10**6 #KN/m**2 #Young's Modulus\n",
+ "I=15*10**-6 #m**4 #M.I\n",
+ "a=4000 #m \n",
+ "L_AB=6 #m #Span of beam\n",
+ "L_CB=2 #m #Length of CB\n",
+ "F_C=18 #KN #force at C\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the Reactions at A & B Respectively\n",
+ "#V_A+V_B=18\n",
+ "#Now taking moment at B,we get M_B\n",
+ "V_A=(F_C*L_CB)*L_AB**-1\n",
+ "V_B=18-V_A\n",
+ "\n",
+ "#Now Taking Moment at distance x\n",
+ "#M_x=6*x-18*(x-4)\n",
+ "#EI*d**2*y*(d*x**2)**-1=6*x-18*(x-4)\n",
+ "\n",
+ "#Now Integrating above equation,we get\n",
+ "#EI*dy*(dx)**-1=C1+3*x**2-9(x-4)**4\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+x**3-3*(x-4)**3\n",
+ "\n",
+ "#The Boundary conditions\n",
+ "x=0\n",
+ "y=0 #.....(a)\n",
+ "\n",
+ "x=6\n",
+ "y=0 #....(b)\n",
+ "\n",
+ "#From Boundary Condition(B.C) a we get\n",
+ "C2=0\n",
+ "\n",
+ "#From Boundary Condition(B.C) b we get\n",
+ "#6*C1+216-3*8\n",
+ "#After Further simplifying we get\n",
+ "C1=-(216-24)*6**-1\n",
+ "\n",
+ "#EI*y=-32*x+x**3-3*(x-4)**3\n",
+ "#EI*dy*(dx)**-1=-32+3*x**2-9(x-4)**4\n",
+ "\n",
+ "#For Max Deflection\n",
+ "#Assume it inthe Porion AC i.e x=4=a\n",
+ "#0=-32+3*x**2\n",
+ "x=(32*3**-1)**0.5\n",
+ "\n",
+ "#Value of Max deflection is\n",
+ "ymax=(-32*x+x**3)*(E*I)**-1 #mm\n",
+ "\n",
+ "#slope at mid-span\n",
+ "\n",
+ "#EI*(dy*(dx)**-1)_centre=-32+3*x**2\n",
+ "#at centre ,\n",
+ "x1=3 #m\n",
+ "\n",
+ "#Let (dy*(dx)**-1)_centre=X\n",
+ "X=-(-32+3*x1**2)*(E*I)**-1 #Radian\n",
+ "\n",
+ "#Deflection at Load Point\n",
+ "x2=4 #m\n",
+ "#EI*y_c=-32*x2+x2**3\n",
+ "\n",
+ "y_c=-(-32*x2+x2**3)*(E*I)**-1\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Value of Max Deflection\",round(ymax,4),\"mm\"\n",
+ "print\"SLope at mid-span\",round(X,4),\"radian\"\n",
+ "print\"Deflection at the Load Point is\",round(y_c,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Max Deflection -0.0232 mm\n",
+ "SLope at mid-span 0.0017 radian\n",
+ "Deflection at the Load Point is 0.0213 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.11,Page No.203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_CB=2 #m #Length of CB\n",
+ "L_AC=4 #m #Length of AB\n",
+ "M_C=15 #KN.m #Moment At Pt C\n",
+ "F_C=30 #KN\n",
+ "L=6 #m Span of Beam\n",
+ "\n",
+ "#Let X=E*I\n",
+ "X=10000 #KN-m**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A and V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=30\n",
+ "\n",
+ "#Taking Moment a A,we get\n",
+ "V_B=(F_C*L_AC+M_C)*L**-1\n",
+ "V_A=30-V_B\n",
+ "\n",
+ "#Now Taking Moment at distacnce x from A\n",
+ "#M_x=7.5*x-30*(x-4)+15\n",
+ "\n",
+ "#By using Macaulay's Method\n",
+ "#EI*(d**2*x/dx**2)=M_x=7.5*x-30*(x-4)+15\n",
+ "\n",
+ "#Now Integrating above Equation we get\n",
+ "#EI*(dy/dx)=C1+7.5*x**2*2**-1-15*(x-4)**2+15*(x-4) ............(1)\n",
+ "\n",
+ "#Again Integrating above Equation we get\n",
+ "#EIy=C2+C1*x+7.5*6**-1*x**3-5*(x-4)**3+15*(x-4)**2*2**-1..........(2)\n",
+ "\n",
+ "#Boundary Cinditions\n",
+ "x=0\n",
+ "y=0\n",
+ "\n",
+ "#Substituting above equations we get \n",
+ "C2=0\n",
+ "\n",
+ "x=6 #m\n",
+ "y=0\n",
+ "\n",
+ "C1=-(7.5*6**3*6**-1-5*2**3+15*2**2*2**-1)*6**-1\n",
+ "\n",
+ "#EIy_c=C2+C1*x+7.5*6**-1*x**3-5*(x-4)**3+15*(x-4)**2*2**-1\n",
+ "#Sub values in Above equation we get\n",
+ "y_c=(93.3333*(X)**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Deflection at C\",round(y_c,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Deflection at C 0.0093 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.12,Page No.204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=L_CD=L_DB=2 #m #Length of AC,CD,DB\n",
+ "F_C=40 #KN #Force at C\n",
+ "w=20 #KN/m #u.d.l\n",
+ "L=6 #m #span of beam\n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=15000 #KN-m**2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=80\n",
+ "\n",
+ "#Taking Moment B,M_B\n",
+ "V_A=(F_C*(L_CD+L_DB)+w*L_DB*L_DB*2**-1)*L**-1 #KN\n",
+ "V_B=80-V_A #KN\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=33.333*x-40*(x-2)-20*(x-4)**2*2**-1\n",
+ "#EI*(d**2/dx**2)=33.333*x-40*(x-2)-10*(x-4)**2\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+33.333*x**2*2**-1-20*(x-2)**2-10*3**-1*(x-4)**3\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3-10*12**-1*(x-4)**4\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At\n",
+ "x=6\n",
+ "y=0\n",
+ "C1=-760*6**-1\n",
+ "\n",
+ "#Assuming Deflection to be max in portion CD and sustituting value of C1 in equation of slope we get\n",
+ "#EI*y=C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3-10*12**-1*(x-4)**4\n",
+ "#0=-126.667+33.333*x**2**-1-20*(x-2)**2\n",
+ "\n",
+ "#After rearranging and simplifying further we get\n",
+ "\n",
+ "#x**2-24*x+62=0\n",
+ "#From above equations\n",
+ "a=1\n",
+ "b=-24\n",
+ "c=62\n",
+ "\n",
+ "y=(b**2-4*a*c)**0.5\n",
+ "\n",
+ "x1=(-b+y)*(2*a)**-1\n",
+ "x2=(-b-y)*(2*a)**-1\n",
+ "\n",
+ "#Taking x2 into account\n",
+ "x=2.945 #m\n",
+ "C1=-126.667\n",
+ "C2=0\n",
+ "\n",
+ "y_max=(C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3)*X**-1 #mm\n",
+ "\n",
+ "#Max slope occurs at the ends\n",
+ "#At A,\n",
+ "#EI*(dy/dx)_A=-126.667\n",
+ "#At B\n",
+ "#EI*(dy/dx)_B=126.667+33.333*6**2*2**-1-20*4**2-10*2**3\n",
+ "#After simplifying Further we get\n",
+ "#EI*(dy/dx)_B=73.3273\n",
+ "\n",
+ "#Now Max slope is EI(dy/dx)_A=-126.667\n",
+ "#15000*(dy/dx)_=-126.667\n",
+ "\n",
+ "#Let Y=dy/dx\n",
+ "Y=-126.667*X**-1 #Radians\n",
+ "\n",
+ "#Result\n",
+ "print\"Maximum Deflection for Beam is\",round(y_max,4),\"mm\"\n",
+ "print\"Maximum Slope for beam is\",round(Y,4),\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Deflection for Beam is -0.0158 mm\n",
+ "Maximum Slope for beam is -0.0084 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.13,Page No.206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2*10**8 #KN/m**2\n",
+ "I=450*10**-6 #m**4\n",
+ "L_AC=1 #m #Length of AC\n",
+ "L_CD=3 #m #Length of CD\n",
+ "L_DB=2 #m #Length of DB\n",
+ "w=10 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=30\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=17.5*x-10*(x-1)**2*2**-1+10*(x-4)**2*2**-1\n",
+ "#EI*(d**2/dx**2)=17.5*x-10*(x-1)**2*2**-1+10*(x-4)**2*2**-1\n",
+ "\n",
+ "#Now Integrating Above equation we get\n",
+ "#EI(dy/dx)=C1+17.5*x**2*2**-1-5*3**-1*(x-1)**2+5*3**-1*(x-4)**3\n",
+ "\n",
+ "#Again Integrating Above equation we get\n",
+ "#EI*y=C2+C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4+5*12**-1*(x-4)**4\n",
+ "\n",
+ "#At \n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At \n",
+ "x=6 \n",
+ "y=0\n",
+ "C1=(-17.5*x**3*6**-1+5*12**-1*(x-1)**4-5*12**-1*(x-4)**4)*x**-1\n",
+ "\n",
+ "# 1)Slope at A .i.e at x=0\n",
+ "#EI*(dy/dx)_A=C1=-62.708 #KN-m**2\n",
+ "#let (dy/dx)=X\n",
+ "X=C1*(E*I)**-1 #radiams\n",
+ "\n",
+ "#Deflection at mid-span\n",
+ "x=3 #m\n",
+ "#EI*y_centre=C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**2\n",
+ "y_centre=-(C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4)*(E*I)**-1\n",
+ "\n",
+ "#Maximum Deflection\n",
+ "\n",
+ "#At point of Max deflection (dy/dx)=0\n",
+ "#Assuming it in portion CD\n",
+ "\n",
+ "#0=C1*x+17.5*x**2*2**-1-5*3**-1*(x-1)**3\n",
+ "\n",
+ "#Now Let\n",
+ "#F(x)=C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3\n",
+ "\n",
+ "#Let F(x)=Y\n",
+ "#At \n",
+ "x=2.5\n",
+ "Y1=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#AT\n",
+ "x=3\n",
+ "Y2=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#At\n",
+ "x=2.9 #m\n",
+ "Y3=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#A curve may be plotted for (F(x) and the value for which F(x)=0 may be found\n",
+ "#For F(x)=0 for x=2.92 m\n",
+ "#Therefore y_max occur at x=2.92\n",
+ "\n",
+ "x=2.92 #m\n",
+ "y_max=(C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4)*(E*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Slope at A\",round(X,6),\"mm\"\n",
+ "print\"Deflection at mid-span\",round(y_centre,6),\"mm\"\n",
+ "print\"Maxmimum Deflection is\",round(y_max,5),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope at A -0.000697 mm\n",
+ "Deflection at mid-span 0.001289 mm\n",
+ "Maxmimum Deflection is -0.00129 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.14,Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=LDE=L_EB=1 #m #Length of AC\n",
+ "L_CD=2 #m #Length of CD\n",
+ "E=200 #KN/mm**2\n",
+ "I=60*10**6 #mm**4 #M.I\n",
+ "F_C=20 #KN #Force at C\n",
+ "F_E=30 #KN #Force at E\n",
+ "w=10 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "X=E*I*10**-6 #KN-m**2\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=70\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=34*x-20*(x-1)-10*(x-1)**2*2**-1+10*(x-3)**2*2**-1-30*(x-4)\n",
+ "#EI*(d**2y/dx**2)=34*x-20*(x-1)-10*(x-1)**2*2**-1+10*(x-3)**2*2**-1-30*(x-4)\n",
+ "\n",
+ "#Now Integrating Above equation,we get\n",
+ "#EI*(dy/dx)=C1+17*x**2-10*(x-1)**2-5*3**-1*(x-1)**3+5*3**-1*(x-3)**3-15*(x-4)**2\n",
+ "\n",
+ "#Again Integrating Above equation,we get\n",
+ "#EI*y=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4-5*(x-4)**3\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At \n",
+ "x=5 #m\n",
+ "y=0\n",
+ "C1=(-17*3**-1*x**3+10*3**-1*(x-1)**3+5*12**-1*(x-1)**4-5*12**-1*(x-3)**4+5*(x-4)**3)*5**-1\n",
+ "\n",
+ "#EI*y=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4-5*(x-4)**3\n",
+ "C2=0\n",
+ "C1=-78\n",
+ "x=1\n",
+ "y_c=(-78*x+17*3**-1*x)*(X)**-1\n",
+ "\n",
+ "#EI*y_D=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4\n",
+ "x=3\n",
+ "C1-78\n",
+ "C2=0\n",
+ "y_D=(C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4)*(X**-1)\n",
+ "\n",
+ "#EI*y_E=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4\n",
+ "x=4\n",
+ "C1-78\n",
+ "C2=0\n",
+ "y_E=(C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4)*X**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflections at C\",round(y_c,5),\"mm\"\n",
+ "print\"Deflections at D\",round(y_D,5),\"mm\"\n",
+ "print\"Deflections at E\",round(y_E,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflections at C -0.00603 mm\n",
+ "Deflections at D -0.00953 mm\n",
+ "Deflections at E -0.0061 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.15,Page No.209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200 #KN/mm**2 #Modulus of Elasticity\n",
+ "I=300*10**6 #mm\n",
+ "L_AB=L_BC=L_CD=L_DE=1 #m #Length of AB,BC,CD,DE respectively\n",
+ "F_A=20 #KN #Force at A\n",
+ "F_C=10 #KN #Force at C\n",
+ "w=30 #KN/m #u.d.l\n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=E*I*10**-6 #KN-2**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_E be the reactions at E\n",
+ "V_E=F_A+F_C+w*(L_BC+L_CD) #KN \n",
+ "\n",
+ "#Taking Moment at distance x\n",
+ "#EI*(d**2x/dy**2)=M=-20*x-30*(x-1)**2*2**-1-10*(x-2)+30*(x-3)**2*2**-1\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1-10*x**2-5*(x-1)**3-5*(x-2)**2+5*(x-3)**3\n",
+ "\n",
+ "#Again Integrating above equation\n",
+ "#EI*y=C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1-5*(x-3)**4*4**-1-5*3*(x-2)**3\n",
+ "\n",
+ "#At\n",
+ "#dy/dx=0\n",
+ "x=4 #m\n",
+ "C1=10*x**2+5*(x-1)**3+5*(x-2)**2-5*(x-3)**3\n",
+ "\n",
+ "#AT\n",
+ "x=4\n",
+ "y=0\n",
+ "C2=-C1*4+10*x**3*3**-1+5*(x-1)**4*4**-1-5*(x-3)**4*4**-1+5*3**-1*(x-2)**3\n",
+ "\n",
+ "#Max Deflection and Max slopes occurs at Free end in case of cantilever\n",
+ "y_max=y_A=C2*X**-1\n",
+ "\n",
+ "#EI*(dy/dx)_max=C1\n",
+ "#Let (dy/dx)=Y\n",
+ "Y=C1*X**-1 #radian\n",
+ "\n",
+ "#Now deflection at x=1 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=1\n",
+ "y_B=(C2+C1*x-10*x**3*3**-1)*X**-1\n",
+ "\n",
+ "#Now Deflection at x=2 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=2 #m\n",
+ "y_C=(C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1)*X**-1\n",
+ "\n",
+ "#Now Deflection at x=3 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=3 #m\n",
+ "y_D=(C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1-5*3**-1*(x-2)**3)*X**-1\n",
+ "\n",
+ "y_E=0\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Deflection for Beam\",round(y_A,4),\"mm\"\n",
+ "print\"Max Slope for beam\",round(Y,5),\"radians\"\n",
+ "\n",
+ "#Plotting the ELastic Curve\n",
+ "\n",
+ "Y2=[y_E,y_D,y_C,y_B,y_A]\n",
+ "X2=[L_AB+L_BC+L_CD+L_DE,L_AB+L_BC+L_CD,L_AB+L_BC,L_AB,0]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in mm\")\n",
+ "plt.ylabel(\"Deflection in mm\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Deflection for Beam -0.0152 mm\n",
+ "Max Slope for beam 0.00517 radians\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nHMidd97JRx99xKhRowgMDGT79u0AxMXFERMTQ3h4OH5+frz//vs8/vjjDB06lKioKCoqKpr9WUr7\npEQjUo8HHniAl19+mR07drBo0SJmzJjh+l1hYSGbN29m3bp1xMbGAvD++++zf/9+srKyePvtt9m6\ndSs2m41Zs2bRr18/0tLS+PjjjwE4evQoI0eO5IsvviA8PJzXXnut2vXPnhW3pmue7fvvv+fxxx/n\nm2++4dtvvyUpKYnNmzfzl7/8hQULFrjK7du3j08++YTk5GTuuusuHA4Hu3fvpmvXrnzwwQfn/OxE\noA3PdSbSHI4cOcLWrVu5/fbbXfvKysoAMwGcms04ODjYtfDTp59+ysSJEwFc647UpnPnzowfPx6A\n4cOHk5qaWmc8tV3zbP3792fQoEEADBo0iBtuuAGAwYMHk5OT4zpXVFQUHTt2ZPDgwVRWVjJ27FgA\nhgwZ4ioncq6UaETqUFlZSc+ePWtdE71z586un081d9pstiprddTVDOrl5eX6uUOHDg16XVXTNc/W\npUuXKuc9dczZ1zhzf1NiEWkIvToTqcOvfvUr+vfvz3vvvQeYX+y7d++u85hRo0axatUqDMOgqKiI\n9PR01+969OjBzz//3KgY3NVfR/2ApKUo0Yic4dixY/j6+ro+L730Eu+++y6vv/46oaGhDB48mOTk\nZFf5M9tPTv1822234ePjQ0hICFOnTuXKK6/kggsuAMz2nhtvvNHVGeDs42tapfDs/bX9fPYxtW2f\n+rmu89Z1bpHGUvdmETc4evQo3bp149ChQ4wYMYItW7bQp08fq8MSsYTaaETc4KabbqKkpISysjL+\n9Kc/KclIu6YajYiIuJXaaERExK2UaERExK2UaERExK2UaERExK2UaERExK2UaERExK3+P5k+A1z9\nL+mlAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56d89b0>"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.16,Page No.211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BD=L_CB=L_AC=2 #m #Length of BD,CB,AC\n",
+ "F_C=40 #KN #Force at C\n",
+ "F_D=10 #KN Force at D\n",
+ "L=6 #m spna of beam\n",
+ "\n",
+ "#EI is constant in this problem\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B Respectively\n",
+ "#V_A+V_B=50\n",
+ "\n",
+ "#Taking Moment at Pt A\n",
+ "V_B=(F_D*L+F_C*L_AC)*(L_AC+L_CB)**-1\n",
+ "V_A=50-V_B\n",
+ "\n",
+ "#Now Taking Moment at distance x from A,M_x\n",
+ "#M_x=15*x-40*(x-2)+35*(x-4)\n",
+ "#EI*(d**2*y/dx**2)=15*x-40*(x-2)+35*(x-4)\n",
+ "\n",
+ "#Now Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+7.5*x**2-20*(x-2)**2+17.5(x-4)**2\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+2.5*x**2-20*3**-1*(x-2)**3+17.5*(x-4)**3*3**-1\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "#we get\n",
+ "C2=0\n",
+ "\n",
+ "#At\n",
+ "x=4 \n",
+ "y=0\n",
+ "#we get\n",
+ "C1=(2.5*4**3-20*3**-1*2**3)*4**-1\n",
+ "\n",
+ "#Now Deflection at C\n",
+ "x=2\n",
+ "C1=-26.667\n",
+ "C2=0\n",
+ "y_C=C2+C1*x+2.5*x**3\n",
+ "\n",
+ "#Now Deflection at D\n",
+ "C1=-21.667\n",
+ "C2=0\n",
+ "y_D=-26.667*6+2.5*6**3-20*3**-1*4**3+17.5*2**3*3**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflections Under Loads are:y_D\",round(y_D,4)\n",
+ "print\" :y_C\",round(y_C,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflections Under Loads are:y_D -0.002\n",
+ " :y_C -33.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.17,Page No.212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=L_EB=2 #m #Length of BC & EB\n",
+ "E=200*10**6 #KN/m**2 #Modulus of eLasticity\n",
+ "I=45*10**-6 #mm**4 #M.I\n",
+ "L_DE=3 #m #Length of DE\n",
+ "L_AD=1 #m #Length of AD\n",
+ "w=20 #KN/m #u.d.l\n",
+ "L=8 #m #span of beam\n",
+ "F_C=30 #KN #Force at C\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=90\n",
+ "\n",
+ "#Taking Moment at A,M_A\n",
+ "V_B=(w*L_DE*(L_DE*2**-1+L_AD)+F_C*L)*(L_AD+L_DE+L_EB)**-1\n",
+ "V_A=90-V_B\n",
+ "\n",
+ "#Taking Moment at distance x\n",
+ "#M_x=25*x-20*(x-1)**2*2**-1+20*(x-4)**2*2**-1+65*(x-6)\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(d**2*y/dx**2)=25*x-10*(x-1)**2+10*(x-4)**2+65*(x-6)\n",
+ "\n",
+ "#again Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+25*x**2*2**-1-10*3**-1*(x-1)**3+10*3**-1*(x-4)**2+65*2**-1*(x-6)**2\n",
+ "\n",
+ "#again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+25*6**-1*x**3-10*12**-1*(x-1)**4+10*12**-1*(x-4)**4+65*6**-1*(x-6)**3\n",
+ "\n",
+ "x=0\n",
+ "y=0\n",
+ "#Sub these values in above equation,we get\n",
+ "C2=0\n",
+ "\n",
+ "x=6 #m\n",
+ "y=0\n",
+ "C1=-(25*6**-1*6**3-10*12**-1*5**4+10*12**-1*2**4)*6**-1\n",
+ "\n",
+ "#deflection at C is given by\n",
+ "x=8\n",
+ "y_c=(C2+C1*x+25*6**-1*x**3-10*12**-1*(x-1)**4+10*12**-1*(x-4)**4+65*6**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Assuming y is max in the portion DE,then\n",
+ "#(dy/dx)=0 for that point\n",
+ "\n",
+ "#0=-65.417+25*2**-1*x**2-10*3**-1*x(-1)**3\n",
+ "\n",
+ "#Let F(x)=-65.417+25*2**-1*x**2-10*3**-1*x(-1)**3\n",
+ "#Let z=F(x)\n",
+ "\n",
+ "#AT \n",
+ "x=3\n",
+ "z=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "x=2.5\n",
+ "z1=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "x=2.4\n",
+ "z2=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "#The assumption is max in portion DE\n",
+ "x=2.46\n",
+ "y_max=(-65.417*x+25*6**-1*x**3-10*12**-1*1.46**4)*(E*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection at free end C\",round(y_c,4),\"mm\"\n",
+ "print\"Max Deflection between A and B\",round(y_max,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection at free end C -0.0101 mm\n",
+ "Max Deflection between A and B -0.0114 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.18,Page No.213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DB=L_AC=L_ED=2 #m #Length of DB & AC\n",
+ "L_CD=4 #m #Length of CD\n",
+ "L_CE=2 #m #Length of CE\n",
+ "F_A=40 #KN #Force at C\n",
+ "F_B=20 #KN #Force at A\n",
+ "E=200*10**6 #KN/mm**2 #Modulus of Elasticity\n",
+ "I=50*10**-6 #m**4 #M.I\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt V_C & V_D be the reactions at C & D respectively\n",
+ "#V_C+V_D=60\n",
+ "\n",
+ "#Taking Moment At D,M_D\n",
+ "V_C=-(-F_A*(L_AC+L_CE+L_ED)+F_B*L_DB)*L_CD**-1\n",
+ "V_D=60-V_C\n",
+ "\n",
+ "#Now Taking Moment at Distance x from A,\n",
+ "#M_x=-40*x+50*(x-2)+10*(x-6)\n",
+ "\n",
+ "#EI*(d**2*y/dx**2)=-40*x+50*(x-2)+10*(x-6)\n",
+ "\n",
+ "#Now Integrating above Equation we get\n",
+ "#EI*(dy/dx)=C1+20*x**2-25*(x-2)+5*(x-6)**2\n",
+ "\n",
+ "#Again Integrating above Equation we get\n",
+ "#EI*y=C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "#C2+2*C1=-53.33 ...............(1)\n",
+ "\n",
+ "#At \n",
+ "x=6\n",
+ "y=0\n",
+ "#C2+6*C1=906.667 ...............(2)\n",
+ "\n",
+ "#Subtracting Equation 1 from 2 we get\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=0\n",
+ "y_A=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Answer For y_A is incorrect in textbook\n",
+ "\n",
+ "#At Mid-span\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=4\n",
+ "y_E=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Answer For y_E is incorrect in textbook\n",
+ "\n",
+ "#At B\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=8\n",
+ "y_B=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection relative to the level of the supports:at End A\",round(y_A,4),\"mm\"\n",
+ "print\" :at End B\",round(y_B,4),\"mm\"\n",
+ "print\" :at Centre of CD\",round(y_E,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection relative to the level of the supports:at End A -0.08 mm\n",
+ " :at End B -0.0267 mm\n",
+ " :at Centre of CD 0.0107 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_7.ipynb new file mode 100644 index 00000000..e3bdfbe1 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_7.ipynb @@ -0,0 +1,1518 @@ +{
+ "metadata": {
+ "name": "chapter no.6.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.6:Torsion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.1,Page No.225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=10000 #mm #Length of solid shaft\n",
+ "d=100 #mm #Diameter of shaft\n",
+ "n=150 #rpm\n",
+ "P=112.5*10**6 #N-mm/sec #Power Transmitted\n",
+ "G=82*10**3 #N/mm**2 #modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*d**4*(32)**-1 #mm**3 #Polar Modulus\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "r=50 #mm #Radius\n",
+ "\n",
+ "q_s=T*r*J**-1 #N/mm**2 #Max shear stress intensity\n",
+ "Theta=T*L*(G*J)**-1 #angle of twist\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress intensity\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist\",round(Theta,3),\"radian\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress intensity 36.48 N/mm**2\n",
+ "Angle of Twist 0.089 radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.2,Page No.226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=440*10**6 #N-m/sec #Power transmitted\n",
+ "n=280 #rpm\n",
+ "theta=pi*180**-1 #radian #angle of twist\n",
+ "L=1000 #mm #Length of solid shaft\n",
+ "q_s=40 #N/mm**2 #Max torsional shear stress\n",
+ "G=84*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#P=2*pi*n*T*(60)**-1 #Equation of Power transmitted\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #torsional moment\n",
+ "\n",
+ "#From Consideration of shear stress\n",
+ "d1=(T*16*(pi*40)**-1)**0.333333 \n",
+ "\n",
+ "#From Consideration of angle of twist\n",
+ "d2=(T*L*32*180*(pi*84*10**3*pi)**-1)**0.25\n",
+ "\n",
+ "#result\n",
+ "print\"Diameter of solid shaft is\",round(d1,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of solid shaft is 124.09 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.3,Page No.227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "q_s=80 #N/mm**2 #Max sheare stress\n",
+ "P=736*10**6 #N-mm/sec #Power transmitted\n",
+ "n=200\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now From consideration of angle of twist\n",
+ "theta=pi*180**-1\n",
+ "#L=15*d\n",
+ "\n",
+ "d=(T*32*180*15*(pi**2*G)**-1)**0.33333\n",
+ "\n",
+ "#Now corresponding stress at the surface is\n",
+ "q_s2=T*32*d*(pi*2*d**4)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Max diameter required is\",round(d,2),\"mm\"\n",
+ "print\"Corresponding shear stress is\",round(q_s2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max diameter required is 156.66 mm\n",
+ "Corresponding shear stress is 46.55 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.4,Page No.228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #Diameter of steel bar\n",
+ "p=50*10**3 #N #Pull\n",
+ "dell_1=0.095 #mm #Extension of bar\n",
+ "l=200 #mm #Guage Length\n",
+ "T=200*10**3 #N-mm #Torsional moment\n",
+ "theta=0.9*pi*180**-1 #angle of twist\n",
+ "L=250 #mm Length of steel bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*4**-1*d**2 #Area of steel bar #mm**2\n",
+ "E=p*l*(dell_1*A)**-1 #N/mm**2 #Modulus of elasticity \n",
+ "\n",
+ "J=pi*32**-1*d**4 #mm**4 #Polar modulus\n",
+ "\n",
+ "G=T*L*(theta*J)**-1 #Modulus of rigidity #N/mm**2\n",
+ "\n",
+ "#Now from the relation of Elastic constants\n",
+ "mu=E*(2*G)**-1-1\n",
+ "\n",
+ "#result\n",
+ "print\"The Poissoin's ratio is\",round(mu,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Poissoin's ratio is 0.292\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.5,Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6000 #mm #Length of circular shaft\n",
+ "d1=100 #mm #Outer Diameter\n",
+ "d2=75 #mm #Inner Diameter\n",
+ "R=100*2**-1 #Radius of shaft\n",
+ "T=10*10**6 #N-mm #Torsional moment\n",
+ "G=80*10**3 #N/mm**2 #Modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus \n",
+ "\n",
+ "#Max Shear stress produced\n",
+ "q_s=T*R*J**-1 #N/mm**2\n",
+ "\n",
+ "#Angle of twist\n",
+ "theta=T*L*(G*J)**-1 #Radian\n",
+ "\n",
+ "#Result\n",
+ "print\"MAx shear stress produced is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist is\",round(theta,2),\"Radian\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MAx shear stress produced is 74.5 N/mm**2\n",
+ "Angle of Twist is 0.11 Radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.6,Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=200 #mm #External Diameter of shaft\n",
+ "t=25 #mm #Thickness of shaft\n",
+ "n=200 #rpm\n",
+ "theta=0.5*pi*180**-1 #Radian #angle of twist\n",
+ "L=2000 #mm #Length of shaft\n",
+ "G=84*10**3 #N/mm**2\n",
+ "d2=d1-2*t #mm #Internal Diameter of shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus \n",
+ "\n",
+ "#Torsional moment\n",
+ "T=G*J*theta*L**-1 #N/mm**2 \n",
+ "\n",
+ "#Power Transmitted\n",
+ "P=2*pi*n*T*60**-1*10**-6 #N-mm\n",
+ "\n",
+ "#Max shear stress transmitted\n",
+ "q_s=G*theta*(d1*2**-1)*L**-1 #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Power Transmitted is\",round(P,2),\"N-mm\"\n",
+ "print\"Max Shear stress produced is\",round(q_s,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power Transmitted is 824.28 N-mm\n",
+ "Max Shear stress produced is 36.65 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.7,Page No.230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=3750*10**6 #N-mm/sec\n",
+ "n=240 #Rpm\n",
+ "q_s=160 #N/mm**2 #Max shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#d2=0.8*d2 #mm #Internal Diameter of shaft\n",
+ "\n",
+ "#J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar modulus\n",
+ "#After substituting value in above Equation we get\n",
+ "#J=0.05796*d1**4\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now from Torsion Formula\n",
+ "#T*J**-1=q_s*R**-1 ......................................(1)\n",
+ "\n",
+ "#But R=d1*2**-1 \n",
+ "\n",
+ "#Now substituting value of R and J in Equation (1) we get\n",
+ "d1=(T*(0.05796*q_s*2)**-1)**0.33333\n",
+ "\n",
+ "d2=d1*0.8\n",
+ "\n",
+ "#Result\n",
+ "print\"The size of the Shaft is:d1\",round(d1,3),\"mm\"\n",
+ "print\" :d2\",round(d2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The size of the Shaft is:d1 200.362 mm\n",
+ " :d2 160.289 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.8,Page No.231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=245*10**6 #N-mm/sec #Power transmitted\n",
+ "n=240 #rpm\n",
+ "q_s=40 #N/mm**2 #Shear stress\n",
+ "theta=pi*180**-1 #radian #Angle of twist\n",
+ "L=1000 #mm #Length of shaft\n",
+ "G=80*10**3 #N/mm**2\n",
+ "\n",
+ "#Tmax=1.5*T\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional Moment\n",
+ "Tmax=1.5*T\n",
+ "\n",
+ "#Now For Solid shaft\n",
+ "#J=pi*32*d**4\n",
+ "\n",
+ "#Now from the consideration of shear stress we get\n",
+ "#T*J**-1=q_s*(d*2**-1)**-1\n",
+ "#After substituting value in above Equation we get\n",
+ "#T=pi*16**-1*d**3*q_s\n",
+ "\n",
+ "#Designing For max Torque\n",
+ "d=(Tmax*16*(pi*40)**-1)**0.33333 #mm #Diameter of shaft\n",
+ "\n",
+ "#For max Angle of Twist\n",
+ "#Tmax*J**-1=G*theta*L**-1 \n",
+ "#After substituting value in above Equation we get\n",
+ "d2=(Tmax*32*180*L*(pi**2*G)**-1)**0.25\n",
+ "\n",
+ "#For Hollow Shaft\n",
+ "\n",
+ "#d1_2=Outer Diameter\n",
+ "#d2_2=Inner Diameter\n",
+ "\n",
+ "#d2_2=0.5*d1_2\n",
+ "\n",
+ "# Polar modulus\n",
+ "#J=pi*32**-1*(d1_2**4-d2_2**4)\n",
+ "#After substituting values we get\n",
+ "#J=0.092038*d1_2**4\n",
+ "\n",
+ "#Now from the consideration of stress\n",
+ "#Tmax*J**-1=q_s*(d1_2*2**-1)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d1_2=(Tmax*(0.092038*2*q_s)**-1)**0.33333\n",
+ "\n",
+ "#Now from the consideration of angle of twist\n",
+ "#Tmax*J**-1=G*theta*L**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d1_3=(Tmax*180*L*(0.092038*G*pi)**-1)**0.25\n",
+ "\n",
+ "d2_2=0.5*d1_2\n",
+ "\n",
+ "#result\n",
+ "print\"Diameter of shaft is:For solid shaft:d\",round(d,2),\"mm\"\n",
+ "print\" :For Hollow shaft:d1_2\",round(d1_2,3),\"mm\"\n",
+ "print\" : :d2_2\",round(d2_2,3),\"mm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of shaft is:For solid shaft:d 123.01 mm\n",
+ " :For Hollow shaft:d1_2 125.69 mm\n",
+ " : :d2_2 62.845 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.11,Page No.235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=250*10**6 #N-mm/sec #Power transmitted\n",
+ "n=100 #rpm\n",
+ "q_s=75 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Equation of Power we have\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now from torsional moment equation we have\n",
+ "#T=j*q_s*(d/2**-1)**-1\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T=pi*16**-1**d**3*q_s\n",
+ "d=(T*16*(pi*q_s)**-1)**0.3333 #mm #Diameter of solid shaft\n",
+ "\n",
+ "#PArt-2\n",
+ "\n",
+ "#Let d1 and d2 be the outer and inner diameter of hollow shaft\n",
+ "#d2=0.6*d1\n",
+ "\n",
+ "#Again from torsional moment equation we have\n",
+ "#T=pi*32**-1*(d1**4-d2**4)*q_s*(d1/2)**-1\n",
+ "d1=(T*16*(pi*(1-0.6**4)*q_s)**-1)**0.33333\n",
+ "d2=0.6*d1\n",
+ "\n",
+ "#Cross sectional area of solid shaft\n",
+ "A1=pi*4**-1*d**2 #mm**2\n",
+ "\n",
+ "#cross sectional area of hollow shaft\n",
+ "A2=pi*4**-1*(d1**2-d2**2)\n",
+ "\n",
+ "#Now percentage saving in weight\n",
+ "#Let W be the percentage saving in weight\n",
+ "W=(A1-A2)*100*A1**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage saving in Weight is\",round(W,3),\"%\"\n",
+ "print\"Size of shaft is:solid shaft:d\",round(d,3),\"mm\"\n",
+ "print\" :Hollow shaft:d1\",round(d1,3),\"mm\"\n",
+ "print\" : :d2\",round(d2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage saving in Weight is 29.735 %\n",
+ "Size of shaft is:solid shaft:d 117.418 mm\n",
+ " :Hollow shaft:d1 123.031 mm\n",
+ " : :d2 73.818 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.12,Page No.237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "d=100 #mm #Diameter of solid shaft\n",
+ "d1=100 #mm #Outer Diameter of hollow shaft\n",
+ "d2=50 #mm #Inner Diameter of hollow shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Torsional moment of solid shaft\n",
+ "#T_s=J*q_s*(d*2**-1)**-1 \n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T_s=pi*16*d**3*q_s ...............(1)\n",
+ "\n",
+ "#torsional moment for hollow shaft is\n",
+ "#T_h=J*q_s*(d1**4-d2**4)**-1*(d1*2**-1)\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T_h=pi*32**-1*2*d1**-1*(d1**4-d2**4)*q_s ...........(2)\n",
+ "\n",
+ "#Dividing Equation 2 by 1 we get\n",
+ "#Let the ratio of T_h*T_s**-1 Be X\n",
+ "X=1-0.5**4\n",
+ "\n",
+ "#Loss in strength \n",
+ "#Let s be the loss in strength\n",
+ "#s=T_s*T_h*100*T_s**-1\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "s=(1-0.9375)*100\n",
+ "\n",
+ "#Weight Ratio \n",
+ "#Let w be the Weight ratio\n",
+ "#w=W_h*W_s**-1\n",
+ "\n",
+ "A_h=pi*32**-1*(d1**2-d2**2) #mm**2 #Area of Hollow shaft\n",
+ "A_s=pi*32**-1*d**2 #mm**2 #Area of solid shaft\n",
+ "\n",
+ "w=A_h*A_s**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"Loss in strength is\",round(s,2)\n",
+ "print\"Weight ratio is\",round(w,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss in strength is 6.25\n",
+ "Weight ratio is 0.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.13,Page No.239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "T=8 #KN-m #Torque \n",
+ "d=100 #mm #Diameter of portion AB\n",
+ "d1=100 #mm #External Diameter of Portion BC\n",
+ "d2=75 #mm #Internal Diameter of Portion BC\n",
+ "G=80 #KN/mm**2 #Modulus of Rigidity\n",
+ "L1=1500 #mm #Radial Distance of Portion AB\n",
+ "L2=2500 #mm #Radial Distance ofPortion BC\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "R=d*2**-1 #mm #Radius of shaft\n",
+ "\n",
+ "#For Portion AB,Polar Modulus\n",
+ "J1=pi*32**-1*d**4 #mm**4 \n",
+ "\n",
+ "#For Portion BC,Polar modulus \n",
+ "J2=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Now Max stress occurs in portion BC since max radial Distance is sme in both cases\n",
+ "q_max=T*J2**-1*R*10**6 #N/mm**2 \n",
+ "\n",
+ "#Let theta1 be the rotation in Portion AB and theta2 be the rotation in portion BC\n",
+ "theta1=T*L1*(G*J1)**-1 #Radians\n",
+ "theta2=T*L2*(G*J2)**-1 #Radians\n",
+ "\n",
+ "#Total Rotational at end C\n",
+ "theta=(theta1+theta2)*10**3 #Radians\n",
+ "\n",
+ "#Result\n",
+ "print\"Max stress induced is\",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist is\",round(theta,3),\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max stress induced is 59.6 N/mm**2\n",
+ "Angle of Twist is 0.053 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.14,Page No.240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "q_b=80 #N/mm**2 #Shear stress in Brass\n",
+ "q_s=100 #N/mm**2 #Shear stress in Steel\n",
+ "G_b=40*10**3 #N/mm**2 \n",
+ "G_s=80*10**3 \n",
+ "L_b=1000 #mm #Length of brass shaft\n",
+ "L_s=1200 #mm #Length of steel shaft\n",
+ "d1=80 #mm #Diameter of brass shaft\n",
+ "d2=60 #mm #Diameter of steel shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar modulus of brass rod\n",
+ "J_b=pi*32**-1*d1**4 #mm**4 \n",
+ "\n",
+ "#Polar modulus of steel rod\n",
+ "J_s=pi*32**-1*d2**4 #mm**4\n",
+ "\n",
+ "#Considering bras Rod:AB\n",
+ "T1=J_b*q_b*(d1*2**-1)**-1 #N-mm \n",
+ "\n",
+ "#Considering Steel Rod:BC\n",
+ "T2=J_s*q_s*(d2*2**-1)**-1 #N-mm\n",
+ "\n",
+ "#Max Torque that can be applied\n",
+ "T2\n",
+ "\n",
+ "#Let theta_b and theta_s be the rotations in Brass and steel respectively\n",
+ "theta_b=T2*L_b*(G_b*J_b)**-1 #Radians\n",
+ "theta_s=T2*L_s*(G_s*J_s)**-1 #Radians\n",
+ "\n",
+ "theta=theta_b+theta_s #Radians #Rotation of free end\n",
+ "\n",
+ "#Result\n",
+ "print\"Total of free end is\",round(theta,3),\"Radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total of free end is 0.076 Radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.15,Page No.241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 #Modulus of Rigidity\n",
+ "d1=100 #mm #Outer diameter of hollow shft\n",
+ "d2=80 #mm #Inner diameter of hollow shaft\n",
+ "d=80 #mm #diameter of Solid shaft\n",
+ "d3=60 #mm #diameter of Solid shaft having L=0.5m\n",
+ "L1=300 #mm #Length of Hollow shaft\n",
+ "L2=400 #mm #Length of solid shaft\n",
+ "L3=500 #mm #LEngth of solid shaft of diameter 60mm\n",
+ "T1=2*10**6 #N-mm #Torsion in Shaft AB\n",
+ "T2=1*10**6 #N-mm #Torsion in shaft BC\n",
+ "T3=1*10**6 #N-mm #Torsion in shaft CD\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Now Polar modulus of section AB\n",
+ "J1=pi*32**-1*(d1**4-d2**4) #mm**4 \n",
+ "\n",
+ "#Polar modulus of section BC\n",
+ "J2=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Polar modulus of section CD\n",
+ "J3=pi*32**-1*d3**4 #mm**4\n",
+ "\n",
+ "#Now angle of twist of AB\n",
+ "theta1=T1*L1*(G*J1)**-1 #radians\n",
+ "\n",
+ "#Angle of twist of BC\n",
+ "theta2=T2*L2*(G*J2)**-1 #radians\n",
+ "\n",
+ "#Angle of twist of CD\n",
+ "theta3=T3*L3*(G*J3)**-1 #radians\n",
+ "\n",
+ "#Angle of twist\n",
+ "theta=theta1-theta2+theta3 #Radians\n",
+ "\n",
+ "#Shear stress in AB From Torsion Equation\n",
+ "q_s1=T1*(d1*2**-1)*J1**-1 #N/mm**2 \n",
+ "\n",
+ "#Shear stress in BC\n",
+ "q_s2=T2*(d*2**-1)*J2**-1 #N/mm**2 \n",
+ "\n",
+ "#Shear stress in CD\n",
+ "q_s3=T3*(d3*2**-1)*J3**-1 #N-mm**2\n",
+ "\n",
+ "#As max shear stress occurs in portion CD,so consider CD\n",
+ "\n",
+ "#Result\n",
+ "print\"Angle of twist at free end is\",round(theta,5),\"Radian\"\n",
+ "print\"Max Shear stress\",round(q_s3,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle of twist at free end is 0.00496 Radian\n",
+ "Max Shear stress 23.58 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.16,Page No.242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of bar\n",
+ "L1=600 #mm #Length of Bar AB\n",
+ "L2=400 #mm #Length of Bar BC\n",
+ "d1=60 #mm #Outer Diameter of bar BC\n",
+ "d2=30 #mm #Inner Diameter of bar BC\n",
+ "d=60 #mm #Diameter of bar AB\n",
+ "T=2*10**6 #N-mm #Total Torque\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar Modulus of Portion AB\n",
+ "J1=pi*32**-1*d**4 #mm*4\n",
+ "\n",
+ "#Polar Modulus of Portion BC\n",
+ "J2=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Let T1 be the torque resisted by bar AB and T2 be torque resisted by Bar BC\n",
+ "#Let theta1 and theta2 be the rotation of shaft in portion AB & BC\n",
+ "\n",
+ "#theta1=T1*L1*(G*J1)**-1 #radians\n",
+ "#After substituting values and further simplifying we get \n",
+ "#theta1=32*600*T1*(pi*60**4*G)**-1\n",
+ "\n",
+ "#theta2=T2*L*(J2*G)**-1 #Radians\n",
+ "#After substituting values and further simplifying we get \n",
+ "#theta2=32*400*T2*(pi*60**4*(1-0.5**4)*G)**-1 \n",
+ "\n",
+ "#Now For consistency of Deformation,theta1=theta2\n",
+ "#After substituting values and further simplifying we get \n",
+ "#T1=0.7111*T2 ..................................................(1)\n",
+ "\n",
+ "#But T1+T2=T=2*10**6 ...........................................(2)\n",
+ "#Substituting value of T1 in above equation\n",
+ "\n",
+ "T2=T*(0.7111+1)**-1\n",
+ "T1=0.71111*T2\n",
+ "\n",
+ "#Max stress in Portion AB\n",
+ "q_s1=T1*(d*2**-1)*(J1)**-1 #N/mm**2\n",
+ "\n",
+ "#Max stress in Portion BC\n",
+ "q_s2=T2*(d1*2**-1)*J2**-1 #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Portion:AB\",round(q_s1,2),\"N/mm**2\"\n",
+ "print\" :BC\",round(q_s2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Portion:AB 19.6 N/mm**2\n",
+ " :BC 29.4 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.17,Page No.243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=80 #mm #External Diameter of Brass tube\n",
+ "d2=50 #mm #Internal Diameter of Brass tube\n",
+ "d=50 #mm #Diameter of steel Tube\n",
+ "G_b=40*10**3 #N/mm**2 #Modulus of Rigidity of brass tube\n",
+ "G_s=80*10**3 #N/mm**2 #Modulus of rigidity of steel tube\n",
+ "T=6*10**6 #N-mm #Torque\n",
+ "L=2000 #mm #Length of Tube\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar Modulus of brass tube\n",
+ "J1=pi*32**-1*(d1**4-d2**4) #mm**4 \n",
+ "\n",
+ "#Polar modulus of steel Tube\n",
+ "J2=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Let T_s & T_b be the torque resisted by steel and brass respectively\n",
+ "#Then, T_b+T_s=T ............................................(1)\n",
+ "\n",
+ "#Since the angle of twist will be the same\n",
+ "#Theta1=Theta2\n",
+ "#After substituting values and further simplifying we get \n",
+ "#Ts=0.360*Tb ...........................................(2)\n",
+ "\n",
+ "#After substituting value of Ts in eqn 1 and further simplifying we get \n",
+ "T_b=T*(0.36+1)**-1 #N-mm\n",
+ "T_s=0.360*T_b\n",
+ "\n",
+ "#Let q_s and q_b be the max stress in steel and brass respectively\n",
+ "q_b=T_b*(d1*2**-1)*J1**-1 #N/mm**2\n",
+ "q_s=T_s*(d2*2**-1)*J2**-1 #N/mm**2\n",
+ "\n",
+ "#Since angle of twist in brass=angle of twist in steel\n",
+ "theta_s=T_s*L*(J2*G_s)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Materials are:Brass\",round(q_b,2),\"N/mm**2\"\n",
+ "print\" :Steel\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist in 2m Length\",round(theta_s,3),\"Radians\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Materials are:Brass 51.79 N/mm**2\n",
+ " :Steel 64.71 N/mm**2\n",
+ "Angle of Twist in 2m Length 0.065 Radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.18,Page No.245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=60 #mm #External Diameter of aluminium Tube\n",
+ "d2=40 #mm #Internal Diameter of aluminium Tube\n",
+ "d=40 #mm #Diameter of steel tube\n",
+ "q_a=60 #N/mm**2 #Permissible stress in aluminium\n",
+ "q_s=100 #N/mm**2 #Permissible stress in steel tube\n",
+ "G_a=27*10**3 #N/mm**2 \n",
+ "G_s=80*10**3 #N/mm**2 \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar modulus of aluminium Tube\n",
+ "J_a=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Polar Modulus of steel Tube\n",
+ "J_s=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Now the angle of twist of steel tube = angle of twist of aluminium tube\n",
+ "#T_s*L_s*(J_s*theta_s)**-1=T_a*L_a*(J_a*theta_a)**-1\n",
+ "#After substituting values in above Equation and Further simplifyin we get\n",
+ "#T_s=0.7293*T_a .....................(1)\n",
+ "\n",
+ "#If steel Governs the resisting capacity\n",
+ "T_s1=q_s*J_s*(d*2**-1)**-1 #N-mm\n",
+ "T_a1=T_s1*0.7293**-1 #N-mm\n",
+ "T1=(T_s1+T_a1)*10**-6 #KN-m #Total Torque in steel Tube\n",
+ "\n",
+ "#If aluminium Governs the resisting capacity \n",
+ "T_a2=q_a*J_a*(d1*2**-1) #N-mm\n",
+ "T_s2=T_a2*0.7293 #N-mm\n",
+ "T2=(T_s2+T_a2)*10**-6 #KN-m #Total Torque in aluminium tube\n",
+ "\n",
+ "#Result\n",
+ "print\"Steel Governs the torque carrying capacity\",round(T1,2),\"KN-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steel Governs the torque carrying capacity 2.98 KN-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.19,Page No.247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=225*10**6 #N-mm/sec #Power Trasmitted\n",
+ "q_b=80 #N/mm**2 #Shear stress\n",
+ "n=200 #Rpm\n",
+ "q_k=100 #N/mm**2 #PErmissible stress in Keys\n",
+ "D=300 #mm #Diameter of bolt circle\n",
+ "L=150 #mm #Length of shear key\n",
+ "d=16 #mm #Diameterr of bolt\n",
+ "\n",
+ "#Calculations\n",
+ "T=60*P*(2*pi*n)**-1 #N-mm #Torque\n",
+ "\n",
+ "#Now From Torsion Formula\n",
+ "#T*J**-1=q_s*R**-1\n",
+ "#After substituting values we get\n",
+ "#T=pi*16*d**3*n\n",
+ "#After further simplifying we get\n",
+ "d1=(T*16*(pi*q_s)**-1)**0.33333\n",
+ "\n",
+ "#Let b be the width of shear Key\n",
+ "#T=q_k*L*b*R\n",
+ "#After simplifying further we get\n",
+ "b=T*(q_k*L*(d1*2**-1))**-1 #mm\n",
+ "\n",
+ "#Let n2 be the no. of bolts required at bolt circle of radius\n",
+ "R_b=D*2**-1 #mm \n",
+ "\n",
+ "n2=T*4*(q_b*pi*d**2*R_b)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Minimum no. of Bolts Required are\",round(n2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum no. of Bolts Required are 4.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.20,Page No.250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "T=2*10**6 #N-mm #Torque transmitted\n",
+ "G=80*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "d1=40 #mm \n",
+ "d2=80 #mm\n",
+ "r1=20 #mm\n",
+ "r2=40 #mm\n",
+ "L=2000 #mm #Length of shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Angle of twist \n",
+ "theta=2*T*L*(r1**2+r1*r2+r2**2)*(3*pi*G*r2**3*r1**3)**-1 #radians\n",
+ "\n",
+ "#If the shaft is treated as shaft of average Diameter\n",
+ "d_avg=(d1+d2)*2**-1 #mm\n",
+ "\n",
+ "theta1=T*L*(G*pi*32**-1*d_avg**4)**-1 #Radians\n",
+ "\n",
+ "#Percentage Error\n",
+ "#Let Percentage Error be E\n",
+ "X=theta-theta1\n",
+ "E=(X*theta**-1)*100 \n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage Error is\",round(E,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Error is 32.28 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.21,Page No.252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 \n",
+ "P=1*10**9 #N-mm/sec #Power\n",
+ "n=300 \n",
+ "d1=150 #mm #Outer Diameter\n",
+ "d2=120 #mm #Inner Diameter\n",
+ "L=2000 #mm #Length of circular shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm\n",
+ "\n",
+ "#Polar Modulus \n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "q_s=T*J**-1*(d1*2**-1) #N/mm**2 \n",
+ "\n",
+ "\n",
+ "#Strain ENergy\n",
+ "U=q_s**2*(4*G)**-1*pi*4**-1*(d1**2-d2**2)*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Strain Energy stored in the shaft is\",round(U,2),\"N-mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress is 81.36 N/mm**2\n",
+ "Strain Energy stored in the shaft is 263181.37 N-mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.22,Page No.254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=12 #mm #Diameter of helical spring\n",
+ "D=150 #mm #Mean Diameter\n",
+ "R=D*2**-1 #mm #Radius of helical spring\n",
+ "n=10 #no.of turns\n",
+ "G=80*10**3 #N/mm**2 \n",
+ "W=450 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max shear stress \n",
+ "q_s=16*W*R*(pi*d**3)**-1 #N/mm**2\n",
+ "\n",
+ "#Strain Energy stored\n",
+ "U=32*W**2*R**3*n*(G*d**4)**-1 #N-mm\n",
+ "\n",
+ "#Deflection Produced\n",
+ "dell=64*W*R**3*n*(G*d**4)**-1 #mm\n",
+ "\n",
+ "#Stiffness Spring\n",
+ "k=W*dell**-1 #N/mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Strain Energy stored is\",round(U,2),\"N-mm\"\n",
+ "print\"Deflection Produced is\",round(dell,2),\"mm\"\n",
+ "print\"Stiffness spring is\",round(k,2),\"N/mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress is 99.47 N/mm**2\n",
+ "Strain Energy stored is 16479.49 N-mm\n",
+ "Deflection Produced is 73.24 mm\n",
+ "Stiffness spring is 6.14 N/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.23,Page No.255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "K=5 #N/mm #Stiffness\n",
+ "L=100 #mm #Solid Length\n",
+ "q_s=60 #N/mm**2 #Max shear stress\n",
+ "W=200 #N #Max Load\n",
+ "G=80*10**3 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#K=W*dell**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#d=0.004*R**3*n ........(1) #mm #Diameter of wire\n",
+ "#n=L*d**-1 ........(2)\n",
+ "\n",
+ "#From Shearing stress\n",
+ "#q_s=16*W*R*(pi*d**3)**-1 \n",
+ "#After substituting values and further simplifying we get\n",
+ "#d**4=0.004*R**3*n .................(4)\n",
+ "\n",
+ "#From Equation 1,2,3\n",
+ "#d**4=0.004*(0.0785*d**3)**3*100*d**-1\n",
+ "#after further simplifying we get\n",
+ "d=5168.101**0.25\n",
+ "n=100*d**-1\n",
+ "R=(d**4*(0.004*n)**-1)**0.3333\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of Wire is\",round(d,2),\"mm\"\n",
+ "print\"No.of turns is\",round(n,2)\n",
+ "print\"Mean Radius of spring is\",round(R,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of Wire is 8.48 mm\n",
+ "No.fo turns is 11.79\n",
+ "Mean Radius of spring is 47.83 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.24,Page No.255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "m=5*10**5 #Wagon Weighing\n",
+ "v=18*1000*36000**-1 \n",
+ "d=300 #mm #Diameter of Beffer springs\n",
+ "n=18 #no.of turns\n",
+ "G=80*10**3 #N/mm**2\n",
+ "dell=225\n",
+ "R=100 #mm #Mean Radius\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Energy of Wagon\n",
+ "E=m*v**2*(9.81*2)**-1 #N-mm\n",
+ "\n",
+ "#Load applied\n",
+ "W=dell*G*d**4*(64*R**3*n)**-1 #N \n",
+ "\n",
+ "#Energy each spring can absorb is\n",
+ "E2=W*dell*2**-1 #N-mm\n",
+ "\n",
+ "#No.of springs required to absorb energy of Wagon\n",
+ "n2=E*E2**-1 *10**7\n",
+ "\n",
+ "#Result\n",
+ "print\"No.of springs Required for Buffer is\",round(n2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No.of springs Required for Buffer is 4.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.25,Page No.259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=180 #mm #width of flange\n",
+ "d=10 #mm #Depth of flange\n",
+ "t=10 #mm #Thickness of flange\n",
+ "D=400 #mm #Overall Depth \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "I_xx=1*12**-1*(b*D**3-(b-t)*(D-2*d)**3)\n",
+ "I_yy=1*12**-1*((D-2*d)*t**3+2*t*b**3)\n",
+ "\n",
+ "#If warping is neglected\n",
+ "J=I_xx+I_yy #mm**4\n",
+ "\n",
+ "#Since b/d>1.6,we get\n",
+ "J2=1*3**-1*d**3*b*(1-0.63*d*b**-1)*2+1*3**-1*t**3*(D-2*d)*(1-0.63*t*b**-1)\n",
+ "\n",
+ "#Over Estimation of torsional Rigidity would have been \n",
+ "T=J*J2**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Error in assessing torsional Rigidity if the warping is neglected is\",round(T,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Error in assessing torsional Rigidity if the warping is neglected is 808.28\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.26,Page No.261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=100 #mm #Outer Diameter\n",
+ "d2=95 #mm #Inner Diameter\n",
+ "T=2*10**6 #N-mm #Torque\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus\n",
+ "\n",
+ "#Shear stress\n",
+ "q_max=T*J**-1*d1*2**-1 #N/mm**2 \n",
+ "\n",
+ "#Now theta*L**-1=T*(G*J)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#Let theta*L**-1=X\n",
+ "X=T*J**-1\n",
+ "\n",
+ "#Now Treating it as very thin walled tube\n",
+ "d=(d1+d2)*2**-1 #mm\n",
+ "\n",
+ "r=d*2**-1 \n",
+ "t=(d1-d2)*2**-1\n",
+ "q_max2=T*(2*pi*r**2*t)**-1 #N/mm**2\n",
+ "\n",
+ "X2=T*(2*pi*r**3*t)**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"When it is treated as hollow shaft:Max shear stress\",round(q_max,2),\"N/mm**2\"\n",
+ "print\" :Angle of Twist per unit Length\",round(X,3)\n",
+ "print\"When it is very thin Walled Tube :Max shear stress\",round(q_max2,2),\"N/mm**2\"\n",
+ "print\" :Angle of twist per Unit Length\",round(X2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When it is treated as hollow shaft:Max shear stress 54.91 N/mm**2\n",
+ " :Angle of Twist per unit Length 1.098\n",
+ "When it is very thin Walled Tube :Max shear stress 53.57 N/mm**2\n",
+ " :Angle of twist per Unit Length 1.099\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_7.ipynb new file mode 100644 index 00000000..b75d886a --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_7.ipynb @@ -0,0 +1,1328 @@ +{
+ "metadata": {
+ "name": "chapter no.7.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.7:Compound Stresses And Strains"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1,Page No.269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma1=30 #N/mm**2 #Stress in tension\n",
+ "d=20 #mm #Diameter \n",
+ "sigma2=90 #N/mm**2 #Max compressive stress\n",
+ "sigma3=25 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#In TEnsion\n",
+ "\n",
+ "#Corresponding stress in shear\n",
+ "P=sigma1*2**-1 #N/mm**2\n",
+ "\n",
+ "#Tensile force\n",
+ "F=pi*4**-1*d**2*sigma1\n",
+ "\n",
+ "#In Compression\n",
+ "\n",
+ "#Correspong shear stress\n",
+ "P2=sigma2*2**-1 #N/mm**2\n",
+ "\n",
+ "#Correspong compressive(axial) stress\n",
+ "p=2*sigma3 #N/mm**2 \n",
+ "\n",
+ "#Corresponding Compressive force\n",
+ "P3=p*pi*4**-1*d**2 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Failure Loads are:\",round(F,2),\"N\"\n",
+ "print\" :\",round(P3,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Failure Loads are: 9424.78 N\n",
+ " : 15707.96 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.2,Page No.270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #Diameter of circular bar\n",
+ "F=20*10**3 #N #Axial Force\n",
+ "theta=30 #Degree #angle \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Axial stresses\n",
+ "p=F*(pi*4**-1*d**2)**-1 #N/mm**2\n",
+ "\n",
+ "#Normal Stress\n",
+ "p_n=p*(cos(30*pi*180**-1))**2\n",
+ "\n",
+ "#Tangential Stress\n",
+ "p_t=p*2**-1*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Max shear stress occurs on plane where theta2=45 \n",
+ "theta2=45\n",
+ "sigma_max=p*2**-1*sin(2*theta2*pi*180**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses developed on a plane making 30 degree is:\",round(p_n,2),\"N/mm**2\"\n",
+ "print\" :\",round(p_t,2),\"N/mm**2\"\n",
+ "print\"stress on max shear stress is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses developed on a plane making 30 degree is: 30.56 N/mm**2\n",
+ " : 17.64 N/mm**2\n",
+ "stress on max shear stress is 20.37 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.3,Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "theta=30 #degree\n",
+ "\n",
+ "#Stresses acting on material\n",
+ "p1=120 #N/mm**2\n",
+ "p2=80 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress\n",
+ "P_n=(p1+p2)*2**-1+(p1-p2)*2**-1*cos(2*theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Tangential stress\n",
+ "P_t=(p1-p2)*2**-1*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Resultant stress\n",
+ "P=(P_n**2+P_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination to the plane\n",
+ "phi=arctan(P_n*P_t**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Angle made by resultant with 120 #N/mm**2 stress\n",
+ "phi2=phi+theta #Degree\n",
+ "\n",
+ "#Result\n",
+ "print\"Normal Stress is\",round(P_n,2),\"N/mm**2\"\n",
+ "print\"Tangential Stress is\",round(P_t,2),\"N/mm**2\"\n",
+ "print\"Angle made by resultant\",round(phi2,2),\"Degree\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normal Stress is 110.0 N/mm**2\n",
+ "Tangential Stress is 17.32 N/mm**2\n",
+ "Angle made by resultant 111.05 Degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.4,Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Direct Stresses\n",
+ "P1=60 #N/mm**2 \n",
+ "P2=100 #N/mm**2\n",
+ "\n",
+ "Theta=25 #Degree #Angle\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress\n",
+ "P_n=(P1-P2)*2**-1+(P1+P2)*2**-1*cos(2*Theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Tangential Stress\n",
+ "P_t=(P1+P2)*2**-1*sin(Theta*2*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Resultant stress\n",
+ "P=(P_n**2+P_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "theta2=arctan(P_n*P_t**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses on the plane AC is:\",round(P_n,2),\"N/mm**2\"\n",
+ "print\" \",round(P_t,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses on the plane AC is: 31.42 N/mm**2\n",
+ " 61.28 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.6,Page No.278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Stresses acting on material\n",
+ "p_x=180 #N/mm**2 \n",
+ "p_y=120 #N/mm**2\n",
+ "\n",
+ "q=80 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1) #degrees\n",
+ "theta2=theta*2**-1 #Degrees\n",
+ "theta3=theta+180 #Degrees\n",
+ "theta4=theta3*2**-1 #Degrees\n",
+ "\n",
+ "#Stresses\n",
+ "p_1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p_2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of Principal stress is:\",round(p_1,2),\"N/mm**2\"\n",
+ "print\" \",round(p_2,2),\"N/mm**2\"\n",
+ "print\"Magnitude of max shear stress is\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of Principal stress is: 235.44 N/mm**2\n",
+ " 64.56 N/mm**2\n",
+ "Magnitude of max shear stress is 85.44 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.7,Page No.279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=60 #N/mm**2\n",
+ "p_y=-40 #N/mm**2\n",
+ "\n",
+ "q=10 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Principal Stresses\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" :\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shear stresses\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: 60.99 N/mm**2\n",
+ " : -40.99 N/mm**2\n",
+ "Max shear stresses 50.99 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.8,Page No.280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=-120 #N/mm**2\n",
+ "p_y=-80 #N/mm**2\n",
+ "\n",
+ "q=-60 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Principal Stresses\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" :\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shear stresses\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: -36.75 N/mm**2\n",
+ " : -163.25 N/mm**2\n",
+ "Max shear stresses 63.25 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.9,Page No.282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=-40 #N/mm**2\n",
+ "p_y=80 #N/mm**2\n",
+ "\n",
+ "q=48 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=((((p_x-p_y)*2**-1)**2)+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Normal Corresponding stress\n",
+ "p_n=(p_x+p_y)*2**-1+(p_x-p_y)*2**-1*cos(2*(theta2+45)*pi*180**-1)+q*sin(2*(theta2+45)*pi*180**-1) #Degrees\n",
+ "\n",
+ "#Resultant stress\n",
+ "p=((p_n**2+q_max**2)**0.5) #N/mm**2\n",
+ "\n",
+ "phi=arctan(p_n*q_max**-1)*(180*pi**-1) #Degrees\n",
+ "\n",
+ "#Inclination to the plane\n",
+ "alpha=round((theta2+45),2)+round(phi ,2)#Degree\n",
+ "\n",
+ "#Answer in book is incorrect of alpha ie41.25\n",
+ "\n",
+ "#Result\n",
+ "print\"Planes of max shear stress:\",round(p_n,2),\"N/mm**2\"\n",
+ "print\" \",round(q_max,2),\"N/mm*2\"\n",
+ "print\"Resultant Stress is\",round(p,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Planes of max shear stress: 20.0 N/mm**2\n",
+ " 76.84 N/mm*2\n",
+ "Resultant Stress is 79.4 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.10,Page No.283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Stresses\n",
+ "p_x=50*cos(35*pi*180**-1)\n",
+ "q=50*sin(35*pi*180**-1)\n",
+ "p_y=0\n",
+ "\n",
+ "theta=40 #Degrees #Plane AB inclined to vertical\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress on AB\n",
+ "p_n=(p_x+p_y)*2**-1+(p_x-p_y)*2**-1*cos(2*theta*pi*180**-1)+q*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Tangential Stress on AB\n",
+ "p_t=(p_x-p_y)*2**-1*sin(2*theta*pi*180**-1)-q*cos(2*theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Resultant stress\n",
+ "p=(p_n**2+p_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Angle of resultant\n",
+ "phi=arctan(p_n*p_t**-1)*(180*pi**-1) #degrees\n",
+ "phi2=phi+theta #Degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of resultant stress is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Direction of Resultant stress is\",round(phi2,2),\"Degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of resultant stress is 54.44 N/mm**2\n",
+ "Direction of Resultant stress is 113.8 Degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.12,Page No.285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Direct stresses\n",
+ "p_x=120 #N/mm**2 #Tensile stress\n",
+ "p_y=-100 #N/mm**2 #Compressive stress\n",
+ "p1=160 #N/mm**2 #Major principal stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let q be the shearing stress\n",
+ "\n",
+ "#p1=(p_x+p_y)*2**-1+((((p_x+p_y)*2**-1)**2)+q**2)**0.5\n",
+ "#After further simplifying we get\n",
+ "q=(p1-((p_x+p_y)*2**-1))**2-((p_x-p_y)*2**-1)**2 #N/mm**2\n",
+ "q2=(q)**0.5 #N/mm**2\n",
+ "\n",
+ "#Minimum Principal stress\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shearing stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shearing stress of material\",round(q,2),\"N/mm**2\"\n",
+ "print\"Min Principal stress\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shearing stress\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shearing stress of material 10400.0 N/mm**2\n",
+ "Min Principal stress -140.0 N/mm**2\n",
+ "Max shearing stress 150.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.14,Page No.291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=40*10**3 #N #Shear Force\n",
+ "M=20*10**6 #Bending Moment\n",
+ "\n",
+ "#Rectangular section\n",
+ "b=100 #mm #Width\n",
+ "d=200 #mm #Depth\n",
+ "\n",
+ "x=20 #mm #Distance from Top surface upto point\n",
+ "y=80 #mm #Distance from point to Bottom\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "I=1*12**-1*b*d**3 #mm**4 #M.I\n",
+ "\n",
+ "#At 20 mm Below top Fibre\n",
+ "f_x=M*I**-1*y #N/mm**2 #Stress\n",
+ "\n",
+ "#Assuming sagging moment ,f_x is compressive p_x=f_x=-24 #N/mm**2\n",
+ "p_x=f_x=-24 #N/mm**2\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=F*(b*I)**-1*(b*x*(b-x*2**-1)) #N/mm**2\n",
+ "\n",
+ "#Direct stresses\n",
+ "\n",
+ "p_y=0 #N/mm**2\n",
+ "\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Directions of principal stresses at a point below 20mm is:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" \",round(p2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directions of principal stresses at a point below 20mm is: 0.05 N/mm**2\n",
+ " -24.05 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.15,Page No.292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=4000 #mm #Span\n",
+ "W1=W2=W3=2*10**3 #N #Load\n",
+ "\n",
+ "#SEction of beam\n",
+ "b=100 #mm #Width\n",
+ "d=240 #mm #Dept\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the reactions\n",
+ "R_A=R_B=(W1+W2+W3)*2**-1 #KN\n",
+ "\n",
+ "#Now at the section 1.5m from left support A\n",
+ "#Shear Force\n",
+ "F=R_A-W1 #KN\n",
+ "\n",
+ "#B.M\n",
+ "M=R_A*1.5-W1*0.5 #KN-m\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*d**3 #mm**4\n",
+ "\n",
+ "#Bending stress\n",
+ "#f=M*I**-1*y\n",
+ "#After Sub values and further simplifying we get\n",
+ "#f=3.04*10**-2*y\n",
+ "\n",
+ "#As it varies Linearly\n",
+ "\n",
+ "#at distance 0 From NA \n",
+ "f1=0\n",
+ "#at distance 60 mm from NA\n",
+ "f2=1.823 #N/mm**2\n",
+ "#at distance 120 mm from NA\n",
+ "f3=3.646 #N/mm**2\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=F*b*d*2**-1*d*4**-1*(b*I)**-1\n",
+ "\n",
+ "#At 60 mm above NA\n",
+ "q2=F*b*d*4**-1*(d*2**-1-d*8**-1)*(b*I)**-1\n",
+ "\n",
+ "#At 120 mm above NA\n",
+ "q3=0 \n",
+ "\n",
+ "#At NA element is under pure shear\n",
+ "p1=q #N/mm**2\n",
+ "p2=-q #N/mm**2 \n",
+ "\n",
+ "#Inclination of principal plane to vertical\n",
+ "#theta=2*q*0**-1\n",
+ "#Further simplifying we get\n",
+ "#theta=infinity\n",
+ "\n",
+ "#therefore\n",
+ "theta=90*2**-1 #degrees\n",
+ "theta2=270*2**-1 #degrees\n",
+ "\n",
+ "#At 60 mm From NA\n",
+ "p_x=-1.823 #N/mm**2 \n",
+ "p_y=0\n",
+ "q=0.0469 #N/mm**2\n",
+ "\n",
+ "#principal planes\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Principal planes inclination to hte plane of p_x is given by\n",
+ "theta3=(arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1))\n",
+ "theta4=theta3*2**-1#degrees\n",
+ "\n",
+ "theta5=theta3+180 #Degrees\n",
+ "\n",
+ "#At 120 mm From N-A\n",
+ "p_x2=3.646 #N/mm**2\n",
+ "p_y2=0 #N/mm**2\n",
+ "q2=0 #N/mm**2\n",
+ "\n",
+ "P3=p_x2 #N/mm**2\n",
+ "P4=0 #N/mm**2\n",
+ "\n",
+ "#Answer for P2 at 60 mm from NA is incorrect\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Planes at 60 mm from NA:\",round(p_x,2),\"N/mm**2\"\n",
+ "print\" \",round(p_y,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses at 60 mm From NA\",round(P1,4),\"N/mm**2\"\n",
+ "print\" \",round(P2,4),\"N/mm**2\"\n",
+ "print\"Principal Planes at 60 mm from NA:\",round(p_x2,4),\"N/mm**2\"\n",
+ "print\" \",round(p_y2,4),\"N/mm**2\"\n",
+ "print\"Principal Stresses at 60 mm From NA\",round(P3,4),\"N/mm**2\"\n",
+ "print\" \",round(P4,4),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Planes at 60 mm from NA: -1.82 N/mm**2\n",
+ " 0.0 N/mm**2\n",
+ "Principal Stresses at 60 mm From NA 0.0012 N/mm**2\n",
+ " -1.8242 N/mm**2\n",
+ "Principal Planes at 60 mm from NA: 3.646 N/mm**2\n",
+ " 0.0 N/mm**2\n",
+ "Principal Stresses at 60 mm From NA 3.646 N/mm**2\n",
+ " 0.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.16,Page No.295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=8000 #mm #Span of beam\n",
+ "w=40*10**6 #N/mm #udl\n",
+ "\n",
+ "#I-section\n",
+ "\n",
+ "#Flanges\n",
+ "b=100 #mm #Width\n",
+ "t=10 #mm #Thickness\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "t2=10 #mm #thickness of web\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the Reactions at A & B respectively\n",
+ "R_A=w*2**-1*L*10**-9 #KN\n",
+ "\n",
+ "#Shear force at 2m for left support\n",
+ "F=R_A-2*w*10**-6 #KN\n",
+ "\n",
+ "#Bending Moment\n",
+ "M=R_A*2-2*w*10**-6 #KN-m\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*D**3-1*12**-1*(b-t)*(D-2*t2)**3 #mm**4\n",
+ "\n",
+ "#Bending stress at 100 mm above N_A\n",
+ "f=M*10**6*I**-1*b\n",
+ "\n",
+ "#Shear stress \n",
+ "q=F*10**3*(t*I)**-1*(b*t*(D-t)*2**-1 +t2*(b-t2)*145) #N/mm**2\n",
+ "\n",
+ "p_x=-197.06 #N/mm**2 \n",
+ "p_y=0 #N/mm**2\n",
+ "q=21.38 #N/mm**2\n",
+ "\n",
+ "#Principal Stresses\n",
+ "\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(P1,2),\"N/mm**2\"\n",
+ "print\" \",round(P2,2),\"N/mm**2\"\n",
+ "print\"Max shear stress\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: 2.29 N/mm**2\n",
+ " -199.35 N/mm**2\n",
+ "Max shear stress 100.82 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.18,Page No.298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=100 #mm #Diameter of shaft\n",
+ "M=3*10**6 #N-mm #B.M\n",
+ "T=6*10**6 #N-mm #Twisting Moment\n",
+ "mu=0.3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max principal Stress\n",
+ "\n",
+ "P1=16*(pi*d**3)**-1*(M+(M**2+T**2)**0.5) #N/mm**2 \n",
+ "P2=16*(pi*d**3)**-1*(M-(M**2+T**2)**0.5) #N/mm**2 \n",
+ "\n",
+ "#Direct stress\n",
+ "P=round(P1,2)-mu*round(P2,2) #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Principal stresses are:\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Stress Producing the same strain is\",round(P,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal stresses are: 49.44 N/mm**2\n",
+ " : -18.89 N/mm**2\n",
+ "Stress Producing the same strain is 55.11 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.19,Page No.299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=75 #mm #diameter \n",
+ "P=30*10**6 #W #Power transmitted\n",
+ "W=6 #N-mm/sec #Load\n",
+ "L=1000 #mm \n",
+ "N=300 #r.p.m\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#B.M\n",
+ "M=W*L*4**-1 #N-mm\n",
+ "T=P*60*(2*pi*N)**-1 #Torque transmitted\n",
+ "\n",
+ "#M.I\n",
+ "I=pi*64**-1*d**4 #mm**4\n",
+ "\n",
+ "#Bending stress\n",
+ "f_A=M*I**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "#At A\n",
+ "p_x=f_A\n",
+ "p_y=0\n",
+ "\n",
+ "#Polar Modulus\n",
+ "J=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=T*J**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "#Principal Stresses\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Bending stress\n",
+ "p_x2=0\n",
+ "p_y2=0\n",
+ "\n",
+ "#Shearing stress\n",
+ "q2=T*J**-1*d*2**-1 #N/mm**2\n",
+ "\n",
+ "#Principal stresses\n",
+ "P3=(p_x2+p_y2)*2**-1+(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "P4=(p_x2+p_y2)*2**-1-(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max2=(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Answer for Principal Stresses P1,P2 and Max stress i.e q_max is incorrect in Book\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses at vertical Diameter:P1\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :P2\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Max stress at vertical Diameter : \",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses at Horizontal Diameter:P3\",round(P3,2),\"N/mm**2\"\n",
+ "print\" :P4\",round(P4,2),\"N/mm**2\"\n",
+ "print\"Max stress at Horizontal Diameter : \",round(q_max2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses at vertical Diameter:P1 11.55 N/mm**2\n",
+ " :P2 -11.51 N/mm**2\n",
+ "Max stress at vertical Diameter : 11.53 N/mm**2\n",
+ "Principal Stresses at Horizontal Diameter:P3 11.53 N/mm**2\n",
+ " :P4 -11.53 N/mm**2\n",
+ "Max stress at Horizontal Diameter : 11.53 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.20,Page No.302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=100 #mm #External Diameter\n",
+ "d2=50 #mm #Internal Diameter\n",
+ "N=500 #mm #r.p.m\n",
+ "P=60*10**6 #N-mm/sec #Power\n",
+ "p=100 #N/mm**2 #principal stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I\n",
+ "I=pi*(d1**4-d2**4)*64**-1 #mm**4\n",
+ "\n",
+ "#Bending Stress\n",
+ "#f=M*I*d1*2**-1 #N/mm**2\n",
+ "\n",
+ "#Principal Planes\n",
+ "#p_x=32*M*(pi*(d1**4-d2**4))*d1\n",
+ "#p_y=0\n",
+ "\n",
+ "#Shear stress\n",
+ "#q=T*J**-1*(d1*2**-1)\n",
+ "#After sub values and further simplifying we get\n",
+ "#q=16*T*d1*(pi*(d1**4-d2**4))*d1\n",
+ "\n",
+ "#Principal stresses\n",
+ "#P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "#After sub values and further simplifying we get\n",
+ "#P1=16*(pi*(d1**4-d2**4))*d1*(M+(M**2+t**2)**0.5) ...............(1)\n",
+ "\n",
+ "#P=2*pi*N*T*60**-1\n",
+ "#After sub values and further simplifying we get\n",
+ "T=P*60*(2*pi*N)**-1*10**-6 #N-mm\n",
+ "\n",
+ "#Again Sub values and further simplifying Equation 1 we get\n",
+ "M=(337.533)*(36.84)**-1 #KN-m\n",
+ "\n",
+ "#Min Principal stress\n",
+ "#P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "#Sub values and further simplifying we get\n",
+ "P2=16*(pi*(d1**4-d2**4))*d1*(M-(M**2+T**2)**0.5)*10**-11\n",
+ "\n",
+ "#Result\n",
+ "print\"Bending Moment safely applied to shaft is\",round(M,2),\"KN-m\"\n",
+ "print\"Min Principal Stress is\",round(P2,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bending Moment safely applied to shaft is 9.16 KN-m\n",
+ "Min Principal Stress is -0.336 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.21,Page No.303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=150 #mm #Diameter\n",
+ "T=20*10**6 #N #Torque\n",
+ "M=12*10**6 #N-mm #B.M\n",
+ "F=200*10**3 #N #Axial Thrust\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I\n",
+ "I=(pi*64**-1*d**4)\n",
+ "\n",
+ "#Bending stress \n",
+ "f_A=M*I**-1*(d*2**-1) #N/mm**2\n",
+ "f_B=-f_A #N/mm**2\n",
+ "\n",
+ "#Axial thrust due to thrust\n",
+ "sigma=F*(pi*4**-1*d**2)**-1\n",
+ "\n",
+ "#At A\n",
+ "p_x=f_A-sigma #N/mm**2\n",
+ "\n",
+ "#At B\n",
+ "p_x2=f_B-sigma #N/mm**2\n",
+ "\n",
+ "p_y=0 #At A and B\n",
+ "\n",
+ "#Polar Modulus\n",
+ "J=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Shearing stress at A and B\n",
+ "q=T*J**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Principal Stresses\n",
+ "#At A\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max1=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#At B\n",
+ "P1_2=(p_x2+p_y)*2**-1+(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2_2=(p_x2+p_y)*2**-1-(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max2=(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"MAx Principal Stresses:P1\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :P2\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Min Principal Stresses:P1_2\",round(P1_2,2),\"N/mm**2\"\n",
+ "print\" :P2_2\",round(P2_2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MAx Principal Stresses:P1 45.1 N/mm**2\n",
+ " :P2 -20.2 N/mm**2\n",
+ "Min Principal Stresses:P1_2 14.65 N/mm**2\n",
+ " :P2_2 -62.18 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.22,Page No.311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#strains\n",
+ "e_A=500 #microns\n",
+ "e_B=250 #microns\n",
+ "e_C=-150 #microns\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "theta=45 #Degrees\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "e_x=e_A=500\n",
+ "e_45=e_B=250\n",
+ "e_y=e_C=-150 \n",
+ "\n",
+ "#e_45=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(2*theta)+rho_x_y*2**-1*sin(2*theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "rho_x_y=(e_45-(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*cos(2*theta*pi*180**-1))*(sin(2*theta*pi*180**-1))**-1*2\n",
+ "\n",
+ "#Principal strains are given by\n",
+ "e1=(e_x+e_y)*2**-1+(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "e2=(e_x+e_y)*2**-1-(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "\n",
+ "#Principal Stresses\n",
+ "sigma1=E*(e1+mu*e2)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "sigma2=E*(e2+mu*e1)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Strains are:e1\",round(e1,2),\"N/mm**2\"\n",
+ "print\" :e2\",round(e2,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses are:sigma1\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\" :sigma2\",round(sigma2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Strains are:e1 508.54 N/mm**2\n",
+ " :e2 -158.54 N/mm**2\n",
+ "Principal Stresses are:sigma1 101.31 N/mm**2\n",
+ " :sigma2 -1.31 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.23,Page No.313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Strains\n",
+ "e_A=600 #microns\n",
+ "e_B=-450 #microns\n",
+ "e_C=100 #micron\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "theta=240\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "e_x=e_A=600\n",
+ "\n",
+ "#e_A=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(theta)+rho_x_y*2**-1*sin(theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "#-450=(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*(0.5)-0.866*2**-1*rho_x_y .....................(1)\n",
+ "\n",
+ "#e_C=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(2*theta)+rho_x_y*2**-1*sin(2*theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "#100=(e_x+e_y)*2**-1-0.5*(e_x-e_y)*2**-1*(0.5)-0.866*2**-1*rho_x_y .....................(2)\n",
+ "\n",
+ "#Adding Equation 1 and 2 we get equations as\n",
+ "#-350=e_x+e_y-(e_x-e_y)*2**-1 ...............(3)\n",
+ "#Further simplifying we get\n",
+ "\n",
+ "e_y=(-700-e_x)*3**-1 #micron \n",
+ "\n",
+ "rho_x_y=(e_C-(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*cos(2*theta*pi*180**-1))*(sin(2*theta*pi*180**-1))**-1*2 #micron\n",
+ "\n",
+ "#Principal strains\n",
+ "e1=(e_x+e_y)*2**-1-(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "e2=(e_x+e_y)*2**-1+(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "\n",
+ "#Principal Stresses\n",
+ "sigma1=E*(e1+mu*e2)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "sigma2=E*(e2+mu*e1)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:sigma1\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\" :sigma2\",round(sigma2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are:sigma1 -69.49 N/mm**2\n",
+ " :sigma2 117.11 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_7.ipynb new file mode 100644 index 00000000..08f57912 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_7.ipynb @@ -0,0 +1,1527 @@ +{
+ "metadata": {
+ "name": "chapter no.8.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.8:Thin And Thick Cyclinders And Spheres"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.1,Page No.322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #Length\n",
+ "d1=1000 #mm #Internal diameter\n",
+ "t=15 #mm #Thickness\n",
+ "P=1.5 #N/mm**2 #Fluid Pressure\n",
+ "E=2*10**5 #n/mm**2 #Modulus of elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=P*d1*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Longitudinal Stress\n",
+ "f2=P*d1*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(f1-f2)*2**-1 #N/mm**2\n",
+ "\n",
+ "#Diametrical Strain\n",
+ "#Let e1=dell_d*d**-1 .....................(1)\n",
+ "e1=(f1-mu*f2)*E**-1 \n",
+ "\n",
+ "#Sub values in equation 1 and further simplifying we get\n",
+ "dell_d=e1*d1 #mm\n",
+ "\n",
+ "#Longitudinal strain\n",
+ "#e2=dell_L*L**-1 ......................(2)\n",
+ "e2=(f2-mu*f1)*E**-1 \n",
+ "\n",
+ "#Sub values in equation 2 and further simplifying we get\n",
+ "dell_L=e2*L #mm\n",
+ "\n",
+ "#Change in Volume \n",
+ "#Let Z=dell_V*V**-1 ................(3)\n",
+ "Z=2*e1+e2\n",
+ "\n",
+ "#Sub values in equation 3 and further simplifying we get\n",
+ "dell_V=Z*pi*4**-1*d1**2*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Intensity of shear stress\",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Change in the Dimensions of the shell is:dell_d\",round(dell_d,2),\"mm\"\n",
+ "print\" :dell_L\",round(dell_L,2),\"mm\"\n",
+ "print\" :dell_V\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Intensity of shear stress 12.5 N/mm**2\n",
+ "Change in the Dimensions of the shell is:dell_d 0.21 mm\n",
+ " :dell_L 0.15 mm\n",
+ " :dell_V 1119192.38 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.2,Page No.323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=2000 #mm #Length\n",
+ "d=200 #mm # diameter\n",
+ "t=10 #mm #Thickness\n",
+ "dell_V=25000 #mm**3 #Additional volume\n",
+ "E=2*10**5 #n/mm**2 #Modulus of elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p be the pressure developed\n",
+ "\n",
+ "#Circumferential Stress\n",
+ "\n",
+ "#f1=p*d*(2*t)**-1 #N/mm**2\n",
+ "#After sub values and further simplifying\n",
+ "#f1=10*p\n",
+ "\n",
+ "#f1=p*d*(4*t)**-1 #N/mm**2\n",
+ "#After sub values and further simplifying\n",
+ "#f1=5*p\n",
+ "\n",
+ "#Diameterical strain = Circumferential stress\n",
+ "#Let X=dell_d*d**-1 ................................(1)\n",
+ "#X=e1=(f1-mu*f2)*E**-1 \n",
+ "#After sub values and further simplifying\n",
+ "#e1=8.5*p*E**-1\n",
+ "\n",
+ "#Longitudinal strain\n",
+ "#Let Y=dell_L*L**-1 ......................................(2)\n",
+ "#Y=e2=(f2-mu*f1)*E**-1 \n",
+ "#After sub values and further simplifying\n",
+ "#e2=2*p*E**-1\n",
+ "\n",
+ "#Volumetric strain\n",
+ "#Let X=dell_V*V**-1 \n",
+ "#X=2*e1+e2\n",
+ "#After sub values and further simplifying\n",
+ "#X=19*p*E**-1\n",
+ "#After further simplifying we get\n",
+ "p=dell_V*(pi*4**-1*d**2*L)**-1*E*19**-1 #N/mm**2\n",
+ "\n",
+ "#Hoop Stress\n",
+ "f1=p*d*(2*t)**-1\n",
+ "\n",
+ "X=e1=8.5*p*E**-1\n",
+ "#Sub value of X in equation 1 we get\n",
+ "dell_d=8.5*p*E**-1*d\n",
+ "\n",
+ "Y=e2=2*p*E**-1\n",
+ "#Sub value of Y in equation 2 we get\n",
+ "dell_L=2*p*E**-1*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Pressure Developed is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Hoop stress Developed is\",round(f1,2),\"N/mm**2\"\n",
+ "print\"Change in diameter is\",round(dell_d,2),\"mm\"\n",
+ "print\"Change in Length is\",round(dell_L,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure Developed is 4.19 N/mm**2\n",
+ "Hoop stress Developed is 41.88 N/mm**2\n",
+ "Change in diameter is 0.04 mm\n",
+ "Change in Length is 0.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.3,Page No.324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=750 #mm #Diameter of water supply pipes\n",
+ "h=50*10**3 #mm #Water head\n",
+ "sigma=20 #N/mm**2 #Permissible stress\n",
+ "rho=9810*10**-9 #N/mm**3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Pressure of water\n",
+ "P=rho*h #N/mm**2\n",
+ "\n",
+ "#Stress\n",
+ "#sigma=p*d*(2*t)**-1\n",
+ "#After further simplifying\n",
+ "t=P*d*(2*sigma)**-1 #mm \n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of seamless pipe is\",round(t,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of seamless pipe is 9.197 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.4,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=2500 #mm #Diameter of riveted boiler\n",
+ "P=1 #N/mm**2 #Pressure\n",
+ "rho1=0.7 #Percent efficiency\n",
+ "rho2=0.4 #Circumferential joints\n",
+ "sigma=150 #N/mm**2 #Permissible stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Equating Bursting force to longitudinal joint strength ,we get\n",
+ "#p*d*L=rho1*2*t*L*sigma\n",
+ "#After rearranging and further simplifying we get\n",
+ "t=P*d*(2*sigma*rho1)**-1 #mm\n",
+ "\n",
+ "#Considering Longitudinal force\n",
+ "#pi*d**2*4**-1*P=rho2*pi*d*t*sigma\n",
+ "#After rearranging and further simplifying we get\n",
+ "t2=P*d*(4*sigma*rho2)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of plate required is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of plate required is 11.9 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.5,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Boiler Dimensions\n",
+ "t=16 #mm #Thickness\n",
+ "p=2 #N/mm**2 #internal pressure\n",
+ "f=150 #N/mm**2 #Permissible stress\n",
+ "rho1=0.75 #Longitudinal joints\n",
+ "rho2=0.45 #circumferential joints\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Equating Bursting force to longitudinal joint strength ,we get\n",
+ "d1=rho1*2*t*f*p**-1 #mm\n",
+ "\n",
+ "#Considering circumferential strength \n",
+ "d2=4*rho2*t*f*p**-1 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Largest diameter of Boiler is\",round(d1,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Largest diameter of Boiler is 1800.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.6,Page No.329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=250 #mm #Diameter iron pipe\n",
+ "t=10 #mm #Thickness\n",
+ "d2=6 #mm #Diameter of steel\n",
+ "p=80 #N/mm**2 #stress\n",
+ "P=3 #N/mm**2 #Pressure\n",
+ "E_c=1*10**5 #N/mm**2\n",
+ "mu=0.3 #poissoin's ratio\n",
+ "E_s=2*10**5 #N/mm**2\n",
+ "n=1 #No.of wires\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "L=6 #mm #Length of cyclinder\n",
+ "\n",
+ "#Force Exerted by steel wire at diameterical section\n",
+ "F=p*2*pi*d2**2*1*4**-1 #N\n",
+ "\n",
+ "#Initial stress in cyclinder\n",
+ "f_c=F*(2*t*d2)**-1 #N/mm**2\n",
+ "\n",
+ "#LEt due to fluid pressure alone stresses developed in steel wire be F_w and in cyclinder f1 and f2\n",
+ "f2=P*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Considering the equilibrium of half the cyclinder, 6mm long we get\n",
+ "#F_w*2*pi*4**-1*d2**2*n+f1*2*t*d2=P*d*d2\n",
+ "#After further simplifying we get\n",
+ "#F_w+2.122*f1=79.58 . ......................................(1)\n",
+ "\n",
+ "#Equating strain in wire to circumferential strain in cyclinder \n",
+ "#F_w=(f1-mu*f2)*E_s*E_c**-1 #N/mm**2\n",
+ "#After further simplifying we get\n",
+ "#F_w=2*f1-11.25 ....................................(2)\n",
+ "\n",
+ "#Sub in equation in1 we get\n",
+ "f1=(79.58+11.25)*(4.122)**-1 #N/mm**2\n",
+ "F_w=2*f1-11.25 #N/mm**2\n",
+ "\n",
+ "#Final stresses\n",
+ "#1) In steel Wire\n",
+ "sigma=F_w+p #N/mm**2\n",
+ "\n",
+ "#2) In Cyclinder\n",
+ "sigma2=f1-f_c\n",
+ "\n",
+ "#Result\n",
+ "print\"Final Stresses developed in:cyclinder is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\" :Steel is\",round(sigma2,2),\"N/mm**2\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Stresses developed in:cyclinder is 112.82 N/mm**2\n",
+ " :Steel is -15.66 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.7,Page No.332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=750 #mm #Diameter of shell\n",
+ "t=8 #mm #THickness\n",
+ "p=2.5 #N/mm**2\n",
+ "E=2*10**5 #N/mm**2\n",
+ "mu=0.25 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=f2=p*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Change in Diameter\n",
+ "dell_d=d*p*d*(1-mu)*(4*t*E)**-1 #mm\n",
+ "\n",
+ "#Change in Volume\n",
+ "dell_V=3*p*d*(1-mu)*(4*t*E)**-1*pi*6**-1*d**3\n",
+ "\n",
+ "#Answer for Change in diameter is incorrect in book\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress introduced is\",round(f1,2),\"N/mm**2\"\n",
+ "print\"Change in Diameter is\",round(dell_d,2),\"N/mm**2\"\n",
+ "print\"Change in Volume is\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress introduced is 58.59 N/mm**2\n",
+ "Change in Diameter is 0.16 N/mm**2\n",
+ "Change in Volume is 145608.33 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.8,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=600 #mm #Diameter of sherical shell\n",
+ "t=10 #mm #Thickness\n",
+ "f=80 #N/mm**2 #Permissible stress\n",
+ "rho=0.75 #Efficiency joint\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max Pressure\n",
+ "p=f*4*t*rho*d**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Pressure is\",round(p,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Pressure is 4.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.9,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of shell\n",
+ "d=200 #mm #Diameter\n",
+ "t=6 #mm #Thickness\n",
+ "p=1.5 #N/mm**2 #Internal Pressure\n",
+ "E=2*10**5 #N/mm**2\n",
+ "mu=0.25 #Poissoin's Ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Change in Volume of sphere\n",
+ "dell_V_s=3*p*d*(1-mu)*(4*t*E)**-1*pi*6**-1*d**3\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=p*d*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Longitudinal stress\n",
+ "f2=p*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Principal strain\n",
+ "e1=(f1-mu*f2)*E**-1\n",
+ "e2=(f2-mu*f1)*E**-1\n",
+ "\n",
+ "V_c=1000 #mm**3\n",
+ "\n",
+ "#Change in Volume of cyclinder\n",
+ "dell_V_c=(2*e1+e2)*pi*4**-1*d**2*L\n",
+ "\n",
+ "#Total Change in Diameter\n",
+ "dell_V=dell_V_s+dell_V_c #mm**3\n",
+ "\n",
+ "#Result\n",
+ "print\"Change in Volume is\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in Volume is 8443.03 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.10,Page No.337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=400 #mm #Internal Diameter\n",
+ "t=100 #mm #Thickness\n",
+ "p=80 #N/mm**2 #Fluid pressure\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Internal Radius\n",
+ "r1=d1*2**-1 #mm\n",
+ "\n",
+ "#Outer Radius\n",
+ "r_o=r1+t #mm\n",
+ "\n",
+ "p1=80 #N/mm**2\n",
+ "p2=0\n",
+ "\n",
+ "#Now From Lame's Euation\n",
+ "#p_x=b*(x**2)**-1-a\n",
+ "#at x=200 #mm \n",
+ "p_x=80 #N/mm**2\n",
+ "#80=b*(200**2)**-1-a ..........................(1)\n",
+ "\n",
+ "#at x=300 #mm\n",
+ "#p_x2=0\n",
+ "#0=b*(300**2)**-1-a ...........................(2)\n",
+ "\n",
+ "#Sub equation 2 from 1\n",
+ "#80=b*(200**2)**-1-b*(300**2)**-1\n",
+ "#After Further simplifying we get\n",
+ "b=(50000)**-1*(200**2*300**2*80)\n",
+ "\n",
+ "#From equation 2 we get\n",
+ "a=b*(300**2)**-1\n",
+ "\n",
+ "#Variation of radial pressure p_x;\n",
+ "#p_x=b*(x**2)**-1-a\n",
+ "#After sub values and further simplifying we get\n",
+ "\n",
+ "#Radial pressure Variation\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "p_x=b*(x**2)**-1-a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=250 #mm\n",
+ "p_x2=b*(x2**2)**-1-a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x3=300 #mm\n",
+ "p_x3=b*(x3**2)**-1-a #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Hoop stress Distribution\n",
+ "#Variation of F_x\n",
+ "\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=250 #mm\n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x3=300 #mm\n",
+ "F_x3=b*(x3**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Hoop stress is\",round(F_x,2),\"N/mm**2\"\n",
+ "print\"Min Hoop stress is\",round(F_x3,2),\"N/mm**2\"\n",
+ "print\"Plot of Hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[p_x,p_x2,p_x3]\n",
+ "Y2=[-F_x,-F_x2,-F_x3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Y2,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Radial Stress Distribution & Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Hoop stress is 208.0 N/mm**2\n",
+ "Min Hoop stress is 128.0 N/mm**2\n",
+ "Plot of Hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x50e8310>"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.11,Page No.338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d2=200 #mm #Internal Diameter\n",
+ "p=14 #N/mm**2 #internal Fluid pressure\n",
+ "t=50 #mm #Thickness\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r2=100 #mm #Internal Diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation\n",
+ "#p_x=b*(x**2)**-1-a #N/mm**2 ...................(1)\n",
+ "#F_x=b*(x**2)**-1+a #N/mm**2 ...................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r2=100 #mm\n",
+ "p_x=14 #N/mm**2\n",
+ "\n",
+ "#Sub value of p_x in equation 1 we get\n",
+ "#14=(100)**-1*b-a ............................(3)\n",
+ "\n",
+ "#At\n",
+ "x2=r_o=150 #mm\n",
+ "p_x2=0 #N/mm**2\n",
+ "\n",
+ "#Sub value in equation 1 we get\n",
+ "#0=b*(150**2)**-1-a ......................(4)\n",
+ "\n",
+ "#From Equations 3 and 4 we get\n",
+ "#14=b*(100**2)**-1-b*(100**2)**-1\n",
+ "#After sub values and further simplifying we get\n",
+ "b=14*100**2*150**2*(150**2-100**2)**-1\n",
+ "\n",
+ "#From equation 4 we get\n",
+ "a=b*(150**2)**-1\n",
+ "\n",
+ "#Hoop Stress\n",
+ "#F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x=100 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=125 #mm\n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x3=150 #mm\n",
+ "F_x3=b*(x3**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#If thin Cyclindrical shell theory is used,hoop stress is uniform and is given by\n",
+ "F=p*d2*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Percentage error in estimating max hoop tension\n",
+ "E=(F_x-F)*F_x**-1*100 #%\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Hoop Stress Developed in the cross-section is\",round(F,2),\"N/mm**2\"\n",
+ "print\"Plot of Variation of hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[F_x,F_x2,F_x3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Radial Stress Distribution & Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Hoop Stress Developed in the cross-section is 28.0 N/mm**2\n",
+ "Plot of Variation of hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nSUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x58c2e30>"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.12,Page No.339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d2=200 #mm #Internal Diameter\n",
+ "p=12 #N/mm**2 #internal Fluid pressure\n",
+ "F_max=16 #N/mm**2 #Tensile stress\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r2=100 #mm #Internal Diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p_o be the External Pressure applied.\n",
+ "#From LLame's theorem\n",
+ "#p_x=b*(x**2)**-1-a ..............(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Now At\n",
+ "x=100 #mm\n",
+ "p_x=12 #N/mm**2\n",
+ "#sub in equation 1 we get\n",
+ "#12=b*(100**2)**-1-a . ..................(3)\n",
+ "\n",
+ "#The Max Hoop stress occurs at least value of x where\n",
+ "x=r1=100 #mm\n",
+ "#16=b*(100**2)**-1+a .......................(4)\n",
+ "\n",
+ "#From Equations 1 and 2 we get\n",
+ "#28=b*(100**2)**-1+b*(100**2)**-1\n",
+ "#After furhter Simplifying we get\n",
+ "b=28*100**2*2**-1\n",
+ "\n",
+ "#sub in equation 1 we get\n",
+ "a=-(12-(b*(100**2)**-1))\n",
+ "\n",
+ "#Thus At\n",
+ "x2=150 #mm\n",
+ "p_o=b*(x2**2)**-1-a\n",
+ "\n",
+ "#Result\n",
+ "print\"Minimum External applied is\",round(p_o,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum External applied is 4.22 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.13,Page No.340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=160 #mm #Internal Diameter \n",
+ "r1=80 #mm #External Diameter\n",
+ "p1=40 #N/mm**2 #Internal Diameter\n",
+ "P_max=120 #N/mm**2 #Allowable stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=80 #N/mm**2 \n",
+ "#Sub in equation 1 we get\n",
+ "#120=b*(80**2)**-1+a ........................(3)\n",
+ "\n",
+ "#The hoop tension at inner edge is max stress\n",
+ "#Hence\n",
+ "#120=b*(80**2)**-1+a .............................(4)\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "b=160*80**2*2**-1 \n",
+ "\n",
+ "#Sub in equation 3 we get\n",
+ "a=-(40-(b*(80**2)**-1))\n",
+ "\n",
+ "#Let External radius be r_o.Since at External Surface is Zero,we get\n",
+ "#0=b*(r_o)**-1-a\n",
+ "#After Further simplifying we get\n",
+ "r_o=(b*a**-1)**0.5\n",
+ "\n",
+ "#Thickness of Cyclinder \n",
+ "t=r_o-r1 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness Required is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness Required is 33.14 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.14,Page No.341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d1=180 #mm #Internal Diameter\n",
+ "p=12 #N/mm**2 #internal Fluid pressure\n",
+ "p_o=6 #N/mm**2 #External Pressure\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r=90 #mm #Internal Diameter\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=90 #N/mm**2 \n",
+ "p=42 #N/mm**2\n",
+ "#Sub in equation 1 we get\n",
+ "#42=b*(90**2)**-1-a ..............................(3)\n",
+ "\n",
+ "#At \n",
+ "x=r_o=150 #mm\n",
+ "p2=6 #N/mm**2\n",
+ "#sub in equation 1 we get\n",
+ "#6=b*(150**2)**-1-a ..............................(4)\n",
+ "\n",
+ "#From equations 3 and 4 weget\n",
+ "#36=b*(90**2)**-1-b2(150**2)**-1\n",
+ "#After further simplifying we get\n",
+ "b=36*90**2*150**2*(150**2-90**2)**-1\n",
+ "\n",
+ "#Sub value of b in equation 4 we get\n",
+ "a=b*(150**2)**-1-p_o\n",
+ "\n",
+ "#At \n",
+ "x=r1=90 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x2=r_o=150 #mm \n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#Now if External pressure is doubled i.e p_o2=12 #N/mm**2 We have\n",
+ "p_o2=12 #N/mm**2\n",
+ "#sub in equation 4 we get\n",
+ "#12=b2*(150**2)**-1-a2 ..........................(5)\n",
+ "\n",
+ "#Max Hoop stress is to be 70.5 #N/mm**2,which occurs at x=r1=90 #mm\n",
+ "#Sub in equation 4 we get\n",
+ "#70.5=b*(90**2)**-1+a2 ................................(6)\n",
+ "\n",
+ "#Adding equation 5 and 6\n",
+ "#82.5=b2*(150**2)**-1+b*(90**2)**-1\n",
+ "#After furhter simplifying we get\n",
+ "b2=82.5*150**2*90**2*(150**2+90**2)**-1\n",
+ "\n",
+ "#Sub in equation 5 we get\n",
+ "a2=b2*(150**2)**-1-12 \n",
+ "\n",
+ "#If p_i is the internal pressure required then from Lame's theorem\n",
+ "p_i=b2*(r1**2)**-1-a2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses int the material are:F_x\",round(F_x,2),\"N/mm**2\"\n",
+ "print\" :F_x2\",round(F_x2,2),\"N/mm**2\"\n",
+ "print\"Internal Pressure that can be maintained is\",round(p_i,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses int the material are:F_x 70.5 N/mm**2\n",
+ " :F_x2 34.5 N/mm**2\n",
+ "Internal Pressure that can be maintained is 50.82 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.15,Page No.344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "r1=200 #mm #Inner Radius\n",
+ "r2=250 #mm #Radius at common surface\n",
+ "r3=300 #mm #Outer radius\n",
+ "p=6 #N/mm**2 #Inital pressure\n",
+ "p2=80 #N/mm**2 #Pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Inner Cyclinder:\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=200 #mm\n",
+ "p_x=0\n",
+ "#0=b1*(250**2)**-1-a1 .................(3)\n",
+ "\n",
+ "#At x=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b1*(250**2)-a1 ...................(4)\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "b1=6*200**2*250**2*(200**2-250**2)**-1\n",
+ "\n",
+ "#From equation 3 we get\n",
+ "a1=b1*(200**2)**-1\n",
+ "\n",
+ "F_200=b1*(200**2)**-1+a1\n",
+ "F_250=b1*(250**2)**-1+a1\n",
+ "\n",
+ "#For outer cyclinder \n",
+ "#From Lame's Equation we have\n",
+ "#p_x2=b2*(x**2)**-1-a2 ..........................(5)\n",
+ "#F_x2=b2*(x**2)**-1+a2 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At \n",
+ "x2=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b2*(250**2)**-1-a2 ...........................(7) \n",
+ "\n",
+ "#At\n",
+ "x3=300 #mm\n",
+ "#p_x2=0\n",
+ "#0=b2**2*(300**2)**-1-a2 .................................(8)\n",
+ "\n",
+ "#from equation 7 and 8 we get\n",
+ "b2=6*250**2*300**2*(300**2-250**2)**-1\n",
+ "\n",
+ "#sub in equation 8 we get\n",
+ "a2=b2*(300**2)**-1\n",
+ "\n",
+ "F_250_2=b2*(250**2)**-1+a2\n",
+ "F_300_2=b2*(300**2)**-1+a2\n",
+ "\n",
+ "#When Fluid is admitted\n",
+ "#Let Lame's equation be\n",
+ "#p_x3=b3*(x**2)**-1-a3 ..........................(5)\n",
+ "#F_x3=b3*(x**2)**-1+a3 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At x=200\n",
+ "p_x3=80 #N/mm**2\n",
+ "#80=b3*(200**2)**-1-a3 ................................(7)\n",
+ "\n",
+ "#At x=300 #mm\n",
+ "#p_x=0\n",
+ "#0=b3*(300**2)**-1-a3 ..............................(8)\n",
+ "\n",
+ "#from Equation 7 and 8 we get\n",
+ "b3=80*200**2*300**2*(300**2-200**2)**-1\n",
+ "\n",
+ "#From Equation 8 we get\n",
+ "a3=b3*(300**2)**-1\n",
+ "\n",
+ "#Hoop stresses \n",
+ "F_200_3=b3*(200**2)**-1+a3 #N/mm**2\n",
+ "F_250_3=b3*(250**2)**-1+a3 #N/mm**2\n",
+ "F_300_3=b3*(300**2)**-1+a3 #N/mm**2\n",
+ "\n",
+ "#Pressure at common surface\n",
+ "p_250=b3*(250**2)**-1-a3 #N/mm**2\n",
+ "\n",
+ "#final stress\n",
+ "f_200=F_200+F_200_3 #N/mm**2\n",
+ "f_250=F_250+F_250_3 #N/mm**2\n",
+ "f_300=F_250_2+F_250_3 #N/mm**2\n",
+ "f_300_2=F_300_2+F_300_3 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"final Hoop stress are:f_200\",round(f_200,2),\"N/mm**2\"\n",
+ "print\" :f_250\",round(f_250,2),\"N/mm**2\"\n",
+ "print\" :f_300\",round(f_300,2),\"N/mm**2\"\n",
+ "print\" :f_300_2\",round(f_300_2,2),\"N/mm**2\"\n",
+ "print\"Variation of Hoop stress and Radial stress\"\n",
+ "\n",
+ "#Final stresses\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3,x3]\n",
+ "Y1=[f_200,f_250,f_300,f_300_2]\n",
+ "Z1=[0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Due to Fluid\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[F_200_3,F_250_3,F_300_3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final Hoop stress are:f_200 174.67 N/mm**2\n",
+ " :f_250 128.83 N/mm**2\n",
+ " :f_300 189.43 N/mm**2\n",
+ " :f_300_2 155.27 N/mm**2\n",
+ "Variation of Hoop stress and Radial stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5604510>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56e5cb0>"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.16,Page No.348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "do=200 #mm #Inner Diameter\n",
+ "r_o=100 #mm #Inner radius\n",
+ "d1=300 #mm #outer diameter\n",
+ "r1=150 #mm #Outer radius\n",
+ "d2=250 #mm #Junction Diameter\n",
+ "r2=125 #mm #Junction radius\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "p=30 #N/mm**2 #radial pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#from Lame's Equation we get\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Then from Boundary condition \n",
+ "#p_x=0 at x=100 #mm\n",
+ "#0=b1*(100**2)**-1-a1 .....................(3)\n",
+ "\n",
+ "#p_x2=30 #N/mm**2 at x2=125 #mm\n",
+ "#30=b1*(125**2)**-1-a1 ................................(4)\n",
+ "\n",
+ "#From equation 3 and 4 we get\n",
+ "b1=30*125**2*100**2*(100**2-125**2)**-1\n",
+ "\n",
+ "#From Equation 3 we get\n",
+ "a1=b1*(100**2)**-1\n",
+ "\n",
+ "#therefore Hoop stress in inner cyclinder at junction\n",
+ "F_2_1=b1*(125**2)**-1+a1 #N/mm**2\n",
+ "\n",
+ "#Outer Cyclinder\n",
+ "#p_x=b*(x**2)**-1-a ..........................(5)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(6)\n",
+ "\n",
+ "#Now at x=125 #mm\n",
+ "#p_x3=30 #N/mm**2\n",
+ "#30=b2*(125**2)**-1-a2 ..................................(7)\n",
+ "\n",
+ "#At x=150 #mm\n",
+ "#p_x4=0\n",
+ "#0=b2*(150**2)**-1-a2 ...................................(8)\n",
+ "\n",
+ "#From equations 7 and 8\n",
+ "b2=30*150**2*125**2*(150**2-125**2)**-1\n",
+ "\n",
+ "#From eqauation 8 we get\n",
+ "a2=b2*(150**2)**-1\n",
+ "\n",
+ "#Hoop stress at junction \n",
+ "F_2_0=b2*(125**2)**-1+a2 #N/mm**2\n",
+ "\n",
+ "rho_r=(F_2_0-F_2_1)*E**-1*r2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shrinkage Allowance is\",round(rho_r,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shrinkage Allowance is 0.189 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.17,Page No.350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=500 #mm #Outer Diameter\n",
+ "r_o=250 #mm #Outer Radius\n",
+ "d1=300 #mm #Inner Diameter\n",
+ "r1=150 #mm #Inner Radius\n",
+ "d2=400 #mm #Junction Diameter\n",
+ "E=2*10**5 #N/mm**2 #Modulus ofElasticity\n",
+ "alpha=12*10**-6 #Per degree celsius\n",
+ "dell_d=0.2 #mm\n",
+ "dell_r=0.1 #mm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p be the radial pressure developed at junction\n",
+ "#Let Lame's Equation for internal cyclinder be\n",
+ "#p_x=b*(x**2)**-1-a ................................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...............................(2)\n",
+ "\n",
+ "#At \n",
+ "x=150 #mm \n",
+ "p_x=0\n",
+ "#Sub in equation 1 we get\n",
+ "#0=b*(150**2)**-1-a .........................(3)\n",
+ "\n",
+ "#At \n",
+ "x2=200 #mm\n",
+ "#p_x2=p\n",
+ "#p=b*(200**2)**-1-a ......................(4)\n",
+ " \n",
+ "#From Equation 3 and 4\n",
+ "#p=b*(200**2)**-1-b(150**2)**-1\n",
+ "#after further simplifying we get\n",
+ "#b=-51428.571*p\n",
+ "\n",
+ "#sub in equation 3 we get\n",
+ "#a1=-2.2857*p\n",
+ "\n",
+ "#therefore hoop stress at junction is\n",
+ "#F_2_1=-21428.571*p*(200**2)**-1-2.2857*p\n",
+ "#after Further simplifying we geet\n",
+ "#F_2_1=3.5714*p\n",
+ "\n",
+ "#Let Lame's Equation for cyclinder be \n",
+ "#p_x=b*(x**2)**-1-a .........................5\n",
+ "#F_x=b*(x**2)**-1+a .............................6\n",
+ "\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "#p_x=p2\n",
+ "#p2=b2*(20**2)**-1-a2 ...................7\n",
+ "\n",
+ "#At\n",
+ "x2=200 #mm\n",
+ "p_x2=0\n",
+ "#0=b2*(250**2)**-1-a2 ....................8\n",
+ "\n",
+ "#from equation 7 and 8 we get\n",
+ "#p2=b2*(200**2)**-1-b2*(250**2)**-1\n",
+ "#After further simplifying we get\n",
+ "#p2=b2*(250**2-200**2)*(200**2*250**2)**-1\n",
+ "#b2=111111.11*p\n",
+ "\n",
+ "#from equation 7\n",
+ "#a2=b2*(250**2)**-1\n",
+ "#further simplifying we get\n",
+ "#a2=1.778*p\n",
+ "\n",
+ "#At the junctionhoop stress in outer cyclinder \n",
+ "#F_2_0=b2*(200**2)**-1+a2\n",
+ "#After further simplifying we get\n",
+ "#F_2_0=4.5556*p\n",
+ "\n",
+ "#Considering circumferential strain,the compatibility condition\n",
+ "#rho_r*r2**-1=1*E**-1*(F_2_1+F_2_0)\n",
+ "#where F_2_1 is compressive and F_2_0 is tensile\n",
+ "#furter simplifying we get\n",
+ "p=0.1*200**-1*2*10**5*(3.5714+4.5556)**-1\n",
+ "\n",
+ "#Let T be the rise in temperature required\n",
+ "#dell_d=d*alpha*T\n",
+ "#After sub values and further simplifying we get\n",
+ "d=250 #mm\n",
+ "T=dell_d*(d*alpha)**-1 #Per degree celsius\n",
+ "\n",
+ "#Result\n",
+ "print\"Radial Pressure Developed at junction\",round(p,2),\"N/mm**2\"\n",
+ "print\"Min Temperatureto outer cyclinder\",round(T,2),\"Per degree Celsius\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radial Pressure Developed at junction 12.3 N/mm**2\n",
+ "Min Temperatureto outer cyclinder 66.67 Per degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.18,Page No.355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=400 #mm #Outer Diameter\n",
+ "r_o=200 #mm #Outer radius\n",
+ "t=50 #mm #Thickness\n",
+ "r1=150 #mm #Internal Radius\n",
+ "p=50 #N/mm**2 #Internal Pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#The Radial Pressure and hoop stress at any radial distance x are given by\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Now at\n",
+ "x=150 #N/mm**2\n",
+ "p_x1=50 #N/mm**2\n",
+ "#Sub in equation 1 we get\n",
+ "#50=2*b*(150**3)**-1-a ...........................(3)\n",
+ "\n",
+ "#At x=200 #mm\n",
+ "p_x2=0\n",
+ "#0=2*b*(200**2)**-1-a ....................(4)\n",
+ "\n",
+ "#From equation 3 and 4 we get\n",
+ "#50=2*b*(150**3)**-1-2*b*(200**3)**-1\n",
+ "#After further simplifying we get\n",
+ "b=50*150**3*200**3*(200**3-150**3)**-1*2**-1\n",
+ "\n",
+ "#Sub in equation 3 we get\n",
+ "a=b*(200**3)**-1\n",
+ "\n",
+ "#Now At\n",
+ "x=150 #mm\n",
+ "F_x=b*(x**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x2=160 #mm\n",
+ "F_x2=b*(x2**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x3=170 #mm\n",
+ "F_x3=b*(x3**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x4=180 #mm\n",
+ "F_x4=b*(x4**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x5=190 #mm\n",
+ "F_x5=b*(x5**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x6=200 #mm\n",
+ "F_x6=b*(x6**3)**-1+a\n",
+ "\n",
+ "#Result\n",
+ "print\"Plot of Variation of hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3,x4,x5,x6]\n",
+ "Y1=[F_x,F_x2,F_x3,F_x4,F_x5,F_x6]\n",
+ "Z1=[0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Plot of Variation of hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nBgIREQEA/h+bezx5xlsz+QAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56b4bf0>"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_7.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_7.ipynb new file mode 100644 index 00000000..cecacb12 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_7.ipynb @@ -0,0 +1,779 @@ +{
+ "metadata": {
+ "name": "chapter no.9.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:Columns And Struts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.1,Page No.377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "L=5000 #mm #Length of strut\n",
+ "dell=10 #mm #Deflection\n",
+ "W=10 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Central Deflection of a simply supported beam with central concentrated load is\n",
+ "#dell=W*L**3*(48*E*I)**-1 \n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=W*L**3*(48*dell)**-1 #mm\n",
+ "\n",
+ "#Euler's Load\n",
+ "#Let Euler's Load be P\n",
+ "P=pi**2*X*(L**2)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Critical Load of Bar is\",round(P,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical Load of Bar is 1028.08 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.2,Page No.377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=2000 #mm #Length of square column\n",
+ "E=12*10**3 #N/mm**2 #Modulus of Elasticity\n",
+ "sigma=12 #N/mm*2 #stress\n",
+ "W1=95*10**3 #N #Load1\n",
+ "W2=200*10**3 #N #Load2\n",
+ "FOS=3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Euler's Formula\n",
+ "#P=pi**2*E*I*(L**2)**-1 .........(1)\n",
+ "\n",
+ "#Working Load\n",
+ "#W=P*(FOS)**-1\n",
+ "\n",
+ "#Part-1\n",
+ "\n",
+ "#At W1=95*10**3 #N\n",
+ "#W1=P*(3*L**2)**-1\n",
+ "\n",
+ "#Let 'a' be the side of the square\n",
+ "#I=1*12**-1*a**4\n",
+ "\n",
+ "#sub value of I in Equation 1 and further rearranging we get\n",
+ "a=(W1*3*12*L**2*(pi**2*E)**-1)**0.25 #mm\n",
+ "\n",
+ "#From Consideration of direct crushing\n",
+ "#sigma*a**2=W1\n",
+ "#After Reaaranging the above equation we get\n",
+ "a2=(W1*(sigma)**-1)**0.5 #mm\n",
+ "\n",
+ "#required size is 103.67*103.67 i.e a*a\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#At W2=200*10**3 #N\n",
+ "#W2=P*(3*L**2)**-1\n",
+ "#After substituting values and further Rearranging the above equation we get\n",
+ "a3=(W2*3*12*L**2*(pi**2*E)**-1)**0.25 #mm\n",
+ "\n",
+ "#From consideration of direct compression,size required is\n",
+ "a4=(W2*sigma**-1)**0.5\n",
+ "\n",
+ "#required size is 129.10*129.10 i.e a4*a4\n",
+ "\n",
+ "#Result\n",
+ "print\"For W1 Load Required size is\",round(a*a,2),\"mm**2\"\n",
+ "print\"For W2 Load Required size is\",round(a4*a4,2),\"mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For W1 Load Required size is 10747.38 mm**2\n",
+ "For W1 Load Required size is 16666.67 mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.3,Page No.378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flange \n",
+ "b=100 #mm #Width\n",
+ "\n",
+ "D=80 #mm #Overall Depth\n",
+ "t=10 #mm #Thickness of web and flanges\n",
+ "L=3000 #mm #Length of strut\n",
+ "E=200*10**3 #N/mm**2 #Modulus of Elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let centroid be at depth y_bar from top fibre\n",
+ "y_bar=(b*t*t*2**-1+(D-t)*t*((D-t)*2**-1+t))*(b*t+(D-t)*t)**-1 #mm \n",
+ "\n",
+ "#M.I at x-x axis\n",
+ "I_x=1*12**-1*b*t**3+b*t*(y_bar-t*2**-1)**2+1*12**-1*t*((D-t))**3+t*((D-t))*((((D-t)*2**-1)+t)-y_bar)**2\n",
+ "\n",
+ "#M.I at y-y axis\n",
+ "I_y=1*12**-1*t*b**3+1*12**-1*(D-t)*t**3 #mm**3\n",
+ "\n",
+ "#Least M.I\n",
+ "I=I_y\n",
+ "\n",
+ "#Since both ends are hinged\n",
+ "#Feective Length=Actual Length\n",
+ "L=l=3000 #mm\n",
+ "\n",
+ "#Buckling Load \n",
+ "P=pi**2*E*I*(l**2)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"The Buckling Load for strut of tee section\",round(P,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Buckling Load for strut of tee section 184.05 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.4,Page No.379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "\n",
+ "#Flanges\n",
+ "b=300 #mm #Width\n",
+ "t=50 #mm #Thickness\n",
+ "\n",
+ "t2=30 #mm #Web Thickness\n",
+ "\n",
+ "dell=10 #mm #Deflection\n",
+ "w=40 #N/mm #Load\n",
+ "FOS=1.75 #Factor of safety\n",
+ "E=2*10**5 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I at x-x axis\n",
+ "I_x=1*12**-1*(b*D**3-(b-t2)*b**3) #mm**4\n",
+ "\n",
+ "#Central Deflection\n",
+ "#dell=5*w*L**4*(384*E*I)**-1\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "L=(dell*384*E*I_x*(5*w)**-1)**0.25\n",
+ "\n",
+ "#M.I aty-y axis\n",
+ "I=I_y=1*12**-1*t*b**3+1*12**-1*b*t2**3+1*12**-1*t*b**3 #mm**4\n",
+ "\n",
+ "#Both the Ends of column are hinged\n",
+ "\n",
+ "#Crippling Load\n",
+ "P=pi**2*E*I*(L**2)**-1 #N\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load if I-section is used as column with both Ends hhinged\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load if I-section is used as column with both Ends hhinged 4123.29 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.5,Page No.381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=200 #mm #External Diameter\n",
+ "t=20 #mm #hickness\n",
+ "d=200-2*t #mm #Internal Diameter\n",
+ "E=1*10**5 #N/mm**2\n",
+ "a=1*(1600)**-1 #Rankine's Constant\n",
+ "L=4.5 #m #Length\n",
+ "sigma=550 #N/mm**2 #Stress\n",
+ "FOS=2.5\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=pi*D**4*64**-1-pi*d**4*64**-1\n",
+ "\n",
+ "#Both Ends are fixed\n",
+ "\n",
+ "#Effective Length\n",
+ "l=1*2**-1*L*10**3 #mm\n",
+ "\n",
+ "#Euler's Critical Load\n",
+ "P_E=pi**2*E*I*(l**2)**-1\n",
+ "\n",
+ "A=pi*4**-1*(D**2-d**2) #mm*2\n",
+ "\n",
+ "k=(I*A**-1)**0.5\n",
+ "\n",
+ "#Rankine's Critical Load\n",
+ "P_R=sigma*A*(1+a*(l*k**-1)**2)**-1\n",
+ "\n",
+ "X=P_E*P_R**-1 \n",
+ "\n",
+ "#Safe Load using Rankine's Formula\n",
+ "S=P_R*(FOS)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load by Rankine's Formula is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load by Rankine's Formula is 1404.36 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.6,Page No.382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #Length of column\n",
+ "W=800*10**3 #N #Load\n",
+ "a=1*1600**-1 #Rankine's constant\n",
+ "FOS=4 #Factor of safety\n",
+ "sigma=550 #N/mm**2 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Effective Length\n",
+ "l=L*2**-1 #mm \n",
+ "\n",
+ "#Let d1=outer diameter & d2=inner diameter\n",
+ "#d1=5*8**-1*d2\n",
+ "\n",
+ "#M.I\n",
+ "#I=pi*64**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Area of section\n",
+ "#A=pi4**-1*(d1**2-d2**2) #mm**2\n",
+ "\n",
+ "#k=(I*A**-1) \n",
+ "#substituting values in above equation \n",
+ "#k=1*16**-1*(d1**2-d2**2)\n",
+ "#after simplifying further we get\n",
+ "#k=0.2948119.d1\n",
+ "\n",
+ "#X=l*k**-1\n",
+ "#substituting values in above equation and after simplifying further we get\n",
+ "#X=5087.9898*d1**-1\n",
+ "\n",
+ "#Crtitcal Load\n",
+ "P=W*FOS #N\n",
+ "\n",
+ "#From Rankine's Load\n",
+ "#P2=sigma*A*(1+a*(X)**2)**-1\n",
+ "#substituting values in above equation and after simplifying further we get\n",
+ "#d1**4-12156618*d1**4-1.96691*10**8=0\n",
+ "#Solving Quadratic Equation we get\n",
+ "#d1**2-12156618*d1-196691000=0\n",
+ "a=1\n",
+ "b=-12156.618\n",
+ "c=-196691000\n",
+ "\n",
+ "Y=b**2-4*a*c\n",
+ "\n",
+ "d1_1=((-b+Y**0.5)*(2*a)**-1)**0.5 #mm\n",
+ "d1_2=((-b-Y**0.5)*(2*a)**-1) #mm\n",
+ "\n",
+ "d2=5*8**-1*d1_1\n",
+ "\n",
+ "#Result\n",
+ "print\"Section of cast iron hollow cylindrical column is:d1_1\",round(d1_1,2),\"mm\"\n",
+ "print\" :d2 \",round(d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Section of cast iron hollow cylindrical column is:d1_1 146.16 mm\n",
+ " :d2 91.35 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.7,Page No.383"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Let X=(P*A**-1) #Average Stress at Failure \n",
+ "Lamda_1=70 #Slenderness Ratio\n",
+ "Lamda_2=170 #Slenderness Ratio\n",
+ "X1=200 #N/mm**2 \n",
+ "X2=69 #N/mm**2 \n",
+ "\n",
+ "#Rectangular section\n",
+ "b=60 #mm #width\n",
+ "t=20 #mm #Thickness\n",
+ "\n",
+ "L=1250 #mm #Length of strut\n",
+ "FOS=4 #Factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Slenderness ratio\n",
+ "#Lamda=L*k**-1\n",
+ "\n",
+ "#The Rankine's Formula for strut\n",
+ "#P=sigma*A*(1+a*(L*k**-1)**-1\n",
+ "\n",
+ "#From test result 1,\n",
+ "#After sub values in above equation we get and further simplifying we get\n",
+ "#sigma_1=200+980000*a ...................(1)\n",
+ "\n",
+ "#From test result 2,\n",
+ "#After sub values in above equation we get and further simplifying we get\n",
+ "#sigma_2=69+1994100*a ...................(2)\n",
+ "\n",
+ "#Substituting it in equation (1) we get\n",
+ "a=131*1014100**-1 \n",
+ "\n",
+ "#Substituting a in equation 1\n",
+ "sigma_1=200+980000*a #N/mm**2\n",
+ "\n",
+ "#Effective Length \n",
+ "l=1*2**-1*L #mm\n",
+ "\n",
+ "#Least of M.I\n",
+ "I=1*12**-1*b*t**3 #mm**4\n",
+ "\n",
+ "#Area \n",
+ "A=b*t #mm**2 \n",
+ "\n",
+ "k=(I*A**-1)**0.5\n",
+ "\n",
+ "#Slenderness ratio\n",
+ "Lamda=l*k**-1\n",
+ "\n",
+ "#From Rankine's Ratio\n",
+ "P=sigma_1*A*(1+a*(Lamda)**2)**-1\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Constant in the Formula is:a \",round(a,6)\n",
+ "print\" :sigma_1\",round(sigma_1,2)\n",
+ "print\"Safe Load is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant in the Formula is:a 0.000129\n",
+ " :sigma_1 326.6\n",
+ "Safe Load is 38.98 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.8,Page No.385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=200 #mm #Depth\n",
+ "b=140 #mm #width\n",
+ "\n",
+ "#Plate\n",
+ "b2=160 #mm #Width\n",
+ "t2=10 #mm #Thickness\n",
+ "\n",
+ "L=l=4000 #mm #Length\n",
+ "FOS=4 #Factor of safety\n",
+ "sigma=315 #N/mm**2 #stress\n",
+ "a2=1*7500**-1 \n",
+ "I_xx=26.245*10**6 #mm**4 #M.I at x-x\n",
+ "I_yy=3.288*10**6 #mm**4 #M.I at y-y\n",
+ "a=3671 #mm**2 #Area\n",
+ "k_x=84.6#mm\n",
+ "k_y=29.9 #mm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Total Area\n",
+ "A=a+2*t2*b2 #mm**2\n",
+ "\n",
+ "#M.I\n",
+ "I=I_yy+2*12**-1*t2*b2**3 #mm**4\n",
+ "\n",
+ "k=(I*A**-1)**0.5 #mm\n",
+ "\n",
+ "#Let X=L*k**-1\n",
+ "X=L*k**-1\n",
+ "\n",
+ "#Appliying Rankine's Formula\n",
+ "P=sigma*A*(1+a2*(X)**2)**-1 #N\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe axial Load is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe axial Load is 220.93 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.9,Page No.389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200*10**3 #N/mm**2 #Modulus of elasticity\n",
+ "sigma=330 #N/mm**2 #Stress\n",
+ "a=1*7500**-1 #Rankine's constant\n",
+ "A=5205 #mm**2 #area of column\n",
+ "I_xx=59.431*10**6 #mm**4 #M.I at x-x axis\n",
+ "I_yy=8.575*10**6 #mm**24#M.I at y-y axis\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Total M.I\n",
+ "I=I_xx+I_yy #mm**4\n",
+ "\n",
+ "#Area of compound Section \n",
+ "A2=2*A #mm**2\n",
+ "\n",
+ "k=(I*A2**-1)**0.5 #mm\n",
+ "\n",
+ "#Equating Euler's Load to Rankine's Load we get\n",
+ "#pi**2*E*I*(L**2)**-1=sigma*A*(1+a*(L*k)**2)**-1\n",
+ "#After Substitt=uting values and further simplifying we get\n",
+ "L=(39076198*(1-0.7975432)**-1)**0.5*10**-3 #m\n",
+ "\n",
+ "#Result\n",
+ "print\"Length of column for which Rankine's formula and Euler's Formula give the same result is\",round(L,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of column for which Rankine's formula and Euler's Formula give the same result is 13.89 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.10,Page No.387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma=326 #N/mm**2 #stress\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "FOS=2 #Factor of safety\n",
+ "a=1*7500**-1 #Rankine's constant\n",
+ "D=350 #mm #Overall Depth \n",
+ "\n",
+ "#Cover plates\n",
+ "b1=500 #mm #width\n",
+ "t1=10 #mm #Thickness\n",
+ "\n",
+ "d=220 #mm #Distance between two channels\n",
+ "\n",
+ "L=6000 #mm #Length of column\n",
+ "\n",
+ "A=5366 #mm**2 #Area of Column section \n",
+ "I_xx=100.08*10**6 #mm**4 #M.I of x-x axis\n",
+ "I_yy=4.306*10**6 #mm**4 #M.I of y-y axis\n",
+ "C_yy=23.6 #mm #Centroid at y-y axis\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Symmetric axes are the centroidal axes is\n",
+ "\n",
+ "#M.I of Channel at x-x axis\n",
+ "I_xx_1=2*I_xx+2*(1*12**-1*b1*t1**3+b1*t1*(D*2**-1+t1*2**-1)**2)\n",
+ "\n",
+ "#M.I of Channel at y-y axis\n",
+ "I_yy_1=2*(I_yy+A*(d*2**-1+C_yy)**2)+2*12**-1*t1*b1**3\n",
+ "\n",
+ "#As I_yy<I_xx\n",
+ "#So\n",
+ "I=I_yy_1 #mm**4 \n",
+ "\n",
+ "A2=2*A+2*t1*b1 #Area of channel\n",
+ "\n",
+ "k=(I*A2**-1)**0.5 #mm\n",
+ "\n",
+ "#Critical Load\n",
+ "P=sigma*A2*(1+a*(L*k**-1)**2)**-1 \n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*2**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load carrying Capacity is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load carrying Capacity is 2717.35 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.11,Page No.390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "I=4.085*10**8 #mm**4 #M.I\n",
+ "A=20732.0 #mm**2 #area of column\n",
+ "f_y=250 #N/mm**2 \n",
+ "L=6000 #mm #Length of column\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "k=(I*A**-1)**0.5 #mm\n",
+ "lamda=L*k**-1 #Slenderness ratro\n",
+ "\n",
+ "#From Indian standard table\n",
+ "lamda_1=40 \n",
+ "sigma_a_c_1=139 #N/mm**2\n",
+ "lamda_2=50 \n",
+ "sigma_a_c_2=132 #N/mm**2 \n",
+ "\n",
+ "#Linearly interpolating between these values for lambda=42.744\n",
+ "\n",
+ "sigma_a_c_3=sigma_a_c_1-2.744*10**-1*(sigma_a_c_1-sigma_a_c_2)\n",
+ "\n",
+ "#Safe Load carrying capacity of column\n",
+ "P=sigma_a_c_3*A*10**-3\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load carrying capacity is\",round(P,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load carrying capacity is 2841.93 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/B.M.D_1_3.png b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/B.M.D_1_3.png Binary files differnew file mode 100644 index 00000000..11bcf467 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/B.M.D_1_3.png diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1_1.png b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1_1.png Binary files differnew file mode 100644 index 00000000..ba2ef24e --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1_1.png diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_3_4.png b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_3_4.png Binary files differnew file mode 100644 index 00000000..202b2e93 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_3_4.png |