Dynamic Exports - MapleSim Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


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.

LinkModel

 

The LinkModel command returns a "connection module" that allows programmatic access to a MapleSim model.
          
Important: You must first link to a MapleSim model before you can access the MapleSim API commands for your model.

        
The LinkModel command is part of the MapleSim package.  You can access this command using the long form of the command name, MapleSim:-LinkModel, or by first executing with(MapleSim) and then using the short form of the command name, LinkModel.

 

You can attach a worksheet to any model through Add Apps or Templates > Templates > Worksheet.  These worksheets have the LinkModel command inserted and the default "connection module" is named A.

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 GetMultibody 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.  The form of the commands below assume that you are using a Worksheet attached to the MapleSim model through Add Apps or Templates > Templates > Worksheet. In this example we are going to name our multibody exports module SliderCrank.

 

 

AMapleSim:-LinkModel:

SliderCrank  A:-GetMultibodysimplify:

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

Performing a dynamic analysis using an augmented reaction formulation - system variables shown below:

vQ,P1_stR1_thetatR3_thetat,vP,ⅆⅆtP1_stⅆⅆtR1_thetatⅆⅆtR3_thetat,vPdot,ⅆ2ⅆt2P1_stⅆ2ⅆt2R1_thetatⅆ2ⅆt2R3_thetat,vReactions,FxtFyt

Dynamic analysis complete.

(1.6.1)

SliderCrank:-xM;

520sinR3_thetat4034000sinR3_thetat401291000

(1.6.2)

SliderCrank:-vF;

ⅆⅆtR3_thetat2cosR3_thetat42943cosR1_thetat10000981cosR3_thetat400

(1.6.3)

See Also

Kinematic Exports, MapleSim, MapleSim[LinkModel][GetMultibody]