{
 "metadata": {
  "name": "chapter6.ipynb"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter 6: Friction"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 6.6-1,Page No:126"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "import numpy as np\n",
      "\n",
      "# Initilization of variables\n",
      "\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",
      "mu=0.4 #coefficient of static friction\n",
      "\n",
      "#Calculations\n",
      "\n",
      "# Case 1. Where P1 is the force required to just pull the bock\n",
      "\n",
      "# Solving eqn's 1 & 2 using matrix\n",
      "A=np.array([[cos(theta*(pi/180)), -mu],[sin(theta*(pi/180)), 1]])\n",
      "B=np.array([0,(m*g)])\n",
      "C=np.linalg.solve(A,B)\n",
      "\n",
      "# Calculations \n",
      "\n",
      "# Case 2. Where P2 is the force required to push the block\n",
      "\n",
      "# Solving eqn's 1 & 2 using matrix\n",
      "P=np.array([[-cos(theta*(pi/180)), mu],[-sin(theta*(pi/180)) ,1]])\n",
      "Q=np.array([0,(m*g)])\n",
      "R=np.linalg.solve(P,Q)\n",
      "\n",
      "# Results\n",
      "\n",
      "print\"The required pull force P1 is \",round(C[0],2),\"N\" #answer in textbook is wrong\n",
      "print\"The required push force P2 is \",round(R[0]),\"N\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The required pull force P1 is  18.35 N\n",
        "The required push force P2 is  23.0 N\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 6.6-4,Page No:129"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initilization of variables\n",
      "\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",
      "\n",
      "# Calculations\n",
      "\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",
      "\n",
      "alpha=(arctan(((mu_1*W1)+(mu_2*W2))/(W1+W2)))*(180/pi) # degrees\n",
      "\n",
      "# Results\n",
      "\n",
      "print\"The inclination of the plane is \",round(alpha),\"degree\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The inclination of the plane is  14.0 degree\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 6.6-7,Page No:133"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initilization of variables\n",
      "\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",
      "\n",
      "# Calculations\n",
      "\n",
      "# Divide eqn 1 by eqn 2, We get\n",
      "theta=arctan(mu)*(180/pi) #degree\n",
      "\n",
      "# Results\n",
      "\n",
      "print\"The angle of inclination is \",round(theta,1),\"degree\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The angle of inclination is  16.7 degree\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 6.6-9,Page No:135"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "import numpy as np\n",
      "\n",
      "# Initilization of variabes\n",
      "\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",
      "\n",
      "# Caculations \n",
      "\n",
      "# CASE (a)\n",
      "\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.array([[1 ,-0.4522],[-0.2 ,0.914]])\n",
      "B=np.array([0,1000])\n",
      "C=np.linalg.solve(A,B)\n",
      "\n",
      "# Now consider the equilibrium of lower block B\n",
      "# From eq'n 4\n",
      "N3=Wb+(C[1]*cos(theta*(pi/180)))-(mu*C[1]*sin(theta*(pi/180))) #N\n",
      "# Now from eq'n 3\n",
      "P=(mu*N3)+(mu*C[1]*cos(theta*(pi/180)))+(C[1]*sin(theta*(pi/180))) # N\n",
      "\n",
      "# CASE (b)\n",
      "\n",
      "# The eq'n for required coefficient for the wedge to be self locking is,\n",
      "mu_req=(theta*pi)/360 # multiplying with (pi/180) to convert it into radians\n",
      "\n",
      "# Results\n",
      "\n",
      "print\"The minimum horizontal force (P) which should be applied to raise the block is \",round(P),\"N\"\n",
      "print\"The required coefficient for the wedge to be self locking is \",round(mu_req,4) #answer in textbook is wrong\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The minimum horizontal force (P) which should be applied to raise the block is  871.0 N\n",
        "The required coefficient for the wedge to be self locking is  0.1309\n"
       ]
      }
     ],
     "prompt_number": 17
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 6.6-13.Page No:141"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "import numpy as np\n",
      "\n",
      "# Initilization of variables\n",
      "\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",
      "\n",
      "# Calculations\n",
      "\n",
      "#solving eqn's 1 & 2 using matrix for Ra & Rb,\n",
      "A=np.array([[1, -1],[sin(theta*(pi/180)) ,sin(theta*(pi/180))]])\n",
      "B=np.array([0,(P+Q)])\n",
      "C=np.linalg.solve(A,B)\n",
      "\n",
      "# Now take moment about B\n",
      "x=((C[0]*l*sin(theta*(pi/180)))-(P*(l-0.2)))/200 #m # here 0.2 is the distance where 100 N load lies from A\n",
      "\n",
      "# Results\n",
      "\n",
      "print\"The minimum value of x at which the load Q=200 N may be applied before slipping impends is \",round(x,2),\"m\" \n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The minimum value of x at which the load Q=200 N may be applied before slipping impends is  0.35 m\n"
       ]
      }
     ],
     "prompt_number": 20
    }
   ],
   "metadata": {}
  }
 ]
}