The dynamics of a body or system are determined by \(\sum \vec{F} =m \vec{a}\). The free-body diagram (FBD) is a powerful tool for this analysis.
FBD for one object – FBDs for multiple objects – Extended FBD – Example
Follow these steps to construct a free-body diagram. They are illustrated in detail in the example below.
If there are multiple bodies in contact with each other:
Rigid body dynamics are required when torques and rotation are important.
When released from rest, which way will these blocks move? Find their acceleration and the tension in the string. The masses are \(m_1 =2.5\) kg and \(m_2 = 1.0\) kg. The ramp is inclined at angle \(\theta = 30^\circ\) and is frictionless.
Solution
We will carefully walk through the steps outlined above.
There are two interacting objects, so we will make one FBD for each. Do not include the ramp in the FBD, since it is not part of our body of interest.
Since there is only one string, the tension force \(T\) on each mass must be same. Both FBDs should therefore use the same variable \(T\).
For \(m_1\), two of the three forces are aligned with the ramp, so it makes sense to align the \(xy\) axes with the ramp. We could pick either uphill or downhill for the \(+x\) direction. For \(m_2\) we choose the standard \(xy\) axes.
Really, any choice of \(xy\) axes will work. But a good choice will make the algebra easier.
Although we don’t yet know which way \(m_1\) will move, it must be either be up or down the ramp. So we take a guess to define the direction of positive \(a\): let’s say uphill. If our guess is wrong and \(m_1\) is actually accelerating down the ramp, then our math will show that scalar \(a\) is negative. Then looking back at the acceleration vector sketched on our FBD, we know its true direction.
For \(m_2\), we are now forced to point \(a\) direction downward. This is because if \(m_1\) is accelerating uphill, then \(m_2\) must be accelerating downward. Note that although vector \(\vec{a}_1 \neq \vec{a}_2\), the scalar \(a\) is the same for both masses.
For \(m_1\), forces \(N\) and \(T\) align with the axes on the FBD. For \(m_2\), gravity and \(T\) align with the axes on that FBD. The only force that does not align is \(m_1 g\). We need to explicitly show the angle it makes with the axes so we can later construct the equations of motion. A little geometry should convince you that the ramp angle \(\theta\) is also the angle between the \(-y\) axis and the gravity vector.
For mass \(m_1\), acceleration \(\vec{a_1}\) points in the \(+x\) direction. For mass \(m_2\), acceleration \(\vec{a_2}\) points in the \(-y\) direction.
For \(m_1\), \(T\) points in the \(+x\) direction and \(N\) points in the \(+y\) direction. So:
\[ \vec{T} = T \hat{\imath} \]
\[ \vec{N} = N \hat{\jmath} \]
The gravity force on \(m_1\) has \(x\) and \(y\) components. It’s magnitude is \(m_1 g\), and its direction can be determined from the triangle at the right. You should see that both \(x\) and \(y\) components are negative. Furthermore, the \(x\) component is on the opposite side from \(\theta\) (\(\sin\)), and the \(y\) component is on the side adjacent to \(\theta\) (\(\cos\)).
\[ m_1 \vec{g} = m_1 g ( -\sin \theta \; \hat{\imath} -\cos \theta \; \hat{\jmath} ) \]
Summing all the forces (and collecting \(\hat{\imath}\) and \(\hat{\jmath}\) terms):
\[ \begin{aligned} \vec{F}_{\text{net}} &= \vec{T} + \vec{N} + m_1 \vec{g} \\ &= T \hat{\imath} + N \hat{\jmath} + m_1 g ( -\sin \theta \; \hat{\imath} -\cos \theta \; \hat{\jmath} ) \\ &= (T - m_1 g \sin \theta) \hat{\imath} + ( N - m_1 g \cos \theta)\hat{\jmath} \end{aligned} \]
Our FBD for \(m_1\) shows the acceleration is \(\vec{a}_1 = a \hat{\imath}\). So the equations of motion are
\[ (T - m_1 g \sin \theta) \hat{\imath} + ( N - m_1 g \cos \theta)\hat{\jmath} = m_1 a \; \hat{\imath} \]
For \(m_2\), there is no force nor acceleration in the \(x\) direction. We need to be extra careful about the \(\pm\) signs on the \(y\) components. Our FBD above shows an acceleration vector \(\vec{a}_2 = 0 \hat{\imath} - a \hat{\jmath}\). So the equation of motion for \(m_2\) is
\[ (T - m_2 g) \hat{\jmath} = -m_2 a \hat{\jmath} \]
Collecting the \(\hat{\imath}\) and \(\hat{\jmath}\) terms above, we get three equations:
\[ \begin{matrix} T - m_1 g \sin \theta = m_1 a & (\hat{\imath} \text{ terms for } m_1) \\ N - m_1 g \cos \theta = 0 & (\hat{\jmath} \text{ terms for } m_1) \\ T - m_2 g = -m_2 a & (\hat{\jmath} \text{ terms for } m_2) \\ \end{matrix} \]
These can be solved for the three unknown quantities: \(a\), \(T\) and \(N\). The algebra is not too difficult; you could subtract the last equation from the first to eliminate \(T\). Then solve for \(a\):
\[ a = \left( \frac{m_2-m_1 \sin \theta}{m_1+m_2} \right) g \]
Substitute this into the last equation to find the tension.
Performing the calculations:
from numpy import *
m1,m2,theta,g = 2.5, 1, 30*pi/180, 9.8
a = (m2-m1*sin(theta))/(m1+m2)*g
T = m2*(g-a)
print(f'acceleration a = {a:0.3f} m/s²')
print(f'tension T = {T:0.2f} N')acceleration a = -0.700 m/s²
tension T = 10.50 N
Since \(a\) is negative, \(m_1\) will slide down the ramp and \(m_2\) will be pulled up. They both accelerate at \(0.70\) m/s², and the tension in the string is \(10.5\) N (a little greater than \(m_2g\), as is needed to pull it up).
Last modified: November 01, 2025