diff options
Diffstat (limited to 'Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb')
-rw-r--r-- | Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb b/Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb new file mode 100644 index 00000000..5710d02f --- /dev/null +++ b/Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb @@ -0,0 +1,252 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6 Friction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.1 Friction" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The required pull force P1 is 18.345820 N \n", + "The required push force P2 is 22.750511 N \n" + ] + } + ], + "source": [ + "import math,numpy\n", + "# Initilization of variables\n", + "m=5 #kg # mass of the bock\n", + "g=9.81 # m/s**2 # acceleration due to gravity\n", + "theta=15 # degree # angle made by the forces (P1 & P2) with the horizontal of the block\n", + "de=theta*math.pi/180\n", + "mu=0.4 #coefficient of static friction\n", + "#Calculations\n", + "# Case 1. Where P1 is the force required to just pull the bock\n", + "# Solving eqn's 1 & 2 using matrix\n", + "A=numpy.matrix([[math.cos(de),-mu],[math.sin(de),1]])\n", + "B=numpy.matrix([[0],[m*g]])\n", + "C=numpy.linalg.inv(A)*B\n", + "# Calculations \n", + "# Case 2. Where P2 is the force required to push the block\n", + "# Solving eqn's 1 & 2 using matrix\n", + "P=numpy.matrix([[-math.cos(de),mu],[-math.sin(de),1]])\n", + "Q=numpy.matrix([[0],[m*g]])\n", + "R=numpy.linalg.inv(P)*Q\n", + "# Results\n", + "print('The required pull force P1 is %f N '%C[0])\n", + "print('The required push force P2 is %f N '%R[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.4 Friction" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The inclination of the plane is 14.036243 degree\n" + ] + } + ], + "source": [ + "import math\n", + "# Initilization of variables\n", + "W1=50 # N # weight of the first block\n", + "W2=50 # N # weight of the second block\n", + "mu_1=0.3 # coefficient of friction between the inclined plane and W1\n", + "mu_2=0.2 # coefficient of friction between the inclined plane and W2\n", + "# Calculations\n", + "# On adding eq'ns 1&3 and substuting the values of N1 & N2 from eqn's 2&4 in this and on solving for alpha we get,\n", + "alpha=math.atan((((mu_1*W1)+(mu_2*W2))/(W1+W2))) # degrees\n", + "a=math.degrees(alpha)\n", + "# Results\n", + "print('The inclination of the plane is %f degree'%a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.7 Friction" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The angle of inclination is 16.699244 degree \n", + "\n" + ] + } + ], + "source": [ + "# Initilization of variables\n", + "M=2000 # kg # mass of the car\n", + "mu=0.3 # coefficient of static friction between the tyre and the road\n", + "g=9.81 # m/s**2 # acc. due to gravity\n", + "# Calculations\n", + "# Divide eqn 1 by eqn 2, We get\n", + "theta=math.atan(mu) #degree\n", + "t=math.degrees(theta)\n", + "# Results\n", + "print('The angle of inclination is %f degree \\n'%t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.9 Friction" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The minimum horizontal force (P) which should be applied to raise the block is 870.844400 N \n", + "\n", + "The required coefficient for the wedge to be self locking is 0.130900 \n", + "\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import math \n", + "# Initilization of variabes\n", + "Wa=1000 #N # weight of block A\n", + "Wb=500 #N # weight of block B\n", + "theta=15 # degree # angle of the wedge\n", + "mu=0.2 # coefficient of friction between the surfaces in contact\n", + "phi=7.5 # degrees # used in case 2\n", + "# Caculations \n", + "# CASE (a)\n", + "# consider the equilibrium of upper block A\n", + "# rearranging eq'ns 1 &2 and solving them using matrix for N1 & N2\n", + "A=np.matrix('1 -0.4522;-0.2 0.914')\n", + "B=np.matrix('0;1000')\n", + "C=np.linalg.inv(A)*B\n", + "# Now consider the equilibrium of lower block B\n", + "# From eq'n 4\n", + "N3=Wb+(C[1]*math.cos(theta*math.pi/180))-(mu*C[1]*math.sin(theta*math.pi/180)) #N\n", + "# Now from eq'n 3\n", + "P=(mu*N3)+(mu*C[1]*math.cos(theta*math.pi/180))+(C[1]*math.sin(theta*math.pi/180)) # N\n", + "# CASE (b)\n", + "# The eq'n for required coefficient for the wedge to be self locking is,\n", + "mu_req=(theta*math.pi)/(360) # multiplying with (pie/180) to convert it into radians\n", + "# Results\n", + "print('The minimum horizontal force (P) which should be applied to raise the block is %f N \\n'%P)\n", + "print('The required coefficient for the wedge to be self locking is %f \\n'%mu_req)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.13 Friction" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The minimum value of x at which the load Q=200 N may be applied before slipping impends is 0.350000 m\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import math\n", + "# Initilization of variables\n", + "P=100 #N # force acting at 0.2 m from A\n", + "Q=200 #N # force acting at any distance x from B\n", + "l=1 #m # length of the bar\n", + "theta=45 #degree #angle made by the normal reaction at A&B with horizontal\n", + "# Calculations\n", + "# solving eqn's 1 & 2 using matrix for Ra & Rb,\n", + "A=np.matrix([[1,-1],[math.sin(theta*math.pi/180),math.sin(theta*math.pi/180)]])\n", + "B=np.matrix([[0],[P+Q]])\n", + "C=np.linalg.inv(A)*B\n", + "# Now take moment about B\n", + "x=((C[0]*l*math.sin(theta*math.pi/180))-(P*(l-0.2)))/200 #m # here 0.2 is the distance where 100 N load lies from A\n", + "# Results\n", + "print('The minimum value of x at which the load Q=200 N may be applied before slipping impends is %f m'%x)" + ] + } + ], + "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 +} |