{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 8 Simple Lifting Machines" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 8.1 Simple Machine" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(a) The efficiency of the machine is 83.333333 percent\n", "(b) The effort loss in friction of the machine is 3.333333 N\n", "(c) The Frictional load of the machine is 20 N\n" ] } ], "source": [ "# Initilization of variables\n", "VR=6 # Velocity ratio\n", "P=20 #N # Effort\n", "W=100 #N # Load lifted\n", "# Calculations\n", "#(a)\n", "P_actual=P #N\n", "W_actual=W #N\n", "MA=W/P # where, M.A= Mechanical advantage\n", "E=(MA/VR)*100 #% # Where E= efficiency\n", "#(b)\n", "# Now ideal effort required is,\n", "P_ideal=W/VR #N\n", "# Effort loss in friction is, (Le)\n", "Le=P_actual-P_ideal #N # Effort loss in friction\n", "#(c)\n", "# Ideal load lifted is,(W_ideal)\n", "W_ideal=P*VR #N \n", "# Frictional load/resistance,\n", "F=W_ideal-W_actual # N\n", "# Results\n", "print('(a) The efficiency of the machine is %f percent'%E)\n", "print('(b) The effort loss in friction of the machine is %f N'%Le)\n", "print('(c) The Frictional load of the machine is %d N'%F)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 8.2 Simple machines performance" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The graph is the solution\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "from matplotlib.pyplot import plot,subplot,xlabel,ylabel,text,show\n", "import math\n", "import numpy as np\n", "\n", "# Initilization of variables\n", "V_r=20 # Velocity ratio\n", "# Values from the table # Variables have been assumed\n", "# Values of W in N\n", "W=[30,40,50,60,70,80,90,100]\n", "# P in N\n", "P=[7,8.5,10,11.5,13.5,14.5,16,17.5]\n", "MA=[]\n", "MA[:]=[W[i]/P[i] for i in range(0,8)]\n", "# Efficiency (n)\n", "n = np.asarray(MA) * (V_r** -1) * 100\n", "# Calculations\n", "# Part (a)- Realtionship between W & P\n", "# Here part a cannot be solved as it has variables which cannot be defined in Scilab. Ref.textbook for the solution\n", "# Part (b)- Graph between W & efficiency n(eta)\n", "x=[0,W[0],W[1],W[2],W[3],W[4],W[5],W[6],W[7]] # values for W # N\n", "y=[0,n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]] # values for efficiency n (eta) # %\n", "subplot(221)\n", "xlabel(\"W (N)\")\n", "ylabel(\"efficiency n (%)\")\n", "plot(x,y)\n", "# Results\n", "print('The graph is the solution')\n", "# The value of m is found by drawing a straight line in the graph and by taking its slope\n", "# The curve of the graph may differ from textbook because of the graphical calculation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 8.3 Performance of Machine" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(a) The effort wasted in friction is 15 N\n", "(b) The load wasted in friction is 240 N\n" ] } ], "source": [ "# Calculations\n", "W_actual=1360 #N #Load lifted\n", "P_actual=100 #N # Effort\n", "n=4 # no of pulleys\n", "# Calculations\n", "# for 1st system of pulleys having 4 movable pulleys, Velocity ratio is\n", "VR=2**(n) # Velocity Ratio\n", "# If the machine were to be ideal(frictionless)\n", "MA=VR # Here, M.A= mechanical advantage \n", "# For a load of 1360 N, ideal effort required is\n", "P_ideal=W_actual/VR #N\n", "# Effort loss in friction is,\n", "P_friction=P_actual-P_ideal #N\n", "# For a effort of 100 N, ideal load lifted is,\n", "W_ideal=VR*100 #N \n", "# Load lost in friction is,\n", "W_friction=W_ideal-W_actual # N \n", "# Results\n", "print('(a) The effort wasted in friction is %d N'%P_friction)\n", "print('(b) The load wasted in friction is %d N'%W_friction)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 8.4 Performance of a machine" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The effort required to lift the load of 1000 N is 266.666667 N\n" ] } ], "source": [ "# Initilization of variables\n", "W=1000 #N # Load to be lifted\n", "n=5 # no. of pulleys\n", "E=75 #% # Efficiency\n", "# Calculations\n", "# Velocity Ratio is given as,\n", "VR=n \n", "# Mechanical Advantage (M.A) is,\n", "MA=(E/100)*VR # from formulae, Efficiency=E=M.A/V.R\n", "P=W/MA #N # Effort required\n", "# Results\n", "print('The effort required to lift the load of 1000 N is %f N'%P)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example 8.5 Simple screw jack" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The force required at the end of the handle is 15.408712 N\n", "The force required if the screw jack is considered to be an ideal machine is 4.547284 N\n" ] } ], "source": [ "# Initilization of variables\n", "W=2000 #N # Load to be raised\n", "l=0.70 #m # length of the handle\n", "d=0.05 #m # diameter of the screw\n", "p=0.01 #m # pitch of the screw\n", "mu=0.15 # coefficient of friction at the screw thread\n", "E=1 # efficiency\n", "# Calculations\n", "phi=math.degrees(math.atan(mu)) #degree\n", "theta=math.degrees(math.atan(p/(math.pi*d))) #degree # where theta is the Helix angle\n", "# Force required at the circumference of the screw is,\n", "P=W*(math.tan((theta+phi)*math.pi/180)) # N #\n", "# Force required at the end of the handle is,\n", "F=(P*(d/2))/l #N \n", "# Force required (Ideal case)\n", "VR=2*math.pi*l/p\n", "MA=E*VR # from formulae E=M.A/V,R\n", "P_ideal=W/MA #N # From formulae, M.A=W/P\n", "# Results\n", "print('The force required at the end of the handle is %f N'%F)\n", "print('The force required if the screw jack is considered to be an ideal machine is %f N'%P_ideal)" ] } ], "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 }