Dynamic Exports - MapleSim Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : MapleSim : MapleSim Application Programming Interface : Multibody : MapleSim/Multibody/Dynamic_Exports

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 position-level kinematic constraints; the resulting system equations constitute a set of differential-algebraic 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:

 

χ+2αΨ+β2Φ=0

 

which can be written as a linear equation in terms of the accelerations:

 

     Ψpⅆpⅆt=e2αΨβ2Φ

=ε

 

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:

 

   Mdpdt=F  

 

where M is the mass matrix and F 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:

 

   [M001][ⅆpⅆtⅆqⅆt]=[Fh]

 

These unconstrained dynamic equations, and their variables, are summarized in the table below.

 

Expression

BuildEQs Export

Description

MⅆpⅆtF=0

GetDynEQs()

Dynamic equations in n independent coordinates and speeds

M

xM

Mass matrix (n x n)

F

vF

Right-hand side of dynamic equations (n x 1 column matrix)

[M001][ⅆpⅆtⅆqⅆt]=[Fh]

GetSysODEs()

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

[M001],[ⅆpⅆtⅆqⅆt],[Fh]

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):

 

Mdpdt+CTf=F

 

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

Mⅆpⅆt+CTfF=0

GetDynEQs()

Dynamic equations in n dependent coordinates and speeds

M

xM

Mass matrix (n x n)

F

vF

Right-hand side of dynamic equations (n x 1 column matrix)

f

vReactions

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

C

xC

Coefficient matrix of constraint reactions (m x n)

Mⅆpⅆt+CTfF=0

Φq,t=0

ⅆqⅆt=hp,q,t

GetSysEQs()

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

[M0CT010Ψp00][ⅆpⅆtⅆqⅆtf]=[Fhε]

 

GetSysODEs()

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

[M0CT010Ψp00],[ⅆpⅆtⅆqⅆtf],[Fhε]

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):

 

   Mdpdt+ΨpTλ=F

 

where λ are the Lagrange multipliers (one for each constraint equation) and Ψp 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

Mⅆpⅆt+ΨpTλF=0

GetDynEQs()

Dynamic equations in n dependent coordinates and speeds

M

xM

Mass matrix (n x n)

F

vF

Right-hand 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)

Mⅆpⅆt+ΨpTλF=0

Φq,t=0

ⅆqⅆt=hp,q,t

GetSysEQs()

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

[M0ΨpT010Ψp00][ⅆpⅆtⅆqⅆtλ]=[Fhε]

 

GetSysODEs()

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

[M0ΨpT010Ψp00],[ⅆpⅆtⅆqⅆtλ],[Fhε]

GetAYBSysODEs()

Returns the three matrices comprising the system ODEs

Examples

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

leArguments:='InputString'=MapleSim:-Multibody:-GetMultibodyInputSimulation0,'ModelName'=SliderCrank,'KinSimpType'=Simplify,'DynSimpType'=Simplify,'AugType'=Lagrange,'MaxSmallQOrder'=1,'SaveToLib'=false,'SilentMode'=false:MapleSim:-Multibody:-BuildEQsopleArguments:

Analyzing system...

Performing constraint analysis...

The system has 1 degree(s) of freedom. It is modeled using 3 generalized coordinate(s) coupled by 2 algebraic constraint(s).

Peforming a dynamic analysis using an augmented Lagrange formulation - system variables shown below:

vQ,s_P2ttheta_R1ttheta_R5t,vP,ⅆⅆts_P2tⅆⅆttheta_R1tⅆⅆttheta_R5t,vPdot,ⅆ2ⅆt2s_P2tⅆ2ⅆt2theta_R1tⅆ2ⅆt2theta_R5t,vLambda,λ1tλ2t

Dynamic analysis complete.

(1.5.1)

SliderCrank:-xM

2.50000000000.2500000000sintheta_R5t00.00750000000000.2500000000sintheta_R5t00.1290000000

(1.5.2)

SliderCrank:-vF

0.2500000000ⅆⅆttheta_R5t2costheta_R5t0.2943000000costheta_R1t2.452500000costheta_R5t

(1.5.3)

See Also

Kinematic Exports, MapleSim, MapleSim[Multibody][BuildEQs], MapleSim[Multibody][BuildExpression](deprecated), MapleSim[Multibody][BuildSimCode](deprecated), MapleSim[Multibody][BuildSimulation](deprecated), MapleSim[Multibody][GetModel](deprecated), MapleSim[Multibody][GetMultibodyInput]


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam