Table of contents
Statics
Solution strategy
What is known and unknown?
Free body diagram
Insert coordinate system
Identify a suitable point for a moment equation.
Solve the equation system for the unknowns
Analyze the results, plot, visualize
Conclusion
A sphere with a mass is resting against smooth surfaces according to the figure above. Determine the normal force at and .
Solution
Welcome to the swamp of angles (vinkelträsket)! Insert a Cartesian coordinate system i the center of the sphere and create a free body diagram for the sphere!
Since the surfaces are smooth they can only give rise to normal forces. We thus have contact forces at and , as well as a weight force which acts on the center of the sphere. Since all forces are directed through the center of the sphere, force equilibrium will be enough to solve for all unknowns.
clear
syms F_A F_B m g
We can handle the swamp of angles in a systematic way. Define the angles from the -axis () positively counter-clockwise.
We can thus create a unit vector as a function of the angle :
In Matlab, this can be done using an e.g., an anonymous function:
e = @(theta)[cosd(theta); sind(theta); 0];
Now we can get the direction of by starting at and rotating "backwards" and then again to point in the direction we see in the figure.
FFA = F_A*e(180-75-90)
Matlab sometimes cannot simplify expressions other than approximating it with a fraction. This is accurate but not readable, for this reason we can display the answer as a decimal number with an arbitrary precision, here we choose two significant numbers.
vpa(FFA,2)
Then we have :
FFB = F_B*e(30+90)
vpa(FFB,2)
The weight vector is simply
FG = [0;-m*g;0]
Equilibrium stated that:
ekv = FFA+FFB+FG == 0;
The above expression is exact, but hard to read, so we display the decimal form of it using vpa and then we can analyze the equation system.
vpa(ekv,2)
Now we can send the equation to the solver and solve for and .
[F_A,F_B] = solve(ekv,[F_A,F_B]);
We simplify the expression
F_A = vpa(simplify(F_A),2)
F_B = vpa(simplify(F_B),2)
is simplified to !
The conclusion is that takes the whole wight while only takes about half of the spheres weight. This seems reasonable judging from the figure and FBD.
For a complete analysis we can rotate the whole system clockwise such that is pointing straight up and thus is zero. Try it to confirm.
Determine the wire tensions which carry the traffic light. The light has a mass of kg.
Solution
Insert a coordinate system and create a FBD.
We'll use the same approach as in example 2. Define the angles from the -axis () positively counter-clockwise.
clear
e = @(theta)[cosd(theta); sind(theta); 0];
Similarly to example 2, since all forces are acting through the Origin, a force equilibrium is enough to determine the unknowns.
syms FA FB mg
FFA = FA*e(180-30); vpa(FFA,2)
FFB = FB*e(45); vpa(FFB,2)
FG = [0;-mg;0];
ekv = FFA+FFB+FG==0; vpa(ekv,2)
[FA, FB] = solve(ekv,[FA,FB]);
FA = simplify(FA)
FB = simplify(FB)
vpa(FA,2)
vpa(FB,2)
Conclusion: is bigger than because the point B is higher. If both angles had been then the wire forces would have been the same and equal to .
Determine the wire tensions as a function of the distance . Plot both forces and analyze the results!
Solution
In contrast to the previous two academic examples, forces in real life are typically always going along a line of action and are defined from one point to another. In this example, we have forces along a line which is hung up between three points.
We start by inserting a coordinate system according to the FBD. Then positional vectors.
clear
syms d positive
We create a variable and set it to be positive, this will simplify the expressions. See for yourself, try and experiment!
OA = [-10, 0, 0].'; OB = [20, 0, 0].'; OR = [0, -d, 0].';
Then wire forces which act from point toward points and .
syms v FA FB
RA = OA-OR;
RB = OB-OR;
FFA = FA*RA/norm(RA)
FFB = FB*RB/norm(RB)
FG = [0; -100; 0];
ekv = [FFA+FFB+FG==0]
[FA, FB] = solve(ekv, [FA, FB])
figure; hold on
fplot(FA,[1,20],'Color','r','LineWidth',2,'DisplayName','F_A')
fplot(FB,[1,20],'Color','b','LineWidth',2,'DisplayName','F_B')
legend
ylim([0,200])
Here we can see that the wire forces are tending towards infinity as . This is intuitive. Again, we can set the distances such that the weight hangs symmetrically and check the feasibility of our model.
We end with a limit as .
vpa(limit([FA,FB],d,inf),3)
Conclusion: and with large values for .
Determine the wire force and the reaction forces in the Origin if the homogeneous rod has a mass of kg and is free to rotate at .
Solution
Insert a coordinate system and positional vectors to all important points. Use the defined points to describe new points. We want to vary the position of along the -axis as well as the slope, of the rod.
clear
syms theta b
e = @(theta)[cosd(theta),sind(theta),0].';
OA = 1.5*e(theta);
OB = [-b, 0, 0].';
OG = OA/2;
Now, the forces, start with the wire force.
syms F_A
AB = OB-OA;
FFA = F_A*AB/norm(AB)
Weight force
syms mg
FG = [0, -mg, 0].';
Reaction force in O.
syms R_x R_y
FO = [R_x, R_y, 0].';
Equilibrium
We have and .
ekv = [FFA+FG+FO==0;
cross(OA,FFA)+cross(OG,FG)==0]
As we can see, we always get 6 equations and in 2D we always have three real equations, .
We have three equations and three unknown variables:
Solve the system of equations
[R_x, R_y, F_A] = solve(ekv,[R_x, R_y, F_A] )
Analysis
The resulting expressions are hard to make sense of! We need to plot!
We will set and vary . Then we'll set and vary .
Visualize stuff as much as possible, the eye is excellent at discovering interesting things!
mg = 1; theta = 60;
figure; hold on;
fplot(subs(F_A),[0.25,2],'Displayname','F_A(\theta=60^\circ)')
fplot(subs(R_x),[0.25,2],'Displayname','R_x(\theta=60^\circ)')
fplot(subs(R_y),[0.25,2],'Displayname','R_y(\theta=60^\circ)')
legend; xlabel('b'); ylabel('F/mg');
It makes sense that all forces are tending towards infinity as tends towards the Origin.
mg = 1; b = 1.5; syms theta
figure; hold on;
fplot(subs(F_A),[0, 90],'Displayname','F_A(b=1.5)')
fplot(subs(R_x),[0, 90],'Displayname','R_x(b=1.5)')
fplot(subs(R_y),[0, 90],'Displayname','R_y(b=1.5)')
legend; xlabel('\theta'); ylabel('F/mg');
axis([0,90,0,5])
ax = gca;
chart = ax.Children(1);
datatip(chart,90,1);
As approached the rod is vertical and all the weight is directly above the support, thus the weight vector and reaction vector cancel out, no force is acting in the horizontal direction and the wire force is thus zero. Makes perfect sense.
A rectangular board with a mass of kg is carried in a horizontal position according to the figure above.
Create a FBD of the board, the people only exsert a force in the positive z-direction. Determine how much each person is lifting and which one of them is lifting in the least. Do you even lift bro?
Solution
Start the usual way, add a coordinate system and forces, create a FBD.
clear
OA = [0.360, 0, 0].'; OB = [0.720, 0.480+0.720, 0].';
OC = [0.720+1.680, 0.480, 0].'; OG = [0.720+1.680, 0.480+0.720,0].'/2;
The forces
syms FAz FBz FCz mg
FA = [0, 0, FAz].'; FB = [0,0,FBz].'; FC = [0,0,FCz].'; FG = [0,0,-mg].';
Equilibrium.
Let's do a moment equation around the Origin.
ekv = [FA+FB+FC+FG;...
cross(OA,FA)+cross(OB,FB)+cross(OC,FC)+cross(OG,FG)]==0
[FAz, FBz, FCz] = solve(ekv, [FAz, FBz, FCz]);
vpa([FAz, FBz, FCz],3)
Feasibility, sanity check
sum([FAz, FBz, FCz])
Conclusion: The dude in A is lifting the least.
A light crane as rigged according to the figure above. Determine, as a function of , the reaction forces in the -direction an the two wire forces. The crane is free to rotate about the Origin. The hook-carriage can travel along the x-axis.
Determine the minimum value of where is the magnitude of the reaction force in and is the magnitude of the load at the carriage.
Solution
FBD with a inserted coordinate system and forces.
clear
OA = [6,0,0].'; OB = [0, -2, 3].'; OC = [3, 0, 0].';
OD = [0, 4, 0].';
syms x real positive
OL = [x, 0, 0].';
Force vectors in , wires, etc.
syms F_L positive real
syms FA FC FOx FOy FOz
AB = OB-OA;
CD = OD-OC;
FFA = FA*AB/norm(AB)
FFC = FC*CD/norm(CD)
FFO = [FOx, FOy, FOz].';
FFL = [0, 0, -F_L].';
Set up the force and moment equations and solve for the unknowns.
ekv = [FFA+FFC+FFO+F_L;
cross(OA,FFA)+cross(OL,FFL)+cross(OC,FFC)]==0
[FA, FC, FOx, FOy, FOz] = solve(ekv, [FA, FC, FOx, FOy, FOz])
Finally we compute . Studying a model of a moving load, e.g., a car that drives over a bridge, is very common for engineers. The picture of various loads as a function of the loads position is called the influence line diagram. Here is such a diagram
FO = simplify(subs(norm(FFO)))
kvot = simplify(FO/F_L)
figure
fplot(kvot, [0,2])
xlabel('x'); ylabel('F_O/F_L')
The minimum can be read from the graph or calculated with a bit of calculus:
x_min = vpa(solve(diff(kvot,x)==0,x),3)
FO_min = vpa(subs(kvot,x,x_min),3)
The resulting force in the -direction is given by
FOx