DAE index 3

Also known as index-3 differential-algebraic equation · constrained mechanical DAE · augmented mass-Jacobian system

A differential-algebraic equation (DAE) is a system that mixes ordinary differential equations with algebraic constraints. Constrained multi-body mechanical systems naturally produce index-3 DAEs — three differentiations of the constraint equations are required to recover an ordinary differential equation. We solve them via the augmented mass-Jacobian system [M, Cqᵀ; Cq, 0] integrated with RK45, exposing the Lagrange multipliers as joint reaction forces in Newtons.

DAE in one paragraph

For an unconstrained rigid body, Newton’s second law gives ODEs in position and velocity. Add a constraint — a pin joint, a slider, a gear mesh — and the equations of motion now contain both ODEs and algebraic relations that the configuration must satisfy at every instant. The combined system is a differential-algebraic equation. The index counts how many times the constraint equations must be differentiated to recover an ODE.

Mechanical multi-body systems with holonomic constraints (geometric constraints on positions only) are typically index-3:

  • Differentiate once → constraint becomes a velocity-level relation.
  • Differentiate twice → constraint becomes an acceleration-level relation.
  • Differentiate three times → the system is recoverable as an ODE.

Why index-3 is hard

The natural form of the equations of motion for a constrained system is the augmented Lagrange formulation:

M q̈ + Cqᵀ λ = F
C(q)        = 0

where q is the generalised position, M is the mass matrix, C(q) are the holonomic constraints, Cq is the constraint Jacobian, λ is the Lagrange-multiplier vector, and F are applied forces. The constraint C(q) = 0 lives at the position level — three orders below the dynamics. Naive integration of the ODE part alone lets C(q) drift; constraint stabilisation is required to keep ‖C‖ bounded across long simulations.

Solver structure

Our dynamics layer integrates the augmented system directly:

[M     Cqᵀ] [q̈]   [F − γ]
[Cq    0  ] [λ ] = [γq]

where γ is a quadratic-velocity term and γq is the second derivative of the constraint. At every integration step:

  1. Position-level Newton-Raphson solve enforces C(q) = 0.
  2. Velocity-level projection enforces Cq q̇ = 0.
  3. The augmented linear system above gives q̈ and λ simultaneously.
  4. RK45 advances the (q, q̇) state.
  5. Stabilisation keeps the position and velocity constraints satisfied to machine precision.

The reward for the bookkeeping: λ falls out of the solver as joint reaction forces in Newtons, directly usable for fatigue analysis and bearing sizing — no post-processing.

Why this matters

Most introductory MBSD treatments either:

  • Reduce the index to 1 by analytical elimination of the constraints (only feasible for textbook examples), or
  • Use penalty methods that add stiff springs at the constraint level (numerically badly conditioned, kills RK45 step-size).

Our solver goes through the augmented index-3 form directly because:

See also

FROM CONCEPT TO HARDWARE

Need this applied to your mechanism?

We turn these ideas into validated models, synthesis studies and Python tools your team can keep.