summaryrefslogtreecommitdiff
path: root/Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb')
-rw-r--r--Engineering_Mechanics_by_A._K._Tayal/Chapter6.ipynb252
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
+}