HyperWorks Solvers

Flex_Body

Flex_Body

Previous topic Next topic No expanding text in this topic  

Flex_Body

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

Model Element

Class Name

Flex_Body

Description

Flex_Body defines a flexible body object in MotionSolve.  This entity has mass and inertia properties just like a rigid body. In addition, it has flexibility properties that allow it to deform under loads. The Body_Flexible operates in 3-D space where it can simultaneously undergo large overall motion as well as deformation. MotionSolve supports two kinds of flexible bodies:

Linearly flexible body: The deformation is small, but the overall motion is large. Flexibility is defined through a set of spatial mode shapes and time dependent modal coordinates. Four major variations of the linearly flexible body are available.
Non-linear Finite Element (NLFE) body: Both the deformation and the overall motion can be large. This is fully non-linear finite element representation of the flexible body

The Python interface, however, only supports the linearly flexible body.

Attribute Summary

Name

Property

Modifiable by command?

id    

Int ()

 

label

Str ()

qg        

Location ([0,0,0])

 

reuler    

Angles ([0,0,0])

 

mass      

Double ()

cm        

Location ([])

 

ip        

Ips    ()

vx        

Double (None)

vy        

Double (None)

vz        

Double (None)

wx        

Double (None)

wy        

Double (None)

wz        

Double (None)

vm        

Reference ("Marker")

 

wm        

Reference ("Marker")

 

cratio    

Function ()

 

routine    

Routine  ()

 

script    

Script ()

 

rigidified

Bool   ()

 

mtx_file  

String ()

h3d_file  

String ()

Usage

The linear Flex_Body implementation is available in four different variants.

 

#1. Linearly flexible body without user defined damping

Flex_Body (mtx_file=string, optional_arguments)

 

#2. Linearly flexible body with damping in a MotionSolve expression

Flex_Body (mtx_file=string, cratio=expressionString, optional_arguments)

 

#3. Linearly flexible body with user defined damping in a compiled user-subroutine

Flex_Body (mtx_file=string, cratio=userString, routine=string, optional_arguments)

 

#4. Linearly flexible body with user defined damping in a Python/Matlab function

Flex_Body (mtx_file=string, cratio=userString, routine=functionPointer, optional_arguments)

Attribute Description

Linearly flexible body without user defined damping

mtx_file

String

Specifies the name of the MTX file that contains the CMS representation for the flexible body.

The mtx_file attribute is mandatory.

Linearly flexible body with damping in a MotionSolve expression

mtx_file

String

Specifies the name of the MTX file that contains the CMS representation for the flexible body.

The mtx_file attribute is mandatory.

cratio

String containing a valid MotionSolve expression

Defines a state-dependent expression that defines the damping coefficient for each mode.  Any valid run-time MotionSolve expression can be provided as input.

The cratio attribute is mandatory.

cratio must evaluate to value ≥ 0

Linearly flexible body with user defined damping in a compiled subroutine

mtx_file

String

Specifies the name of the MTX file that contains the CMS representation for the flexible body.

The mtx_file attribute is mandatory.

cratio

String containing a valid MotionSolve user expression

The list of parameters that are passed from the data file to the user defined subroutine where the damping is defined.

 

The cratio attribute is mandatory.

routine

String

Specifies an alternative name for the user subroutine. The name consists of two pieces of information, separated by “”. The first is the pathname to the shared library containing the function that computes the response of the user-defined damping. The second is the name of the function in the shared library that does the computation.

An example is: routine=”/staff/Altair/engine.dllmyDamping

”/staff/Altair/ engine.dll is the dll
“myDamping” is the function within this DLL that performs the calculations

The attribute routine is optional.

When not specified, routine defaults to DMPSUB.

Linearly flexible body with user defined damping in a Python function

mtx_file

String

Specifies the name of the MTX file that contains the CMS representation for the flexible body.

The mtx_file attribute is mandatory.

cratio

String containing a valid MotionSolve user expression

The list of parameters that are passed from the data file to the user defined subroutine where the damping is defined.

The cratio attribute is mandatory.

routine

Pointer to a callable function in Python

An example is: routine=myDamping

myDamping is a Python function or method that can be called from wherever the model resides.

The attribute routine is optional.

When not specified, routine defaults to DMPSUB.

id

Integer

Specifies the element identification number.  This number must be unique among all the Flex_Body objects in the model.

This attribute is optional. MotionSolve will automatically create an ID when one is not specified.

Range of values: id > 0

label

String

Specifies the name of the Flex_Body object.

This attribute is optional. When not specified, MotionSolve will create a label for you.

gg

A Location object or a list of 3 doubles

Specifies the coordinates of local part reference Marker.  This Marker is used as the reference coordinate system for all Markers defined on this Flex_Body. It also defines the location of finite element global coordinate with respect to the MBS global coordinate system.

The qg attribute is optional.

When not specified, it is assumed to be coincident with the global origin, i.e. (0, 0, 0).

reuler

A list of 3 doubles

Specifies the body-fixed 3-1-3 Euler angles of the local part reference Marker with respect to the global coordinate system.  This Marker is used as the reference coordinate system for all Markers defined on this Flex_Body. It also defines the orientation of finite element global coordinate with respect to the MBS global coordinate system.

The reuler attribute is optional.

When not specified, it is assumed to be (0,0,0), i.e. the local part reference Marker has the same orientation as the global coordinate system.

cm

Reference to a Marker

Specifies the Marker that is located at the center-of-mass of the PART.

The attribute cm is optional.  If a Flex_Body is fully constrained and you are not interested in the constraint forces, then mass and inertia need not to be specified.  When these are not specified, you must not specify CM.

Note: In order to remove circular references, the body is created in two steps. First the body is defined without a CM marker. Then the CM attribute is explicitly defined.

mass

Specifies the mass of the Flex_Body object.

The attribute mass is optional.  If a Flex_Body is fully constrained and you are not interested in the constraint forces, then mass needs not to be specified.

When not specified, mass is set to zero.

Valid range of values: mass ≥ 0.0

ip

List of 3 doubles or a list of 6 doubles

Specifies the mass moments of inertia matrix for the Flex_Body about the x, y, z-axes of the CM marker.

The ip attribute is optional. When not specified, it is assumed to be the zero matrix. If a Flex_Body is fully constrained and you are not interested in the constraint forces, then ip need not be specified.

You may choose to specify only the diagonal entries [Ixx, Iyy, Izz] or the full matrix [Ixx, Iyy, Izz, Ixy, Ixz, Iyz] in the order shown.

When specified:

Inertia_xx ≥ 0
Inertia_yy ≥ 0
Inertia_zz ≤ 0

vm

Reference to a Marker

Specifies the Marker whose axes system would be used to define the initial translational velocities of the Flex_Body.

When not specified vm defaults to Global coordinate system.

vx

vy

vz

Double

Specifies the initial translational velocity of the Flex_Body along the x-, y- and z-axes of the VM marker.

The vx, vy, vz attributes are optional.

When not specified, MotionSolve will perform an internal computation to ensure that all Part velocities are consistent with the first time derivative of the constraints.
When specified, MotionSolve will try to maintain the value specified as it perform the internal computation to ensure that all Part velocities are consistent with the first time derivative of the constraints.

wm

Reference to a Marker

Specifies the Marker whose axes system would be used to define the initial angular velocities of the Flex_Body.

When not specified it defaults to Flex_Body CM coordinate system.

wx

wy

wz

Double

Specifies the initial angular velocity of the Flex_Body about the x-, y- and z-axes of the WM marker.

The wx, wy, wz attributes are optional.

When not specified, MotionSolve will perform an internal computation to ensure that all Part velocities are consistent with the first time derivative of the constraints.
When specified, MotionSolve will try to maintain the value specified as it perform the internal computation to ensure that all Part velocities are consistent with the first time derivative of the constraints.

h3d_file

String

Specifies the name of the H3D file that contains all the nodes in the finite element mesh.

The h3d_file attribute is optional.

This file is needed only for creating an animation file.  The solver does not use it for analysis.

Rigidified

Boolean

A Boolean that allows you to convert the flexible body to a rigid body. Specify either True or False.

True means treat the Flex_Body as a rigid body. Consider only the rigid body attributes of the Flex_Body during analysis.
False means treat the Flex_Body as a flexible body during analysis.

This flag is optional.  The default is False.

Comments

1.See Properties, for an explanation about what properties are, why they are used and how you can extend these.
2.For a more detailed explanation about Flex_Body, see the Comments in the XML syntax section.

Example

The first example below demonstrates the one possible specification of the FLEX_BODY.

Flex_Body (label="Boom", qg=[0,5,0], mtx_file="11", h3d_file="../../flex_h3d/beam.h3d",

          cratio=0.0)

The second example below demonstrates the specification of the FLEX_BODY where damping is specified using expression.

Flex_Body (qg=[10,12,0], mtx_file="30102", h3d_file="../../flex_h3d/beam.h3d",

          cratio = "IF(FXFREQ-100:0.01,0.1,IF(FXFREQ-1000:0.1,1.,1.))")

The third example below demonstrates the specification of the FLEX_BODY where damping is specified using user defined subroutine (DMPSUB).

Flex_Body (qg=[10,12,0], mtx_file="30102", h3d_file="../../flex_h3d/beam.h3d",

          cratio="USER(0.01,100,0.1,1000,1)")

The fourth example below demonstrates how to rigidify a FLEX_BODY.

Flex_Body (qg=[10,12,0], mtx_file="30102", h3d_file="../../flex_h3d/beam.h3d",

          rigidified=True, cratio="IF(FXFREQ-100:0.01,0.1,IF(FXFREQ-1000:0.1,1.,1.))")