{ "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 }