Scroll back to top

    Dynamic Force Analysis Intro

    Dynamic Force Analysis (commonly called DFA) is closely connected to PVA Analysis. After obtaining the motion of a system through PVA analysis, DFA obtains the forces acting on each link and joint in the system. This process of going from a known motion to the forces that would have caused such motion is called inverse kinematics. This is opposed to forward kinematics, where the motion of a system is determined given the external loading. In real life applications, both methods are used to analyze mechanisms.

    Most of the time, the largest loads will be external forces and torques, as well as inertial forces and torques. To simplify our analysis, we will neglect the influence of gravity. However, in cases where gravitational loads contribute significantly to the total loads on a system, it is important to include them.

    Review of Dynamics Concepts

    There are a couple of applicable dynamics concepts that are worth reviewing.

    Total mass tells us the resistance of an object to changes in linear acceleration given an external force. We can use Newton's second law to relate force, mass, and linear acceleration.

    Center of mass is the first moment of mass. This is essentially the weighted sum of masses times their distances from a reference point. For a discrete set of point masses, we can use summation.

    Center Of Mass 1
    $$ \vec{r}_{CG}=\frac{\sum{\vec{r}_i m_i}}{\sum{m}_i} $$

    For continuous objects, we integrate over the entire volume to calculate the weighted sum.

    Center Of Mass 2
    $$ \vec{r}_{CG}=\frac{\int{\vec{r}dm}}{\int{dm}} $$

    In practice, the center of mass of many common shapes has already been solved and tabulated in look-up tables. Such tables can be readily found online or in textbooks. If the object is placed in a uniform gravitational field, then the object's center of gravity will be at the same location. Additionally, a free object will always rotate about an axis that goes through its center of mass. Additional information about centers of mass, and a table of centers of masses for common objects is located on the Rigid Body Kinetics page.

    Moment of inertia is the second moment of mass. This tells us about an object's resistance to changes in angular acceleration. An object's moment of inertia is always considered around an axis of rotation. For example, the z-axis moment of inertia of a planar object can be calculated as such:

    Moment of Inertia
    $$ I_z=\int_A{\vec{r}^2dm} $$

    Similar to the center of mass, the moment of inertia of common shapes about an object's center of mass have already been solved around the \( x \), \( y \), and \( z \) axes and tabulated. Additional information about moments of inertia of mass, and a table of moments of inertia for common objects is located on the Rigid Body Kinetics page.

    The parallel axis theorem allows us to calculate the moment of inertia of an object about any axis away from the center of mass. Objects rarely rotate around their center of mass in reality, especially when the object is part of a linkage. As such, having a method to calculate an object's moment of inertia about an arbitrary axis (without redoing the integral) is useful. The parallel axis theorem states that given the moment of inertia, \( I_{CM} \), about an axis through the center of mass of an object of mass \( M \), the moment of inertia about a parallel axis that is distance \( d \) away from the center of mass is given by:

    Parallel Axis Theorem
    $$ I=I_{CM}+Md^2 $$

    Radius of gyration is the distance, \( k \), is the distance from the axis of rotation at which the entire mass of the body, \( M \), would be concentrated to give the same moment of inertia. That is, \( I=Mk^2 \). Solving for \( k \) gives:

    Radius Of Gryration
    $$ k=\sqrt{\frac{I}{M}} $$

    The cross product is a useful mathematical operation that takes two vectors as input and returns a vector as output, denoted by the \( \times \) operator. Qualitatively, the magnitude of \( \vec{a}\times\vec{b} \) has the same length as the area of the parallelogram formed by \( \vec{a} \) and \( \vec{b} \), and the direction is determined by the right hand rule. Point your right hand's index finger in the direction of \( \vec{a} \) and the middle finger in the direction of \( \vec{b} \), then straightening your thumb will give the direction of \( \vec{a}\times\vec{b} \). This also shows that the cross product is not communicative, i.e., \( \vec{b}\times\vec{a}=-(\vec{a}\times\vec{b}) \).

    Quantitatively, we have two methods to easily calculate the magnitude of the cross product of two 2D vectors, \( \vec{a}=a_x\hat{i}+a_y\hat{j} \) and \( \vec{b}=b_x\hat{i}+b_y\hat{j} \). The first method takes the determinant of a matrix containing the components of \( \vec{a} \) and \( \vec{b} \), as shown below:

    2D Cross Product Magnitude 1
    $$ ||\vec{a}\times\vec{b}||=\det\begin{bmatrix}a_x & a_y\\b_x & b_y\end{bmatrix} = a_xb_y-a_yb_x $$

    The second method calculates the area of the parallelogram bounded by \( \vec{a} \) and \( \vec{b} \), where \( \theta \) is the angle between \( \vec{a} \) and \( \vec{b} \):

    2D Cross Product Magnitude 2
    $$ ||\vec{a}\times\vec{b}||=||\vec{a}|| ||\vec{b}||\sin{\theta} $$

    3D cross products are more challenging and require solving the determinant shown below. This is less useful in the context of DFA, since most linkages studied here operates in a plane.

    3D Cross Product
    $$ \vec{a}\times\vec{b}=\det\begin{bmatrix}\hat{i} & \hat{j} & \hat{k} \\ a_x & a_y & a_z \\ b_x & b_y & b_z\end{bmatrix} $$

    Note that setting \( a_z=b_z=0 \) will yield the same result as the 2D case.

    DFA procedure

    Because we are dealing with multiple links, each applying forces and having forces applied onto it, we need a way to keep track of all the various forces. As such, the following notation will be used:

    • \( \vec{F}_{ij} \): Force link \( i \) exerts on link \( j \). From Newton's Third Law, \( \vec{F}_{ij}=-\vec{F}_{ji} \).
    • \( T_{ij} \): Torque link \( i \) exerts on link \( j \). Fron Newton's Third law, \( T_{ij}=-T_{ji} \).
    • \( \vec{R}_{ij} \): Position of \( \vec{F}_{ij} \) relative to the CG of link \( j \). Note that unlike forces, \( \vec{R}_{ij}\neq\vec{R}_{ji} \) for this notation.

    Here is a brief overview of the DFA procedure:

    1. Draw the complete system. Label points, dimensions, external forces and torques, and kinematics.
    2. Create free-body diagram for each segment. Each free-body diagram should include a labeled coordinate system, external joint forces and torques, kinematics, internal forces and torques, and position vectors. It is highly recommended to follow the notation shown above for ease of bookkeeping.
    3. Symbolically write out equations of motion for each link. For planar mechanisms, this will involve two force equations and one torque equation, for a total of three equations of motion:
    4. Equations of Motion
      $$ \begin{gather}\sum{\vec{F}_{ix}}=m_i\vec{a}_{CGix} \\ \sum{\vec{F}_{iy}}=m_i\vec{a}_{CGiy} \\ \sum{T}_{iz}=I_{CGi}\alpha_i \end{gather} $$

    5. Convert equations to matrix format \( [A]\{B\}=\{C\} \) .
      • Matrix \( [A] \) contains all geometric information (e.g. position vectors).
      • Vector \( \{B\} \) contains all unknown forces and torques.
      • Vector \( \{C\} \) contains all dynamic information (e.g. external forces and torques, PVA analysis results, mass, moments of inertia).
    6. Insert known values into the matrix equation.
    7. Invert matrix \( [A] \) to solve for \( \{B\} \) using a computational tool of your choice (e.g. MATLAB or Python).

    DFA Walkthrough

    Let's first apply DFA on a simple two-link system to see how it works. Link 1 is the ground link, while link 2 rotates around point \( O_2 \) and is acted on by an external force \( \vec{F}_P \). Link 2 has mass \( m \), length \( l \), and a uniform cross section. We want to find the reaction force \( \vec{F}_{12} \) at \( O_2 \) and the driving torque \( T_{12} \).

    At this instant in time, the following parameters are known:

    Known Values
    $$ \begin{matrix} m=1.5kg & I=0.3kg\cdot{}m^2 \\F_p=(5,2)N & \vec{A}_{CG2}=(4,1)\frac{m}{s^2}\\ \vec{R}_{12}=(-1,-3)m & \vec{R}_{P2}=(1,3)m \end{matrix} $$

    The equations of motion will be easier to visualize if we isolate link 2 and draw its free-body diagram:

    Writing out each equation of motion gives:

    Equations of Motion
    $$ \begin{matrix} x: & F_{12x}=m_{2}A_{CG2x}-F_{Px}\\y: & F_{12y}=m_{2}A_{CG2y}-F_{Py}\\T: & -R_{12y}F_{12x}+R_{12x}F_{12y}+T_{12}=I_{12}\alpha_{2}-R_{Px}F_{Py}+R_{Py}F_{Px}\end{matrix} $$

    Next, group the known and unknown into \( [A] \), \( \{B\} \), and \( \{C\} \):

    Matrix Forms
    $$ \begin{gather} [A]=\begin{bmatrix}1 & 0 & 0\\ 0 & 1 & 0\\ -R_{12y} & R_{12x} & 1 \end{bmatrix} \\ \{B\} =\begin{Bmatrix}F_{12x}\\ F_{12y}\\ T_{12}\end{Bmatrix} \\ \{C\} =\begin{Bmatrix}m_{2}A_{CG2x}-F_{Px}\\m_{2}A_{CG2y}-F_{Py}\\I_{CG2}\alpha_{2}-R_{Px}F_{Py}+R_{Py}F_{Px}\end{Bmatrix} \end{gather} $$

    Putting the matrix equation together:

    Matrix Equation 1
    $$ \begin{bmatrix}1 & 0 & 0\\ 0 & 1 & 0\\ -R_{12y} & R_{12x} & 1 \end{bmatrix}\begin{Bmatrix}F_{12x}\\ F_{12y}\\ T_{12}\end{Bmatrix}=\begin{Bmatrix}m_{2}A_{CG2x}-F_{Px}\\m_{2}A_{CG2y}-F_{Py}\\I_{CG2}\alpha_{2}-R_{Px}F_{Py}+R_{Py}F_{Px}\end{Bmatrix} $$

    Substitute in all known values:

    Matrix Equation 2
    $$ \begin{bmatrix}1 & 0 & 0\\0 & 1 & 0\\3 & -1 & 1\end{bmatrix}\begin{Bmatrix}F_{12x}\\F_{12y}\\T_{12}\end{Bmatrix}=\begin{Bmatrix}1.5*4-5\\1.5*1-2\\0.3*0.3-1*1.5+3*5\end{Bmatrix} $$

    Invert and solve:

    Matrix Equation 3
    $$ \begin{Bmatrix}F_{12x}\\F_{12y}\\T_{12}\end{Bmatrix}=\begin{bmatrix}1 & 0 & 0\\0 & 1 & 0\\3 & -1 & 1\end{bmatrix}^{-1}\begin{Bmatrix}1\\-0.5\\14.4 \end{Bmatrix}=\begin{Bmatrix}1\\-0.5\\10.9 \end{Bmatrix} $$

    Now we can move on to a more complex example with multiple moving links. Below is a crank slider mechanism with an external force \( \vec{F}_p \) applied at point \( P \). A motor drives link 2. The slider (link 4) slides along a horizontal surface with friction coefficient \( \mu \). Assume that all kinematic and geometric information is known.

    The unknowns are:

    Unknowns
    $$ \begin{gather} T_{12} \\ \vec{F}_{12}=(F_{12x},F_{12y})\\ \vec{F}_{32}=(F_{32x},F_{32y})\\ \vec{F}_{23}=(F_{23x},F_{23y})\\ \vec{F}_{43}=(F_{43x},F_{43y})\\ \vec{F}_{34}=(F_{34x},F_{34y})\\ \vec{F}_{14}=(F_{14x},F_{14y}) \end{gather} $$

    Note that we have the following redundant values:

    Redundant Equations
    $$ \begin{gather} -\vec{F}_{23}=\vec{F}_{32} \\ -\vec{F}_{34}=\vec{F}_{43} \end{gather} $$

    Furthermore, we can use the friction coefficient to relate \( F_{14} \) and \( F_{14y} \). The sign of \( F_{14y} \) depends on the direction in which the slider is moving (that is, always opposite to the the velocity's direction).

    Slider Equations
    $$ F_{14x}=-sign(V_{CG4x}){\mu}F_{14y}=\pm{\mu}F_{14y} $$

    Thus, we can reduce the unknowns down to 8 independent unknowns, which will require 8 equations to solve:

    Unknowns
    $$ F_{12x},F_{12x},F_{32x},F_{32y},F_{43x},F_{43y},F_{14y},T_{12} $$

    Next, draw the free body diagram for each link and write the respective equations of motion.

    For link 2:

    (Note that link 2 is identical to the link that was analyzed in the previous example.)

    Equations Link 2
    $$ \begin{matrix}x: & F_{12x}+F_{32x}=m_{2}A_{CG2x}\\y: & F_{12y}+F_{32y}=m_{2}A_{CG2y}\\T: & (R_{12x}F_{12y}-R_{12y}F_{12x})+(R_{32x}F_{32y}-R_{32y}F_{32x})+T_{12}=I_{CG2}\alpha_{2}\end{matrix} $$

    For link 3:

    Equations Link 3
    $$ \begin{matrix}x: & F_{23x}+F_{43x}+F_{Px}=m_{3}A_{CG3x}\\y: & F_{23y}+F_{43y}+F_{Py}=m_{3}A_{CG3y}\\T: & (R_{23x}F_{23y}-R_{23y}F_{23x})+(R_{43x}F_{43y}-R_{43y}F_{43x})+(R_{Px}F_{Py}-R_{Py}F_{Px})=I_{CG3}\alpha_{3}\end{matrix} $$

    Recall that \( \vec{F}_{23}=-\vec{F}_{32} \).

    Modified Equations Link 2
    $$ \begin{matrix}x: & -F_{32x}+F_{43x}+F_{Px}=m_{3}A_{CG3x}\\y: & -F_{32y}+F_{43y}+F_{Py}=m_{3}A_{CG3y}\\T: & (-R_{23x}F_{32y}+R_{23y}F_{32x})+(R_{43x}F_{43y}-R_{43y}F_{43x})+(R_{Px}F_{Py}-R_{Py}F_{Px})=I_{CG3}\alpha_{3}\end{matrix} $$

    For link 4:

    Note that torque balance is unnecessary because we assume that all forces are assumed to act through the CG.

    Equations Link 4
    $$ \begin{matrix}x: & F_{14x}+F_{34x}=\pm{\mu}F_{14y}-F_{43x}=m_{4}A_{CG4x}\\y: & F_{14y}+F_{34y}=F_{14y}-F_{43y}=0\end{matrix} $$

    We can now gather the 8 equations into matrix form \( [A]\{B\}=\{C\} \).

    Matrix Definitions
    $$ \begin{gather} [A]=\begin{bmatrix}1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\0 & 1 & 0 & 1 & 0 & 0 & 0 & 0\\-R_{12y} & R_{12x} & -R_{32y} & R_{32x} & 0 & 0 & 0 & 1\\0 & 0 & -1 & 0 & 1 & 0 & 0 & 0\\0 & 0 & 0 & -1 & 0 & 1 & 0 & 0\\0 & 0 & R_{23y} & -R_{23x} & -R_{43y} & R_{43x} & 0 & 0\\0 & 0 & 0 & 0 & -1 & 0 & \pm\mu & 0\\0 & 0 & 0 & 0 & 0 & -1 & 1 & 0\end{bmatrix} \\ \{B\}=\begin{Bmatrix}F_{12x}\\F_{12y}\\F_{32x}\\F_{32y}\\F_{43y}\\F_{43y}\\F_{14y}\\T_{12}\end{Bmatrix} \\ \{C\} = \begin{Bmatrix}m_{2}A_{CG2x}\\m_{2}A_{CG2y}\\I_{CG2}\alpha_{2}\\m_{3}A_{CG3x}-F_{Px}\\m_{3}A_{CG3y}-F_{Py}\\I_{CG3}\alpha_{3}-(R_{Px}F_{Py}-{R_{Py}F_{Px}})\\m_{4}A_{CG4x}\\0\end{Bmatrix} \end{gather} $$

    The final step is to solve for \( \{B\} \) by plugging in all known values, then taking the inverse of \( [A] \) and multiplying it by \( \{C\} \). i.e., \( \{B\}=[A]^{-1}\{C\} \).

    Application Notes

    If you have a mismatch between your number of equations and unknowns, there is likely a constraint on the problem that reduces the number of unknowns, or an equation that should not be included (sometimes this occurs with equations of the form \( 0=0 \)).