
Dynamic Exports


If the generalized coordinates that you define are independent, the dynamic equations governing the system response constitute a set of ordinary differential equations (ODEs).
If the coordinates are dependent, the ODEs for the dynamic response can only be solved simultaneously with the nonlinear algebraic equations from the positionlevel kinematic constraints; the resulting system equations constitute a set of differentialalgebraic equations (DAEs). With MapleSim/Multibody, you can represent the constraint reactions by their actual forces and moments, or indirectly using Lagrange multipliers.

Baumgarte Constraint Stabilization


One method of converting these DAEs to ODEs is to replace the position constraints with the acceleration constraints, which are then numerically integrated simultaneously with the ODEs from the dynamic equations. However, during the integration process, the accumulation of numerical errors leads to violations in the position constraint equations. (Visually, the cotree joints will float apart.) Baumgarte proposed a method to stabilize these constraints, by combining the position, velocity, and acceleration constraints into a single expression:
which can be written as a linear equation in terms of the accelerations:
By integrating this expression for the accelerations, the Baumgarte parameters, α and β, act to stabilize the constraints at the position level. These parameters are set using the command:
> Model:SetBaumgarte([alpha,beta]);
where `Model` is the module returned from the BuildEQs command, and α and β must be given numerical values prior to numerical solution. Typical values range from 1 to 10, and depend upon the characteristics of the particular system under study.
As explained below, Baumgarte stabilization is automatically used in the exports for constrained dynamic systems. If the Baumgarte parameters are not set, default values of 0 are assumed (that is, no constraint stabilization).


Unconstrained Dynamics (ODEs in Independent Coordinates)


If the generalized coordinates, q, and generalized speeds, p, are independent, the dynamic equations take the "unconstrained" form:
where is the mass matrix and contains external loads and quadratic velocity terms. The full set of system equations are formed by combining these dynamic equations with the kinematic transformations, giving 2n ordinary differential equations in 2n unknowns:
These unconstrained dynamic equations, and their variables, are summarized in the table below.
Expression

BuildEQs Export

Description


GetDynEQs()

Dynamic equations in n independent coordinates and speeds


xM

Mass matrix (n x n)


vF

Righthand side of dynamic equations (n x 1 column matrix)


GetSysODEs()

Complete set of 2n ODEs for systems modeled by n independent coordinates and speeds


GetAYBSysODEs()

Returns the three matrices comprising the system ODEs. Note: The column matrix Y corresponds to the derivative of state variables, vXdot.





Constrained Dynamics (DAEs with Constraint Reactions)


If the generalized coordinates, q, and generalized speeds, p, are dependent, the "augmented" dynamic equations can be written with the constraint reactions appearing explicitly (AugType option set to Reaction):
where f contains the reaction loads in the cotree joints that enforce the kinematic constraints, and C is the corresponding coefficient matrix. These constrained dynamic equations, and their variables, are summarized in the table below.
Expression

BuildEQs Export

Description


GetDynEQs()

Dynamic equations in n dependent coordinates and speeds


xM

Mass matrix (n x n)


vF

Righthand side of dynamic equations (n x 1 column matrix)


vReactions

Reaction forces and moments in the cotree joints that enforce the kinematic constraint equations (m x 1 column matrix)


xC

Coefficient matrix of constraint reactions (m x n)


GetSysEQs()

Complete set of 2n+m DAEs in terms of 2n coordinates and speeds and m constraint reactions


GetSysODEs()

Conversion of DAEs to 2n+m ODES, by replacing position constraints with Baumgarte form of acceleration constraints


GetAYBSysODEs()

Returns the three matrices comprising the system ODEs





Constrained Dynamics (DAEs with Lagrange Multipliers)


Alternatively, you can write the augmented dynamic equations with the constraint reactions represented implicitly by Lagrange multipliers (AugType option set to Lagrange):
where λ are the Lagrange multipliers (one for each constraint equation) and is the Jacobian matrix of the velocity constraint equations with respect to the generalized speeds p. These constrained dynamic equations, and their variables, are summarized in the table below.
Expression

BuildEQs Export

Description


GetDynEQs()

Dynamic equations in n dependent coordinates and speeds


xM

Mass matrix (n x n)


vF

Righthand side of dynamic equations (n x 1 column matrix)


vLambda

Lagrange multipliers that indirectly represent the reaction forces and moments in the cotree joints that enforce the kinematic constraint equations (m x 1 column matrix)


GetSysEQs()

Complete set of 2n+m DAEs in terms of 2n coordinates and speeds, and m Lagrange multipliers


GetSysODEs()

Conversion of DAEs to 2n+m ODES, by replacing position constraints with Baumgarte form of acceleration constraints


GetAYBSysODEs()

Returns the three matrices comprising the system ODEs





Examples


The example below shows an embedded MapleSim model of a planar slidercrank mechanism. In this example, the embedded component name is Simulation0 and the model name is SliderCrank.
>


 (1.5.1) 
>


 (1.5.2) 
>


 (1.5.3) 


