// Numbas version: finer_feedback_settings {"name": "simon's copy of Block sliding down a slope (with graphic)", "extensions": ["jsxgraph"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "simon's copy of Block sliding down a slope (with graphic)", "tags": [], "extensions": ["jsxgraph"], "parts": [{"correctAnswerFraction": false, "prompt": "
Find the normal reaction, $R \\ \\mathrm{N}$ between the block and the plane, to 3 decimal places.
", "scripts": {}, "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "maxValue": "R", "type": "numberentry", "allowFractions": false, "minValue": "R", "correctAnswerStyle": "plain", "showCorrectAnswer": true, "marks": 1, "notationStyles": ["plain", "en", "si-en"]}, {"correctAnswerFraction": false, "precisionMessage": "You have not given your answer to the correct precision.", "scripts": {}, "showPrecisionHint": false, "type": "numberentry", "minValue": "mu", "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "maxValue": "mu", "precisionType": "dp", "strictPrecision": false, "showCorrectAnswer": true, "allowFractions": false, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain", "precision": "3", "marks": 1, "prompt": "Using $R$ find the coefficient of friction, $\\mu$, between the block and the plane, to 3 decimal places.
", "precisionPartialCredit": 0}, {"correctAnswerFraction": false, "precisionMessage": "You have not given your answer to the correct precision.", "scripts": {}, "showPrecisionHint": false, "type": "numberentry", "minValue": "v^2/2*a", "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "maxValue": "v^2/2*a", "precisionType": "dp", "strictPrecision": false, "showCorrectAnswer": true, "allowFractions": false, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain", "precision": "3", "marks": 1, "prompt": "Suppose that the block hits the bottom of the slope at a speed of $\\var{v}\\mathrm{ms^{-1}}$. To 3 decimal places, how far in metres ($\\mathrm{m}$) has the block slid from its initial position?
", "precisionPartialCredit": 0}], "functions": {"draw_block": {"type": "html", "language": "javascript", "parameters": [], "definition": "// Takes variables\n\n// showing K or C?\n//k_c = Numbas.jme.unwrapValue(scope.variables.k_c_switch);\n//\n//if (k_c = 0) {\n// var k_c_corr =0;\n// var k_c_str=\"K\";\n//} else {\n// var k_c_corr =-273;\n// var k_c_str=\"\u00b0C\";\n//}\n\n//Set values\ntheta = Numbas.jme.unwrapValue(scope.variables.theta);\nr_theta = theta * Math.PI / 180. \n//et = Numbas.jme.unwrapValue(scope.variables.end_temp)+k_c_corr;\n//pt1 = Numbas.jme.unwrapValue(scope.variables.phase1_temp)+k_c_corr;\n//pt2 = Numbas.jme.unwrapValue(scope.variables.phase2_temp)+k_c_corr;\n\n\n// The function provided by the JSXGraph extension wraps the board up in\n// a div tag so that it's easier to embed in the page.\nvar div = Numbas.extensions.jsxgraph.makeBoard('300px','260px',\n//{boundingBox: [-0.1,-0.1,1.,1.],\n {boundingBox: [1.,0.8,-0.1,-0.1],\n axis: false,\n showNavigation: false,\n grid: false\n });\n\n// div.board is the object created by JSXGraph, which you use to\n// manipulate elements\nvar board = div.board;\n\n\n\n// create the x-axis.\n//var xaxis = board.create('line',[[0,0],[1,0]], {strokeColor: 'black', fixed: true});\n//var xticks = board.create('ticks',[xaxis,20],{\n// drawLabels: true,\n// minorTicks: 0\n//});\n\n// create the y-axis\n\n//var yaxis = board.create('line',[[0,0],[0,1]], { strokeColor: 'black', fixed: true });\n//var yticks = board.create('ticks',[yaxis,parseInt((et-st)/50.)*10],{\n//drawZero:true,\n//drawLabels: true,\n//label: {offset: [20, 0]},\n//minorTicks: 0\n//});\n\n\n// each line needs four coordinates start x,y and end x,y - these can then all be rotated\n\n// the slope itself\n\nvar l1_x1=0.\nvar l1_x2=0.9\nvar l1_y1=0.\nvar l1_y2=0.\n\n\n\t// the left edge of the box \n\nvar l2_x1=0.3\nvar l2_x2=0.3\nvar l2_y1=0\nvar l2_y2=0.2\n\n\t\t// the top edge of the box \n\nvar l3_x1=0.3\nvar l3_x2=0.6\nvar l3_y1=0.2\nvar l3_y2=0.2\n\t\t\t\n\t\t\t// the right edge of the box \n\nvar l4_x1=0.6\nvar l4_x2=0.6\nvar l4_y1=0.2\nvar l4_y2=0.\n\n\n\n\n//each line must be rotated by theta to get to the correct angle\n\n\n// the slope itself\n\nvar ql1_x1=l1_x1*Math.cos(r_theta)-l1_y1*Math.sin(r_theta)\nvar ql1_y1=l1_x1*Math.sin(r_theta)-l1_y1*Math.cos(r_theta)\nvar ql1_x2=l1_x2*Math.cos(r_theta)-l1_y2*Math.sin(r_theta)\nvar ql1_y2=l1_x2*Math.sin(r_theta)-l1_y2*Math.cos(r_theta)\n\n\t// the left edge of the box \n\nvar ql2_x1=l2_x1*Math.cos(r_theta)-l2_y1*Math.sin(r_theta)\nvar ql2_y1=l2_x1*Math.sin(r_theta)+l2_y1*Math.cos(r_theta)\nvar ql2_x2=l2_x2*Math.cos(r_theta)-l2_y2*Math.sin(r_theta)\nvar ql2_y2=l2_x2*Math.sin(r_theta)+l2_y2*Math.cos(r_theta)\n\n\t\t// the top edge of the box \n\nvar ql3_x1=l3_x1*Math.cos(r_theta)-l3_y1*Math.sin(r_theta)\nvar ql3_y1=l3_x1*Math.sin(r_theta)+l3_y1*Math.cos(r_theta)\nvar ql3_x2=l3_x2*Math.cos(r_theta)-l3_y2*Math.sin(r_theta)\nvar ql3_y2=l3_x2*Math.sin(r_theta)+l3_y2*Math.cos(r_theta)\n\t\t\t\n\t\t\t// the right edge of the box \n\nvar ql4_x1=l4_x1*Math.cos(r_theta)-l4_y1*Math.sin(r_theta)\nvar ql4_y1=l4_x1*Math.sin(r_theta)+l4_y1*Math.cos(r_theta)\nvar ql4_x2=l4_x2*Math.cos(r_theta)-l4_y2*Math.sin(r_theta)\nvar ql4_y2=l4_x2*Math.sin(r_theta)+l4_y2*Math.cos(r_theta)\n\n\n\n\n//var block = board.create('polygon',[ [0.3,0], [0.3,0.2] , [0.6,0.2] ,[0.6,0] ] );\n\n//\n//slope 1\nvar line1 = board.create('line',[[l1_x1,l1_y1],[l1_x2,l1_y2]], {straightFirst:true, straightLast:true, strokeColor: 'black', fixed: true });\nvar line1b = board.create('line',[[ql1_x1,ql1_y1],[ql1_x2,ql1_y2]], {straightFirst:false, straightLast:true, strokeColor: 'black', fixed: true });\nvar line2 = board.create('line',[[ql2_x1,ql2_y1],[ql2_x2,ql2_y2]], {straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\nvar line3 = board.create('line',[[ql3_x1,ql3_y1],[ql3_x2,ql3_y2]], {straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\nvar line4 = board.create('line',[[ql4_x1,ql4_y1],[ql4_x2,ql4_y2]], {straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\n\n//var slope6 = board.create('line',[[4,pt1],[20,pt2]], {dash:2,straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\n\n//var dash1 = board.create('line',[[s1sz+4,st-10],[s1sz+4,et+10]], {dash:2, strokewidth:1, straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\n//var dash2 = board.create('line',[[s1sz+8,st-10],[s1sz+8,et+10]], {dash:2, strokewidth:1, straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\n//var dash3 = board.create('line',[[s1sz+s3sz+8,st-10],[s1sz+s3sz+8,et+10]], {dash:2, strokewidth:1, straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\n//var dash4 = board.create('line',[[s1sz+s3sz+12,st-10],[s1sz+s3sz+12,et+10]], {dash:2, strokewidth:1, straightFirst:false, straightLast:false, strokeColor: 'black', fixed: true });\n\n\n//label the y-axis\nvar label = board.create('text',[0.25,0.05,theta+'\\xB0'],{fontSize:20});\n\n\n// and return the container div\nreturn div;"}}, "variablesTest": {"condition": "mu<1", "maxRuns": 100}, "variable_groups": [], "statement": "{draw_block()}
\nA block of mass $\\var{mass}\\mathrm{kg}$ slides down a rough plane which is inclined at an angle $\\theta = \\var{theta}^{\\circ}$ to the horizontal. The mass begins at rest and accelerates at $\\var{a}\\mathrm{ms^{-2}}$.
\nThe acceleration due to gravity is $g=9.8\\mathrm{ms^{-2}}.$
", "ungrouped_variables": ["mass", "theta", "a", "R", "mu", "v", "s", "slide_distance"], "rulesets": {}, "metadata": {"licence": "Creative Commons Attribution 4.0 International", "description": "A copy of Amy Chadwicks block question, with adaptions to provide a diagram for the student.
\nA block of given mass is sliding down the plane, with given acceleration. Find the normal reaction force, the coefficient of friction, and the distance travelled before reaching a given speed.
"}, "preamble": {"css": "", "js": ""}, "advice": "To find the normal reaction force $R$, we resolve the forces perpendicular to the plane.
\n\\begin{align}
R - mg \\cos \\theta & = 0, \\\\
R & = mg \\cos \\theta, \\\\
& = (\\var{mass} \\times 9.8) \\cos (\\var{theta}^{\\circ}), \\\\
& = \\var{R} \\ \\mathrm{N}.
\\end{align}
To find the coefficient of friction, $\\mu$, we resolve parallel to the plane and use our $R$ value from part a).
\n\\begin{align}
mg \\cos (90^{\\circ} - \\theta) - \\mu R & = ma, \\\\
\\mu & = \\frac{mg \\cos(90^{\\circ} - \\theta) - ma}{R}, \\\\
& = \\frac{ (\\var{mass} \\times 9.8) \\cos (\\var{90 - theta}^{\\circ}) - (\\var{mass} \\times \\var{a})}{\\var{R}}, \\\\
& = \\var{precround(mu,3)}. \\end{align}
The coefficient of friction between the block and the plane is $\\var{precround(mu,3)}$.
\nThis question can be solved using the SUVAT equations.
\nWe know that the block was initially at rest, so $u = 0$.
\nThe acceleration $a = \\var{a}$.
\nThe final velocity $v = \\var{v}$.
\nWe can use the equation $v^2 = u^2 + 2as$, and solve for the distance, $s$.
\n\\begin{align}
v^2 & = u^2 + 2 as, \\\\
\\var{v}^2 & = 0 + (2 \\times \\var{a}s), \\\\
s & = \\simplify[]{{v}/(2*{a})}, \\\\
& = \\var{precround(slide_distance,3)}\\mathrm{m}. \\end{align}
The block slid $\\var{precround(v^2/2*a,3)}\\mathrm{m}$ down the slope before reaching the given speed.
", "variables": {"a": {"description": "The acceleration of the block down the slope.
", "templateType": "randrange", "name": "a", "group": "Ungrouped variables", "definition": "random(2..4.5#0.25)"}, "slide_distance": {"description": "Copy of s for the program
", "templateType": "anything", "name": "slide_distance", "group": "Ungrouped variables", "definition": "s"}, "mass": {"description": "The mass of the block.
", "templateType": "randrange", "name": "mass", "group": "Ungrouped variables", "definition": "random(0.25..10#0.25)"}, "theta": {"description": "The angle of the slope.
", "templateType": "randrange", "name": "theta", "group": "Ungrouped variables", "definition": "random(30..60#1)"}, "v": {"description": "", "templateType": "randrange", "name": "v", "group": "Ungrouped variables", "definition": "random(0.5..5#0.25)"}, "s": {"description": "The distance the block slides before it reaches the given velocity.
", "templateType": "anything", "name": "s", "group": "Ungrouped variables", "definition": "v^2/(2*a)"}, "R": {"description": "The normal reaction force of the plane on the block, rounded to 3 d.p.
", "templateType": "anything", "name": "R", "group": "Ungrouped variables", "definition": "precround(mass*9.8*cos(radians(theta)),3)"}, "mu": {"description": "The coefficient of friction between the block and the plane.
", "templateType": "anything", "name": "mu", "group": "Ungrouped variables", "definition": "(mass*9.8*cos(radians(90-theta))-mass*a)/R"}}, "type": "question", "contributors": [{"name": "simon warwick", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/1264/"}]}]}], "contributors": [{"name": "simon warwick", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/1264/"}]}