// Numbas version: exam_results_page_options {"name": "Opposing moments using Verignon's theorem", "extensions": ["geogebra", "quantities"], "custom_part_types": [{"source": {"pk": 19, "author": {"name": "William Haynes", "pk": 2530}, "edit_page": "/part_type/19/edit"}, "name": "Engineering Accuracy with units", "short_name": "engineering-answer", "description": "

A value with units marked right if within an adjustable % error of the correct value.  Marked close if within a wider margin of error.

Does clumsy substitution to

\n

1. replace '-' with ' '

\n

2. replace '°' with ' deg'

\n

to allow answers like 10 ft-lb and 30°

", "name": "student_units"}, {"definition": "try(\ncompatible(quantity(1, student_units),correct_units),\nmsg,\nfeedback(msg);false)\n", "description": "", "name": "good_units"}, {"definition": "switch(not good_units, \n student_scalar * correct_units, \n not right_sign,\n -quantity(student_scalar, student_units),\n quantity(student_scalar,student_units)\n)\n \n", "description": "

This fixes the student answer for two common errors.

\n

If student_units are wrong  - replace with correct units

\n

If student_scalar has the wrong sign - replace with right sign

\n

If student makes both errors, only one gets fixed.

", "name": "student_quantity"}, {"definition": "try(\nscalar(abs((correct_quantity - student_quantity)/correct_quantity))*100 \n,msg,\nif(student_quantity=correct_quantity,0,100))\n ", "description": "", "name": "percent_error"}, {"definition": "percent_error <= settings['right']\n", "description": "", "name": "right"}, {"definition": "right_sign and percent_error <= settings['close']", "description": "

Only marked close if the student actually has the right sign.

", "name": "close"}, {"definition": "sign(student_scalar) = sign(correct_quantity) ", "description": "", "name": "right_sign"}], "settings": [{"input_type": "code", "evaluate": true, "hint": "The correct answer given as a JME quantity.", "default_value": "", "label": "Correct Quantity.", "help_url": "", "name": "correctAnswer"}, {"input_type": "code", "evaluate": true, "hint": "Question will be considered correct if the scalar part of the student's answer is within this % of correct value.", "default_value": "0.2", "label": "% Accuracy for right.", "help_url": "", "name": "right"}, {"input_type": "code", "evaluate": true, "hint": "Question will be considered close if the scalar part of the student's answer is within this % of correct value.", "default_value": "1.0", "label": "% Accuracy for close.", "help_url": "", "name": "close"}, {"input_type": "percent", "hint": "Partial Credit for close value with appropriate units.  if correct answer is 100 N and close is ±1%,
99  N is accepted.", "default_value": "75", "label": "Close with units.", "help_url": "", "name": "C1"}, {"input_type": "percent", "hint": "Partial credit for forgetting units or using wrong sign.
If the correct answer is 100 N, both 100 and -100 N are accepted.", "default_value": "50", "label": "No units or wrong sign", "help_url": "", "name": "C2"}, {"input_type": "percent", "hint": "Partial Credit for close value but forgotten units.
This value would be close if the expected units were provided.  If the correct answer is 100 N, and close is ±1%,
99 is accepted.", "default_value": "25", "label": "Close, no units.", "help_url": "", "name": "C3"}], "public_availability": "restricted", "published": false, "extensions": ["quantities"]}], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "Opposing moments using Verignon's theorem", "tags": ["Equilibrium", "equilibrium", "Mechanics", "mechanics", "moments", "Moments", "Statics", "statics"], "metadata": {"description": "

Find the tension in a rope necessary to prevent a bracket from rotating by applying $\\Sigma M = 0$.

", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "

An L shaped bracket is supported by a frictionless pin at $A$ and a cable between points $B$ and $D$.

\n

Determine the tension in the cable required for equilibrium when a {F} force $\\textbf{F}$ is applied to the bracket as shown.

\n

{geogebra_applet('phznbxbe', [['A',A],['B',B],['D',D],['α', alpha + '°'],['unit','\"'+units[0]+'\"']])}

\n

Since the object is in equilibrium $\\Sigma M_A = 0$ implies that the opposing moments must have equal magnitudes.  This is the principle we use to solve the problem. At the start we know the magnitude of $\\textbf{F}$ and the geometry of the system.

\n

1. Begin by drawing a sketch, defining your symbols and determining geometric values.

\n

Let $\\alpha$ be the angle force $\\textbf{F}$ makes with the horizontal and $\\beta$ be the angle the cable makes with the horizontal.

\n

$\\alpha = \\var{abs(alpha)}°$,   $\\beta = \\var{siground(if(abs(beta)>90, 180-abs(beta), abs(beta)),4)}°$

\n

Let $d_x$ and $d_y$ represent the horizontal and vertical distances from $A$ to $B$.

\n

$d_x = \\var{d_x}$,   $d_y = \\var{d_y}$

\n

2. Develop expressions for the moments about point $A$ caused by the force $\\textbf{F}$ and the cable. The moment caused by force can be found completely, but the moment caused by the cable tension can only be expressed as a function of the unknown tension $T$.

\n

\n

$M_F = F_y \\cdot d_x = F \\sin \\alpha \\cdot d_x$

\n

$M_T = T_x \\cdot d_y \\pm T_y \\cdot d_x = (T \\cos \\beta) \\, d_y \\pm (T \\sin \\beta) \\, d_x = T (\\var{scalar(d_y)} \\cos \\beta \\pm \\var{scalar(d_x)} \\sin \\beta)$

\n

When calculating the moment due to the cable $M_T$, if the two component moments act in the same direction, add the terms.  If they twist in opposite directions, take their difference.  Either way, make the final result positive, because we're comparing magnitudes.

\n

3. After substituting the known values and simplifying, equate the moments to get:

\n

$M_T = M_F$

\n

$T (\\var{format(d_perp_t)}) = \\var{format(M_F)}$

\n

$T = \\dfrac{\\var{format(M_F)}}{\\var{format(d_perp_t)}}= \\var{format(T)}$

\n

", "rulesets": {}, "extensions": ["geogebra", "quantities"], "variables": {"d_x": {"name": "d_x", "group": "Outputs", "definition": "qty(abs(A[0]-B[0]),units[0])", "description": "", "templateType": "anything"}, "T_hat": {"name": "T_hat", "group": "Outputs", "definition": "vector(run,rise,0)/abs(vector(rise,run,0))", "description": "", "templateType": "anything"}, "B": {"name": "B", "group": "Inputs", "definition": "vector(random(1,-1) random(5..12),random(1,-1) random(4..10))", "description": "

Position of point B

", "templateType": "anything"}, "F_y": {"name": "F_y", "group": "Outputs", "definition": "F sin(radians(alpha))", "description": "", "templateType": "anything"}, "A": {"name": "A", "group": "Inputs", "definition": "vector(0,0)", "description": "

Position of point A

", "templateType": "anything"}, "d_perp_t": {"name": "d_perp_t", "group": "Outputs", "definition": "qty(abs(cross(T_hat,r_ad)[2]),units[0])", "description": "", "templateType": "anything"}, "T": {"name": "T", "group": "Ungrouped variables", "definition": "M_F/d_perp_t", "description": "", "templateType": "anything"}, "F": {"name": "F", "group": "Inputs", "definition": "qty(random(10..100#5),units[1])", "description": "

Magnitude of force A

", "templateType": "anything"}, "F_hat": {"name": "F_hat", "group": "Outputs", "definition": "( vector(cos(radians(alpha)),sin(radians(alpha)),0))", "description": "

force A as a vector

", "templateType": "anything"}, "units": {"name": "units", "group": "Inputs", "definition": "random(['ft','lb'],['in','lb'],['cm','N'])", "description": "", "templateType": "anything"}, "beta": {"name": "beta", "group": "Outputs", "definition": "siground(degrees(atan2(rise,run)),6)", "description": "", "templateType": "anything"}, "run": {"name": "run", "group": "Outputs", "definition": "d[0]-b[0]", "description": "", "templateType": "anything"}, "d_y": {"name": "d_y", "group": "Outputs", "definition": "qty(abs(A[1]-B[1]),units[0])", "description": "", "templateType": "anything"}, "M_F": {"name": "M_F", "group": "Outputs", "definition": "siground(abs(F_y) d_AB,5)", "description": "", "templateType": "anything"}, "d_AB": {"name": "d_AB", "group": "Outputs", "definition": "qty(abs(B[0]),units[0])", "description": "", "templateType": "anything"}, "alpha": {"name": "alpha", "group": "Inputs", "definition": "random(-80..80#10 except 0)", "description": "

direction of force A

", "templateType": "anything"}, "rise": {"name": "rise", "group": "Outputs", "definition": "d[1]-b[1]", "description": "", "templateType": "anything"}, "debug": {"name": "debug", "group": "Inputs", "definition": "false", "description": "", "templateType": "anything"}, "r_ad": {"name": "r_ad", "group": "Outputs", "definition": "D-A + vector(0,0,0)", "description": "", "templateType": "anything"}, "D": {"name": "D", "group": "Inputs", "definition": "B + vector(random(1,-1)random(2..5),random(1,-1)random(2..5))", "description": "

Position of point C

", "templateType": "anything"}}, "variablesTest": {"condition": "B[0]<>D[0] and B[1]<>D[1] and \nA[0]<>D[0] and A[1]<>D[1] and \nabs(rise) <> abs(run)", "maxRuns": 100}, "ungrouped_variables": ["T"], "variable_groups": [{"name": "Inputs", "variables": ["A", "B", "D", "alpha", "F", "units", "debug"]}, {"name": "Outputs", "variables": ["F_hat", "F_y", "d_AB", "M_F", "beta", "rise", "run", "T_hat", "r_ad", "d_perp_t", "d_x", "d_y"]}], "functions": {"format": {"parameters": [["q", "quantity"]], "type": "quantity", "language": "jme", "definition": "string(siground(q,4))"}}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": true, "customName": "Find Moment", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Determine the moment that the force $\\textbf{F}$ produces about point $A$.

\n

$M_F =$ [[0]] {M_F}

", "gaps": [{"type": "engineering-answer", "useCustomName": true, "customName": "M_F", "marks": "25", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "M_F", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "Find Tension", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Determine the tension required to hold the bracket in position.

\n

$T$ = [[0]] {format(T)}

", "gaps": [{"type": "engineering-answer", "useCustomName": true, "customName": "T", "marks": "25", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "settings": {"correctAnswer": "T", "right": "0.2", "close": "1.0", "C1": "75", "C2": "50", "C3": "25"}}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "contributors": [{"name": "William Haynes", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/2530/"}]}]}], "contributors": [{"name": "William Haynes", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/2530/"}]}