Chapter 9. MULTIBODY SYSTEM COMPUTER CODES

General purpose multibody system computer programs are widely used in the analysis of many industrial, technological, and biological applications. These computer programs can be used in virtual prototyping, design, performance evaluation, and analysis of complex systems. In this chapter, the general purpose multibody system computer code SAMS/2000 (Systematic Analysis of Multibody Systems) is used as an example to introduce the reader to the capabilities and main features of these computer programs. Many of the formulations and algorithms discussed in various chapters of this book are implemented in SAMS/2000. This computer program allows the user to build complex multibody system models for planar and spatial multibody systems. The code has also advanced multibody system capabilities based on formulations and techniques that are beyond what is covered in this introductory text. If the user is interested in using the more advanced capabilities such as flexible body and rail dynamics, he/she can consult with other texts that provide complete documentations of the formulations and algorithms implemented in SAMS/2000 (Shabana, 2005, 2008; Shabana et al., 2008). This chapter provides an introduction to SAMS/2000 capabilities and features that allow the user to systematically build multibody system models. More details can be found in the online Help Manual of the code; and most panels of the code interface have an Information Window that provides detailed description of the data that can be provided by the user. The users of the code are encouraged to carefully read the description provided in these Information Windows before entering the data of their model. The panels used to input the data for body properties, constraints, and force elements have similar structure, thereby allowing the user to become quickly familiar with different data structures required to build a complex model.

The educational version of SAMS/2000 is limited to only four rigid bodies and does not include flexible body and rail simulation capabilities. It does not also include some other simulation options that are discussed in this chapter.

INTRODUCTION TO SAMS/2000

The objective of this chapter is to describe the use of the computer program SAMS/2000, which can be used in the computer simulation of nonlinear multibody system applications including mechanical, aerospace, and biomechanical systems. SAMS/2000 that is designed to systematically model complex systems of interconnected rigid and deformable bodies, can be used in the virtual prototyping, design, performance evaluation, and stability analysis. This code has many features that distinguish it from other existing general purpose multibody system computer programs. In particular, SAMS/2000 has capabilities based on formulations and algorithms that are more advanced than what is covered in this book. Nonetheless, most of the formulations and algorithms covered in various chapters of this book are implemented in SAMS/2000, allowing the user to solve many of the examples and exercise problems using this code. In order to be able to accurately model flexible components in multibody systems, small and large deformation finite element and multibody system algorithms are integrated, allowing the user to build models that include significant details that cannot be captured using rigid body analysis only (Shabana, 2005, 2008). The theory used to develop SAMS/2000 is documented in several books that explain clearly the formulations and computer algorithms implemented. Using these books, the user can have a clear understanding of the structure of the equations of motion used as well as the formulations of various force and constraint elements included in the code library. Some features of SAMS/2000 are briefly summarized below.

Planar and Spatial Systems

SAMS/2000 can be used in the simulation of planar two-dimensional (2D) and spatial (3D) multibody systems. Nonlinear equations of motion of the multibody systems are automatically generated and numerically solved for both planar and spatial systems. The program includes a separate standard force and constraint libraries for each type of analysis in order to improve the computational efficiency in the case of the simpler planar analysis.

Type of Analysis

The program has the capability of performing static, dynamic, and kinematic analyses of multibody systems. Determining the static configuration can be important in some applications before the dynamic simulation is performed. When all the system degrees of freedom are prescribed, the nonlinear constraint algebraic equations are solved using the kinematic analysis module of SAMS/2000. SAMS/2000 provides the user with several options for performing the nonlinear dynamic analysis of multibody systems as will be described in this chapter.

Joint Constraints

The program can be used in the simulation of multibody system applications that can have different topological structures. Joints such as spherical, revolute, prismatic, cylindrical, etc. are standard elements of the library of the program. These different types of joints, which define the connectivity between the multibody system components, can be systematically modeled using SAMS/2000. Most of the joint formulations implemented in the code can be used to connect rigid, flexible, and very flexible bodies. These joint formulations take into account the effect of small and large deformations of the flexible bodies.

Force Elements

Standard force elements such as gravity, bearing, bushing, spring, damper, and actuator forces, which are included in the library of SAMS/2000, can be systematically modeled. Several of these forces can be applied to rigid, flexible, and very flexible bodies. The force formulations implemented in SAMS/2000 automatically account for the small and large deformations of the bodies in the system.

User Constraints and Forces

The program has a set of user subroutines that allow the user to introduce arbitrary nonlinear constraints and forces that are not standard elements of the SAMS/2000 constraint and force libraries. The user forces and constraints can depend on the system coordinates and velocities as well as time. The user has also access to the elastic coordinates and velocities of the bodies in order to allow for the formulation of forces and constraints that are function of the body deformations.

Solution Procedures

SAMS/2000 offers several procedures that can be used by the user to solve the nonlinear dynamic equations of motion of constrained multibody systems. In one procedure, only the independent accelerations are integrated and the kinematic constraint equations are satisfied at the position, velocity, and acceleration levels. In a second procedure, all the accelerations (independent and dependent) are integrated and the constraint equations are satisfied at the position, velocity, and acceleration levels. In a third procedure, all the accelerations are integrated, while the constraint equations are satisfied only at the acceleration level. While the user can use any of these options among others offered by SAMS/2000, the first procedure, which is the default is recommended. In most solution procedures implemented in SAMS/2000, sparse matrix techniques are used in order to obtain efficient solution of the position, velocity, and acceleration equations.

Flexible Body Modeling

SAMS/2000 has advanced flexible body modeling capabilities. The program allows modeling deformable bodies using the finite element method or experimental identification techniques. It also allows the use of the nodal or modal coordinates and lumped or consistent mass formulations. The program automatically generates the equations of motion that include all the nonlinear terms that represent the inertia coupling between the rigid body and elastic displacements. SAMS/2000 can be used in the analysis of small and large deformations in multibody system applications. Both the small deformation floating frame of reference (FFR) formulation and the large deformation absolute nodal coordinate formulation (ANCF) are implemented in SAMS/2000.

PRESAMS Preprocessor

SAMS/2000 has a preprocessor, Preprocessor for the Systematic Analysis of Multibody Systems (PRESAMS) that can be used to link SAMS/2000 with existing commercial finite element programs. It is clearly explained in the Help Files of the code what are the data required from the finite element programs at this preprocessing stage. Detailed derivations of the matrices and vectors required from the finite element programs are presented in the books that document the theory used to develop SAMS/2000. The flexible body formulations and algorithms are not discussed in this book.

Impact Dynamics

SAMS/2000 allows modeling impact between the components of the multibody system. The generalized impulse momentum equations that predict the jump discontinuity in the joint forces as a result of the impact are automatically generated by the code. The code is capable of treating problems with multiple impacts. The user can also develop a continuous contact force model using spring-damper force elements (Khulief and Shabana, 1987). In this case the user must provide the stiffness and damping coefficients that enter into the formulation of the compliant forces.

User-Differential Equations

SAMS/2000 allows the user to provide first-order differential equations. These equations that may depend on the system coordinates and velocities are integrated simultaneously with the differential equations of motion of the system. This feature of the code can be used to include differential equations that describe other models such as control elements or models in multiphysics problems. Some of these user-differential equations can be different from the standard differential equations that are already implemented in SAMS/2000.

CODE STRUCTURE

SAMS/2000 is divided into four main modules: the Mass Module (MASMOD), the Constraint Module (CONMOD), the Force Module (FRCMOD), and the Numerical Module (NUMMOD). The functions of these four modules are explained below.

Mass Module (MASMOD)

The MASMOD is used to evaluate the mass matrix and the quadratic velocity centrifugal and Coriolis inertial forces of the rigid and flexible bodies in the multibody systems. Sparse matrix techniques are used to store the mass matrix in order to obtain an efficient solution of the acceleration equations. In the case of a flexible body modeled using the FFR formulation, the modal mass matrix and the constant terms that enter into the formulation of the inertia coupling between the rigid body motion and the elastic deformation are obtained from the finite element preprocessor. In the case of the large deformation, in which bodies are modeled using the ANCF, a diagonal mass matrix is obtained using the Cholesky coordinates, as described in other texts that document the theory of the code.

Constraint Module (CONMOD)

The CONMOD constructs the nonlinear algebraic constraint equations, which describe mechanical joints. In this module, the Jacobian matrix of the kinematic constraints and the time derivatives of the constraint equations are computer generated. A set of standard joint constraints is available in the program library that can be utilized by the user. Nonstandard constraints can also be provided by the user using a set of user subroutines. The constraints equations are formulated to account for the effect of the deformation in the case of flexible or very flexible bodies.

Force Module (FRCMOD)

The FRCMOD evaluates the generalized forces associated with the system-generalized coordinates. A set of standard force elements that can be utilized by the user are available in the library. These force elements include the gravity, bearing, bushing; and spring, damper, and actuator forces. Other nonlinear and nonstandard forces that may depend on the system coordinates, velocities, and time can also be introduced to the program using user subroutines. Most of the force element formulations implemented in SAMS/2000 account also for the body deformations in the case of flexible bodies.

Numerical Module (NUMMOD)

The NUMMOD contains subroutines for solving system of algebraic equations, subroutines for solving differential equations, and subroutines for identifying the independent variables associated with a given set of algebraic equations. The code also allows for using sparse matrix techniques for the efficient solution of the governing equations at the position, velocity, and acceleration levels as discussed in Chapter 6 of this book. Different options of direct numerical integrators are provided by the code. SAMS/2000 also allows for the use of Spline function representations to describe coefficients and variables that are provided as a function of time or function of other system coordinates or variables.

As previously mentioned, the multibody system components can be treated as rigid or flexible. While this book is concerned only with the rigid body dynamic formulations, a multibody system modeled using SAMS/2000 may contain both types of components. For flexible bodies, the preprocessor PRESAMS must be used to generate the inertia shape integral matrices and the constant terms that appear in the system equations of motion based on lumped or consistent mass formulations. The use of the preprocessor PRESAMS is explained in the Help Manual of the code.

SYSTEM IDENTIFICATION AND DATA STRUCTURE

In general, multibody systems can be represented by an abstract drawing similar to the one shown in Fig. 1. The user of the code must have a good understanding of the topological structure of the system as well as the structure of the data that the code requires to model the system.

Multibody systems

Figure 9.1. Multibody systems

System Identification

The interface of SAMS/2000 allows the user to systematically build multibody system models. In order to develop such models, the user must provide specific information about the model including the following:

  1. System Type: The user must choose the type of analysis to indicate whether the model is 2D or 3D (planar or spatial). The interface of the code allows the user to select the type of analysis.

  2. Body Numbering: Each body, flexible and rigid, must be given a distinct number between 1 and nb, where nb is the total number of bodies in the multibody system.

  3. Body Coordinate Systems: Each rigid body and each deformable body modeled using the FFR formulation or the ANCF must be assigned a local reference coordinate system. For rigid bodies, the origin of the reference coordinate system must be placed at the center of mass of the body. For flexible bodies, the origin of the reference coordinate system can be arbitrarily selected. The positions and orientations of the body coordinate systems at the initial configuration must be provided by the user.

  4. Mechanical Joints and Constraints: All joints and constraints of the same kind must be grouped together. All elements of the group must be numbered consecutively from 1 to nj, where nj is the total number of joints or constraints of that type.

  5. Force Elements: Forces are grouped according to the force type (spring-damper-actuator, bushing, bearing, etc.). All elements of one group must be numbered consecutively from 1 to nf, where nf is the total number of forces in this group or force type.

  6. Specified Motion Trajectories: The prescribed motion trajectories can be introduced to SAMS/2000 using a set of user subroutines described in a later section of this chapter.

  7. Externally Applied Forces and Moments: SAMS/2000 allows the user to introduce nonstandard forces that depend on system-generalized coordinates, velocities, and time. These forces can be introduced to the model using user subroutines.

  8. Impact Pairs: Each impact pair must be given a number l, l = 1,2,...,ni, where ni is the total number of impact pairs in the multibody system.

  9. Wheel/Rail Contact Models: SAMS/2000 can be used to model complex railroad vehicle systems. In the code several wheel/rail contact formulations are implemented. Each contact must be given a number M, M = 1, 2, ..., ni, where ni is the total number of wheel/rail contacts in the multibody vehicle system.

Data Structure

The input data of SAMS/2000 is generated by the code interface. The interface produces the ASCII data file SamsData.dat that contains a description of the model. The user is encouraged to examine this file before performing the simulation. The input data of SAMS/2000 in SamsData.dat is divided into independent segments. A multibody application may not require the use of all these segments. Examples of the segments that are used in the input data are as follows:

  1. A segment that provides a verbal description of the problem under investigation.

  2. A segment that contains the control parameters, which define the type of analysis, the numerical integrator, the method of dealing with the redundant coordinates, and so on.

  3. A segment that defines the inertia properties, constant forces, and initial coordinates and velocities of the bodies.

  4. A segment that defines the degrees of freedom to be constrained for the static analysis.

  5. A segment for each joint type that defines the bodies connected by this type of joint and the location of the joint definition points on the bodies.

  6. A segment for each force element that describes the parameters that will be used in the formulation of this force element.

  7. A segment that describes the impact pairs.

  8. A segment that describes the inertia and stiffness characteristics of deformable bodies in the system. The data provided in this segment are obtained using the preprocessor PRESAMS, which is described in the online Help Manual of the code.

  9. A segment that defines the parameters for the numerical routines such as the time of the start of the simulation, the time of the end of the simulation, and the reporting interval.

  10. A segment that defines the wheel/rail contact parameters in the case of railroad vehicle systems.

  11. Segments related to the use of the user subroutines. The use of these user subroutines requires that the user has a Fortran compiler that allows for editing these subroutines and linking them with the code library. The user can consult with the author of the book regarding the access to these user subroutines.

These segments and others can be easily identified in the ASCII data file SamsData.dat, which is the main input data file of SAMS/2000. Depending on the model, other data files may be required as described in the online Help Manual of the code.

INSTALLING THE CODE AND THEORETICAL BACKGROUND

After properly installing the code in the directory C:SAMS2000, one can start using the code for the computer simulation of multibody systems that consist of interconnected rigid and flexible bodies. Note that SAMS/2000 must be installed to the directory C:SAMS2000. If it is installed in a different directory, the code will not function properly. The code must be used according to the instructions provided in this chapter and the online Help Manual. An educational version of the code with limited capabilities can still be used to effectively demonstrate the use of multibody system formulations in the virtual prototyping of engineering and physics systems.

When the user starts SAMS/2000, the panel shown in Fig. 2 will appear. Using this panel, the user can select one of the following SAMS/2000 modes: Multibody Simulation, SAMS Utilities, Preprocessor PRESAMS, or Special SAMS/2000 Modules. In the case of multibody system simulation, the user must select Multibody Simulation. In the educational version of SAMS/2000, some other modes may be disabled. The preprocessor PRESAMS can be used to generate the inertia and stiffness characteristics of the deformable bodies in the system. If the user is interested only in rigid body simulation, there is no need for using PRESAMS.

SAMS/2000 start panel

Figure 9.2. SAMS/2000 start panel

Theoretical Foundation

The theory used in developing SAMS/2000 is documented in several texts and a large number of archival publications. These texts and publications provide detailed information on the formulations implemented in the code. This detailed documentation of the methods distinguishes SAMS/2000 from other commercial codes and allows the user to have a good understanding of the models developed. In addition to this book which provides an introduction to the rigid body formulations and the numerical algorithms implemented in the code, the user can consult with other two texts when more advanced capabilities of the code are used (Shabana, 2005, 2008). These two texts are more advanced and cover the theory used in the analysis of flexible multibody systems. The large deformation theory used in SAMS/2000 can be also found in these two texts. SAMS/2000 successfully integrates small and large deformation finite element and multibody system algorithms.

SAMS/2000 has advanced capabilities for modeling railroad vehicle systems. Several wheel/rail contact formulations are implemented in the code, as previously mentioned. Detailed documentation of the formulations used in SAMS/Rail module can be also found in the literature (Shabana et al., 2008).

In addition to the texts that document the formulations and algorithms implemented in SAMS/2000, the Help menu of SAMS/2000 includes notes for short courses to introduce the user to rigid and flexible multibody dynamics. The user is encouraged to read these notes in order to become familiar with the formulations used. The Help menu of SAMS/2000 has also several user files that further explain the structure of the input data in the case of the use of specific features of the code.

SAMS/2000 SETUP

SAMS/2000 is designed to work in a Window environment. The user must have a directory C:WINDOWS on his/her computer. In order to install the code, the user can double-click on SETUP.EXE file in SAMS/2000 CD. This will start the process of SAMS/2000 Setup by displaying the panel shown in Fig. 3. The user can then click on the OK button to proceed. SAMS/2000 Setup will display C:SAMS2000 as the default Directory. The user must accept this directory and click the button shown in Fig. 4 in order to continue with the program setup. When the setup process is completed successfully, SAMS/2000 Setup will give a message that the setup is finished successfully.

After the installation of SAMS/2000 is completed, the user will need to manually adjust two configuration files: SAMSWORD.CFG and SAMSFORT.CFG. Both are located in C:SAMS2000 directory.

SAMSWORD.CFG

In this file the user must provide the full path of the word processor program that SAMS/2000 will use as the default word processor. For example, the user can write C:Program FilesMicrosoft OfficeOfficewinword1.exe.

SAMSFORT.CFG

In this file the user must provide the full path of the executable file that launches the Fortran code editor or the word processor that will be used to edit the code of the user subroutines of SAMS/2000. The order of these two directories is important.

SAMS/2000 installation

Figure 9.3. SAMS/2000 installation

SAMS/2000 default directory

Figure 9.4. SAMS/2000 default directory

For example, the user can write as follows:

  • C:msdevinmsdev.exe

  • C:WINDOWS

USE OF THE CODE

The use of the SAMS/2000 can be described using a simple example that is familiar to the reader. To this end, a planar slider crank mechanism is used. This simple slider crank mechanism example can be used to introduce the user to the input and output data of SAMS/2000 as well as its interface panels of the code.

Problem Description

The slider crank mechanism shown in Fig. 5 has the following specifications:

Body Name

Mass (kg)

Mass Moment of Inertia (kg.m2)

Ground

0.0

0.0

Crankshaft

1.0

0.1

Connecting rod

2.0

0.1

Slider block

3.0

0.1

Slider crank mechanism

Figure 9.5. Slider crank mechanism

SAMS/2000 main window

Figure 9.6. SAMS/2000 main window

In order to build the SAMS/2000 model for the slider crank mechanism assuming that all the bodies are rigid, a centroidal body coordinate system is assigned to each body as shown in Fig. 5. The gray arrows represent the global fixed frame, which is also assumed to represent the coordinate system of the ground body. The mechanism has four bodies, which have restricted motion because of the joint constraints. The mechanism has one ground (bracket) joint, three revolute joints, and one prismatic joint. In order to build the computer model for this mechanism, the user can start SAMS/2000 by clicking on Program/SAMS2000/SAMS2000 located in the Windows Start menu. SAMS/2000 will start and the screen shown in Fig. 2 will appear. Choose SAMS Mode to be Multibody Simulation and click the OK button. SAMS/2000 will display the main screen shown in Fig. 6. This screen has the following main items:

  1. Menu bar

  2. Toolbar

  3. Graphic window

  4. Status bar

In this chapter, menu items will be indicated with italic letters using the following notation: Menu/Item where "Menu" is the name of the menu and "Item" is the name of the element in the menu. Some menu items have toolbar icons associated with them. In such cases, an image of the toolbar button associated with the menu item may also be displayed in the text. In case a text appears in the status bar at the bottom of the SAMS/2000 interface window that is associated with a menu item, this text is presented in this chapter inside the curly brackets, {}.

Building the Model

The user can start a new model by clicking on menu File/New

Building the Model
Analysis type

Figure 9.7. Analysis type

The user can click on the (+) sign associated with the bodies to expand this part of the tree as shown in Fig. 9, and then double-click on each body to start inputting the body data. As an example, Body # 2 (Crankshaft) is chosen. Similar procedures can be used for other bodies.

BODY DATA

In order to input the body data, the user can double-click on Body # 2 in the Main Tree, as shown in Fig. 9. This allows the user to access the forms in Figs. 10-15. These forms can be used to input the body data. Using these forms, the user can access and change the data for a given body. After the data for each tab has been entered, the user must make sure to click the Apply button before switching from one tab to another on the form. If the Apply button is not clicked before switching tabs, the changes of the data that correspond to a tab will not be saved. Note also that SAMS/2000 allows the use of different system of units and does not have a predefined unit system. The units are selected by the user and must be consistent when providing the input data. In this example, the unit of length is the meter, the unit of time is the second, and the unit of mass is the kilogram. All other units are derived from these three basic units.

SAMS/2000 main tree

Figure 9.8. SAMS/2000 main tree

Main tree

Figure 9.9. Main tree

Inertia tab

Figure 9.10. Inertia tab

Coordinates tab

Figure 9.11. Coordinates tab

Velocities tab

Figure 9.12. Velocities tab

Forces tab

Figure 9.13. Forces tab

Graphics tab

Figure 9.14. Graphics tab

Statics tab

Figure 9.15. Statics tab

Body 2 of the mechanism is the crankshaft in this example. Therefore, in the Name text box of the body, the user can enter Crank. Note that the Name text box is displayed regardless of what tab is selected. The user can assign arbitrary names for the bodies. Below, a description of the tabs used for the body data is provided.

Inertia Tab

This tab is used to input the mass and mass moment of inertia of the body. Mass of the body mi is assumed to be 1 kg in this example. Mass moment of inertia Ji is assumed to be 0.1 kg.m2 in this example.

Coordinates Tab

This tab is used to input the initial coordinates of the body that define the initial conditions at the beginning of the simulation. Rxi defines the initial global X coordinate of the center of mass, which is assumed in this example to be 0.5 m. Ryi defines the initial global Y coordinate of the center of mass, which is assumed to be 0 m. Thetai defines the initial rotational angle, which is assumed to be 0 rad.

Velocities Tab

This tab is used to input the initial velocities of the body at the beginning of the simulation. RxDi is the initial global X velocity of the center of mass, which is assumed to be 0. RyDi is the initial global Y velocity of the center of mass, which is assumed to be 0. ThetaDi is the initial angular velocity, which is assumed to be 0.

Forces Tab

This tab is used to input the constant forces acting on the body. These forces must be defined in the global coordinate system, and can include constant forces such as gravity and load forces. Fxi is the constant global force acting on the body in the X direction, which is assumed to be 0 in this example. Fyi is the constant global force acting on the body in the Y direction, which is assumed to be −9.81 N. Mi is the constant torque acting on the body, which is assumed to be 0 in this example.

Graphics Tab

This tab can be used to define the graphics and shape of the body. The shape and dimensions selected in this form have no effect on the simulation results; they are used only for visualization. It is not necessary that the user assigns graphics data for a body in the system. Below is a description of some of the parameters that can be defined by the user.

  1. Model Shape: The shape used to represent the body. Rod is selected for the crankshaft.

  2. Material: The color of the body. Jade color is selected.

  3. Length: The length of the rod. 1 unit is given.

  4. Width: The width of the rod. 0.2 units is given.

  5. Height: The height/thickness of the rod. 0.1 units is given.

Note that the Model Shape must be chosen before the Length, Width, and Height parameters become available to the user because the parameters are specific to the Model Shape. Different shapes are defined using different parameters.

Statics Tab

This tab can be used to input the data for the static equilibrium analysis prior to running a simulation. In this example, static equilibrium will not be used, and the default zero values are used.

A procedure similar to the one used for inputing the data of the crankshaft can be used for other bodies of the mechanism. In order to complete the body data, the user can double-click on Body # 1 in the Main Tree to input the data for the ground body. The user can set its name to "Ground." No other default values need to be changed because all the degrees of freedom of the ground body will be constrained in this example. Therefore, its mass, rotational inertia, initial velocities, constant forces, and statics can assume their zero default values. The initial coordinates Rxi = 0, Ryi = 0, Thetai = 0 are used for the ground body.

For Body # 3, the connecting rod of the mechanism, the user can select its name to be "Connecting Rod." For the inertia, initial conditions and forces, the user can input mi = 2kg, Ji = 0.1kg.m2, Rxi = 2m, and Fyi= −19.62 N. All other initial conditions and forces assume the zero default values. For the graphics, the user can select Rod for the Model, Turquoise for the Material, 2 for the Length, 0.2 for the Width, and 0.1 for the Thickness.

The user can then double-click on Body # 4 in the Main Tree to enter the data for the slider block. The user can select the body name to be "Block." For the inertia, initial conditions and forces, the user can input mi = 3kg, Ji = 0.1kg·m2, Rxi = 3m, and Fyi = −29.43 N. All other initial conditions and forces assume the zero default values. For the graphics, the user can select Solid for the Model Shape, Emerald for the Material, 0.5 for the Length, 0.5 for the Width, and 0.5 for the Height.

CONSTRAINT DATA

To input the data for the constraints and the joints of the model, the total number of elements of each constraint type must be identified. The user can double-click on Constraints in the tree list or click on the Menu SYSTEM/Constraints

CONSTRAINT DATA

The user can then double-click on each constraint in order to obtain the associated input screen. For example, when the user double clicks on GENC, the screen shown in Fig. 18 appears. In this screen, the user can define the ground constraints by inputting 1 for all coordinates; a coordinate is fixed to assume its initial value when the user inputs 1 in the cell that corresponds to this coordinate. If the coordinate is not fixed, the zero default value is used.

Because the ground body was selected to be Body # 1, the user can input 1 for IB. Also, the user can constrain all the coordinates of the ground body by inputting 1 in the cells that correspond to all the coordinates as shown Fig. 18. The user can then click Apply.

For the revolute joint, the user can double-click on REVJ #1 to obtain the screen shown in Fig. 19. In this screen, the user can define the data of REVJ joints that eliminate the relative translations between the two bodies connected by this type of joint. The revolute joint allows only one relative rotational degree of freedom between the two bodies. The user must define the two bodies IB and JB connected by this joint, the nodes Ni and Nj on the two bodies at which this joint is defined (enter zero in the case of a rigid body), and the local coordinates (xi, yi) and (xj, yj) of the joint definition points on the two bodies defined in the IB and JB body coordinate systems, respectively. For the revolute joint between the ground and the crankshaft, since the ground is Body # 1 and the crankshaft is Body # 2, the user can enter 1 for IB and 2 for JB. xi and yi are the coordinates of the position of the revolute joint with respect to body IB. Similarly, xj and yj are the coordinates of the revolute joint with respect to body JB. For xi and yi, the user can input 0 and 0 respectively. For xj and yj, the user can input −0.5 and 0 respectively. The user can then click Apply.

Standard and user kinematic constraints

Figure 9.16. Standard and user kinematic constraints

Constraints in the main tree

Figure 9.17. Constraints in the main tree

Simple generalized coordinate constraints

Figure 9.18. Simple generalized coordinate constraints

Revolute joint

Figure 9.19. Revolute joint

Prismatic (translation) joint

Figure 9.20. Prismatic (translation) joint

A similar procedure can be used for defining the data of the revolute joint between the crankshaft and connecting rod. The user can input 2 for IB, 3 for JB, input 0.5 and 0 for xi and yi, respectively; and −1 and 0 for xj and yj, respectively. Similarly, for the revolute joint between the connecting rod and the slider block, the user can enter 3 for IB and 4 for JB, 1 and 0 for xi and yi respectively, and 0 and 0 for xj and yj, respectively.

For the prismatic joint, the user can double-click on TRNJ #1 to obtain the screen shown in Fig. 20. Using this screen, the user can define the data of the TRNJ joints that eliminate the relative rotation between the two bodies connected by this type of joint. This joint allows for one relative translation degree of freedom between the two bodies connected by this type of joint. The user must define the two bodies IB and JB connected by this joint, the nodes Ni and Nj to which the translational joint axis is attached on the two bodies (enter zero in the case of a rigid body), the local coordinates (x1i, y1i) and (x2i, y2i) of two points on the joint axis defined in body IB coordinate system, and the local coordinates of two other points (x1j, y1j) and (x2j, y2j) that lie on the joint axis and defined in body JB coordinate system. For the joint between the ground and the slider block, the user can enter 1 for IB and 4 for JB. For x1i and y1i, the user can enter 0 and 0, respectively. For x2i and y2i, the user can enter 1 and 0, respectively. For x1j and y1j, the user can enter 0 and 0, respectively. For x2j and y2j, the user can enter 1 and 0, respectively.

PERFORMING SIMULATIONS

Simulations can be performed using two different methods. One is simulation of a single job, while the other is the use of a batch execution of multiple jobs. The batch job will be described in the following section. To perform the simulation of a single job (project), the user must open the Create Data File panel, shown in Fig. 21. This panel can be opened by double-clicking the Create Sams Data item in the Main Tree on the right side of the main SAMS/2000 window, selecting the menu item Data/Sams Data in the main SAMS/2000 menu, or clicking the

PERFORMING SIMULATIONS
  1. Name and Extension of the Data File (Required) This entry is the name of the project file, which is the same file that can be saved from the File/Save or File/Save As menu items of the main SAMS/2000 menu. This text box automatically lists the correct file name and path if the current project is an existing saved project. When a simulation is executed through the Create Data File panel, the project file listed in this field will be re-saved with the current data created by the SAMS/2000 interface when the new SamsData.dat file is created.

    Create Data File screen

    Figure 9.21. Create Data File screen

  2. Name of Output File (no extension) (Required) This field is used to identify the name and path of the two output files that SAMS/2000 creates for the user after the simulation is completed. The files that are saved using this path and file name are copies of the two files C:SAMS2000RES.OUT and C:SAMS2000RECORD.DAT which are also created in the C:SAMS2000 directory. If the user wishes to have other copies of these files saved using other path and file name, the user must select the menu item Output/Copy Results Files in the menu of the Create Data File panel. The files saved will be <pathfilename.out> and <pathfilename.rec>. If the user does not wish to save these files, then the user can input any text in this field, though there must be text in this field in order to perform a simulation.

  3. FFR Data File: This field is required only if the project includes flexible bodies modeled using the small deformation FFR formulation. The user must provide in this text box the path, name, and extension of the file obtained from PRESAMS that includes the flexible body data.

  4. Absolute Nodal Coordinate Data File: This field is required only if the project includes flexible bodies modeled using the large deformation ANCF. The user must provide in this text box the path, name, and extension of the file obtained from PRESAMS that includes the flexible body data.

  5. Spline Function Data File: This entry is required only if the project includes a Spline data file. The path, name, and extension of this file must be provided in this text box.

  6. Vehicle Model Data File: In this field, the path, name, and extension of a file that includes additional data about vehicle components such as belt drives and rubber tracks can be specified. In order to understand the structure of these data, the user can consult with the User Files in the Help menu of the program.

  7. User Input Data File: The user of SAMS/2000 can store user data in a file and have access to these data from the user subroutines. These data that can be prepared in the user-selected format, can be stored in the arrays of the code or in user-defined arrays. For more information about this feature of the code, the user can examine Subroutine USRINP, which is included in the User Subroutines of SAMS/2000. Using this field, the user can provide the path, name, and extension of this data file if the project requires the use of such a file, otherwise this field is left blank.

  8. User Subroutine File: If the user makes changes in the user subroutines of SAMS/2000, the user must provide the path, name, and extension of the new Fortran file in this field, otherwise this field is left blank. The file specified in this field is copied to the file C:SAMS2000SamsUser.FOR just before the project execution, overwriting the copy of C:SAMS2000SamsUser.FOR in the C:SAMS2000 directory. If the user does not provide a file name in this field, SAMS/2000 creates a copy of the original user subroutine file and overwrites C:SAMS2000SamsUser.FOR that exists in the C:SAMS2000 directory.

The numerical data including the start and end time of the simulation can be provided by the user using the System Parameters panel which can be accessed by double-clicking Numerical of the main tree. After providing the system data and the necessary file names, the user can perform a simulation by clicking the Create Data File button. If there are no errors, SAMS/2000 interface displays a message that the data file has been successfully created. The user can click the OK button on the message box that appears. Another dialog box, in which the user is asked whether or not to perform the simulation, appears. If the user clicks the Yes button, SAMS/2000 performs the simulation. If the user clicks No, then a new button labeled Run Sams appears. The user can click this button at any time to perform the simulation.

BATCH JOBS

SAMS/2000 allows the user to submit a list of several jobs that can be executed sequentially by the code using the Batch Job execution capabilities. The simulation result files of all the submitted jobs are stored allowing the user to have access to these files. In order to submit a batch job, the user must first create data files for all the jobs using SAMS/2000 interface as described in the online manual of the code. After creating the project data files, the user must restart SAMS/2000, by using the File/Restart menu in the main SAMS/2000 window, or by closing and restarting SAMS/2000. The Batch Job menu can be found on the opening panel that appears when starting SAMS/2000, as shown in Fig. 2. By clicking the Batch Jobs menu, the Batch Jobs screen shown in Fig. 22 is displayed.

In order to submit a batch job, the user must create for each simulation (job) a data row in the table shown in Fig. 22. To create a row in this table, the user must click first in the dark gray area of the Batch Jobs panel; this is the area, which has the titles of the columns. By clicking next the Add Element button, a new row will appear as shown in Fig. 23. The user can continue to click the Add Element button in order to have a number of rows equal to the number of the jobs in the batch.

The cells of each row are used to provide information that defines the files, which will be used in each simulation. The data that must be entered in the table are as follows:

  1. Job Name: A name given by the user to identify the simulation (job).

  2. Input Data File: The main SAMS/2000 project data file that will be used in this simulation. Note that the output files at the end of each simulation will all be copied to the directory that contains the project data file used for that simulation.

  3. FFR Data File: The small deformation FFR data file obtained for flexible bodies using PRESAMS.

  4. ANCF Data File: The large deformation ANCF data file obtained using PRESAMS for the very flexible bodies.

  5. Spline Data File: The Spline data file used in this simulation.

  6. Vehicle Data File: The vehicle data file used in this simulation.

  7. User Input Data File: The file of the user-defined input data used in this simulation.

  8. Track Data File: For the simulations of railroad vehicle systems, this is the file obtained using the SAMS/2000 track preprocessor. This file defines the track geometry.

  9. User Subroutine File: The Fortran file that contains the user subroutines used in this simulation.

Batch jobs

Figure 9.22. Batch jobs

Only the Input Data File is required to run a simulation, as previously mentioned. Other files may or may not be required depending on the application. If a file is not required, the corresponding cell must be left blank.

After entering the information for all the batch jobs, the user can save this information in a file that can be opened and used at a later time for executing this batch job. Selecting the menu Batch Job/Save Batch List opens a Save File dialog box, allowing the user to save the batch job in a text file. The user can also open a saved batch job file by selecting the menu Batch Job/Open Existing Batch List. The information stored in this file will be displayed in the cells of the batch job table. In order to execute the batch job, the user must select the menu Batch Job/Execute Batch Job. If the user wishes to prematurely terminate the simulations in this batch job, the user must close the SAMS/2000 interface.

The output files of each simulation are copied to the directory of the Input Data File. While the output files are all named with the same file name as the project data file, each file is given a different extension for the purpose of identification. For this reason, it is recommended that each Input Data File has its own directory in order to be able to easily identify the result files and avoid that some of the result files of one job to be overwritten by the files of the following job in the batch. When the batch job ends, SAMS/2000 displays a message box indicating the end of the simulations.

Adding rows to the batch job table

Figure 9.23. Adding rows to the batch job table

GRAPHICS CONTROL

SAMS/2000 allows the user to control the 3D graphics of a project using the Graphics panel. Three of the tabs of the graphics panel are shown in Figs. 24-26. To display the Graphics panel, the user can select the menu Graphics/Properties from the main SAMS/2000 menu bar, or right-click anywhere in the 3D graphical screen. Both actions open a similar pop-up menu, from which select Properties. The Graphics panel appears with the Appearance tab selected, as shown in Fig. 24.

Appearance tab of the Graphics panel

Figure 9.24. Appearance tab of the Graphics panel

Model tab of the Graphics panel

Figure 9.25. Model tab of the Graphics panel

Camera and View tab of the Graphics panel

Figure 9.26. Camera and View tab of the Graphics panel

Appearance Tab

The Appearance tab allows the user to change the color and size of the grid and the coordinate system axes. Double-clicking the colored box below Screen BackColor, Grid Color, X-Axis Color, Y-Axis Color, or Z-Axis Color opens a color selection dialog box, which can be used to change the color of the background of the 3D window, the color of the grid lines, and the color of the X, Y, or Z axis of the coordinate system that appears in the main graphics screen, respectively. The user can use the grid controls to change the line spacing between the grid lines, the thickness with which they are drawn in the 3D window, or simply turn the grid on or off using the Grid controls. Similar changes can be made in the coordinate system using the Axes control.

Model Tab

The Model tab of the Graphics panel, shown in Fig. 25 can be used to show or hide the graphical representation of a body in the 3D window, can be used to specify the files defining the data required to draw flexible bodies, and can be used to change the speed at which the animations of the simulation results are displayed.

Camera and View Tab

The Camera and View tab of the Graphics panel, shown in Fig. 26, controls the position of camera and other camera-related details that affect the view of the models in the 3D window of SAMS/2000. SAMS/2000 provides two methods for controlling the position of the camera. The first is the Text Input method, which allows the user to provide inputs in the text boxes Camera Location, Camera Focus Point, and Camera Orientation. The Camera Location controls the actual location of the camera in space. The Camera Focus Point controls the direction that the camera is pointed at in this space as well as the maximum distance that can be seen in the 3D window. The Camera Orientation controls the vertical direction in the perspective of the camera.

The second method for controlling the camera is the Mouse method, which allows the user by left-clicking the mouse to drag objects. Left-clicking and dragging while holding no buttons down rotates the camera. Left-clicking and dragging while holding down the Ctrl key on the keyboard will move the camera in a direction perpendicular to the screen. Left-clicking and dragging while holding the Shift key change the distance from the camera to the camera target. Left-clicking and dragging while simultaneously holding the Shift and the Ctrl keys will push or pull the camera in the direction the user is currently directing the camera. Note that when using the Mouse camera control option, a target that has the shape of a coordinate system will be displayed. The camera rotates around this target. If the user wants the camera to rotate around a particular body, then the target should be placed inside that body. Left-clicking and dragging with the Ctrl key pressed or the Ctrl key and the Shift key pressed simultaneously moves the target. Note that left-clicking and dragging with only the Shift key does not move the target. It only moves the camera closer to or farther from the target. The minimum and maximum distance that the user can see from the camera must be controlled manually when using the Mouse camera control. The Near and Far text boxes in the Clipping Plane group allow the user to specify how close or how far, respectively, that objects should be visible to the camera.

The user can also attach the camera to a body so that it moves in the global space with that body when SAMS/2000 is displaying an animation of the simulation results. To attach the camera to a body, place a check in the translate box if it is desired that the camera translates with a body, and place a check in the rotate box if it is desired that the camera rotates with the body. Note that if both the translate and the rotate check boxes are checked, then the camera will appear to have a constant position relative to the body. If using the Mouse camera control option, the user can still move the camera relative to the body it has been attached to by left-clicking and dragging. The user selects the body to attach the camera by using the Attach to a Body drop-down.

If the user desires that the camera always be pointed at a certain body, then the user must select a body to point the camera toward from the Look At drop-down. If the camera has been commanded to Look At a body while using Mouse camera control, the rotation of the camera using the mouse will be disabled.

ANIMATION CAPABILITIES

Once a simulation has been successfully completed, SAMS/2000 can animate the results to allow the user to visualize the motion of the bodies. In order to animate the results of a simulation, the Play, Pause, and Stop controls in the Graphics/Animation submenu can be used. The user can create an Audio Video Interleave (AVI) movie file of an animation by selecting the menu File/Create AVI File. A dialog box that allows the user to select a codec and set AVI file creation parameters will appear. The AVI creation process uses the current camera configuration specified in the Graphics panel.

GENERAL USE OF THE INPUT DATA PANELS

For conformity, the data of most standard SAMS/2000 elements are entered using data input panels similar to the one shown in Fig. 27 that was also used in the planar slider crank mechanism example discussed previously in this chapter. There are two panel types that are used by the user to enter the input data of various elements. These are the Individual Element Panel, as the one shown in Fig. 27, and the Tabulated Data Panel, as the one shown in Fig. 28. The general use of these two panel types will be discussed in this section.

Example of individual element input data panel

Figure 9.27. Example of individual element input data panel

Almost all panels that accept input from the user have the buttons Apply, OK, and Cancel. If the user changes any data in the panel, the Apply button must be clicked before closing the panel or switching tabs in the panel. Changes made to the data in a panel will not be applied unless the Apply button is clicked. In most panels, the function of the OK and the Cancel buttons are identical.

Many panels include the Copy Data controls. These controls have a Copy To button with a corresponding list of similar elements in a drop-down list, and similarly, they have a Copy From button with a corresponding drop-down list of similar elements. These controls allow the data on the current tab of the current panel to be copied to or from another similar element. For example, the tab of the panel showed in Fig. 27 displays the body mass and the components of the rotational inertia of a 3D body. If the user wishes to fill this tab, and this tab only, with data from another body, the user can select that body from the drop-down list below the Copy From button, and then click the Copy From button. This will fill the body mass and inertia component fields with data from another body. Note that the user must still click the Apply button before changing tabs or closing this panel or else the changes will be lost. Similarly, if the user wishes to copy these mass and inertia data to another body, overwriting the current mass and inertia data of that body, the user can select the target body in the drop-down list below the Copy To button, and then click the Copy To button. Note, although, that if the data in this panel has been changed but the Apply button has not been clicked, the user must click the Apply button before clicking the Copy To button, or else the data copied to the target body will be the data before the changes in the tab were made.

Example of tabulated data panel: Body inertia

Figure 9.28. Example of tabulated data panel: Body inertia

Individual Element Panels and Tabulated Data Panels

As previously mentioned, there are two common panel types that are used to display the majority of the data of a SAMS/2000 project. One kind is the individual element panel, which is shown in Fig. 27. The other kind is the tabulated data panel, which is shown in Fig. 28. In some cases, the same data can be accessed through both kinds of panels, as is the case with the body data being shown in Figures 27 and 28. Figure 29 shows where in the control tree to find each kind of panel for body data.

Individual element panels, like the one in Fig. 27, only display data for a single element such as a single body or a single force element. These panels frequently have more than one tab. Note, as stated in the previous section, that if the data on one tab is altered before moving to another tab, the user must click the Apply button, or the changes will be lost. The user typically accesses individual element panels from the control tree on the right of the main SAMS/2000 window. The panel in Fig. 27, for example, only allows for the data for Body # 2, as shown in the title bar of the panel, to be adjusted.

Accessing individual element panels and tabulated data panels for the body data from the main tree

Figure 9.29. Accessing individual element panels and tabulated data panels for the body data from the main tree

Tabulated data panels, like the one in Fig. 28, which show the same data as the individual element panel in Fig. 27, show multiple elements simultaneously in a table. Each row in the table represents one element. For example, in Fig. 28, this tabulated data panel shows the masses and rotational inertia terms of all bodies in the system. There are four bodies, each represented by a different row in the table.

The data for any element in the table can be adjusted when viewing a tabulated data panel. The data can be adjusted by selecting a cell in the table and by directly modifying it. New elements can be added to the project by clicking the Add Element button. First, the user selects the row after which the new element will be added. Then, clicking the Add Element button will add a new row below the row that was selected. If no rows currently exist in the table, click in the dark gray area before clicking the Add Element button. Similarly, elements can be deleted from the project when viewing the elements in a tabulated data panel by selecting the row corresponding to the element that is to be deleted and then clicking the Delete Element button. Note that if changes to the data are made before adding a row or deleting a row, the user must click the Apply button before clicking the Add Element or Delete Element buttons.

SPATIAL ANALYSIS

Using the individual element and tabulated data panels discussed in the preceding section, the input data for the spatial systems can be introduced in a manner similar to the planar systems. For example, in the case of the body data, the user must provide the following information: mass and mass moments of inertia, initial coordinates, initial velocities, constant forces, graphics data, and static equilibrium data. These data can be provided or accessed through either individual element panel or from various tabulated data panels. The graphics data can be provided or accessed only from the individual element panels. As in the case of the planar systems, the individual element panels for each body are found under the Bodies element of the control tree on the right of the SAMS/2000 window. The tabulated data panels for this body data are found beneath the Tabulated Data item in the control tree.

Type of Analysis panel

Figure 9.30. Type of Analysis panel

For both planar and spatial systems, the user can add or delete bodies through two methods. One method is through the Type of Analysis panel, as shown in Fig. 30. This panel can be opened by double-clicking the Bodies element of the control tree, which is shown in Fig. 29, and is found at the right of the main SAMS/2000 window. This panel can also be opened by clicking the toolbar item

Type of Analysis panel

If the user does not want to add or delete only the last bodies in the collection of bodies, the user can use any of the tabulated data panels that display body data to choose which bodies to delete or where in the collection of bodies to add new ones. The tabulated data panels that display body data are the Body Inertia panel, the Initial Coordinates panel, the Initial Velocities panel, the Body Force panel, and the Statics Constraints panel. These panels are opened from beneath the Tabulated Data item in the control tree on the right side of the main SAMS/2000 window.

If the user adds or deletes bodies from other than the end of the list, then the body numbering will be altered, and each body is assigned a new body number. This number is used in the data defining many other elements of the project, such as force elements and kinematic constraints. If the body numbering changes, then any element that requires a body number will have to be manually updated by the user.

In order to input the body data, in the tree list, the user can click on (+) sign beside the bodies. The body tree will expand and the list of the bodies in the model will appear. Double-clicking on any body will bring the input data screen for this body as shown in Fig. 27. The user can input the mass and mass moments of inertia, as previously mentioned. Except for the initial coordinates and initial velocities, entering other body data, such as inertia, constant forces, graphics, and static equilibrium data, is straightforward and is well explained in the online Help Manual as well as in the information windows of the panels.

In the case of rigid bodies, in order to avoid kinematic singularities, the actual computations in SAMS/2000 are performed using Euler parameters introduced in Chapter 8. When accessing the initial coordinates data from the individual element body panel, for spatial, 3D analysis, the initial orientation of the bodies can be specified using three different methods. The methods are selected using the button below the main input grid labeled, either, Euler Angles, Two Axes, or Three Axes. The button can be seen in Fig. 31. Clicking the input selection method button changes the input method. When inputting the orientation parameters using Euler angles, there will be three input fields for the following three Euler Angles: rotation angle ϕ (Phi) around the Z axis, rotation angle θ (Theta) around the X axis, and rotation angle ψ (Psi) around the new Z axis that will be obtained after the first two rotations. Note that when using the Initial Coordinates tabulated data panel to access the initial orientations of bodies, the data is displayed only in the Euler Angles format. The Two Axes and Three Axes options are not available. If using the Two Axes or Three Axes method of input, then the Coordinates tab of the individual element body panel will display entry fields that will allow the user to define the axes of the body coordinate system in the initial configuration.

The Velocities tab of the body individual element panel or the Initial Velocities tabulated data panel displays the velocities of the bodies at the beginning of the simulation. In the case of 3D analysis, three components of the absolute velocity vector of the reference point of the body in the initial configuration must be defined. The components of the absolute angular velocity vector defined in the global coordinate system must also be defined at the initial configuration.

Coordinates tab of the body individual element panel

Figure 9.31. Coordinates tab of the body individual element panel

SPECIAL MODULES AND FEATURES OF THE CODE

As previously mentioned, SAMS/2000 has constraint and force libraries that include a large number of standard elements all of which cannot be covered in this chapter. The formulations of some of the standard constraint and force elements implemented in SAMS/2000 are discussed in previous chapters of this book. In addition to the Main Tree that provides access to some of these elements, there are three other control trees that allow the user to have access to other standard constraint and force elements that are part of the SAMS/2000 libraries. These trees are the Vehicle, Flexibility, and Numerical Trees. These trees are accessible from the main menu item View or by clicking on the corresponding icon on the status bar. The online Help Manual provides a detailed list of the standard constraint and force elements that can be accessed using the control trees of the code. SAMS/2000 has special modules and advanced features also; some of which will be discussed in this section. More detailed information on the special modules and advanced features of SAMS/2000 can be found in the online Help Manual.

Rail Module

SAMS/2000 has advanced capabilities for modeling complex railroad vehicle systems. Several 3D wheel/rail contact formulations (Shabana et al., 2008) that allow for predicting the locations of the wheel/rail contact points online are implemented in SAMS/2000. The wheel/rail contact forces, including the tangential creep forces and spin moments, are calculated and introduced to the nonlinear dynamic equations as generalized and/or constraint forces. The wheel/rail contact algorithms implemented in SAMS/2000 allow the use of the Spline functions to describe the wheel and rail profiles. SAMS/2000 has a preprocessor that can be used to construct tracks with arbitrary geometry. The track preprocessor uses industry inputs to prepare a geometry file that can be used as one of the input files of SAMS/2000 as previously explained. The track preprocessor, which also allows for using measured data, can be accessed using the interface of the code.

Eigenvalue Analysis

In Chapter 8, the use of the eigenvalue analysis to study the stability of multibody systems was discussed. SAMS/2000 can be used to perform the eigenvalue analysis at selected time-points during the dynamic simulation. In order to perform the eigenvalue analysis, the nonlinear multibody system equations of motion at these user-specified time-points are first formulated using the embedding technique, thereby eliminating all the constraint forces and the associated Lagrange multipliers. The resulting nonlinear equations of motion associated with the degrees of freedom are linearized in order to formulate the eigenvalue problem as explained in Chapter 8 of this book. SAMS/2000 provides the options for solving the eigenvalue problem by including or excluding the effect of the damping as also explained in Chapter 8. The code also provides mode shape animation capabilities.

Spline Function Representation

Splines in SAMS/2000 are 2D curves. They can be used to approximately represent functions in the form y = f(x). There are a number of standard SAMS/2000 constraint and force elements that already use Spline representations. Splines, however, can also be used through the user subroutines to allow the user to define any function relationship, including nonlinear spring, damper, and actuator force/displacement relationships. A single Spline is represented in SAMS/2000 as a series of piecewise continuous cubic polynomials. In general, a single Spline is defined as a series of input points (x, y) and the slope dy/dx at the start and end points. These points are referred to as nodes on the Spline. Between any two nodes, a single cubic polynomial is found that represents the Spline between the nodes. The cubic polynomials will start at the first node and end at the last node, thereby creating a single curve starting at the first node, passing through all intermediate nodes, and ending at the last node (Press et al., 1992).

Two kinds of Splines can be represented in SAMS/2000. They are the single Spline and the double Spline. A single Spline defines the relationship y = f(x), where X is the independent variable that is specified by the user, and Y is the value returned by the Spline to the user. A double Spline defines the two relationships x = fx(s) and y = fy(s), where s is the independent variable that represents an arc length and both X and Y are calculated from s. Note that the user can create the same functionality as a double Spline through the use of two single Splines. As discussed in the online Help Manual of the code, the use of the arc length s instead of X can help in avoiding singularities in some applications. For example, in the case of a vertical straight line, for a given X there is no corresponding unique Y value. Such a problem can be avoided by using the double spline. It is also important to point out that the interface of SAMS/2000 allows the user to manipulate the Spline data by inserting and/or deleting points. The code interface can also be used to plot the existing and new Spline data and their derivatives in order to provide enough information that allows the user to understand the degree of the smoothness of the Spline curves used in his/her application.

Integration Methods

There are several numerical integration methods available for solving the differential equations of motion of the constrained multibody systems. The methods include Adams-Bashforth-Moulton method (Shampine and Gordon, 1975), Runge Kutta method (Atkinson, 1978), and HHT method (Hilber et al., 1977; Hussein et al., 2008). The integration method to be used is selected from the System Parameters dialog box. In the current version of the code, it is recommended to use Adams Method since the other methods are still under development. The Adams Method is the preferred method in many other multibody system codes designed to solving the differential equations of motion. This method, which is a multistep, predictor/corrector method, automatically attempts to generate a solution that meets user-specified error tolerances by automatically adjusting the order and time step size. The Runge Kutta Method 1 should only be used if the Adams Method fails; it does not adjust its time step size and it does not estimate the solution error.

Change of the Degrees of Freedom

SAMS/2000 allows the user to keep one set of degrees of freedom during the entire dynamic simulation or change this set at equally spaced points in time. In many simulation scenarios, it might be necessary to change the degrees of freedom in order to avoid singular configurations as previously discussed in this book. The constraint Jacobian matrix is used by the code to identify the set of independent coordinates (degrees of freedom). In order for the user to allow for the change of the set of the system degrees of freedom, the text box labeled # of Degree of Freedom Change of the System Parameters panel can be used. The value in this text box indicates to SAMS/2000 how many times during the simulation that the system should be reevaluated to determine the coordinates that are used as the degrees of freedom. The System Parameters panel can be accessed by double-clicking on the Numerical item in the main tree. The identification of the coordinates to use as the degrees of freedom is done automatically by the code, as previously mentioned. Therefore, the user does not need to supply which coordinates to use. Nonetheless, SAMS/2000 allows also the user to select and change the degrees of freedom manually using the user subroutines. The use of this option, however, is not recommended because in the case of complex multibody systems, the use of the numerical structure of the constraint Jacobian matrix will always lead to an optimum set of degrees of freedom.

Solution Procedures

The user can also select different solution procedures for the constrained dynamic equations. The first three procedures employ the augmented form of the equations of motion expressed in terms of Lagrange multipliers. The first procedure is based on identifying a minimum set of independent coordinates and ensures that the constraints are satisfied at the position, velocity, and acceleration levels. When this method is used, only the independent accelerations are integrated. In the second procedure, all the accelerations are integrated, and a check on the constraint violation is made to ensure that the constraints are satisfied at the position, velocity, and acceleration levels. In the third procedure, all the accelerations are integrated with no check made on the constraint violation at the position and velocity levels, that is, there is no guarantee that the constraints are satisfied at the position and velocity levels while they are satisfied at the acceleration level. The fourth solution procedure is based on the penalty method (still under development) and does not require the use of algebraic equations and Lagrange multipliers. The fifth procedure is based on a recursive algorithm that utilizes the joint coordinates (under development). In the last three solution procedures, the iterative Newton-Raphson method is not used. The recursive method in the current version, which is still under development, can only be used in the case of rigid body analysis of multibody systems that include only ground constraints, spherical, revolute, prismatic, and cylindrical joints. This version of the recursive formulation does not support other joint types or flexible bodies.

Subsystem Models

SAMS/2000 gives the user the capability to duplicate any model. This tool enables the user to create large models with minimum effort if this model can be divided into a set of repeated systems that can also be altered after the assembly. To start adding a subsystem, the user should first create the model that he/she will use by using SAMS/2000. The user can double-click on the Subsystem Model to obtain the Subsystem Models screen and start adding subsystem models. Using this screen, which is similar to the tabulated data screen, the user can add models as previously described. A row of cells will be created to start adding the subsystem model. The user can use the Browse button to choose the data file of the subsystem. The coordinate systems and units used in the data file of the subsystem must be consistent with the coordinate systems and units used in the main model. After selecting the subsystem data file, the user can define the location of the subsystem in the multibody model by using the translation and rotation variables provided in the table. The rotation can be performed about any axis defined by a unit vector that the user can define. All the bodies in the subsystem will be translated and rotated by the translations and rotations specified by the user. The user can then click on Read button to start reading the subsystem, and can click on Manipulate to adjust the subsystem position and orientation by the translational and rotational values. The user can also delete subsystems by choosing the subsystem and clicks on the Delete Element button. If this option is used, all the bodies included in the deleted subsystem will be removed.

User Subroutines

The user can obtain standard output from SAMS/2000 by providing standard input data, as previously explained in this chapter and in the online Help Manual of the code. The library of the code includes several standard force elements and constraint functions that can be used by the user. In addition to these standard features that can be used in developing complex multibody system models, SAMS/2000 has a large list of user subroutines that allow the user to provide arbitrary force and constraint functions that are not part of the code library. Because all the user subroutines cannot be explained in this chapter, few features that can be used by the user through the user subroutines are discussed in this section. Some of the capabilities provided by the user subroutines are the following:

  1. Provide User's Writing Statements

  2. Provide User's Nonlinear Forcing Functions that depend on the system-generalized coordinates, velocities, and time

  3. Provide User's Constraint Functions that describe specified motion trajectories or nonstandard joints that are not included in the code library

  4. Provide User's nonlinear characteristics for rectilinear and torsional spring, damping, actuator, bushing, and bearing force coefficients

  5. Provide User's input data that can be used in the formulation of user-provided force and CONMODs

  6. Provide User's Differential Equations in the first-order form

  7. Select the System Degrees of Freedom manually

An experienced user of SAMS/2000 can make use of many of these features by using a set of User Subroutines provided in the file SAMSUSER.for in the directory C:SAMS2000. The user can edit the file SAMSUSER.for using the SAMS/2000 interface and an appropriate Fortran editor. The user's Fortran editor can be provided in the file SAMSFORT.cfg as described in the online Help Manual of the code where examples are given.

Flexible Body Modeling

SAMS/2000 has advanced flexible body modeling capabilities that are based on a successful integration of finite element and multibody system algorithms. Both small and large deformation multibody system applications can be handled using SAMS/2000. The integration of small deformation finite element and multibody system algorithms is accomplished by using the finite element FFR formulation. The integration of large deformation finite element and multibody system algorithms in SAMS/2000 is based on the ANCF. While the subject of flexible body dynamics is not covered in this book, it is important that the reader becomes aware of the potential use of general purpose multibody computer codes and their advanced capabilities.

The simulation of multibody systems that consist of interconnected deformable bodies modeled using the FFR formulation requires the use of structural dynamics preprocessor to evaluate the inertia shape integrals that appear in the nonlinear dynamic equations of motion (Shabana, 2005). For this reason, an interface between general purpose finite element and multibody system computer programs needs to be established. The interface or the preprocessor used with SAMS/2000 is called PRESAMS. The preprocessor PRESAMS is used to generate a set of data required for the dynamic analysis of the flexible components in the multibody systems. The output of this preprocessor is stored in files that are read by SAMS/2000 which is considered as the main processor for the dynamic analysis of constrained multibody systems. No modifications in the output of the preprocessor PRESAMS need to be made since the output is in the correct format that is directly acceptable by SAMS/2000. In PRESAMS, all the shape integral matrices such as the mass and stiffness matrices associated with the elastic coordinates as well as the constant matrices required to evaluate the nonlinear inertia coupling between the rigid body motion and the elastic deformation are generated. These matrices are evaluated once in advance before the dynamic analysis in order to reduce the number of operations performed during the dynamic simulation. With the information provided by the preprocessor PRESAMS, the multibody system identification can be completed by defining the initial configuration of each flexible and rigid component; the joint types and the locations of the joint definition points with respect to a chosen body coordinate system; and the attachment points of the springs, dampers, and actuators and other force elements as described in the online Help Manual of the code. Since flexible body dynamics is beyond the scope of this book, the interested reader can consult with the online Help Manual of the code as well as more advanced books and technical papers on this important subject.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.219.80