Setting Up Multi-Body Motion

Multi-body motion allows you to simulate one or more 6-DOF bodies connected through mechanical joints or with their motions limited by mechanical constraints. It can also be used to compute single body motion, if the motion can not be simulated by free motion.

Before you begin, first Creating a 6-DOF Body to couple as a multi-body motion.

When you apply multi-body motion to single bodies:
  1. Navigate to the DFBI > 6-DOF Bodies node.
  2. Select the pre-defined [Body 1] node and set Body Motion Option to Multi-Body Motion.
  3. If required, repeat the previous step with Body 2, Body 3 etc.
    When multiple bodies are set to Multi-Body Motion without any joint or other body-body coupling, the bodies move independently to each other.
To couple multiple bodies using mechanical joints:
  1. Navigate to the DFBI > 6-DOF Bodies node.
  2. Multi-edit the pre-defined [Body 1] and [Body 2] nodes and set Body Motion Option to Multi-Body Motion.
    The Multi-Body Motion node appears in the simulation tree.
  3. Edit the Multi-Body Motion node and enable/freeze motion in the desired directions of the specified coordinate system. See Multi-Body Motion.
(Optional) To define a mechanical joint connecting two bodies:
  1. Right-click the 6-DOF Bodies > Body Couplings node and create one of the following:
    • Bracket Joint
    • Revolute Joint
    • Spherical Joint


  2. Depending on the type of coupling that you create, select the appropriate sub-node and set its properties. For more information, see Body Coupling Reference.
For solver stability, do not define multiple body constraints that freeze the same degrees of freedom. For example, when a body is connected to the environment using a revolute joint, any translation motion along the joint axis is suppressed. In this case, do not also freeze the translation motion along the joint axis using the Multi-Body Motion properties, as this constraint is already imposed by the joint. Similarly, do not define multiple joints that impose the same constraint.

To assess the feasibility of the constraint equation system, you monitor the constraint deviation, which measures the residual of the constraint solution.

  1. To monitor the constraint deviation, right-click the Reports node and select New Report > DFBI > 6-DOF Constraint Deviation.
    For more information, see 6-DOF Constraints Deviation Report.
  2. (Optional) To monitor constraint/joint forces or moments, right-click the Reports node and select New Report > DFBI > 6-DOF Force/Moment and select all the Constraint Force and Joint Force nodes of a body.


    NoteThe DFBI equations are solved dynamically. Only the sum of all constraint forces and joint forces of a body gives a physically meaningful report value. The same is true for moments. Selecting a single force may lead to unphysical oscillation of the report value.
  3. Run the multi-body motion simulation.
    If the constraint deviation that you monitor is too large, ( 10 3 ) , you can improve the simulation setup in the following ways:
    • Reduce the time-step: Select the Solvers > Implicit Unsteady node and set Time-Step to an appropriate value.
    • Alternatively, or in addition to reducing the time-step, select the 6-DOF Solver node and activate Sub-Stepping Enabled. Use the 6-DOF Solver > Sub-Stepping node to specify the required number of substeps.
    • Select the Solvers > 6-DOF Solver > Baumgarte Constraint Stabilization node and adjust the Baumgarte Constraint Stabilization properties.
    • If Velocity Driver constraints are used in the simulation, make sure to enable the degrees of freedom in which the driver constraints are acting. Do not disable these directions in the Multi-Body Motion node.
    • (Optional) Change the Redundant Constraint Detection option when the constraint deviation increases suddenly by orders of magnitude or the multi-body system disassembles: Select the Solvers > 6-DOF Solver > Multi-Body Constraint Solver node and set the Redundant Constraint Detection to Relaxed or Loose. See also Redundant Constraint Detection.