# Reference: Flexible Body Data

Model ElementReference_FlexData contains the condensed representation of the flexibility characteristics of a flexible body. The flexibility data is calculated using a finite element solver, where the complete finite element model is available.

## Format

<Reference_FlexData
!-- General Data
id                  = "integer"
num_nodes           = "integer"
num_sel_modes       = "integer"
num_sel_nodes       = "integer"
!-- Frequency and damping data for each selected mode:
<ModeData>
!ID    Frequency   Eigenvalue    Damping
integer real        real          real
...     ...         ...           ...
...     ...         ...           ...
integer real        real          real
integer real        real          real
</ModeData>
!-- Coordinates for nodes in the FE model that are attachment points in MMBS model:
<NodeData>
!ID    X           Y            Z
integer real        real         real
...     ...         ...          ...
...     ...         ...          ...
integer real        real         real
!-- Mode participation at each node:
!-- Mode Shape Date

real     real       real         real      real      real
...      ...        ...          ...       ...       ...
...      ...        ...          ...       ...       ...
real     real       real         real      real      real
</NodeData>
real     real       real         real       real     real
...      ...        ...          ...        ...      ...
...      ...        ...          ...        ...      ...
real     real       real         real       real     real
</Reference_FlexData>

## Attributes

id
Element identification number (integer>0). This number is unique among all Reference_FlexData elements.
num_nodes
The total number of nodes in the finite element model. This is used solely for generating an animation H3D file and is not used by the solver during its analysis.
num_sel_modes
The number of modes selected to approximate the structural deformation.
num_sel_nodes
The number of selected interface nodes in the flexible body. These are the only locations at which the rest of the multi-body system can connect to the flexible body.
ModeData
This block contains the frequency, eigenvalue, and damping content for each mode. Each line contains the data for one mode. The total number of lines in the block is therefore equal to the number of modes selected for the approximation (num_sel_modes).
NodeData

This block contains two types of data.

• For each connection or attachment, the first section contains a node ID and the x-, y-, and z-coordinates are specified. The total number of lines in this section block is therefore equal to the number of selected interface nodes in the flexbody.
• The second section contains a submatrix of the modal matrix (the matrix of eigenvectors) corresponding to the selected interface nodes. The eigenvectors describe a mode shape using six numbers for each node. The six numbers represent the three translations and three rotations along the directions x-y-z-rx-ry-rz. The total amount of data written out is: m x 6 x n real numbers where m is the number of modes and n is the number of interface nodes.
This block defines any distributed loads that may be acting on the flexible body. Those contained in this block include:
• A load shape, expressed in the modal domain, for each of the interface nodes. Six numbers are required for each interface node. These represent the three translational and three rotational load shapes along the directions x-y-z-rx-ry-rz. The total amount of data written out is: m x 6 x n real numbers where m is the number of modes and n is the number of interface nodes.

## Example

The following example defines how to define a sample Reference_FlexData block for a flexible beam modeled in a finite element package.

In this example, five modes are selected to represent the system. There are only two nodes of interest. The ModeData block thus contains only five lines, one for each mode. The frequency, eigenvalue and damping for each mode are specified.

The first section of the NodeData block contains only two lines, one for each interface node. Each line contains the x-, y- and z coordinates for the interface node in the finite element coordinate system.

The beginning of the second section of the NodeData block is marked by the comment line < ! -- Mode Shape -- >. This section contains a submatrix of the modal matrix (the matrix of eigenvectors) corresponding to the selected interface nodes. The eigenvectors describe a mode shape using six numbers for each node. The six numbers represent the three translations and three rotations along the six directions x-y-z-rx-ry-rz. Hence, for our example, this block contains a total of 2 (nodes) x 6 (directions) x 5 (modes) = 60 real numbers.

<Reference_FlexData
id                  = "30102"
num_nodes           = "1022"
num_sel_modes       = "5"
num_sel_nodes       = "2"
<ModeData>
<!--    ID       Frequency      Eigenvalue          Damping  -->
7   6.4452575E+01   1.6399900E+05    1.0000000E-02
8   1.0338486E+02   4.2196318E+05    1.0000000E-01
9   2.1686170E+02   1.8566343E+06    1.0000000E-01
10   2.6774032E+02   2.8300116E+06    1.0000000E-01
11   3.1573500E+02   3.9355563E+06    1.0000000E-01
</Modedata>
<NodeData>
<!--    ID               X               Y               Z   -->
1   0.0000000E+00   4.5000000E+02   1.0000000E+02
2   2.0000000E+03   4.5000000E+02   1.0000000E+02
< ! -– Mode Shape -- >
-2.0016610E-12  -3.1146127E-11  -1.0463994E-12  -7.8818224E-02   9.9948183E-16  -5.0132529E-14
-2.0316470E-12   1.3624248E-11  -4.6190430E-12   7.8818224E-02   2.2976755E-15   1.0490459E-13
-8.4480757E-13  -9.5041924E+00  -5.7284218E-13  -3.7457561E-13  -4.8099391E-16   2.1921467E-02
-8.6558880E-13  -9.5041924E+00  -4.6474500E-13   2.9942899E-13   2.7965653E-16  -2.1921467E-02
-1.4047549E-12   3.7081165E-11  -1.0573571E-12   7.8937836E-02  -4.0407423E-15  -1.8104730E-13
-1.4437841E-12  -5.3658567E-11  -2.5281771E-11   7.8937836E-02   2.3966120E-14  -2.2441784E-13
1.8954132E-11  -8.8077688E+00  -2.0888794E-11   6.8721417E-13  -8.4458821E-14   3.2114021E-02
1.9762763E-11   8.8077688E+00  -2.9536124E-11   1.4556200E-12   9.5128353E-14   3.2114021E-02
-9.9804008E-14   1.7957006E-01   1.5757001E-10  -9.6734036E-14   3.7112091E-13  -4.5129815E-03
1.0267903E-13   1.7957006E-01   2.0778279E-10  -1.0701907E-13  -4.0733611E-13   4.5129815E-03

</NodeData>

<ModeData>

<!-- Modal load case data  -->
1.6243920E+02    2.8073610E+02    3.6285810E+01   -1.3069250E+01    6.5632910E+00    1.3598110E+01   -1.5307840E-11   -4.9815570E-10
3.6324160E-12   -4.7501320E-10    3.7660410E-11   -9.9559950E+00    1.8458920E-10    2.0054970E-11    4.5258490E-09    1.1509760E-09
-1.7201510E-11   -4.4843990E-10    1.0502730E-11   -2.2920620E-09   -1.0390600E-09    5.6987730E-10    2.3400710E-09   -3.8906670E-08
-6.2068710E-08   -1.8886070E-10    5.1388250E-05    1.6765650E+01   -1.3354440E+01    6.2365120E-09   -3.6475840E+01   -1.9832710E-10
-3.1167670E+02   -1.9295680E-04   -8.7259110E+01

</Reference_FlexData>

1. MotionSolve supports three different kinds of condensation using component mode synthesis (CMS):
• Craig-Bampton (CB): This approach uses two distinct sets of modes: the fixed interface Eigen modes and the fixed interface constraint static modes.
• Craig-Chang (CC): This approach uses two distinct sets of modes: the free-free Eigen modes and the inertial-relief attachment static modes.
• Guyan reduction: This is a special case of the Craig-Bampton approach when normal modes are not computed. Only constraint static modes are computed and all the modes are chosen. The mass matrix is approximated with lumped masses.
2. The data in Reference_FlexData is organized into four different blocks of information:
• General data block: Contains general information about the number of modes selected, rigid body properties, number of interface modes, and so on.
• Mode data block: Contains frequency, eigenvalue, and damping for each mode.
• Node data block: Contains the coordinates of the interface nodes chosen and the mode shapes corresponding to each of the interface nodes selected.
• Modal load data block: Contains a modal description of the distributed load acting on the flexible body. This block is populated only if there are distributed forces acting on the flexible body.
3. CMS data is automatically generated whether you use MotionView or HyperMesh to build your flexible multi-body model. In both cases, the data is generated automatically and in general, you should not have to modify it.
• MotionView computes the Reference_FlexData information from the H3D file supplied for the flexible body and writes it to the MotionSolve XML input file.
• With HyperMesh, the model is first submitted in a bulk data file format to OptiStruct. OptiStruct scans the bulk data file for CMSMETH card, and if found, a component mode synthesis solution is performed and an H3D file is obtained. Subsequently, a MotionSolve XML input file containing Reference_FlexData is generated and submitted to MotionSolve.
4. For more information on how to perform component mode synthesis, please refer to the Finite Element Analysis topic in the OptiStruct User's Guide.
5. The flexibility information is linear. This implies that although the flexible body can undergo large rigid body motion, it can only undergo small deformation in the linear regime. The physical deformation is mathematically represented as a linear combination of the product of modal deformations and modal states. Results are not accurate if this assumption is violated.
6. Linear representations are suitable for many physical phenomena, like the deformation in a connecting rod in an engine during its operation, the bending of a lower control arm during a vehicle simulation or the deflection of a wing during normal operation.
7. Phenomena such as buckling, centrifugal stiffening, and large deformation contact require additional data and cannot be accurately modeled using this implementation.
8. All attachments to the flex body must be contained in the NodeData block. Constraints and applied forces (and torques) should always act through the interface nodes. While MotionSolve allows you to define connectors at other nodes, the deformation at the nodes are ignored if the connectors are not at interface nodes.
9. All frequencies in the ModeData block must be non-zero. In other words, rigid body modes must not be contained in the ModeData block.
10. It is good practice to critically damp or over-damp the high frequency modes. If these are not critically or over-damped, the simulation may slow down drastically when these modes are excited.
12. Currently, only proportional modal damping is supported.
13. A comparison of the Craig-Bampton and Craig-Chang CMS methods is shown in the table below.
Table 1. Table-1: A comparison of Craig-Bampton and Craig-Chang modes
Item Craig-Bampton CMS Craig-Chang CMS
Description Fixed interface eigenmodes and the fixed interface constraint static modes. Free-free eigenmodes and the inertial-relief attachment static modes.
Handling of Rigid Body Modes Embedded inside the full set of static modes. Integral part of the free-free eigen modes.
Normal Modes A subset of the full normal modes can be selected.

Craig-Bampton provides an exact solution if all normal modes are retained.

A subset of the full normal modes can be selected.

Craig-Chang does not provide an exact solution even if all normal modes are retained.

Static Modes The full set of constraint modes must always be included. A subset of the full attachment static modes can be selected.
Inertia Relief Craig-Bampton has no provision for using inertia relief modes. Craig-Chang uses inertia relief modes to account for the elasticity of the discarded normal modes. This may have the effect of improving convergence.

Inertia relief modes are more expensive to compute than the calculation of constraint modes.

Usage Craig-Bampton is particularly suitable for analysis when the high frequencies are not of interest
14. The Craig-Bampton method has the following advantages:
• It is a simple formulation and is easy to implement. For example, it can handle explicit boundary conditions and direct assembly of the stiffness matrix is possible.
• It possesses good accuracy, especially at the interface nodes where it provides exact solutions when all normal modes are retained.
• The Craig-Bampton process is numerically robust and does not require matrix inversion.
15. The Craig-Bampton method has the following disadvantages:
• When there are a large number of interface nodes (for example when the number of interface modes >> the number of normal modes), the method favors the static modes, to the detriment of the normal modes for the description of the behavior of the flexible body.
• When there are a large number of interface nodes, the modal representation of a flex body can become large.
• The method is hard to test and validate experimentally because a fixed boundary is harder and more delicate to manage.
Notwithstanding these deficiencies, the Craig-Bampton method, which combines simplicity, robustness and accuracy, is most frequently used in simulation.
16. The Craig-Chang method has the following advantages:
• It possesses good accuracy, especially at the interface nodes where it provides exact solutions.
• It is insensitive to the number of interface nodes, because the connection DOF are removed from the solution process.
• It is quite compatible to experimental validation - a free connection is easier to manage than a fixed boundary.
• The Craig-Chang method can be implemented to be very efficient, so it is suitable for large systems.
17. The following references can provide more useful information on component mode synthesis:
• R.R. Craig and M.C. Bampton. Coupling of substructures for dynamic analyses. AIAAJournal, 6:1313-1319, 1968.
• R.R. Craig and C. Chang. Free-interface methods of substructure coupling for dynamic analysis. AIAA Journal, 14:1633-1635, 1976.
• A.A. Shabana. Substructure synthesis methods for dynamic analysis of multi-body systems. Computers & Structures, 20:737-744, 1985.
• R.H. MacNeal. A hybrid method of component mode synthesis. Computers & Structures, 1(4):581-601, 1971.