Вы находитесь на странице: 1из 262

Introduction 1

Motion Workspace Guide


Introduction
2
Overview and Definition

Overview and Definition


An overview of motion simulation is given here.

Introduction
SimXpert is based on the world's most widely used mechanical system simulation software. It enables
users to produce virtual prototypes, realistically simulating the full-motion behavior of complex
mechanical systems on their computers and quickly analyzing multiple design variations until an optimal
design is achieved. This reduces the number of costly physical prototypes, improves design quality, and
dramatically reduces product development time.
In a motion simulation, the system has specific degrees of freedom and is driven by external forces and
excitations. SimXpert solves the nonlinear differential and algebraic equations of the system in order to
simulate the motion of the model subject to the specified conditions.
Components involved in the simulation are known as parts, and may have unique geometry and mass
properties. Parts are connected to one another by various types of connections, which connect specific
degrees of freedom. Motion may be specified for connections to control how parts move with respect to
each other. Forces may be applied to parts, including forces of constant magnitude and spring dampers,
which produce variable force based on relative position and velocity. Once you compute a simulation,
you may display the motion of each part, and chart data from the simulation.
Introduction 3
Degrees of Freedom

Degrees of Freedom
Degrees of freedom dictate how a mechanical system is allowed to move. The following sections provide
information on understanding and calculating degrees of freedom in your model.

Removing Degrees of Freedom


In mechanical systems, a degree of freedom (DOF) is a measure of how bodies can move relative to other
bodies. Therefore, the total number of degrees of freedom of a mechanical system is the number of
independent motions that characterize the model.
A freely floating rigid body in three-dimensional space is said to have six DOF. This implies that the body
can exhibit motion in six independent ways: three translations and three rotations. The DOF of a
mechanical system represent the minimum number of displacement coordinates needed to completely
specify the system configuration. Once you know these, you can calculate any other information
pertinent to the configuration as a function of these independent variables.
You can, of course, represent a mechanical system with more coordinates than there are degrees of
freedom. In such an instance, the coordinates are not all independent. There must be algebraic constraint
equations relating some of the coordinates. This is precisely how SimXpert works.
For most mechanical systems, the number of degrees of freedom is constant throughout time. In some
mechanical systems, the number of degrees of freedom can change as their configurations change over
time.
SimXpert allows you to specify the position of each body in the model, regardless of the degrees of
freedom in the mechanical system. Different types of constraints constrain different combinations of
motion, thereby removing various DOF from the model. Revolute joints, for example, constrain two
degrees of rotational freedom and three degrees of translational freedom therefore allowing one degree
of rotational freedom. Cylindrical joints constrain two degrees of rotational and two degrees of
translational freedom, therefore allowing one rotational and one translation freedom. Rotational or
translation motions, defined at joints, constrain either one rotational or translational DOF, respectively.
Tables 1, 2, and 3 list the number of DOF removed by SimXpert constraints.

Calculating Degrees of Freedom Using the Gruebler Equation


To determine the total number of degrees of freedom (DOF) for a mechanical system, you can use the
Gruebler equation which is:
Degrees of freedom = [ 6 * (Number of movable bodies) ] - (Number of constraints)
To evaluate this equation, you would count the number of movable bodies in your model and subtract the
DOF removed by the constraints and prescribed motions. Note that the body count does not include the
ground body since it does not contribute any DOF. For example, the Gruebler equation for a model that
contains three movable bodies, one rotational motion, three revolute joints, and one translational joint
would be:
DOF = ( 6 * 3 ) - ( 1 + 5 + 5 + 5 + 5 ) = 18 - 21 = -3
4
Degrees of Freedom

From this calculation, you see that the model has -3 DOF. When the Gruebler equation yields a DOF
count less than zero, it indicates that the model definitely has one or more constraints that are redundant.
If you use the same model and replace one of the revolute joints with a spherical joint and another
revolute joint with a cylindrical joint, the Gruebler equation would then be:
DOF = ( 6 * 3 ) - ( 1 + 5 + 3 + 4 + 5 ) = 18 - 18 = 0
This equation now indicates that there are zero DOF in the model. When the Gruebler equation is greater
than or equal to zero, you cannot be positive that the mechanical system does not contain constraints that
are redundant.
The Gruebler equation offers a good way to understand how the model is built, but to see if there are
redundant constraints or not, it is best to let SimXpert perform an analysis. You will receive a message
from SimXpert if the model contains redundant constraints. However, you do not know how many or
which ones SimXpert sees as the redundant constraints. For information on how SimXpert handles
models with redundant constraints, see Checking for Redundant Constraints below.

Checking for Redundant Constraints


You can construct a legal and well-defined model where one set of joints constrain the model in exactly
the same way as another set of joints. In mathematical terms, you can state that the equations of constraint
of both sets of joints are redundant with each other.
A SimXpert model is a mathematical idealization of a physical mechanical system. For this reason, your
model can contain redundant constraints even if you define your model with the same number and types
of joints as the physical mechanical system.
An example of a mechanical system with redundant constraints is a door supported by two hinges. In a
real door, minor violations of the hinge collinearity do not prevent the door from operating because of
body deformity and joint-play in the hinges. In the mathematical model, where the bodies are rigid and
joints do not permit any play, the two hinges are redundant but consistent when the axes of the two hinges
are aligned. If, however, the axes are not aligned, the door cannot move without breaking one of the
hinges. In this case, the two hinges are inconsistent and half of their constraints are redundant.
SimXpert does not tolerate redundant constraints whether they are consistent or inconsistent. When
encountered, SimXpert subjectively determines which constraints are redundant, deletes them from the
set of equations, and provides a set of results that characterize the motion and forces in the model. Note
that other solutions can also be physically realistic. Systems with redundant constraints do not have a
unique solution.
According to the Gruebler equation, a SimXpert model with fewer than zero DOF is overconstrained.
SimXpert can solve an overconstrained model only if the redundant constraints are consistent. Redundant
constraints are consistent if a solution satisfying the set of independent constraint equations also satisfies
the set of dependent or redundant constraint equations.
In the case of the door with two hinges, SimXpert ignores five of the constraint equations. You,
unfortunately, do not know which equations are removed. If you assume that SimXpert ignores all of the
equations corresponding to one of the hinges, that means that all the reaction forces are concentrated at
the other hinge in the SimXpert solution. SimXpert subjectively sets the reaction forces to zero at the
Introduction 5
Degrees of Freedom

redundant hinge. However, as long as distribution of reaction forces maintains a constancy of the net
reaction force and torque, it also provides a correct solution.
SimXpert does not always check joint initial conditions when it does overconstraint checking. If you
apply a motion on one joint and initial conditions on another joint, check to make sure that they are not
redundant because SimXpert does not check them. As a general rule, you should not specify more initial
conditions than the model has degrees of freedom.
For a model with redundant constraints, constraints that are initially consistent can become inconsistent
as the model articulates over time. SimXpert stops execution as soon as the redundant constraints become
inconsistent. Therefore, you should not intentionally input redundant constraints in your model. For
example, consider a planetary gear system with redundant constraints. Slight misalignment errors can
accumulate over time, eventually resulting in a failure of the consistency check. If this occurs, manually
remove the redundant constraints or replace them with flexible connections.
If you have redundant constraints in your model, try replacing joints with joint primitives or with
approximately equivalent flexible connections. By reviewing the messages saved in the message file after
SimXpert tries to solves your model, you can find out how many and which redundant constraints are
being removed.
6
Modeling and Simulating Process

Modeling and Simulating Process


This explains the general mechanical system modeling and simulating process you should follow when
using SimXpert.

Process Overview
The figure below shows the steps in the modeling and simulating process. Although the steps that you
perform to model and simulate a mechanical system are listed as though you build the entire model at
once and then test, review, and improve it, you should build and test small elements of your model before
building the entire model. For example, create a few parts, connect them together, and then run a
simulation. This way you can ensure that each element works before moving on to the next step. This is
referred to as the crawl-walk-run approach.
Introduction 7
Modeling and Simulating Process

Build
The build step in the process includes:
1. Idealizing the mechanical system so it can be represented mathematically. This involves deciding
how many parts really need to be modeled, how to connect the parts to represent the movement
of the physical system. Also, you must specify which compliant connections need to be modeled
and which environment forces need to be modeled.
2. Selecting the units. You must work within a consistent set of units that is appropriate for your
model.
3. Creating the basic elements. This involves creating the parts of your model, adding constraints to
define movement, and defining forces that act on your model.

Test
After you define the model, you can run a simulation using SimXpert to verify its performance
characteristics and response to a set of operating conditions.
We recommend that you simulate your model at various times during the building step. This allows you
to more readily find and correct any mistakes in the model. You can also set up simulations so that they
are interactive, allowing you to control and refine the simulation. During the simulation, SimXpert solves
a set of equations of motion for your model.

Review
As you create your model, it’s important to consider the results you want. In general, it is best to output
any information you think is useful for model verification or system analysis. When you run a dynamic,
kinematic, or quasi-static simulation, SimXpert outputs data at the fixed intervals you specify. These
fixed intervals are known as output time steps. When you run a static simulation, SimXpert outputs data
only once.
You can request that SimXpert output data for displacements, velocities, accelerations, reaction forces,
applied forces, user-defined variables, generic system elements, as well as system modeling element
inputs and outputs. SimXpert writes all the data you request to a request file at each output time step.
SimXpert can read this file for plotting purposes. Plots are often useful for studying the specific behavior
of a model. For example, if you needed to know the maximum translational loading at a joint, you could
plot the translational reaction forces at the joint over the course of the entire simulation and quickly
8
Modeling and Simulating Process

determine the maximum load. The figure below shows a plot of the translational reaction forces in the
translational joint between the base and the upper link of a robot arm.

Figure 1-1 Plot of Translational Joint Reaction Force

SimXpert also outputs graphical data at each output step to the graphics file. Graphical output is often
useful for animating the overall behavior of the model and identifying specific problems, such as
improper connectivity, misapplied motions or forces, unwanted oscillatory behavior, or clearance
problems. The figure below shows an animation with superimposed frames.

Figure 1-2 Superimposed Frames from the


Animation of a Robot Arm

Improve
After you have run initial simulations to determine the basic motion of your model, you can improve and
refine your model by adding more complexity to it. You can edit the model using more advanced
functions. For example, you can establish parametric relationships among modeling elements that allow
you to perform design sensitivity studies to compare alternative designs. After you modify the model, run
more simulations to verify the model.
Components 9

Components
10
Overview

Overview
The components of your model include the separate parts of your mechanism, and may each be based on
imported CAD geometry. You may import a variety of geometry in SimXpert, including CATIA and
Parasolid formats. Once imported, these pieces of geometry may be applied to one or more parts in the
complete assembly in order to compose the complete simulation model.
You may also create geometry within the SimXpert Motion Workspace, which is covered in the
Geometry tab. Before creating geometry however, you muct define motion parts with user defined mass
properties under the components tab.
Components 11
Import Geometry

Import Geometry
Using the File menu, you may import Geometry from a variety of formats.
1. Select Import from the File Menu.
2. Select the format of the file you wish to import.

3. Navigate to the directory containing your geometry file.

4. Select the file and click Open.


5. The geometry will be imported and will appear in the treeview and canvas.
12
Coordinate Systems

Coordinate Systems
Within SimXpert, you may create local coordinate systems that can be used to help construct
connections, forces, and requests. These coordinate systems include origin and orientation information
and may be referenced by other operations which require location or orientation data. By default
coordinate systems are children of the model, but may be created as children of whichever object is set
to current during creation of the coordinate system. Floating coordinate systems may be defined which
are associated with a particular part but don’t have a defined location.

Description of Fields:

Field Description
Name Allows specification of a unique name for each coordinate system.
Define as a
Checkbox that when enabled allows definition of a floating coordinate system,
Floating
which only has a name and a part to which it is associated. This option is used by
Coordinate
General Force, Vector Force, and Vector Torque. Cleared by default.
System
Allows selection of a reference coordinate system to be used in positioning the
new coordinate system in a “nested” manner relative to an existing coordinate
Reference System
system. Icon next to field is the "Origin Icon". Selecting this will set the Reference
System to the Origin and the text "Origin" will display in the field.
Allows specification of location of the coordinate system origin using common
Location
location selection tools.
Allows specification of the orientation of the coordinate system using common
Orientation
orientation options.
Components 13
Coordinate Systems

Sample Form:

To create a coordinate system:


1. Make sure that the desired parent of the coordinate system is set as the current object. The model
is the current object by default, but another object may be selected by right clicking and selecting
“Set Current” from the contextual menu.
2. From the Components toolbox select Coordinate System.
3. Choose a reference coordinate system if desired. The default is the global reference frame, but
you may select other existing coordinate systems in order to create nested coordinate systems
provided that you are using non-geometric ways of defining location and orientation.
4. Choose a location method for the coordinate system and provide necessary data.
5. Define the orientation of the coordinate system using the available methods.
6. Click OK. The coordinate system will appear in the canvas and in the tree.
14
Hardpoints

Hardpoints
Hardpoints are parametric locations within a model that contain no orientation information. You may
create hardpoints using the Hardpoint tool in the Components Toolbox. Hardpoints define locations in
the model and are the basic building blocks for most other components. When you create hardpoints, you
can define them symmetrically or as single points in space. When defining hardpoints symmetrically, you
could, for example, define a left hardpoint and the right hardpoint is automatically generated as a
parametric point.

Description of Fields

Field Description
Name Allows specification of a unique name for each hardpoint. Automatically
populated with Hardpoint_###.
Single or Pair Selects whether a single hardpoint or a pair of points will be created.
Symmetry or Appears when Pair is selected. Selects whether second hardpoint will be
No Symmetry symmetrical with the first about the model’s XZ plane.
Location Allows the direct entry of X, Y, and Z coordinates of hardpoint positions.

Sample Form

To create a hardpoint:
1. From the Components toolbox select Hardpoint.
2. In the Properties form, select single or pair. You may also enter a unique name for the hardpoint.
Components 15
Hardpoints

3. If pair is selected, then additional options will be available such as symmetry and second point
location. Select symmetry if you want the points to be symmetric about the model’s X axis.
4. Enter the X, Y, and Z coordinates of the location to create the hardpoint. If symmetry is selected,
the second point location will be completed automatically.
5. Click OK. The hardpoint (or pair) will appear in the canvas and in the tree.
16
Parts

Parts
Parts are the main components of a model. There may be multiple parts in each model and the geometry,
inertial properties, and initial conditions for each may be specified independently. You may designate
parts as moving parts or ground parts from the properties form.

Ground Part
The ground part is the only part in your model that must remain stationary at all times. You can define a
new or existing part as the ground part. The ground part does not have mass properties or initial velocities
and does not add degrees of freedom into your model.

Moving Parts
Moving components of your model. They can have a mass, inertia, initial position, and initial velocity.
They are made up of geometric elements of any size or shape.

Description of Fields
Definition Tab::

Field Description
Name Allows specification of a unique name for each part. Automatically
populated with Part_###.
Active Selects whether part will be included in a simulation.
Ground Specifies that part will be a ground part if selected, or a moving part if
cleared. Check box is cleared by default.
Source of Inertia Select User Specified or Geometry. Geometry specifies that automatically
Properties calculated values based on part Geometry will be used for mass and inertia
properties. User Specified specifies that manually entered values will be
used for mass and inertia properties, and is required for geometry that is to
be created within the SimXpert Motion Workspace. Geometry is selected
by default.
Specifies the density value used if mass and inertia properties are
Density
automatically calculated based on part Geometry.
Reference System Specifies the Coordinate System defining the local part reference frame.
Mass Specifies the part mass.
Specifies diagonal inertia values as calculated about the Inertia Properties
Ixx/Iyy/Izz
Location, expressed in the coordinate system of the Inertia Orientation.
Specifies off-diagonal inertia values as calculated about the Inertia
Ixy/Ixz/Iyz Properties Location, expressed in the coordinate system of the Inertia
Orientation.
Components 17
Parts

Field Description
Center of Mass Location Allows manual specification of coordinates of center of mass location if
Source Of Inertia Properties is selected. Specified relative Reference
System.
Inertia values defined at Specifies that inertia values are calculated about center of mass location if
Center of Mass selected, or about the manually entered Inertia Properties Location if
cleared. Check box is selected by default.
Inertia Properties Allows manual specification of coordinates of location about which inertia
Location properties are calculated if Source Of Inertia Properties is selected and
Inertia Values Defined at Center of Mass is cleared. Specified relative
Reference System.
Allows manual specification of orientation about which inertia properties
Inertia Orientation are calculated if Source Of Inertia Properties is selected. Specified relative
Reference System.
Geometry Allows selection of one or more geometry to be associated with a part.
Previously imported geometry may be selected from the treeview or
canvas. Geometry can be selected by setting Pick Parts or Pick SubAssy in
the pick panel. Selecting Clear Selection List in the pick panel will clear the
Geometry field. Once selected, this geometry will be used to automatically
calculate mass and inertia properties.

Initial Conditions Tab:

Initial Position

Field Description
Positions held fixed during assembly:
Global X Holds the part fixed in the global X direction during assembly.
Global Y Holds the part fixed in the global Y direction during assembly.
Global Z Holds the part fixed in the global Z direction during assembly.
Orientations held fixed during assembly:
Psi Holds the part fixed in the Psi rotation direction during assembly.
Theta Holds the part fixed in the Theta rotation direction during assembly.
Phi Holds the part fixed in the Phi rotation direction during assembly.
18
Parts

Initial Velocity

Field Description
Translational:
Along X Specifies part initial velocity along the X axis of the global reference frame.
Along Y Specifies part initial velocity along the Y axis of the global reference frame.
Along Z Specifies part initial velocity along the Z axis of the global reference frame.
Specifies coordinate system for initial translational velocity values. Origin is
Reference System
selected by default.
Rotational:
About X Specifies part initial velocity about the X axis of the global reference frame.
About Y Specifies part initial velocity about the Y axis of the global reference frame.
About Z Specifies part initial velocity about the Z axis of the global reference frame.
Drop-down that specifies location and orientation for initial rotational velocity
values. CM location and IM location is selected by default. Global orientation and
Reference System
user specified (where any coordinate system may be selected) options are
available as well.

Loads Tab::

Field Description
Connections and Forces List of connections and loads that affect the part.
Selections of geometry within the part to carry the load from connections
Load Bearing Geometry
or forces. This geometry may be modified to apply loads as the user desires.
Button that allows selection of alternate geometry as the load bearing
Replace Geometry
region of a selected connection or force.
Button that allows selection of additional geometry as the load bearing
Append Geometry
region of a selected connection or force.
Components 19
Parts

Structures Tab:

Field Description
Properties:
Specifies whether properties will be defined by entries on this form or by
Source
existing material properties in the Structures workspace.
Density Specifies density for the part.
Specifies Young’s (Elastic) modulus for use in the structural analysis of the
Young’s Modulus
part.
Poisson’s Ratio Specifies Poisson’s ratio for use in the structural analysis of the part.
Mesh:
Specifies whether the finite element mesh will be defined by entries on this
Source
form or by an existing mesh in the Structures workspace.
Selects whether the global edge length for the elements will be determined
Element Size
automatically or set to a user input value.
Specifies the dimensionality of the mesh to be created. Options are
Type
available for surface and solid meshing.
Specifies whether linear elements (without midside nodes) or quadratic
Element Type
elements (with midside nodes) will be created for the part.
Output:
Specifies the number of modes to be requested from the modal structures
Number of Modes
analysis of the part.
Selects which result quantities will be requested from the modal analysis.
Results Element Stress, Grid Point Stress, Element Strain, and Grid Point Strain
may each be activated or deactivated individually.

Flexible Body Tab:

Damping

Field Description
Drop-down that selects between default damping and custom damping, which is
Method
defined by a user entered expression or subroutine.
Custom
Option button that selects between runtime expression and user subroutine to
Method
define the damping.
Field that defines the expression for the damping. To define the expression using
Espression
the Expression Builder, click the icon to the right of the text.
20
Parts

Field Description
Parameters Field that lists parameters to be passed to user subroutine to define damping.
Field that selects user subroutine to define damping. Users enter library name and
Routine routine name, with specific syntax: library_name::routine_name. Example
abgFDM::fie910
Generalized
Drop-down that defnes optin for generalized damping. Set to off by default.
Damping
Off No generalized damping is used. This is the default setting.
Full Generalized damping applied to both rigid and modal coordinates.
Internal
Generalized damping only applied to modal coordinates.
Only

Animation Visualization

Field Description
Animation
Option button that determines how the part will be displayed during animation.
Visualization
Rigid Disables flexible body results visualization in animations.
Linear
Stress / Provides option to display part stress and/or deformation during animation.
Deformati Actual result data to be displayed will be specified on the Animation form.
on

Modal Information Tab::

Field Description
Option button that determines whether modal information is defined by a range or
Specify
table.
Range
Option button that specifies whether the modes in the specified range will be
Modes
enabled or disabled.
Method Frequency (Hz) is currently the only available option.
Drop-down that selects whether the values specified will be above, between, or
Range
below user specific values.
Values Frequency (Hz) values to be used in filtering the range of modes.
Table
Icon Matrix editor icon opens panel to directly enter table of modes to enable.
Components 21
Parts

Transfer Loads Tab:

Field Description
Results Set Specifies results set to be used for quasi-static load transfer.
Specifies start time for loads to be transferred. Time must be within the
Start Time
range of the selected results set.
Specifies end time for loads to be transferred. Time must be within the
End Time
range of the selected results set.
Output interval for load transfer. Within the selected range, transfer loads
Interval
will be calculated at this interval.
Transfer Button that begins the load transfer process with the specified parameters.

Visualization Tab:

Field Description
Visual Checkbox that enables visibility of the motion part.
Color Defines the color of the motion part icon.
Size Specifies the size of the motion part icon.

Outputs Tab::

Field Description
Translational Checkbox that enables translational displacement output for the part. This must
Displacement be selected in order to generate an animation.
Center of Mass
Checkbox that enables translational displacement output for the part’s center of
Translational
mass. This is cleared by default.
Displacement
Euler Angles Checkbox that enables output of Euler angles for the part.
Yaw/Pitch/Roll Checkbox that enables output of Yaw, Pitch, and Roll angles for the part. Cleared
Angles by default.
Modal Scaling Checkbox that enables output of a modal scaling factor for each mode in a flexible
Factor body simulation.
Checkbox that enables output of Euler parameters for the part. This must be
Euler Parameters
selected in order to generate an animation.
Translational
Checkbox that enables output of translational velocity for the part.
Velocity
22
Parts

Field Description
Center of Mass
Checkbox that enables output of translational velocity for the center of mass of
Translational
the part. Cleared by default.
Velocity
Angular Velocity Checkbox that enables output of angular velocity for the part.
Modal Velocity Checkbox that enables output of modal velocity for the part.
Translational
Checkbox that enables output of translational acceleration for the part.
Acceleration
Center of Mass
Checkbox that enables output of translational acceleration for the center of mass
Translational
of the part.
Acceleration
Angular
Checkbox that enables output of angular accelerations for the part.
Acceleration
Modal
Checkbox that enables output of modal acceleration for the part.
Acceleration
Kinetic Energy Checkbox that enables output of kinetic energy for the part.
Components 23
Parts

Sample Form:

To create a part associated with multiple geometries, use the Properties form. To create a part associated
with a subassembly, use the Properties form or RMB from the Model Browser.

To create parts using 'From Geometry' tool:


1. From the Components toolbox select From Geometry.
24
Parts

Create Parts From Geometry form is populated with all available geometry. A geometry is only
available if no other part is associated with it or with any subassembly that it is part of.
2. In the Create Parts From Geometry form, enter a name for each part or use the defaults.
3. Select Ok to finish creating parts.

To create parts using RMB in the Model Browser:


1. In the Model Browser, select one or more geometries (Part and/or SubAssy).
2. Right-click the selected geometries and select Create Part.
Parts are created using the names of the geometries as names of the parts.

To create a part using the Properties Form:


1. From the Components toolbox select Part.
2. In the Properties form, enter a name for the new part.
3. Using the pick toolbar, select geometry to be associated with the part from the model browser or
the canvas. The selected geometry will appear in the Geometry list box.
4. Select Initial Conditions from the menu on the left of the form to specify the initial conditions that
will be applied to the part.
5. If desired, you may define structural properties for the part in the Structures section of the part
property editor. Values may be input for Young’s Modulus, Poisson ratio, meshing parameters,
and analysis output requests to be used in a flexible body analysis. For more information, see
Flexible Bodies.
6. If the part is to be a flexible body, you must select the Model Part as Flexible checkbox on the
Flexible Body form. Once selected, additional options will be available to select the model, the
.mnf file, and how the part will be displayed.
7. Click OK to finish creating the part.
Components 25
Flexible Bodies

Flexible Bodies
Parts in SimXpert may be modeled as flexible bodies. This is accomplished through interaction between
the Structures and Motion workspaces. From the Motion workspace, you may define structural analysis
parameters using the Structures section of the Part property editor. You may then create a flexible body
for each part that you wish to model as flexible. This automatically launches the Structures workspace.
From there, you perform a Modal Analysis (SOL 103) which generates a Nastran results file and a Modal
Neutral File (MNF). Attaching these results in the Structures workspace allows you to switch back to the
Motion workspace and select the Model Part as Flexible checkbox. Upon performing the simulation,
displacement and stress data will be available for the body, and may be displayed in fringe plot form
during animations.
26
Flexible Bodies

Sample Forms:
Components 27
Flexible Bodies
28
Flexible Bodies

To create a flexible body:


1. Enter the part property editor for the motion part that you wish to make flexible. Select the
Structures section to define material properties, mesh size and type, and analysis output requests.
Components 29
Flexible Bodies

2. Select the Loads section of the part property editor to define load bearing geometry for each of
the forces and connections that act on the motion part.
3. Select Create Flexible Body from the Structures section of the part property editor, or right click
on a motion part and select Create Flexible Body. This automatically creates the mesh,
connections, and properties defined earlier and opens the Structures workspace.
4. Perform modal analysis (SOL 103).
5. Attach the Nastran results file using Attach Results from the File menu.
6. Return to the Motion workspace.
7. Open the part property editor for the part.
8. Select the Model Part as Flexible checkbox under the Flexible Body option.
9. Select the desired Result Set.
10. Choose the animation visualization method. The default is Linear Stress/Deformation, which
displays flexible body results on a fringe plot in the animation.
11. Perform a motion simulation.
12. Select Animation from the Results toolbox.
13. Select the desired Result Type and Derivation under the Plot Data option. This selects which
results will be displayed on the animation fringe plot. The Deform and Fringe options provide
additional control for displaying results entities.
30
ADM Container

ADM Container
This feature provides a means to enter MSC.Adams solver level syntax in to the motion workspace so
that it can be included in the motion workspace model. The main purpose of this feature is to allow users
to include solver level syntax for objects that currently do not have higher level abstracted motion
workspace objects developed at this time. A secondary purpose is to allow experienced users who have
traditionally entered Adams syntax to create their models in the motion workspace.

Sample Form:

To enter Adams syntax:


1. Select Adm Container from the Part menu.
2. Enter the Adams Solver syntax in the form window or click to import text from an .adm or .txt file.
3. Click to verify the syntax of the commands.
4. Click OK to include the syntax in the model.
Components 31
Export of Models From Adams View To SimXpert

Export of Models From Adams View To SimXpert


An Adams View command file and macro are included with SimXpert that allow the export of models
from Adams View and their re-creation in SimXpert through the use of SimXpert RADE Macros. These
files are contained in the following directory:
C:\MSC.Software\SimXpert_<platform>\R2\<platform>\plugins\MSC\Motion\examples\macros
• read_export_simx_macro.cmd - A View cmd file which will read in a macro file called
export_to_simx_mac.cmd.
• export_to_simx_mac.cmd - A View macro which will export an adm file, parasolid files, along
with a rade script for a specified model.
The generated rade script along with the adm and parasolids files can be used within SimXpert Motion
to recreate the model.
All output files will be placed in a directory which has a name in the form of
'exported_to_simx_MODELNAME`

Procedure:
1. Start Adams View and read in your model.
2. Import the command file “read_export_simx_macro.cmd”
3. Open Adams View's Command Window (F3) and type:
mdi export_to_simxpert model = model_name
(where model_name is the Adams View model name)
Invoking that macro will cause an adm file to be exported along with parasolids files for each part
that has geometry to a directory inside your current working directory called
“exported_to_simx_model_name”.
Additionally, a rade script will be created which may be used within SimXpert to import the adm
& parasolids files.
After invoking the macro, you should see these files in the
“exported_to_simx_model_name”directory:
model_name_simx.adm
PART_*_geom.x_t
model_name_exported.rdl
4. Start SimXpert, go to the Motion Workspace
5. Import a rade file via Tools->Macro->Macros... (Ctrl+F8)
Select the model_name_exported.rdl that Adams View created.
6. You should now see the model with all of the geometry.
32
Export of Models From Adams View To SimXpert

Notes:
• The generated rade script will contain full path info for the generated adm and parasolids files.
At the very top of the rade file, you will see a variable named cwdPath.
Example:
global cwdPath = "/storage/views/fred/work/exported_to_simx_testSimX1/";
• If you transfer all of the exported files to a different directory or different machine, you may
need to modify that file path in order for the script to execute correctly.
• If you are running SimXpert from within the directory that contains all of the exported files, you
can modify the cwdPath variable in the rade file so that it is set to the empty string.
Example:
global cwdPath = "";
• If you have flexible bodies in your Adams View model, you need to add an extra option to the
export command. This command is “do_flexbodies = yes”
Example:
mdi export_to_simxpert model = model_1 do_flexbodies=yes
• Unsupported Adams statements that reside in the Adm Container will be ignored. You may need
to recreate objects like contacts once your model has been imported.
Components 33
Update Model

Update Model
The Update Model tool automatically updates the model to incorporate any changes in the CAD
geometry (whether added or deleted), part locations, orientations, masses and inertias. This tool reports
all broken references to missing geometry, parts, joints, and hardpoints.
The tool is automatically launched when you select the simulation panel and submit the model to solver.
You may also access the Update Model tool from the Edit menu.
34
Visualization Page for Property Editors

Visualization Page for Property Editors


The purpose of the visualization page for all of the model building property editors is to allow the user
to individually control the visualization attributes for a screen symbol. The visualization attributes
include whether to display the symbol and the color and size of the symbol.

Visual Checkbox:
Checkbox that allows the user to either turn on or turn off the visibility of this object.
Note: For motion parts this means the Center of Mass screen symbol not the
geometry associated for that part.

Color:
This allows the user to change the color of the screen symbol. There are two means for choosing the
color:
1. Enter the Red, Green, and Blue values (0 to 255, space separated) in the input field
2. Use the drop down color chooser. A standard set of colors is available along with a custom color
option. The customer color option is noted by the "..." button in the lower left corner of the drop
down list. Selecting that button will generate a window that allows the user to pick any color. The
user can even maintain a small list of custom colors in this window.

Symbol Size:
This allow the user to change the size of the screen symbol. The field contains a numeric value along with
the model units and the user can change the numeric value.
Geometry 147

Geometry
148
Motion Geometry

Motion Geometry
The Geometry tab in the SimXpert Motion Workspace allows you to create simple parametric geometry
that is defined relative to motion coordinate systems. Common geometric shapes and links of arbitrary
length, width, and depth mya be created based on existing coordinate systems and user defined lengths.
This geometry must be created in an existing motion part, which must have its mass and inertia properties
defined manually.

Application
Motion geometry may be used to quickly create visual representatios of geometry without importing
CAD data. The geometry is defined relative to existing motion coordinate systems, and must be part of
an existing parent motion part. The motion mare contains user defined mass properties that apply to the
geometry. Any of the parameters used to define the geometry may be edited to modify the geometry later
in the simulation process. The orientation, loaction, and in csome cases size depends on the coordinate
systems chosen.

Description of Fields

Field Description
Field that specifies an existing part for the geometry object. Selection of an
existing part is required for geometry creation. To create a part without any
Parent Part
reference geometry, select User Specified as the source of inertia properties in the
Part property editor.
Name Allows specification of a unique name for the box geometry object.
Field that specifies an existing coordinate system to form the center of certain
Center Coordinate
geometry, such as sphere, torus, prism, and ellipsoid. This coordinate system
System
defines the center of the first face of a cyliner or frustum.
Corner
Field that specifies an existing coordinate system to form a corner of box
Coordinate
geometry.
System
Field that specifies an existing coordinate system from which a link will extend
From Coordinate
and the orientation of the link. The link’s depth will extend along this coordinate
System
system’s Z axis, and the curved ends will be in its XY plane.
To Coordinate
Field that specifies an existing coordinate system to which a link will extend.
System
Geometry 149
Motion Geometry

Field Description
Length of the geometry extending in a particular direction. The number of
Length
available length fields depend on the type of geometry.
Depth of link geometry, which is along the Z axis of the From Coordinate System.
Depth The depth is constant throughout the link and in a direction normal to the plane
containing the curved ends.
Width of link geometry, which is also the diameter of the link’s rounded ends. The
width lies in the XY plane of the from coordinate system and is perpendicular to
Width
both the depth direction and the line connecting the coordinate systems. For more
information, see figure below.
150
Motion Geometry

Sample Forms

To create motion geometry:


1. First ensure that there are sufficient existing coordinate systems and an existing motion part for
the new geometry.
2. From the Geometry tab, select the type of geometry that you wish to create.
3. Select the necessary coordinate system(s) to define the location and orientation of the geometry.
4. Enter any additional values necessary to define the shape of the geometry. These values depend
on the type of geometry to be created, and may be edited after the geometry has been created.
5. Optionally define visualization options for the geometry.
Geometry 151
Motion Geometry

6. Click OK to create the geometry.

See Also:
• For more information on the specific tools for creating motion geometry see Geometry in the
Motion Workspace Quick Reference Help.
152
Motion Geometry
Connections 33

Connections
34
Overview

Overview
A connection is a mechanical element that connects two parts and allows relative motion of one object
with respect to another. SimXpert supports many idealized connection types, as well as joint primitives
which limit motion of two parts to certain directions.
You may select from available connection types as you select from the Connections toolbox, or you may
change connection types using the Type list box once the Connection Properties form is open.
Connections 35
Connection Specification Tools

Connection Specification Tools


In order to create connections, you must specify a location and orientation for each connection. SimXpert
includes common tools to specify the required information in a format that is consistent across all of the
connection types.

Location
The location field is a standard tool used for the definition of parts, joints, and forces. The purpose is to
provide a consistent method by which you define locations within SimXpert but relevant to the current
workbench. There are two key entities that can be used for defining locations; geometry and hardpoints.
When you choose geometry, the location is tied parametrically to that geometry. If during an update or
modification operation that geometric feature moves, the location will move with it. If the geometric
feature no longer exists, the location will be considered to have a broken reference.
When you choose hardpoints, the location is tied parametrically to the hardpoint position. If the hardpoint
position changes, the location value also will update.
Choosing Coordinate System allows selection of a coordinate system origin (and associated part) to be
used as the location. Upon choosing the coordinate system the part field is populated with the part name
36
Connection Specification Tools

corresponding to the coordinate system. Therefore, in order to use the coordinate system location method
you should ensure that the selected coordinate system is on the desired part.

Field Description
Geometry Allows selection of particular geometry, such as a vertex, center point of a
circular edge, or center of a sphere. If geometry filters are active, they will
affect the default types of picks that can be made. If multiple locations are
selected, this option will average the locations to determine a single
location.
Hardpoint Allows selection of an individual hardpoint to be used as the location.
Custom Allows the direct entry of X, Y, and Z coordinates of a position.
Coordinate System Allows selection of a coordinate system origin to be used as the location.
The corresponding part field will be populated with the part to which the
selected coordinate system belongs.
Center of Mass Location Allows selection of a part’s center of mass as the location.
Connections 37
Connection Specification Tools

Figure 1 Location Specification Methods

Orientation
The orientation field is a standard tool used for the definition of parts, joints, and forces. The purpose is
to provide a consistent method by which you define a direction vector within SimXpert but relevant to
the current workbench.
38
Connection Specification Tools

Depending on the entity, you may not need to define orientation (as in the case of the fixed joint), define
only one axis (the z-axis), define 2 axes, or have a user specified input.

Field Description
Global Oriented with global coordinates. (Default for optional orientation.)
Z-axis Only Oriented with a single axis, which will be specified below.
2 axes Oriented with two axes, which will be specified below.
Euler Angles Euler angles may be input for Body 313 rotation.
Coordinate System Select existing coordinate system to define orientation.
Connections 39
Connection Specification Tools

The following options are used to specify an axis:

Field Description
Geometry Allows selection of geometric features to orient axis. Available selections
include face normal, cylinder axis, coordinate frame axis, and linear edge.
Orient normal to plane Allows selection of three hardpoints to define a plane normal to the desired
vector.
Orient axis along line Allows selection of two hardpoints to define a direction along which the
vector will be oriented.

Figure 2 Orientation Specification Methods

Coordinate Triad Visualization:


While editing an object, a coordinate triad will be displayed to show the location and orientation
information pertinent to that entity. The triad will only be displayed while the property editor is active.
The following image displays a sample coordinate triad:
40
Connection Specification Tools
Connections 41
Bushings

Bushings
A bushing is a connection that represents the forces acting between two parts over a distance. The
bushing applies a force and a torque to the components it connects. You may specify the stiffness and
damping values in each direction for the bushing in the connector properties form.

Figure 3 Bushing Schematic Representation

Description of Fields

Field Description
Name Name of connector to be created
Define Using Checkbox that when enabled replaces the part and location definition
Coordinate Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Bushing
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint
Stiffness Stiffness values in each direction, both in translation and rotation
Damping Damping values in each direction, both in translation and rotation
42
Bushings

Sample Forms:
Connections 43
Bushings

To create a bushing connector:


1. From the Connections toolbox, select Bushing.
2. Under the Definition selection, enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the bushing. Select the part
from either the tree or the canvas. If desired, you may select the ground part by clicking the ground
icon.
4. Repeat the selection process for the second part.
5. Choose the location for the bushing using the location options. See also Location under
Connection Specification Tools.
6. Specify the orientation of the bushing. See also Orientation under Connection Specification
Tools.
7. Select the Bushing Properties tab and enter the desired stiffness and damping values in each
direction. Alternatively, you may select an existing bushing properties object for the bushing to
refer to for its stiffness and damping values.
8. Click OK. The joint will appear in the tree and in the canvas.
44
Constant Velocity Joints

Constant Velocity Joints


A constant-velocity joint allows two rotations on one part with respect to another part, while remaining
coincident and maintaining a constant velocity through the spin axis.

Figure 4 Example of Constant-Velocity Joint

You must specify an axis of rotation for each part connected by the joint.

Description of Fields

Field Description
Name Name of connector to be created
Define Using Checkbox that when enabled replaces the part and location definition
Coordinate Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Constant Velocity.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
Connections 45
Constant Velocity Joints

Sample Form

To create a constant velocity joint:


1. From the Connections toolbox, select Constant Velocity.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools.
46
Constant Velocity Joints

6. Specify the orientation of the axis about which each part may rotate. See also Orientation under
Connection Specification Tools.
7. Click OK. The joint will appear in the tree and in the canvas.
Connections 47
Cylindrical Joints

Cylindrical Joints
A cylindrical joint allows both relative rotation as well as relative translation of one part with respect to
another part. A cylindrical joint can be located anywhere along the axis about which the parts can rotate
or slide with respect to each other.

Figure 5 Example of Cylindrical Joint

The orientation of the cylindrical joint defines the direction of the axis about which the parts can rotate
or slide along with respect to each other. The rotational axis of the cylindrical joint is parallel to the
orientation vector and passes through the location.

Description of Fields

Field Description
Name Name of connector to be created
Define Using Checkbox that when enabled replaces the part and location definition
Coordinate Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Cylindrical.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
48
Cylindrical Joints

Sample Form

To create a cylindrical joint:


1. From the Connections toolbox, select Cylindrical.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools.
6. Specify the orientation of the axis about which the parts may rotate and translate. See also
Orientation under Connection Specification Tools.
7. Click OK. The joint will appear in the tree and in the canvas.
Connections 49
Fixed Joints

Fixed Joints
A fixed joint locks two parts together so they cannot move with respect to each other. The effect is similar
to defining two parts as a single part. If you want to have the two parts move relative to each other in a
future simulation, simply delete the fixed joint and use another type of joint.

Figure 6 Fixed Joint

For a fixed joint, the location and orientation of the joint often do not affect the outcome of the simulation.
In these cases, you can place the joint at a location where the graphic icon is easily visible. However,
occasionally the placement of the fixed joint can allow force moments to become quite large depending
on where you place the joint, as shown in this example. In this case, be sure to place it where you get the
results you want.

Figure 7 Location of Fixed Joint on Beam


50
Fixed Joints

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Fixed.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.

Sample Form
Connections 51
Fixed Joints

To create a fixed joint:


1. From the Connections toolbox, select Fixed.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. Be aware that the forces in the joint
will depend on where it is located. See also Location under Connection Specification Tools. No
orientation is necessary.
6. Click OK. The joint will appear in the tree and in the canvas.
52
Hooke Joints

Hooke Joints
A hooke joint is a two-degree-of-freedom joint that allows rotation about two axes: xi, the x-axis of the
I marker and yj, the y-axis of the J marker (see the figure below).

Figure 8 Hooke Joint

For the HOOKE joint, ADAMS/Solver (C++) superimposes the origins of the I and J markers and
constraint markers. It also keeps the x-axis of the I marker perpendicular to the y-axis of the J marker so
they outline the crosspiece of the joint. The origins of the I and J markers are at the center of the cross.
The HOOKE joint functions the same as the universal joint, but uses different marker orientations.

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Hooke.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
Connections 53
Hooke Joints

Sample Form

To create a hooke joint:


1. From the Connections toolbox, select Hooke.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. Be aware that the forces in the joint
will depend on where it is located. See also Location under Connection Specification Tools.
6. Define the joint orientation.
54
Hooke Joints

7. Click OK. The joint will appear in the tree and in the canvas.
Connections 55
Revolute Joints

Revolute Joints
A revolute joint allows the rotation of one part with respect to another part about a common axis. The
revolute joint can be located anywhere along the axis about which the joint’s parts can rotate with respect
to each other.
The orientation of the revolute joint defines the direction of the axis about which the joint’s parts can
rotate with respect to each other. The rotational axis of the revolute joint is parallel to the orientation
vector and passes through the location.

Figure 9 Example of Revolute Joint

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Revolute.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
56
Revolute Joints

Sample Form

To create a revolute joint:


1. From the Connections toolbox, select Revolute.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools.
6. Specify the orientation of the axis of revolution using the orientation options. See also Orientation
under Connection Specification Tools.
7. Click OK. The joint will appear in the tree and in the canvas.
Connections 57
Spherical Joints

Spherical Joints
A spherical joint allows the free rotation about a common point of one part with respect to another part.
The location of the spherical joint determines the point about which the joint’s parts can pivot freely with
respect to each other.

Figure 10 Spherical Joint

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Spherical.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
58
Spherical Joints

Sample Form

To create a spherical joint:


1. From the Connections toolbox, select Spherical.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools. No orientation is necessary.
6. Click OK. The joint will appear in the tree and in the canvas.
Connections 59
Translational Joints

Translational Joints
A translational joint allows one part to translate along a vector with respect to another part. The parts can
only translate, not rotate, with respect to each other.

Figure 11 Example of Translational Joint

When you create a translational joint, you specify its location and orientation. The location of a
translational joint does not affect the motion of the joint. It simply determines where the joint will be
placed. The orientation of the translational joint, however, determines the direction of the axis along
which the parts can slide with respect to each other. The direction of the motion of the translational joint
is parallel to the orientation vector and passes through the location.

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Translational.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
60
Translational Joints

Sample Form

To create a translational joint:


1. From the Connections toolbox, select Translational.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools.
6. Specify the orientation of the axis about which the two parts may translate. See also Orientation
under Connection Specification Tools.
7. Click OK. The joint will appear in the tree and in the canvas.
Connections 61
Universal Joints

Universal Joints
A universal joint allows the rotation of one rigid body to be transferred to the rotation of another rigid
body. This joint is particularly useful when transferring rotational motion around corners, when you need
to simulate the non-constant velocity of a physical universal joint, or when transferring rotational motion
between two connected shafts that are permitted to bend at the connection point (such as the drive shaft
on an automobile).

Figure 12 Example of a Universal Joint


The location point of the universal joint represents the connection point of the two parts. The cross bars
identify the axes about which the two parts are permitted to rotate with respect to each other.

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Universal.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
62
Universal Joints

Sample Form

To create a universal joint:


1. From the Connections toolbox, select Universal.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools.
Connections 63
Universal Joints

6. Specify the orientation of both axes of revolution using the orientation options. See also
Orientation under Connection Specification Tools.
7. Click OK. The joint will appear in the tree and in the canvas.
64
Screw Joints

Screw Joints
A screw joint is a five-degree-of-freedom joint that constrains the translation of the I marker to its rotation
(see the figure below).
W

Figure 13 Example of Screw Joint

When you create a screw joint, you specify its location, orientation, and pitch. For the SCREW joint, the
z-axis of the I marker and the z-axis of the J marker must always be parallel and co-directed. Although
the SCREW joint does not enforce this parallelism, the chain of parts and joints that connects the two
markers should. During simulation, the I marker displacement along the J marker z-axis is a function of
the relative angle of the x-axis of the I marker with respect to the x-axis of the J marker. ADAMS/Solver
(C++) measures a positive rotation according to the right-hand rule. For every full rotation, the
displacement of the I marker along the z-axis of the J marker is equal to the value of PITCH. If the angle
of rotation is zero, the translational displacement may be zero or any multiple of PITCH.

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Connections 65
Screw Joints

Field Description
Type Type of connector, in this case Screw.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
Pitch Pitch of the screw joint. Entered value is the amount of translation for every
full rotation of the J marker.

Sample Form

To create a screw joint:


1. From the Connections toolbox, select Screw.
2. Enter a name for the new connector.
66
Screw Joints

3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools.
6. Specify the orientation of the axis about which the two parts may translate. See also Orientation
under Connection Specification Tools.
7. Define the pitch of the screw joint. This is the translation that occurs for every full rotation of the
joint. Positive direction is determined by the right hand rule.
8. Click OK. The joint will appear in the tree and in the canvas.
Connections 67
Rack and Pinion Joints

Rack and Pinion Joints


A 5 degree-of-freedom joint that constrains the rotational displacement of the I marker (center of pinion)
to the translational displacement of the J marker (rack) and measures both displacements with respect to
the J marker. The z-axis of the pinion must be parallel to and co-directed with the x-axis of the rack. The
separation between the two axes should be 1/2 the pitch diameter of the pinion.

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of connector, in this case Rackpin.
Part 1 First part to be connected by joint.
Part 2 Second part to be connected by joint.
Pitch Diameter Diameter of the pinion gear, such that the translation of the rack is the
circumference of this diameter for each full turn of the pinion. Also note
that the seperation between the I and J markers should be 1/2 this pitch
diameter.
68
Rack and Pinion Joints

Sample Form

To create a rack and pinion joint:


1. From the Connections toolbox, select Rackpin.
2. Enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected by the joint. Select the part from
either the tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint using the location options. See also Location under Connection
Specification Tools.
Connections 69
Rack and Pinion Joints

6. Specify the orientation of the axis about which the two parts may translate. See also Orientation
under Connection Specification Tools.
7. Define the pitch diameter of the rack and pinion joint. This diameter times Pi is is the translation
that occurs for every full rotation of the joint.
8. Click OK. The joint will appear in the tree and in the canvas.
70
Joint Primitives

Joint Primitives
A joint primitive places a restriction on relative motion, such as restricting one part to move parallel to
another part. The joint primitives do not have physical counterparts as the idealized joints do. You can,
however, combine joint primitives to define a complex constraint that cannot be modeled using the
idealized joints. In fact, you can use the joint primitives to create any idealized joint.
The different types of joint primitives that are available are inline, inplane, orientation, parallel axes, and
perpendicular axes.

Inline
Constrains one part so that it can only move along a straight line defined on a second part as shown below.
In the figure, the solid circle indicates the first part that the joint connects and the hollow circle indicates
the second part that the joint connects. The first part is constrained relative to the second part.

The location of the inline joint on the


first part must remain on the z-axis of
the second part.

Inplane
Constrains one part so that it can only move in a plane of a second part as shown below. In the figure, the
solid circle indicates the first part that the joint connects and the hollow circle indicates the second part
that the joint connects. The first part is constrained relative to the second part.

The origin of the inplane joint on the


first part must remain in the xy plane
of the second part.

Orientation
Constrains one part so that it cannot rotate with respect to a second part as shown below. In the figure,
the solid circle indicates the first part that the joint connects and the hollow circle indicates the second
Connections 71
Joint Primitives

part that the joint connects. The first part is constrained relative to the second part. The axes of the
coordinate systems must maintain the same orientation.

The location of the origins of the


coordinate systems does not matter.

Parallel Axes
Constrains the z-axis of one part so that it remains parallel to the z-axis of a second part, as shown below.
In the figure, the solid circle indicates the first part that the joint connects and the hollow circle indicates
the second part that the joint connects. The first part is constrained relative to the second part.

The first part can only rotate about one axis


with respect to the coordinate system of the
second part.

Perpendicular Axes
Constrains one part so that it remains perpendicular to the z-axis of a second part as shown below. In the
figure, the solid circle indicates the first part that the joint connects and the hollow circle indicates the
second part that the joint connects. The first part is constrained relative to the second part.

The first part can rotate about two axes with


respect to the second part.
72
Joint Primitives

Description of Fields

Field Description
Name Name of connector to be created
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Type Type of joint primitive connector
Part 1 First part to be connected
Part 2 Second part to be connected

Sample Form
Connections 73
Joint Primitives

To create a primitive connection:


1. From the Connections toolbox, select Primitives and select the type of joint primitive you wish to
create.
2. Under the Definition selection, enter a name for the new connector.
3. Click in the Part1 list box and select the first part to be connected. Select the part from either the
tree or the canvas. If desired, you may select the ground part by clicking the ground icon.
4. Repeat the selection process for the second part.
5. Choose the location for the joint primitive using the location options. See also Location under
Connection Specification Tools.
6. Specify the orientation of the joint primitive. See also Orientation under Connection Specification
Tools.
7. Click OK. The joint primitive connector will appear in the tree and in the canvas.
74
Beam

Beam
Beams represent the force applied by a massless beam placed between specific locations in the model.
The beam force transmits forces and torques between the two parts in accordance with Timoshenko beam
theory. You define values of the beam's physical properties, and Adams/Solver calculates the matrix
entries defining the forces that the beam produces.

Application:
Beams allow you to introduce loading into the model based on the section and material properties of a
beam.
For every beam force that you create you specify the following information:
1. Between which parts the force is applied.
2. At what points the force is applied.
3. The orientation of the beam at each part.
4. The material properties of the beam, including Young’s modulus and Poisson Ratio.
5. The cross-section properties of the beam section, including shape and dimensions.

Description of Fields:
Definition:

Field Description
Name Name of beam force
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems to be connected by the
connection. Cleared by default.
Part 1 Part which the force will be applied to
Part 2 Second part which the force will be applied to.
Free Length Option button for defining the free length of the beam automatically based
on the selected locations or manually by entering a length value.
Location 1 Defines the root location of the beam.
Orientation 1 Defines the root orientation of the beam.
Location 2 Defines the end location of the beam.
Orientation 2 Defines the end orientation of the beam.
Function Allows definition of magnitude of applied force. Available options are
constant, expression, harmonic, spline, and step functions. See also
Function Specification tools.
Connections 75
Beam

Section Properties:

Field Description
Icons are available to select from a variety of cross section shapes or a
Section Type
custom option, where you enter numerical section properties.
Current Cross Section
Displays the type of cross section selected from the icons above.
Type
Dimensions for the selected cross section, as illustrated in the figure on the
right side of the form. The number of required dimensions depends on the
Dim i
section type selected. For the Custom section type, fields are available for
moments of inertia, shear area ratio, and cross sectional area.
Young’s Modulus Field that defines the Young’s Modulus of the beam material.
Poisson Ratio Field that defines the poisson ratio of the beam material.
Enter a damping value to establish a ratio for calculating the structural
Damping Ratio damping matrix for the beam. To obtain the damping matrix, Adams/Solver
multiplies the stiffness matrix by the value you enter for the damping ratio.

Sample forms:
Definition:
76
Beam

Section Properties:
Connections 77
Beam

To create a beam force:


1. From the Connections toolbox, select Beam.
2. Enter a name for the beam force.
3. Select the first part that the force will be applied to.
78
Beam

4. Select the second part that the force will be applied to.
5. Select an option for defining the free length of the beam. Enter a value for the length if Custom is
selected.
6. Select the location for the root of the beam under Location 1.
7. Select the orientation of the root of the beam with Orientation 1.
8. Select the location for the end of the beam under Location 2.
9. Select the orientation of the end of the beam with Orientation 2.
10. Select the Section Properties option on the left of the form.
11. Choose from the available section types or select Custom to enter inertia and area values directly.
12. Enter the DIM values corresponding to the section image shown on the right of the form.
13. Enter Material properties (Young’s Modulus, Poisson Ratio, and Damping Ratio).
14. Click OK to create the force. The force will appear in the tree and in the canvas.
Connections 79
Field

Field
The field applies translational and rotational action-reaction forces between two locations which are
defined by stiffness and damping matrices.

Application:
To specify a linear field, use the arguments in the FIELD statement to specify constants for the six-by-
six stiffness matrix, a preload force, a six reference lengths, and a six-by-six damping matrix. The
stiffness and damping matrices must be positive semidefinite, but need not be symmetric. To specify a
nonlinear field, use the user-written subroutine FIESUB to define the three force components and three
torque components and use the argument FUNCTION=USER(r1[,...,r30]) to pass constants to FIESUB.

Description of Fields:

Definition:

Field Description
Name Name of field. Set to Field_# by default.
Define Using Checkbox that when enabled replaces the part and location definition options with
Coordinate directly specified coordinate systems to be connected by the connection. Cleared
Systems by default.
Part 1 First part connected by the field.
Part 2 Second part connected by the field.
Attachments Option button that allows one or two attachment location to be specified.
Location 1 Selected location for attachment to Part 1.
Location 2 Selected location for attachment to Part 2.
Verify Icon that verifies that the expression entered is in correct Motion Solver syntax.
Coordinate
Field that selects the coordinate system to be the location of the general constraint.
System
Location(s) Fields that selects the location(s) where the field is applied.
Orientation Fields that define the orientation of the field.
80
Field

Field Properties:

Field Description
Drop-down that selects method to define stiffness and damping. Available options
are User Entered Values (where the matrix coefficients are entered manually) and
Method
User Subroutine (where the user selects a subroutine to define the matrices). User
Entered Values is the default.
User Entered Values
Field table that defines the values in the stiffness matrix. Additional rows may be
k Matrix added or removed by using the “+” or “-” icons to the right of the fields. Available
if the method is set to user entered values.
Drop-down that selects method to define damping. Available options are Damping
Ratio (where the damping matrix is defined by multiplying the stiffness matrix by
damping Method
a user specified damping ratio) and Damping Matrix (where the user manually
defines the damping matrix). User Entered Values is the default.
Field that defines the ratio of the damping matrix to the stiffness matrix. Available
c Ratio
only if the damping method is set to damping ratio.
Field table that defines the values in the damping matrix. Additional rows may be
c Matrix added or removed by using the “+” or “-” icons to the right of the fields. Available
only if the damping method is set to damping matrix.
Fields that define three preload force components transferred by the field element
t Preload (X, Y, when the I and J markers are separated/misaligned by the values specified in the t
and Z) Offset text boxes. The terms are the force components along the x-, y-, and z-axis
of the J marker. Entering values for force preload is optional.
Fields that define three preload torque components transferred by the field
r Preload (X, Y, element when the I and J markers are separated/misaligned by the values specified
and Z) in the r Offset text boxes. The terms are the torque components about the x, y-, and
z-axis of the J marker.
Field that defines the translation at preload to define three reference lengths. This
t Offset (X, Y, and
is the nominal (x0, y0, z0) position of the I marker with respect to the J marker,
Z)
resolved in the J marker coordinate system.
Field that defines the rotation at preload to define the reference rotational
r Offset (X, Y, and
displacement of the axes of the I marker with respect to the J marker, resolved in
Z)
the J marker axes (a0, b0, and c0) (specified in radians).
User Subroutine
Field table that specifies parameters to be passed to a user subroutine if the method
Parameters
is set to user subroutine.
Field table that specifies a user subroutine to define the stiffness matrix if the
Routine
method is set to user subroutine.
Connections 81
Field

Sample form:
Definition Tab:
82
Field

Field Properties Tab:

To create a field:
1. From the Connections tab, select Field.
2. Enter a name for the Field.
3. Select parts and locations upon which the field will act.
4. Define the orientation for the field.
5. On the Field Properties tab, enter the stiffness, damping, and offset values to define the field.
6. Click OK to create the field. The field will appear in the tree and in the canvas.
Connections 83
General Constraint

General Constraint
The General Constraint (GCON) statement introduces a constraint equation that must be satisfied by the
Motion solver during the simulation. This allows you to specify both holonomic and non-holonomic
constraints.

Application:
While the JOINT statement describes a physically recognizable combination of constraints that are used
to connect bodies together, the GCON statement enables you to define an arbitrary constraint specific to
a particular model. The GCON statement is more general and can be used to equivalently define the
existent JOINT elements.

Description of Fields:

Field Description
Name Name of general constraint. Set to General_Constraint_# by default.
Field that defines the expression for the general constraint. To define the
Expression
expression using the Expression Builder, click the icon to the right of the text.
Launch Function
Expression Icon that opens the Expression Builder to assist in defining solver functions.
Builder
Verify Motion
Icon that verifies that the expression entered is in correct Motion Solver syntax.
Solver Syntax
Coordinate
Field that selects the coordinate system to be the location of the general constraint.
System
Sample form:
84
General Constraint

To create a general constraint:


1. From the Connections tab, select General Constraint.
2. Enter a name for the general constraint.
3. Enter an expression to define the constraint. Icons are available to launch the function expression
builder and to verify the function.
4. Select a coordinate system that the constraint will be applied to.
5. Click OK to create the constraint. The constraint will appear in the tree and in the canvas.
Connections 85
Couplers

Couplers
Couplers relate the translational and/or rotational motion of two joints. You may enter values for motion
of each joint which the coupler will make equivalent.

Figure 14 Coupler Joint


Although you can couple at most three joints with a single coupler, more than one coupler can come from
the same joint, as shown in the figure above. You select the driver joint, the joint to which the second
joint is coupled, and the coupled joint, the joint that follows the driver joint.

Description of Fields:

Field Description
Allows specification of a unique name for each coupler. Automatically populated
Name
with CouplerJoint_###.
Active Selects whether coupler will be included in the simulation.
Type Select whether the coupler joins two or three joints.
By Displacements allows specification of displacement values for each joint, while
Method
By Scales allows specification of scale factors relative to the first joint.
First Joint First joint to be connected by coupler, the driver joint.
Motion Type Select translational or rotational motion.
Enter equivalent motion for By Displacements method, or scale factor for By Scales
Value
method.
Second Joint Second joint to be connected by the coupler, the coupled joint.
Motion Type Select translational or rotational motion.
Enter equivalent motion for By Displacements method, or scale factor for By Scales
Value
method.
Third Joint Third joint to be connected by the coupler, enabled if Type is set to 3 Joints.
Motion Type Select translational or rotational motion.
Enter equivalent motion for By Displacements method, or scale factor for By Scales
Value
method.
86
Couplers

Sample Form

To create a coupler:
1. From the Connections toolbox, select Coupler and then select Joint Coupler.
2. Enter a name for the new connector.
3. Select from 2 Joint or 3 Joint for the type.
4. Select a coupling method. To enter equivalent joint motions, select By Displacements. To enter
scale factors for the joint motions, select By Scales.
5. Click in the Joint1 list box and select the first joint to be connected. Select the joint from either
the tree or the canvas.
6. Repeat the selection process for the second joint and third joint if necessary.
7. Select Freedom types for each joint (translational or rotational) and enter a displacement value
(for By Displacements) or a Scale Factor (for By Scales).
8. Click OK. The coupler will appear in the tree and in the canvas.
Connections 87
Gear

Gear
Gears are a special form of coupler that relate the translational and/or rotational motion of two joints. The
relationship between the motion of the two joints is defined either by a specified reduction ratio or by
selecting a contact point shared by the two joints.

Description of Fields:

Field Description
Allows specification of a unique name for each coupler. Automatically populated
Name
with Gear_###.
Active Selects whether gear will be included in the simulation.
Type Select whether the gear is defined by a reduction ratio or by a contact point location.
Input Joint First joint to be connected by gear coupler, the driver joint.
Input Freedom Select translational or rotational motion.
Enter equivalent motion for By Displacements method, or scale factor for By Scales
Value
method.
Output Joint Second joint to be connected by the gear coupler.
Output
Select translational or rotational motion.
Freedom
Specify the reduction ratio between the two joints. The reduction ratio is based on
the following equation:
Reduction
Ratio input motion = reduction_ratio * output motion

Available only if the Type is set to Reduction.


Location form available to define contact point location if the Type is set to Contact
Location Point. With this method no ratio is entered, the ratio is calculated by the solver based
on the contact point.
88
Gear

Sample Form:

To create a gear:
1. From the Connections toolbox, select Coupler and then select Gear.
2. Enter a name for the new gear connector.
3. Select from Reduction or Contact Point for the type.
4. Click in the Input Joint list box and select the first joint to be connected. Select the joint from
either the tree or the canvas.
5. Repeat the selection process for the Output Joint.
6. Select Freedom types for each joint (translational or rotational) and enter a Reduction Ratio (for
Reduction type) or select a location (for Contact Point method).
7. Click OK. The gear will appear in the tree and in the canvas.
Contacts 77

Contacts
78
Overview

Overview
You may specify contact between a point and curve, two curves, and two bodies. The contact tab is
consistent across all of the contact types.

Creating Contacts
Description of Fields

Field Description
Method Impact or Restitution method may be selected for contact calculation.
Specifies a material stiffness that you can use to calculate the normal force for the
impact model.
Stiffness In general, the higher the STIFFNESS, the more rigid or hard the bodies in contact
are. Also note that the higher the STIFFNESS is, the harder it is for an integrator
to solve through the contact event.
Stiffness exponent for contact. The motion solver models normal force as a
nonlinear spring-damper. If PEN is the instantaneous penetration between the
contacting geometry, the solver calculates the contribution of the material
Exponent stiffness to the instantaneous normal forces as STIFFNESS *
(PENALTY)**EXPONENT. For more information, see the IMPACT function.

Exponent should normally be set to 1.5 or higher. For more information, refer to
the IMPACT function.
Damping value that defines the damping properties of the contacting material.
Damping You should set the damping coefficient is about one percent of the stiffness
coefficient.
Penetration is the depth at which maximum damping occurs. The motion solver
uses a cubic STEP function to increase the damping coefficient from zero, at zero
Penetration penetration, to full damping when the penetration is this value. A reasonable value
for this parameter is 0.01 mm. For more information, refer to the IMPACT
function.
Contact friction may be enabled for both static and dynamic, dynamic only, or
Friction
disabled completely.
Specifies the maximum velocity for static friction or the minimum for dynamic
Velocity
friction.
Coefficient Specifies a unique friction coefficient for static and dynamic friction.
Contacts 79
Overview

Sample Form

Extended Definition
During a simulation, the first step is to find out if the contact is occurring between the geometry pairs
identified in the CONTACT statements. If there is no contact, there is no force. If contact exists, the
geometry modeling system calculates the location of the individual contact points and the outward
normals to the two geometries at the contact point. The motion solver calculates the normal and slip
velocities of the contact point from this information. The solver then uses the velocities to calculate the
contact force at each individual contact.

Contact Detection Algorithm


To greatly simplify the contact detection algorithm, the motion solver assumes that the volume of
intersection between two solids will be much, much less than the volume of either solid. This means that,
for example for a sphere in a V-groove, the solver algorithm breaks down when the two contact volumes
merge into one. This assumption is not as drastic as it may first appear. The reason is that most users are
interested in contact between rigid bodies (that is, bodies that do not undergo a large deformation). Also,
rigid bodies generally do not penetrate very far into one another. Note that we do not recommend that
you use the contact detection algorithm in the modeling of very soft bodies.
After contact occurs between two solids, the motion solver computes the volumes of intersection. There
may be only one volume of intersection, or there may be multiple volumes of intersection (this would
correspond to multiple locations of contact). In this discussion, we assume that there is only a single
volume of intersection. The algorithm is the same for every intersection volume.
80
Overview

Once there is contact, the motion solver finds the centroid of the intersection volume. This is the same as
the center of mass of the intersection volume (assuming the intersection volume has uniform density).
Next, the motion solver finds the closest point on each solid to the centroid. The distance between these
two points is the penetration depth.
The motion solver then puts this distance into the formula:

F = K*(distance)n
where:
• K - material stiffness
• n - exponent
• F - force

to determine the contact force due to the material stiffness (there can also be damping and friction forces
in the contact).
For example, if you apply this algorithm to a sphere on a plate, the intersection volume is some type of
spherical shape with a flat side. The centroid of this volume can be computed (this is where most of the
time is spent in the algorithm). It will be below the plate and inside the sphere. The nearest point on the
plate (to the centroid) and the nearest point on the sphere (to the centroid) can also be computed. In this
case, the line between them will pass through the center of the sphere (this will also be the direction in
which the contact force acts).
Again, the algorithm can handle the case of a sphere in a V-groove. There will be two volumes of
intersection and two separate forces will be applied to sphere and to the V-groove (equal and opposite
forces).

Contact Calculation Methods


Two available methods for contact force calculation are:
• Restitution Method - Is characterized by contact for short periods of time. It is also known as
impulsive contact. Two geometries approach each other, undergo a collision, and separate as a
result of the contact. The collision results in the generation of an impulse, that affects the
momentum of the colliding bodies. The solver develops an estimate of the contact force by
modeling the local deformation behavior of the contacting geometries.
Energy loss occurs according to the specified restitution coefficient, which is the ratio of the
compression/decompression impulses.
Intermittent contact is characterized by two distinct phases. The first is compression, where the
bodies continue to approach each other even after contact occurs. The kinetic energy of the
bodies is converted to potential and dissipation energy of the compressing contact material.
When the entire kinetic energy is transformed, the potential energy stored in the material
reverses the motion of the contacting bodies. Potential energy is transformed again to dissipation
energy and kinetic energy. This is known as the decompression phase. It is important to note that
energy losses due to dissipation occur in both phases.
Contacts 81
Overview

The restitution method is based on impulse momentum theory where the velocity field is
discontinuous over the contact event. Discontinuous velocity means undefined acceleration and
hence undefined contact forces. You should not use restitution if you're interested in contact
force magnitudes or when you're in a situation where velocity doesn't dominate the event (such
as persistent contact). Do use restitution when you're interested in having a well-defined
impulse.
In summary, the restitution method will give the proper energy conservation characteristics, but
the contact force is not well defined.
• IMPACT method - Is characterized by contact for relatively long periods of time. External forces
acting between the two bodies serve to maintain continuous contact. Persistent impact contact is
modeled as a nonlinear spring damper, the stiffness modeling the elasticity of the surfaces of
contact, and the damping modeling the dissipation of energy. Two bodies are said to be in
persistent contact when the separation velocity, after a collision event, is close to zero. The
bodies, therefore, cannot separate after the contact.
Contact forces are calculated at each individual contact point. Individual contributions are
summed up to compute the net response of the system to the contact event.
The IMPACT method uses displacement and velocity states to determine the contact force.
Unlike restitution, the contact "event" can be active through several integration steps. For
example we might solve for a few configurations during a typical impact:
• When the contact first becomes active, the ball has a velocity downwards and there is minimal
penetration, hence a small restoring force
• When the ball is fully penetrated and its velocity is zero there is maximum contact force (the
component from the spring term of the IMPACT).
• Situation similar to (1) where ball is just about to leave contact event and has mimimum
penetration, some upward velocity and restoring force is dropping off.
In this situation, if ERROR and HMAX were used to finely discretize the event, the contact
forces might be useful as the 'event' is described. It is realistic to consider the contact forces
developed in this scenario.

Contact Normal Force Calculation


Two models for normal force calculations are available in the motion solver:
• IMPACT function model
• Coefficient of restitution or the POISSON model

Both force models result from a penalty regularization of the normal contact constraints. Penalty
regularization is a modeling technique in mechanics, in which a constraint is enforced mathematically by
applying forces along the gradient of the constraint. The force magnitude is a function of the constraint
violation.
Contact between rigid bodies theoretically requires that the two bodies not penetrate each other. This can
be expressed as a unilateral (inequality) constraint. The contact force is the force associated with
82
Overview

enforcing this constraint. Handling these auxiliary constraint conditions is usually accomplished in one
of two ways, either through introduction of Lagrange multipliers or by penalty regularization.
For contact problems, the latter technique has the advantage of simplicity; no additional equations or
variables are introduced. This is particularly useful when treating intermittent contact and algorithmically
managing active and inactive conditions associated with unilateral constraints. Additionally, a penalty
formulation is easily interpreted from a physical standpoint. For example, the magnitude of the contact
reaction force is equal to the product of material stiffness and penetration between contacting bodies,
similar to a spring force. For these reasons, the motion solver uses a penalty regularization to enforce all
contact constraints. The disadvantage of the penalty regularization, however, is that you are responsible
for setting an appropriate penalty parameter, that is, the material stiffness. Furthermore, a large value for
the material stiffness or penalty parameter can cause integration difficulties.

Contact Prediction
Contact is fundamentally a discontinuous event. When two geometries come into contact:
• A large normal force or an impulse is generated.
• The velocities of the bodies change sign.
• The accelerations are almost discontinuous, and have a large spike. This spike represents the
impulse that was generated due to the contact.
The bodies usually separate because of the contact forces or impulses. Numerical integrators assume that
the equations of motion are continuous. A contact event is, therefore, quite hard for an integrator to solve
through. The motion solver contains a contact predictor that predicts the onset of contact and controls the
integrator step size accordingly. The following paragraphs briefly summarize the contact prediction
algorithm.
When the motion solver detects a new contact, it calculates the penetration and penetration velocity
between the two geometries. From these two values the solver estimates a more refined contact time. The
solver rejects the current time step and uses the refined step size to accurately sense the onset of contact.
Furthermore, the integrator order is set to one, so that the motion solver does not use the time history of
the system to predict the future behavior of the system.
This algorithm essentially ensures that:
• The penetration for a new contact is small.
• The integrator is at first order when the contact event occurs.
• The integrator is taking small time steps.

Impact Function in Contact


Below is the syntax for IMPACT function:
IMPACT(q, q, q0, k, e, cmax, d)
where:
Contacts 83
Overview

• q - Actual distance between the two objects (defined with a displacement function)
• q - Time rate of change of the variable q
• q0 - Trigger distance used to determine when the contact force turns on and off; it should be
specified as a real, constant value
• k - Stiffness coefficient
• e - Stiffness force exponent
• c - Damping coefficient
• d - Damping ramp-up distance
84
Overview

The spring and damping forces from the impact vary with penetration depth as follows:
Contacts 85
Point-Curve Contact

Point-Curve Contact
The point-curve contact represents the contact force between a curve and a point. It can be used to create
a force based contact (which allows lift off and may use the restitution or impact contact methods)or a
constraint based contact which forces the two entities to remain in contact. You can use it to model the
contact between a cam and a knife-edge follower.

Application
The point-curve contact models the contact between a single point defined on one part and a curve
defined on a second part. This contact may either be constraint based or force based depending upon the
situation to be modeled.

Constraint Based
The motion solver models the contact as a constraint which constrains the two entities to be in contact
with eachother. Initial conditions may be defined for the constraint. Penetration or lift off are not allowed
between the entites and friction forces are not calculated.

Force Based
A force based contact allows lift-off and takes into account dynamic and static friction. Either the impact
or restitution contact methods may be used, depending on the duration of the contact and desired output.
Contact forces may be obtained from the impact method, but depend highly on step size. For more
information on contact force methods, see Contact Calculation Methods.

Description of Fields

Field Description
Name Field that specifies user defined name for the contact
Option button that defines whether the contact will be constraint based or force
based. The options under the contact tab (including contact friction) are only
Type
available for force based contact. Initial conditions may only be specified for
constraint based contact.
86
Point-Curve Contact

Point:

Field Description
Part Part that contains the point to participate in the contact

Location:

Field Description
Method Allows selection of the method to define location of the point in contact.
Allows selection of geometric point locations, such as a vertex, center point of a
Geometry circular edge, or center of a sphere. If geometry filters are active, they will affect
the default types of picks that can be made.
Hardpoint Allows selection of an individual hardpoint to be used as the location.
Custom Allows the direct entry of X, Y, and Z coordinates of a position.
Coordinate
Allows selection of a coordinate system origin to be used as the location.
System
Center of
Mass Allows selection of a part’s center of mass as the location.
Location

Curve:

Field Description
Drop-down that allows selection of curves defined by Geometry or curves
Method
defined mathematically via the System Elements toolbox.
Geometry
Part that contains the curve to participate in the contact. Available if Method
Part
is set to Geometry
Features Curve on selected part which point will contact in Geometry contact method.
Reverses curve normal direction. The curve normal points away from the
Flip solid side of the curve (it points away from the side of the curve that other
curves cannot penetrate).
Points Per Drop-down and field that determine the number of points evaluated along a
Curve or geometric curve. Setting to Points Per Curve specifies the number of points
Curvature directly, while Curvature tolerance defines a maximum deviation for the point
Tolerance to point path versus the original curve location.
Curve
Field for selection of a predefined non-geometric curve. Available if Method
Curve
is set to Curve.
Contacts 87
Point-Curve Contact

Sample Form

To create a point-curve contact:


1. From the Contact toolbox, select Point-Curve.
2. Click in the Point Part list box and select the part with the point to make contact. Select the part
from either the tree or the canvas.
3. For the location, select the point that will make contact.
4. Select a Method for the curve selection between Geometry and Curve, which uses predefined non-
geometric curves.
5. For the Geometry method, click in the Curve Part list box and select the part with the curve to
make contact.
88
Point-Curve Contact

6. Select the curve to be used for either method. For a geometric curve, select Points per curve or
curvature tolerance and enter a value to define how points will be distributed along the curve.
7. Select the Contact tab on the Properties form to define the contact properties.
8. Click OK to create the contact. The contact will appear in the tree and in the canvas.
Contacts 89
Curve-Curve Contact

Curve-Curve Contact
The curve-curve contact represents the contact force between two curves. You can use it to model the
contact between two cams in a variable valvetrain. The resulting hertzian pressure is calculated based on
curvatures in two dimensions, when both curve crowning radii are specified.

Application
The curve-curve contact models the contact between a curve defined on one part and a curve defined on
a second part. This contact may either be constraint based or force based depending upon the situation to
be modeled.

Constraint Based
The motion solver models the contact as a constraint which constrains the two entities to be in contact
with eachother. Initial conditions may be defined for the constraint. Penetration or lift off are not allowed
between the entites and friction forces are not calculated.

Force Based
A force based contact allows lift-off and takes into account dynamic and static friction. The force based
curve-curve contact has a significant performance advantage to using 3-D contact. Either the impact or
restitution contact methods may be used, depending on the duration of the contact and desired output.
Contact forces may be obtained from the impact method, but depend highly on step size. For more
information on contact force methods, see Contact Calculation Methods. The curve-curve contact can
also be defined as an intermittent contact entity between 2 parallel curves. The curves do not have to be
in the same plane as out of plane moments are not accounted for (since the curves are projected onto the
same plane when defined in the solver).

Description of Fields

Field Description
Name Field that specifies user defined name for the contact
Option button that defines whether the contact will be constraint based or force
based. The options under the contact tab (including contact friction) are only
Type
available for force based contact. Initial conditions may only be specified for
constraint based contact.
90
Curve-Curve Contact

Curve 1:

Field Description
Drop-down that allows selection of curves defined by Geometry or curves
Method
defined mathematically via the System Elements toolbox.
Geometry
Part that contains the first curve to participate in the contact. Available if
Part
Method is set to Geometry
Features Curve on selected part which point will contact in Geometry contact method.
Reverses curve normal direction. The curve normal points away from the
Flip solid side of the curve (it points away from the side of the curve that other
curves cannot penetrate).
Points Per Drop-down and field that determine the number of points evaluated along a
Curve or geometric curve. Setting to Points Per Curve specifies the number of points
Curvature directly, while Curvature tolerance defines a maximum deviation for the point
Tolerance to point path versus the original curve location.
Curve
Field for selection of a predefined non-geometric curve. Available if Method
Curve
is set to Curve.

Curve 2:

Field Description
Drop-down that allows selection of curves defined by Geometry or curves
Method
defined mathematically via the System Elements toolbox.
Geometry
Part that contains the second curve to participate in the contact. Available if
Part
Method is set to Geometry
Features Curve on selected part which point will contact in Geometry contact method.
Reverses curve normal direction. The curve normal points away from the
Flip solid side of the curve (it points away from the side of the curve that other
curves cannot penetrate).
Points Per Drop-down and field that determine the number of points evaluated along a
Curve or geometric curve. Setting to Points Per Curve specifies the number of points
Curvature directly, while Curvature tolerance defines a maximum deviation for the point
Tolerance to point path versus the original curve location.
Curve
Field for selection of a predefined non-geometric curve. Available if Method
Curve
is set to Curve.
Contacts 91
Curve-Curve Contact

Sample Form

To create a curve-curve contact:


1. From the Contact toolbox, select curve-curve.
2. Select a method for the first curve between geometry and predefined non-geometric curve.
3. For the Geometry method, click in the Curve 1 Part list box and select the first part to make
contact. Select the part from either the tree or the canvas.
4. Select the first curve. If necessary toggle the direction so that the arrow points into the solid. For
a geometric curve specify the number of points desired along the first curve.
5. Select a method for the second curve.
6. For the Geometry method click in the Curve 2 Part list box and select the second part to make
contact.
92
Curve-Curve Contact

7. Select the second curve. If necessary toggle the direction so that the arrow points into the solid.
For a geometric curve specify the number of points along the second curve.
8. Select the intermittent check box if desired.
9. Select the Contact tab on the Properties form to define the contact properties.
10. Click OK to create the contact. The contact will appear in the tree and in the canvas.
Contacts 93
Body-Body Contact

Body-Body Contact
Defines a contact force between two bodies without specifying a point or curve for contact. Requires
more solver time than lower order contacts.

Application
Defines a two- or three-dimensional contact between a pair of geometric objects. SimXpert supports
multiple contacts, dynamic friction, contact between three-dimensional solid geometries, and contact
between two-dimensional geometries. It does not support non-solid three-dimensional geometries, such
as shells that do not encompass a volume and sheets. It also does not support contact between a two-
dimensional and a three-dimensional geometry.

Description of Fields

Field Description
First Solid First part to participate in contact
Second Solid Second part to participate in contact.

Sample Form

To create a body-body contact:


1. From the Contact toolbox, select body-body.
2. Click in the First Solid list box and select the first part to make contact. Select the part from either
the tree or the canvas.
3. Click in the Second Solid list box and select the second part to make contact.
4. Click on the Contact tab to define contact parameters.
94
Body-Body Contact

5. Click OK to create the contact. The contact will appear in the tree and in the canvas.
Forces and Motions 95

Forces and Motions


96
Function Specification Tools

Function Specification Tools


General tools are available in SimXpert to define functions and variation to be used in the application of
forces and motion. Functional expressions are defined using a common section on the property editor
forms, and additional function tools are available through the Function Expression Builder. Spline curves
are accessible from the Spline Data button on property editor forms. SimXpert will display a coordinate
triad during object creation to assist you in visualizing location and orientation.

Function Expression Builder


The Function Expression Builder is a common tool accessible from many SimXpert property editor
forms that aides in the definition of functional expressions for the motion solver. The available functions
are categorized by type, and drop-down menus allow the user to select a category and individual function
to be entered into the expression window. Individual help content is available for the selected function to
assist the user in defining the proper syntax.
Expressions are passed directly to the motion solver and do not take any units settings into account.
Therefore, expressions assume that all angle values are expressed in radians regardless of the units
selected. To write an expression that uses degrees, a d must be added to the end of the number in the
expression.

Description of Fields

Field Description
Field that allows direct text entry of expressions and shows expressions inserted
Expression
from drop down options below.
Verify Icon that verifies that the expression entered is in correct Motion Solver syntax.
Category Drop- Drop-down that selects the category of motion function to be inserted. May be set
down to All Functions to allow selection of any available solver function.
Drop-down that selects a particular solver function.The available functions
Function Drop- depend on the option selected in the category drop-down on the left. Once a
down function is selected in the drop-down, the Insert, Append, and Help buttons apply
to that function.
Button that inserts the selected function into the expression at the current cursor
Insert
location.
Button that inserts the selected function into the expression on a new line at the
Append
end of the expression.
Button that opens help specific to the selected function in order to assist with the
Help
syntax of the required inputs.
Forces and Motions 97
Function Specification Tools

Sample Form

Function Verification (Verify Function)


This feature is part of the Function creation/modification tool that is available in the joint motion and
applied forces/torques property editors. If you select "Expression" as the Function type, you may enter
any ADAMS valid function expression. Once you enter the function expression, you can press the
"Verify Function" button to have the motion solver determine whether the syntax is indeed valid for
motion simulation.
If the text comes back in with a green font, the expression is valid for motion simulation.
If the expression is invalid, there will be a red text message above the Verify Function button that states
"Expression is INVALID". Additional information about the invalid expression is displayed in red text
in the Message Window.

Curve (Spline) Editor


This feature is accessible from the function creation/modification tool when the Spline option is selected.
Clicking on the Spline Data button opens the Curve Editor. You may enter tabular data to define a spline
curve that will be applied to the function selected, and may add or delete points as desired to define the
curve. You also have options to control the display of data points in the curve editor window, as well as
the color of the line.
The Curve Editor provides the ability to save the current curve or open an existing curve to view, edit,
and apply to a particular function. Select Save or Open from the File menu in the Curve Editor interface.
Additional visualization options are available from the menu bar in the Curve Editor. The View menu
allows you to specify which portion of a curve is displayed through using tools including fit data, specify
range, pan, and zoom. You may edit the labels from the Labels menu. You may make other general
adjustments to the window using the Options menu, which allows you to perform functions like turning
98
Function Specification Tools

the grid on and off and allows you to specify whether to show the line connecting data points. Finally,
additional options may be specified by selecting Other from the Options menu. This opens the Grapher
options form, which allows you to set the margins, number of tick marks, and whether tick marks are
displayed.

Curve Editor Interface

Coordinate Triad Visualization:


While editing an object, a coordinate triad will be displayed to show the location and orientation
information pertinent to that entity. The triad will only be displayed while the property editor is active.
The following image displays a sample coordinate triad:
Forces and Motions 99
Function Specification Tools
100
Joint Motions

Joint Motions
When you create a joint motion, SimXpert defines the motion as a velocity over time based on a values
that you can enter. The speed value can be a constant numerical value or a function expression and can
be determined from input values for displacement, velocity or acceleration.

Application
Prescribes translational or rotational motion on a translational, revolute, or cylindrical joint. Each joint
motion removes one degree of freedom (DOF) from your model. Joint motions are very easy to create,
but they limit you to motions that are applied to the above listed joints and movements in only one
direction or rotation.

Description of Fields

Field Description
Joint Name Joint to which motion will be applied
Freedom Degree of freedom for motion
Motion Type Select from Free, Displacement, Velocity, or Acceleration to control the
motion
Initial Displacement Initial displacement of the joint before motion is applied
Initial Velocity Initial velocity of the joint before motion is applied
Function Define function to specify motion. See also Function Specification Tools.
Forces and Motions 101
Joint Motions

Sample Form

To create a joint motion:


1. From the Motion toolbox, select add motion.
2. Click in the Joint Name list box and select the joint to which motion will be applied. Select the
joint from either the tree or the canvas.
3. Select the degree of freedom for the motion to apply to. The available degrees of freedom are
limited by the type of the joint selected.
4. Select the method to control the motion. Available options are free, displacement, velocity, and
acceleration.
5. Enter the initial displacement position of the joint.
6. Enter the initial velocity of the joint.
7. Select a definition method for the motion between Expression and User Subroutine.
8. Input the necessary data to define the motion.
9. Click OK to create the motion. The motion will appear in the tree and in the canvas.
102
Single Point Motion

Single Point Motion


Single point motion prescribes the motion of two parts along or around one axis. SimXpert Motion
defines the motion as an expression defining displacement, velocity, or acceleration as a function of time.

Application
When you create a point motion, you specify the two coordinate systems. The first coordinate system you
select is called the moving point. It moves or rotates relative to the coordinate system on the second part,
called the reference point. You can change the axis around or along which the motion is applied.

Description of Fields

Field Description
User specified name of the single point motion. Populated with Single_Point_# by
Name
default,
Moving Point Field that selects a coordinate system as the moving point.
Field that selects a coordinate system as the reference point. This coordinate
Reference Point
system defines the orientation of the motion of the parts.
Freedom Field that selects the degree of freedom in which to apply the motion.
Motion Type Select from Free, Displacement, Velocity, or Acceleration to control the motion
Initial Initial displacement before motion is applied. Active only for Velocity and
Displacement Acceleration motion types.
Initial velocity before motion is applied. Active only for Acceleration motion
Initial Velocity
type.
Option button that selects between defining the motion with a run time expression
Method
or a user subroutine. Expression is the default method.
Field in which the user may enter a run time expression to define the motion.
Available only if the method is set to expression. The Function Expression Builder
Expression
may be launched to edit the expression by clicking the icon to the right of the
expression field.
Field that defines user subroutine input parameters. Available only if the definition
Parameters
method is set to User Subroutine.
Field that selects an existing User Subroutine in the model if the method is set to
Routine User Subroutine. Users enter library name and routine name, with specific syntax:
library_name::routine_name. Example abgFDM::fie910
Forces and Motions 103
Single Point Motion

Sample Form

To create a single point motion:


1. From the Motion toolbox, select Single Point.
2. Click in the Moving Point list box and select a coordinate system to be the moving point for the
motion.
3. Click in the Reference Point list box and select a reference coordinate system for the motion.
4. Select the degree of freedom for the motion to apply to.
5. Select the method to control the motion. Available options are free, displacement, velocity, and
acceleration.
6. Enter the initial displacement and velocity of the motion as applicable.
7. Select either Expression or User Subroutine to define the desired motion.
8. Input the necessary data to define the motion.
9. Click OK to create the motion. The motion will appear in the tree and in the canvas.
104
General Point Motion

General Point Motion


General point motion prescribes the motion of two parts along or around the three axes (six degrees of
freedom (DOF)). SimXpert Motion defines the motion as an expression defining multiple components of
displacement, velocity, and/or acceleration as a function of time.

Application
When you create a point motion, you specify the two coordinate systems. The first coordinate system you
select is called the moving point. It moves or rotates relative to the coordinate system on the second part,
called the reference point. You specify the motion independently for each degree of freedom.

Description of Fields

Field Description
User specified name of the single point motion. Populated with General_Point_#
Name
by default,
Moving Point Field that selects a coordinate system as the moving point.
Field that selects a coordinate system as the reference point. This coordinate
Reference Point
system defines the orientation of the motion of the parts.
Select from Free, Displacement, Velocity, or Acceleration to control the motion in
Type
each of the 6 degrees of freedom. Free is the default.
Field in which the user may enter a run time expression to define the motion. The
Function Expression Builder may be launched to edit the expression by clicking
Function
the icon to the right of the function field. Each field may be verified individually
by clicking the verify icons.
Initial Initial displacement in the specified direction before motion is applied. Active
Displacement only for Velocity and Acceleration motion types.
Initial velocity in the specified direction before motion is applied. Active only for
Initial Velocity
Acceleration motion type.
Forces and Motions 105
General Point Motion

Sample Form

To create a general point motion:


1. From the Motion toolbox, select General Point.
2. Click in the Moving Point list box and select a coordinate system to be the moving point for the
motion.
3. Click in the Reference Point list box and select a reference coordinate system for the motion.
4. Select the type of motion to be specified in each of the six degrees of freedom.
5. Select the method to control the motion. Available options are free, displacement, velocity, and
acceleration.
6. Input the function data to define each component of the motion.
7. Enter the initial displacement and velocity in each direction as applicable.
106
General Point Motion

8. Click OK to create the motion. The motion will appear in the tree and in the canvas.
Forces and Motions 107
Applied Force

Applied Force
Applied forces are forces that define loads and compliances on parts so that they move in certain ways.
Applied forces are very general, but you must supply your own description of the force behavior by
specifying a constant force value or expression function.
An action-only, single-component force is an external force or torque applied to a single body in a model
that acts along a specified fixed axis. As you know from Newton’s third law, however, in nature there is
no such thing as an action-only force (that is, one with no reaction). Therefore, the body reacting to the
action-only force in SimXpert is automatically defined as ground and shows no visible effect in your
model.

Note: You may find the action-reaction, multi-component forces more intuitive to use than the
action-only, single-component force. If you want to apply force to only one body, you can
use the action-reaction, multi-component forces and specify the reaction marker on ground.

An action-reaction force is a force applied to one body producing a reaction force on a second body that
is equal and opposite to the action force on the first body. If the force applied to the action body is
positive, the action body is pushed away from the reaction body. If the force applied to the action body
is negative, the action body is pulled towards the reaction body.

Application
Applied forces allow you to introduce loading into the model that may cause or oppose motion. You may
choose from action only and action-reaction forces based on whether the reaction force is applied to
another component in the model
For every force that you create you specify the following information:
1. To which part or parts the force is applied (unless it is applied to a coordinate system directly, in
which case it will be applied to the coordinate system’s parent part).
2. At what point or points the force is applied.
3. Magnitude and direction of the force.
108
Applied Force

Description of Fields

Field Description
Name Name of applied force
Define Using Checkbox that when enabled replaces the part and location definition options
Coordinate with directly specified coordinate systems between which the force acts. Cleared
Systems by default.
Part 1 Part which the force will be applied to
Part 2 Second part for an action-reaction force, or component that will serve as a
reference frame for an action only force. To define ground as the reference frame,
select the ground part button.
Location Allows definition of one application location of an action only force, or two
locations for an action-reaction force.
Direction Defines the force direction for an action only force.
Function Allows definition of magnitude of applied force. Available options are constant,
expression, harmonic, spline, and step functions. See also Function Specification
tools.
Forces and Motions 109
Applied Force

Sample form

To create an applied force:


1. From the Forces toolbox, select applied force.
2. Enter a name for the applied force.
3. Select the Action Type. You may choose action only to apply a force to a single part, or action-
reaction to apply a force between two parts in the model.
4. Select the first part that the force will be applied to. Alternatively, select the Define by Coordinate
Systems checkbox to directly select coordinate systems and avoid part and location selection.
5. For an action only force, select a reference part to define the part orientation. For an action-
reaction force, select the second part that the force will be applied to.
6. Select the location on the first part.
7. For an action-reaction force select the location on the second part.
110
Applied Force

8. For an action only force define the orientation of the force.


9. Select the Function type necessary to define the desired force. The options available in the
Function section of the form will vary based on your selection.
10. Input the necessary data to define the force.
11. Click OK to create the force. The force will appear in the tree and in the canvas.
Forces and Motions 111
Applied Torque

Applied Torque
Applied torques allow you to introduce torque loading into the model that may cause or oppose motion.
You may choose from action only and action-reaction torques based on whether the reaction is applied
to another component in the model.

Application
For every torque that you create you specify the following information:
1. To which part or parts the torque is applied, or to which coordinate systems.
2. At what point or points the torque is applied.
3. Magnitude and direction of the torque.

Description of Fields

Field Description
Name Name of applied torque
Define Using Checkbox that when enabled replaces the part and location definition options
Coordinate Systems with directly specified coordinate systems between which the torque acts.
Cleared by default.
Part 1 Part which the torque will be applied to.
Part 2 Second part for an action-reaction torque, or component that will serve as a
reference frame for an action only torque. To define ground as the reference
frame, select the ground part button.
Location Allows definition of one application location of an action only torque, or two
locations for an action-reaction torque.
Direction Defines the force direction for an action only torque.
Function Allows definition of magnitude of applied torque. Available options are
constant, expression, harmonic, spline, and step functions. See also Function
Specification tools.
112
Applied Torque

Sample Form

To create an applied torque:


1. From the Forces toolbox, select applied torque.
2. Enter a name for the applied torque.
3. Select the Action Type. You may choose action only to apply a torque to a single part, or action-
reaction to apply a torque between two parts in the model.
4. Select the first part that the torque will be applied to or select the Define Using Coordinate
Systems checkbox and select the coordinate systems between which the torque will be applied.
5. For an action only torque, select a reference part to define the part orientation. For an action-
reaction torque, select the second part that the torque will be applied to.
6. Select the location on the first part.
7. For an action-reaction torque select the location on the second part.
8. For an action only torque define the orientation.
Forces and Motions 113
Applied Torque

9. Select the Function type necessary to define the desired torque. The options available in the
Function section of the form will vary based on your selection.
10. Input the necessary data to define the torque.
11. Click OK to create the torque. The torque will appear in the tree and in the canvas.
114
Vector Force

Vector Force
The vector force creates a translational force element that is specified using three orthogonal
components.

Application
You may define the VFORCE statement through user-specified function expressions in the
ADAMS/Solver (C++) dataset or through user-written subroutines (see VFOSUB).
The VFORCE statement creates an ADAMS/Solver (C++) translational vector force element that applies
a three-component force between two parts of the system. The element applies an action force to the part
to which the I marker belongs and a corresponding reaction force to the part to which the JFLOAT marker
belongs. The VFORCE statement establishes the position of the JFLOAT marker. As the system moves,
ADAMS/Solver (C++) moves the JFLOAT marker on its part to keep the JFLOAT and I markers
superimposed. Therefore, ADAMS/Solver (C++) applies the reaction force to the JFLOAT marker's part
at the instantaneous position of the I marker.
The total vector force depends on the vector sum of the individual force components that you specify.
The magnitude of the force is the square root of the sum of the squares of the magnitude of the three
mutually-orthogonal force components. You can specify the functions with function expressions (see
Function Expressions in this guide) or user-written FORTRAN subroutines (see User-Written
Subroutines).

Description of Fields

Field Description
Name User specified name of vector force. Populated with Vector_Force_# by default.
Define Using Checkbox that when enabled replaces the part and location definition options with
Coordinate directly specified coordinate systems between which the force acts. Cleared by
Systems default.
Part 1 First part which the force will be applied between.
Part 2 Second part which the vector force will be applied between.
Component that will serve as a reference frame for an action only force. To define
Reference Part
ground as the reference frame, select the ground part button.
Location Fields that use common tools to specify location of the vector force.
Orientation Orientation tools to define the orientation of the components of the vector force.
Forces and Motions 115
Vector Force

Component Specification

Field Description
Option button that selects between Expression and User Subroutine as the method
Method
to define the Vector Force.
Expression
Field that allows input of an expression to define the force in the X direction. The
X Force
Function Expression Builder is available to assist in creating runtime functions,
Expression
and each expression may be verified individually using the Verify icon.
Field that allows input of an expression to define the force in the Y direction. The
Y Force
Function Expression Builder is available to assist in creating runtime functions,
Expression
and each expression may be verified individually using the Verify icon.
Field that allows input of an expression to define the force in the Z direction. The
Z Force
Function Expression Builder is available to assist in creating runtime functions,
Expression
and each expression may be verified individually using the Verify icon.
User Subroutine
Parameters Field that specifies parameters to be passed to the selected user subroutine.
Field that specifies an existing user subroutine to define force component values.
Routine Users enter library name and routine name, with specific syntax:
library_name::routine_name. Example abgFDM::fie910
116
Vector Force

Sample form

To create a vector force:


1. From the Forces toolbox, select Vector Force.
2. Enter a name for the vector force.
3. Select the first part that the force will be applied to or select the Define Using Coordinate Systems
checkbox and select coordinate systems between which the force will act.
4. Select the second part that the force will be applied to.
5. Select a reference part for the force.
6. Select the location of the point of application of the force.
7. Define orientation of the force components.
8. Select either Expression or User Subroutine as the method to define the vector force components.
Forces and Motions 117
Vector Force

9. Enter expression or subroutine data for each force component.


10. Click OK to create the force. The force will appear in the tree and in the canvas.
118
Vector Torque

Vector Torque
The vector torque creates a rotational torque that is specified using three orthogonal components.

Application
You can define the VTORQUE statement through user-specified function expressions in the
ADAMS/Solver (C++) dataset or through user-written subroutines.
The VTORQUE statement creates an ADAMS/Solver (C++) rotational force element, that applies a
vector torque between two parts of the system. The element applies an action to the part to which the I
marker belongs and a corresponding reaction to the part to which the JFLOAT marker belongs. The
VTORQUE statement establishes the position of the JFLOAT marker. As the system moves,
ADAMS/Solver (C++) moves the JFLOAT marker on its part to keep the JFLOAT and I markers
superimposed. Thus, ADAMS/Solver (C++) applies the reaction torque to the JFLOAT marker's part.
The components of the torque depend on expressions or subroutines that you supply. The magnitude of
the torque is the square root of the sum of the squares of the magnitudes of the three mutually orthogonal
torque components. You can specify these functions using function expressions (see Function
Expressions) or user-written FORTRAN subroutines (see User-Written Subroutines).
The direction of the torque action is determined by the resultant vector formed by the three component
torque you defined along the RM marker axes. The reaction is equal and opposite to the action.

Description of Fields

Field Description
Name User specified name of vector torque. Populated with Vector_Torque_# by default.
Define Using Checkbox that when enabled replaces the part and location definition options with
Coordinate directly specified coordinate systems between which the torque acts. Cleared by
Systems default.
Part 1 First part which the torque will be applied between.
Part 2 Second part which the vector force will be applied between.
Component that will serve as a reference frame for an action only torque. To
Reference Part
define ground as the reference frame, select the ground part button.
Location Fields that use common tools to specify location of the vector torque.
Orientation Orientation tools to define the orientation of the components of the vector torque.
Forces and Motions 119
Vector Torque

Component Specification

Field Description
Option button that selects between Expression and User Subroutine as the method
Method
to define the Vector Force.
Expression
Field that allows input of an expression to define the torque in the X direction.
X Torque
The Function Expression Builder is available to assist in creating runtime
Expression
functions, and each expression may be verified individually using the Verify icon.
Field that allows input of an expression to define the torque in the Y direction.
Y Torque
The Function Expression Builder is available to assist in creating runtime
Expression
functions, and each expression may be verified individually using the Verify icon.
Field that allows input of an expression to define the torque in the Z direction. The
Z Torque
Function Expression Builder is available to assist in creating runtime functions,
Expression
and each expression may be verified individually using the Verify icon.
User Subroutine
Parameters Field that specifies parameters to be passed to the selected user subroutine.
Field that specifies an existing user subroutine to define torque component values.
Routine Users enter library name and routine name, with specific syntax:
library_name::routine_name. Example abgFDM::fie910

Sample form
120
Vector Torque

To create a vector torque:


1. From the Forces toolbox, select Vector Torque.
2. Enter a name for the vector torque.
3. Select the first part that the torque will be applied to or select the Define Using Coordinate
Systems checkbox and select coordinate systems between which the torque will act.
4. Select the second part that the torque will be applied to.
5. Select a reference part for the torque.
6. Select the location of the point of application of the torque.
7. Define orientation of the torque components.
Forces and Motions 121
Vector Torque

8. Select either Expression or User Subroutine as the method to define the vector torque
components.
9. Enter expression or subroutine data for each torque component.
10. Click OK to create the torque. The torque will appear in the tree and in the canvas.
122
General Force

General Force
A general force is a force with potentially different values in each direction. You may specify a constant
or function expression for each X,Y,Z Force and each XYZ Torque independently.

Application:
General forces allow you to introduce loading into the model that varies in different directions.
For every general force that you create you specify the following information:
1. Between which parts or coordinate systems the force is applied.
2. A reference part to define the force direction.
3. At what point or points the force is applied.
4. Magnitude of the force and/or torque in each coordinate direction.
Forces and Motions 123
General Force

Description of Fields:

Field Description
Name Name of general force
Checkbox that when enabled replaces the part and location definition
Define Using Coordinate
options with directly specified coordinate systems between which the force
Systems
acts. Cleared by default.
Part 1 The action body (part) to which the force is applied.
Part 2 The reaction body (part) that receives the reaction forces.
Reference Part The reference part that indicates the direction of the force.
Location Allows definition of one application location of the force.
Orientation Defines the orientation of the coordinate system for the force.
Force and Torque Tabs select the force or torque in each coordinate direction. Options are
Function Expressions available to define each function as a Constant, Expression, Harmonic,
Spline, or Step Function.

Sample form:
124
General Force

To create a general force:


1. From the Forces toolbox, select general force.
2. Enter a name for the general force.
3. Select the first part that the force will be applied to or select the Define Using Coordinate Systems
checkbox and select coordinate systems between which the force will act.
Forces and Motions 125
General Force

4. Select the second part that the force will be applied to. This is the reaction body (part) that receives
the reaction forces.
5. Select a reference part to define the part orientation.
6. Select the location of the force.
7. Define the orientation of the force.
8. Define the force and torque functions in each direction. Select the Function type necessary to
define the desired force. Input the necessary data to define the force or torque.
9. Click OK to create the force. The force will appear in the tree and in the canvas.
126
Modal Force

Modal Force
The modal force statement applies a force directly to the modal coordinates and rigid body degrees of
freedom of a flexible body.

Application:
The MFORCE statement allows you to apply any distributed load vector F to a FLEX_BODY. Such a
load vector is typically generated with a finite element program. Examples of distributed load cases
include thermal expansion or pressure loads.
Forces and Motions 127
Modal Force

Description of Fields:

Field Description
Name User specified name of modal force. Populated with Modal_Force_# by default.
Flexible Body Field that specifies the flexible part to which the modal force is applied.
Reaction Part Field that specifies rigid motion part for reaction part.
Component that will serve as a reference frame for an action only force. To define
Reference Part
ground as the reference frame, select the ground part button.
Dropdown that selects between Single Loadcase, Subroutine (Function) and
Method
Subroutiine (Force) as the method to define the modal force.
Single Loadcase
Field that specifies an existing modal loadcase to be applied to the flexible part
Load Case
scaled by a function expression.
Scale Field that defines an expression for scaling the load case selected above. The
Function Function Expression Builder is available to assist in defining expressions. A
Expression verify icon is available to verify expression syntax.
Subroutine (Function)
Field that specifies up to thirty user-defined constants to be passed to the user-
defined subroutine, MFOSUB to directly compute the modal load case and scale
Parameters function whose product is the modal force applied to the flexible body. The scale
function can depend on time or the state of the system. The load case can only be
a function of time.
Field that selects a user subroutine to which the above parameters will be passed.
Routine Users enter library name and routine name, with specific syntax:
library_name::routine_name. Example abgFDM::fie910
Subroutine (Force)
Field that specifies up to thirty user-defined constants to be passed to the user-
defined subroutine, MFOSUB to directly compute the modal force on the flexible
Parameters
body. Each component of the modal force can depend on time or the state of the
system.
Field that selects a user subroutine to which the above parameters will be passed.
Routine Users enter library name and routine name, with specific syntax:
library_name::routine_name. Example abgFDM::fie910

Sample form:
128
Modal Force

To create a modal force:


1. From the Forces toolbox, select Modal Force.
2. Enter a name for the modal force.
3. Select a flexible body that the force will be applied to.
4. Select a reaction part for the force to react against.
5. Select Single Loadcase or Subroutine as the method to define the values of the modal force.
6. Select a loadcase and enter the expression (for Single Loadcase) or enter parameters and select
subroutine (for Subroutine methods).
7. Click OK to create the force. The force will appear in the tree and in the canvas.
Forces and Motions 129
Multi Point Force

Multi Point Force


The multi point force (NFORCE) statement creates a multi-point force element which establishes linear
force-displacement (stiffness) and/or force-velocity (damping) relationships between many coordinate
systems (up to 351) in the model.

Application:
The NFORCE creates a set of forces and torques which act between the I and J coordinate systems which
appear in the NFORCE statement. These forces and torques are linear functions of the relative
displacements and velocities of the coordinate systems, in a manner equivalent to the finite element
method. For each NFORCE, one coordinate system(J) is used as the reference marker. The velocities are
resolved into the J marker's reference frame and expressed in the J marker's coordinate system. The force
and torque components computed by the NFORCE are also given in the J marker's coordinate system.
The force-displacement and force-velocity relationships are specified using stiffness and damping
matrices, or by using a stiffness matrix and a proportional damping ratio. These matrices are defined
using MATRIX statements in the dataset. The stiffness and damping matrices that ADAMS/Solver
(FORTRAN) requires are defined for the I markers only; that is, they should be derived normally using
the 6(n+1) J marker and I marker degrees-of-freedom, but are input using only the rows and columns
corresponding to the I marker degrees-of-freedom. This is equivalent, in finite element terminology, to
applying fixed boundary conditions at the J marker by simply removing the corresponding rows and
columns from the matrices. ADAMS/Solver (FORTRAN) automatically computes and applies the
correct reaction forces at the J marker.
130
Multi Point Force

Description of Fields:

Field Description
User specified name of multi point force. Populated with Multi_Point_Force_# by
Name
default.
Table for referencing one or more coordinate systems. "+" and "-" buttons are
Points used to append and delete rows. Each cell allows the user to pick a coordinate
system from the model browser, graphics window, or drop down list.
Field that specifies the identifier of the coordinate system that determines the
reference frame in which the relative velocities and all of the forces associated
Reference Point with the NFORCE are calculated and the coordinate system in which all the
components and LENGTHs are evaluated. The NFORCE automatically applies
the proper reaction forces at this location.

Stiffness Matrix

Field Description
Option button selects between Entered data and data from an existing file. The
KMATRIX is a 6n · 6n matrix (n is the number of coordinate systems) that defines
the linear relationships between the I marker displacements relative to the J
Stiffness Matrix marker and elastic forces generated by the NFORCE. The KMATRIX is specified
in the J marker's coordinate system. Marker translational and rotational
displacements appear sequentially in Dx, Dy, Dz, Ax, Ay, Az, order, while the
markers appear in the same sequence as the coordinate systems are selected.
Entered Data
Edit Matrix
Icon that opens matrix editor to define stiffness values.
Data
File
Matrix File Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix
Drop-down that selects from available matrices in the selected matrix file.
Name
Forces and Motions 131
Multi Point Force

Damping

Field Description
Active Checkbox that activates damping and enables remaining fields.
Option button selects between specification of a damping matrix or a damping
Damping Method
ratio. If damping ration is selected, all matrix fields will be disabled.
Field that specifies the proportional damping ratio for the NFORCE. The
Damping
elements of the damping matrix are determined by multiplying the corresponding
Ratio
stiffness element value by this number.
Option button selects between entered data and data from an existing file. The
damping matrix is a 6n · 6n matrix (n is the number of I markers) that defines the
Damping Matrix linear relationships between the coordinate systems velocities relative to the
reference system and the viscous forces generated by the NFORCE. The damping
matrix is derived in the reference coordinate system.
Entered Data
Edit Matrix
Icon that opens matrix editor to define damping values.
Data
File
Matrix File Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix
Drop-down that selects from available matrices in the selected matrix file.
Name

Force Matrix

Field Description
Active Checkbox that activates force matrix and enables remaining fields.
Option button selects between Entered data and data from an existing file.
FORCE is a 6n · 1 matrix (n is the number of I markers) of forces and torques,
Force Matrix appearing sequentially for each marker in Fx, Fy, Fz, Tx, Ty, Tz order, while the
markers appear in the same sequence as the coordinate systems are selected. The
force and torque components are expressed in the reference coordinate system.
Entered Data
Edit Matrix
Icon that opens matrix editor to define force values.
Data
File
Matrix File Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix
Drop-down that selects from available matrices in the selected matrix file.
Name
132
Multi Point Force

Length Matrix

Field Description
Active Checkbox that activates length matrix and enables remaining fields.
Option button selects between Entered data and data from an existing file.
Specifies the identifier of the MATRIX that defines a reference location for each
of the coordinate systems with respect to the reference point, measured in the
reference coordinate system. LENGTH is a 3n · 1 column matrix (n is the number
Length Matrix of I markers) of translational displacements only, in Dx, Dy, Dz order. Usually,
LENGTH is used to specify the system's free (no internal force) lengths when
they differ from the input positions. If LENGTH is not given, the NFORCE
assumes that the input positions of the coordinate systems are at the reference
locations.
Entered Data
Edit Matrix
Icon that opens matrix editor to define length values.
Data
File
Matrix File Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix
Drop-down that selects from available matrices in the selected matrix file.
Name
Forces and Motions 133
Multi Point Force

Sample form:
134
Multi Point Force

To create a multi point force:


1. From the Forces toolbox, select Multi Point Force.
2. Enter a name for the force.
3. Select existing coordinate systems for the force to act upon. Click on the “+” icon to add more
coordinate systems to the table.
4. Select a reference coordinate system for the force.
5. Select entered data of file as the stiffness method and enter the stiffness matrix data or select a
stiffness matrix file.
6. Optionally activate and define data for damping, force, and length matrices.
7. Click OK to create the force. The force will appear in the tree and in the canvas.
Forces and Motions 135
Translational Spring Damper

Translational Spring Damper


A translational spring damper represents forces acting between two parts over a distance and along a
particular direction. You specify the locations of the spring damper and points on two parts. SimXpert
calculates the spring and damping forces based on the distance between the locations on the two parts
and their rate of change, respectively.

You can specify the damping and stiffness values as coefficients or use splines to define the relationships
of damping to velocity or stiffness to displacement. You can also de-activate stiffness to create a pure
damper or de-activate the damping to create a pure spring.

Application:
You add a translational spring damper to your model by defining the locations on two parts between
which the spring damper acts. You define the action force that is applied to the first location, and
SimXpert automatically applies the equal and opposite reaction force to the second location.
136
Translational Spring Damper

Description of Fields:

Field Description
Name Name of translational spring damper
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems between which the
spring-damper acts. Cleared by default.
First Part First part connected to spring damper. This is the action body.
Second Part Second part connected to spring damper. This is the reaction body.
Location 1 Location on first part
Location 2 Location on second part
Stiffness Allows specification of linear stiffness at a constant rate or nonlinear
stiffness to be defined by spline data
Preload and Free Length Optionally allows you to define spring preload by entering a force value or
free length
Damping Allows specification of linear damping with a constant coefficient or
nonlinear damping defined by spline data

Sample form:
Forces and Motions 137
Translational Spring Damper

To create a translational spring damper:


1. From the Forces toolbox, select translational spring damper.
2. Enter a name for the spring damper.
138
Translational Spring Damper

3. Select the first part (action body) that the spring damper will connect to or select the Define Using
Coordinate Systems checkbox and select coordinate systems between which the spring damper
acts.
4. Select the location on the first part.
5. Select the second part (reaction body) that the spring damper will connect to.
6. Select the location on the second part.
7. Select the Stiffness check box if desired and select linear or nonlinear stiffness.
8. Enter values to define the stiffness as necessary.
9. Select preload if desired and enter value.
10. Select the Damping check box if desired and select linear or nonlinear damping.
11. Enter values to define the damping as necessary.
12. Click OK to create the spring damper.
Forces and Motions 139
Rotational Spring Damper

Rotational Spring Damper


A rotational spring-damper is applied between two parts. It applies the action torque to the first part you
select, called the action body, and applies an equal and opposite reaction torque to the second part you
select, called the reaction body.

Application:
You can specify the damping and stiffness values as coefficients or use splines to define the relationships
of damping to velocity or stiffness to displacement. You can also de-activate stiffness to create a pure
damper or de-activate the damping to create a pure spring.
You can also set the rotation angle of the torsion spring when it is in its preload state and any preload
forces on the spring. By default, the solver uses the rotation angle of the torsion spring when you create
it as its preload angle.
The following linear constitutive equation describes the torque applied at the first body:
torque = -CT*da/dt - KT*(a-ANGLE) + TORQUE
SimXpert automatically computes the terms da/dt and a. The term a is the angle between the component
parts. SimXpert takes into account the total number of complete turns.
140
Rotational Spring Damper

Description of Fields:

Field Description
Name Name of rotational spring damper
Define Using Coordinate Checkbox that when enabled replaces the part and location definition
Systems options with directly specified coordinate systems between which the
spring-damper acts. Cleared by default.
First Part First part connected to spring damper. This is the action body.
Second Part Second part connected to spring damper. This is the reaction body.
Location 1 Location of spring damper
Direction Direction of rotation axis. Check box may be selected to flip the direction
of the selected axis.
Stiffness Allows specification of linear stiffness at a constant rate or nonlinear
stiffness to be defined by spline data
Preload and Free Angle Optionally allows you to define spring preload by entering a force value or
free angle
Damping Allows specification of linear damping with a constant coefficient or
nonlinear damping defined by spline data

Sample form:
Forces and Motions 141
Rotational Spring Damper

To create a rotational spring damper:


1. From the Forces toolbox, select rotational spring damper.
2. Enter a name for the spring damper.
142
Rotational Spring Damper

3. Select the first part (action body) that the spring damper will connect to or select the Define Using
Coordinate Systems checkbox and select coordinate systems between which the spring damper
will act.
4. Select the second part (reaction body) that the spring damper will connect to.
5. Select the location of the spring damper.
6. Specify the direction about which the spring damper may rotate.
7. Select the Stiffness check box if desired and select linear or nonlinear stiffness.
8. Enter values to define the stiffness as necessary.
9. Select preload if desired and enter value.
10. Select the Damping check box if desired and select linear or nonlinear damping.
11. Enter values to define the damping as necessary.
12. Click OK to create the spring damper.
Forces and Motions 143
Bump Stops and Rebound Stops

Bump Stops and Rebound Stops


Bump stops and rebound stops define a force-displacement relationship between two parts. The stop acts
between user-specified locations on each part. The force is activated when the displacement between the
two locations exceeds the clearance defined for the bumpstop.
The force-displacement formula is based on:
• Instantaneous distance between the user-specified locations defined on each part
• Impact length or clearance
• Bumpstop properties (polynomial or nonlinear stiffness with or without linear or nonlinear
damping).
The following figure shows the clearance and impact length.

Bump Stop Force Calculation:


The bump stop property editor supports various methods and options for defining and calculating force
characteristics. It supports the following methods to determine the elastic-force component:
144
Bump Stops and Rebound Stops

• Polynomial - The formulation of the force is based on a third-order polynomial whose equation
can be expressed as follows:
F elastic = POLY(MAX(0, impact_length - DM ( lower_location, upper_location )), 0, 0,
LinearRate, QuadraticRate, CubicRate)
• Nonlinear (spline based) - The formulation of the force is based on the Akima spline
interpolation of a nonlinear characteristic:
F elastic = akispl(MAX(0, impact_length - DM( lower_location, upper_location )), 0, Spline)
The elastic force becomes active only when the instantaneous distance between the locations on the two
parts is less than the impact length. The impact length term depends on the distance type. If you select
Clearance, the impact length becomes:
dmCalc - Clearance
Where:
• Clearance - Value you specify
• dmCalc - Initial displacement computed between the upper and lower locations

You may also enable a damping characteristic. If you enable the damping characteristic, the force is
dependent on the deflection and velocity of the upper_location and lower_location.
Damping (viscous) forces can be:
• Linear - If you include in the property file a linear damping value other than zero, then the total
force exerted between the upper and lower parts is equal to the sum of the elastic force specified
above and the following damping force:
F damping = STEP MAX(0, impact_length - DM(lower_location, upper_location )), 0, 0, 0.1, -
dampingRate * VR ( lower_location, upper_location ))
• Nonlinear (spline based) - If the user selects nonlinear damping, then the total force exerted
between the upper and lower parts is equal to the sum of the elastic force specified above and the
following damping force:
F damping = STEP MAX(0, impact_length - DM(lower_location, upper_location )), 0, 0, 0.1, -
AKISPL ( VR ( lower_location, upper_location ), 0, dampingSpline ))
SimXpert Motion also allows you to have a metal to metal bumper stop located at a separate location than
the jounce bumper. By default, the jounce bumper metal to metal stop is at the same position as the jounce
bumper, and when the deflection of the bumper goes beyond the bumper height (as defined in the bumper
properties section), the metal to metal force engages. To define a metal to metal stop that is at a position
not on the jounce bumper, the user must select locations on the upper and lower parts.

Rebound Stop Force Calculation:


The force in a rebound stop always acts to keep two parts from moving farther apart. The force is active
only when the distance between the parts as computed by dm(upper_location, lower_location) exceeds
the impact length. You specify the impact length directly or indirectly as the initial clearance in the
Forces and Motions 145
Bump Stops and Rebound Stops

rebound stop. When you specify a clearance, the impact length is calculated from the clearance as
follows:
dmCalc + Clearance
where:
• Clearance is the value you specify
• dmCalc is the initial displacement computed between the upper and lower locations.

Further, the force in a rebound stop is the sum of an elastic force and a damping force. The XML property
file supports various options for calculating either force. The options available for calculating elastic
force (F elastic) are:
• Polynomial - The for calculated using a third-order polynomial. The ADAMS/Solver function
expression is:
F elastic = POLY(MAX(0,DM(lower_location, upper_location ) - impact_length),0,0,-
linearRate,-quadraticRate,-cubicRate)
• Nonlinear (spline based) - The force is interpolated using Akima's method based on force vs.
deflection data.
F elastic = -1.0*(AKISPL(MAX(0,DM(lower_location, upper_location ) -
impact_length),0,Spline))
The damping force always acts in opposition to the velocity. The options for calculating damping force
are:
• Linear - You specify the dampingRate, and the damping force is the product of dampingRate,
velocity, and a STEP function. The STEP function depends on the displacement in the rebound
stop and ensures the damping force is continuos with displacement.
Fdamping = STEP (MAX(0, DM(lower_location, upper_location ) - impact_length), 0, 0, 0.1, -
dampingRate * VR ( upper_location, lower_location))
• Nonlinear (spline based) - The damping force is interpolated using Akima's method from a table
of force vs. velocity. A STEP function dependent on the displacement in the rebound stop
ensures that the damping force is continuous with displacement.
F damping = STEP (MAX(0, DM(lower_location, upper_location ) - impact_length), 0, 0, 0.1, -
AKISPL ( VR ( lower_location, upper_location ), 0, dampingSpline ))

Application:
These bump stops and rebound stops will mostly be used engineers who are creating suspension
mechanisms.
146
Bump Stops and Rebound Stops

Description of Fields:

Definition Form Entries

Field Description
Name Name of bump stop
Active
Checkbox that determines whether bump stop is active.

Upper Location

Field Description
Part The part to which the upper location of the bumper is attached.
Location
Define Location
Allows selection of the method to define a location.
Using
Default option. Allows selection of geometric point locations, such as a vertex,
Geometry
center point of a circular edge, or center of a sphere.
Hardpoint Allows selection of an individual hardpoint to be used as the location.
Custom Allows the direct entry of X, Y, and Z coordinates of a position.
Coordinate
Existing coordinate system origin may be selected in the field below.
System
Orientation
Define
Allows selection of the method to define orientation.
Orientation Using
Global Oriented with global coordinates. (Default for optional orientation)
Z-axis Oriented with a single axis, which will be specified below.
2 axis Oriented with two axes, which will be specified below.
Euler
Euler angles may be input for Body 313 rotation.
Angles
Coordinate
Existing coordinate system may be selected in the field below.
System

Lower Location
Forces and Motions 147
Bump Stops and Rebound Stops

Field Description
Part The part to which the lower location of the bumper is attached.
Location 2
Define Location
Allows selection of the method to define a location.
Using
Default option. Allows selection of geometric point locations, such as a vertex,
Geometry
center point of a circular edge, or center of a sphere.
Hardpoint Allows selection of an individual hardpoint to be used as the location.
Custom Allows the direct entry of X, Y, and Z coordinates of a position.
Coordinate
Existing coordinate system origin may be selected in the field below.
System

Installation Method

Field Description
Installation Method
Default option. Specifies the distance the bumper travels after the upper and
Clearance
lower locations come together. Default value is 25mm.
Specifies the maximum distance from the initial location of the upper part to the
Impact
fully compressed location. This is the sum of the initial distance between the
Length
upper and lower locations and the distance traveled after impact (Clearance).
Value Allows entry of a numerical value for the selected installation method.
Nonlinear Allows specification of nonlinear stiffness data using the curve editor.
Independent Axis
The x-axis data is the distance between the spring seats. With this technique the
Length
spline has a negative slope.
The x-axis data is deflection from some trim condition. The spline has a positive
Deflection
slope.
148
Bump Stops and Rebound Stops

Properties Form Entries

Field Description
Height Height of the bumper. Default value is 25mm.
Diameter Diameter of the bumper. Default value is 40 mm.
Stiffness Method
The force is calculated using the following third order polynomial:
Polynomial
F elastic = POLY(MAX(0,DM(lower_location, upper_location ) -
impact_length),0,0,- linearRate,-quadraticRate,-cubicRate)
Specifies the linear term in the third order polynomial used to calculate the bump
Linear Rate
stop force.
Quadratic Specifies the quadratic term in the third order polynomial used to calculate the
Rate bump stop force.
Specifies the cubic term in the third order polynomial used to calculate the bump
Cubic Rate
stop force.
The force is interpolated using Akima's method based on user input force vs.
deflection data.
Spline
F elastic = -1.0*(AKISPL(MAX(0,DM(lower_location, upper_location ) -
impact_length),0,Spline))
Spline Data Opens the curve editor to allow definition of Spline data.
Damping Method
The damping force is the product of the dampingRate, velocity, and a STEP
function. The STEP function depends on the displacement in the rebound stop
Linear and ensures the damping force is continuous with displacement.

Fdamping = STEP (MAX(0, DM(lower_location, upper_location ) -


impact_length), 0, 0, 0.1, -dampingRate * VR ( upper_location, lower_location))
Damping
Specifies the dampingRate term in the calculation of the linear damping force.
Rate
The damping force is interpolated using Akima's method from a table of force vs.
velocity. A STEP function dependent on the displacement in the rebound stop
ensures that the damping force is continuous with displacement.
Spline
F damping = STEP (MAX(0, DM(lower_location, upper_location ) -
impact_length), 0, 0, 0.1, -AKISPL ( VR ( lower_location, upper_location ), 0,
dampingSpline ))
Spline Data Opens the curve editor to allow definition of force vs. velocity Spline data.
Forces and Motions 149
Bump Stops and Rebound Stops

Metal to Metal Form Entries

Field Description
Metal to Metal
Checkbox that determines whether the metal to metal rate is active or not in the
model.

The part that specifies the upper location for the metal to metal rate. The same
Part part that was specified in the Definition page is pre-populated in this field by
default.
Location
Define Location Allows selection of the method to define a location. The same location that was
Using specified in the Definition page is pre-populated in this field by default.
Default option. Allows selection of geometric point locations, such as a vertex,
Geometry
center point of a circular edge, or center of a sphere.
Hardpoint Allows selection of an individual hardpoint to be used as the location.
Custom Allows the direct entry of X, Y, and Z coordinates of a position.
Coordinate
Existing coordinate system origin may be selected in the field below.
System
Orientation
Define Allows selection of the method to define orientation. The same orientation that
Orientation Using was specified in the Definition page is pre-populated in this field by default.
Global Oriented with global coordinates. (Default for optional orientation)
Z-axis Oriented with a single axis, which will be specified below.
2 axis Oriented with two axes, which will be specified below.
Euler
Euler angles may be input for Body 313 rotation.
Angles
Coordinate
Existing coordinate systems may be selected in the field below.
System
Specify the linear rate for the metal to metal contact.
Metal to Metal
Rate Default: 1E+06 (N/mm)
150
Bump Stops and Rebound Stops

Sample form:

To create a bump stop or rebound stop:


1. From the Forces toolbox, select either Bump Stop or Rebound Stop.
2. Enter a name for the stop.
3. Select the part for the upper location that the stop will connect to.
4. Select the location on the part.
5. Define the orientation of the Bump Stop or Rebound Stop.
6. Select the part for the lower location of the stop.
7. Select the location on the lower part.
Forces and Motions 151
Bump Stops and Rebound Stops

8. Select the desired installation method and enter the appropriate value. See the figure above for a
description of Clearance vs. Impact length.
9. Select the Properties tab.
10. Enter values for the height and diameter of the stop.
11. Select either polynomial or nonlinear Stiffness Method and define as necessary.
12. Select either Linear or Spline damping and enter the damping rate information.
13. If you wish to model a Metal to Metal stop in addition, select the Metal to Metal tab and activate
this option. You may select different locations for the metal to metal stop, but the original stop
locations are selected by default. Enter the desired metal to metal rate.
14. Click OK to create the bump stop or rebound stop.
152
Bump Stops and Rebound Stops
System Elements and Data Elements 147

System Elements and Data Elements


148
Overview

Overview
The contents of the System Elements and Data Elements toolbars allow users of the SimXpert Motion
Workspace to define mathematical entities for use with the motion solver. These allow users to efficiently
store data and create elements of motion models that are mathematically more complex than the basic
tools allow.
System Elements and Data Elements 149
Subroutines and User Libraries

Subroutines and User Libraries


User subroutines may be referenced in creating system elements or data elements within SimXpert.
These subroutines are defined using user libraries. These libraries let you add run-time functions for
motion or force magnitudes to directly define the behavior of your model and change the way the
simulation is performed. They let you take advantage of existing software to define complex modeling
relationships, such as hydraulic actuators or tire forces. Once you create a library, you need to set up your
modeling entities, such as motions or forces, to reference these subroutines and use the library whenever
you perform a simulation on models referencing these subroutines.

System Requirements
To use subroutines, you need the system requirements outlined in the following sections.

Compilers and Linkers


To work with user-written subroutines you must have the appropriate compilers and linkers. You need to
use the a command prompt that has the proper Intel Fortran environment. In most cases the Intel
Compiler command prompt is the one to use. For more information, refer to the hardware and software
specifications included with your installation instructions.

Languages
You can write user-written subroutines in any language, provided there is a way to call FORTRAN
subroutines in that language. FORTRAN is the preferred language for writing user-written subroutines,
although C and C++ are acceptable.

Debuggers
To facilitate the debugging of user-written subroutines, you should have a source-level debugger.
Debuggers are not required when using your own subroutines with Adams/Solver, but are useful for
finding mistakes, such as improper syntax or logic, in your subroutines.

About User-Written Subroutines


User-written subroutines are used primarily for modeling specialized phenomena or calculating
nonstandard results. Many simulations require the modeling of special phenomena that are not a part of
the standard SimXpert software. These phenomena may be expressed mathematically as differential
equations, algebraic equations, applied forces, constraints, motion inputs to system, or a combination of
these general modeling entities.
The SimXpert motion solver can accept user-specified descriptions of phenomena. You define the
governing relationships for the phenomena in the user-written subroutines. SimXpert then evaluates
these relationships as part of the solution process.
150
Subroutines and User Libraries

Building User Libraries


In order to build a user library from source code, invoke the following command line:
$INSTALL_DIR \WINNT\bin\simxpert32.bat cr-u -i source.f -o name.dll
where:

$INSTALL_DIR is the name of the directory in which SimXpert is installed.


source.f is name of the user source file(s) to be compiled and linked into the user library
name.dll is the name of the user library to be created
In the above command the source file may be c code, in this case the input file name should be changed
to source.c.
Command line on Linux is similar
$INSTALL_DIR/LX86/bin/simxpert32.csh cr-u -i source.f -o name.so
System Elements and Data Elements 151
Differential Equation

Differential Equation
In SimXpert, you may define differential equations. This works by creating DIFF statements in the
motion solver format based upon your input in the differential property editor form.

Application
This feature is used when the user wishes to add a new differential equation to the motion model. The
DIFF statement creates a user-defined state variable and defines a first-order differential equation that
describes it. The equation may be dependent on any ADAMS/Solver (C++) state variable available in a
function expression. You can create systems of differential equations by using more than one DIFF
statement or LSE and GSE statements.

Description of Fields

Field Description
Specifies user entered name for differential equation. Populated with
Name
Differential_# by default.
Read-only text that tells the user the numerical ID (the ID motion solver will
ID eventually see) of the DIFF. This is useful because the DIFF expression may
reference itself.
Option button that specifies Explicit or Implicit type. When set to Explicit the
Type
Derivative field is disabled. Set to Explicit by default.
Option button that selects between defining the equation with a run time
Method
expression or a user subroutine. Expression is the default.
Field in which the user may enter a run time expression to define the differential
equation. Available only if the definition method is set to expression. The
Expression
Function Expression Builder may be launched to edit the expression by clicking
the icon to the right of the expression field.
Field that defines user subroutine input parameters. Available only if the
Parameters
definition method is set to User Subroutine.
Field that selects an existing User Subroutine in the model if the method is set to
Routine User Subroutine. Users enter library name and routine name, with specific syntax:
library_name::routine_name. Example abgFDM::fie910
Initial Condition
Field that specifies real value initial condition for the differential equation.
Value
Initial Condition Field that specifies real value initial derivative for the differential equation.
Derivative Enabled only if the type is set to Implicit.
Keep Constant
Checkbox that defines whether value of differential equation will be held constant
During Static
during static analyses. Checked by default.
Analysis
152
Differential Equation

Sample Form

To create a differential equation:


1. From the System Elements toolbox, select Differential.
2. Enter a name for the differential equation. The solver ID of the equation is displayed to the right
of the name field and is read only.
3. Select the type of equation from Explicit or Implicit.
4. Select the method to define the equation. Runtime expression and user subroutine are the
available options. Enter the expression or select a subroutine and enter parameters to be passed to
it.
5. Enter the initial condition of the equation. An initial Derivative is required for implicit equation
type.
6. Optionally specify to keep the equation’s value constant during static analysis.
7. Click OK to create the equation.
System Elements and Data Elements 153
State Variable

State Variable
The State Variable property editor assists in the creation of a solver VARIABLE statement. The
VARIABLE statement defines a variable in terms of a scalar algebraic equation for independent use, or
as part of the PINPUT, POUTPUT, or ARRAY statement.

Application
The VARIABLE statement creates a user-defined algebraic equation. The value of the VARIABLE
statement may depend on almost any ADAMS/Solver (C++) system variable.
You can define the value of the VARIABLE statement by either writing a function expression in the
dataset or by calling a VARSUB user-written subroutine.
Function expressions and user-written subroutines can access the value of the VARIABLE statement with
the ADAMS/Solver (C++) function VARVAL(id) (see VARVAL) to represent the value, where id
specifies the user-selected identifier of the VARIABLE statement. User-written subroutines access single
VARIABLE statement values by calling the subroutine SYSFNC.

Description of Fields

Field Description
Specifies user entered name for the state variable. Populated with
Name
State_Variable_# by default.
Read-only text that tells the user the numerical ID (the ID motion solver will
ID
eventually see) of the state variable.
Option button that selects between defining the variable with a run time
Method
expression or a user subroutine. Expression is the default method.
Field in which the user may enter a run time expression to define the state
variable. Available only if the definition method is set to expression. The Function
Expression
Expression Builder may be launched to edit the expression by clicking the icon to
the right of the expression field.
Field that defines user subroutine input parameters. Available only if the
Parameters
definition method is set to User Subroutine.
Field that selects an existing User Subroutine in the model if the method is set to
Routine User Subroutine. Users enter library name and routine name, with specific syntax:
library_name::routine_name. Example abgFDM::fie910
Guess Checkbox that activates field for estimated initial condition entry.
Initial Condition
Field that specifies real value initial condition for the state variable.
Value
154
State Variable

Sample form

To create a state variable:


1. From the System Elements toolbox, select State Variable.
2. Enter a name for the State Variable. The solver ID is displayed as a read only field to the right of
the name.
3. Select a method to define the variable. Expression and User Subroutine are the available options.
4. Enter a runtime expression for the expression method or select a user subroutine and enter
parameters to be passed to it for User Subroutine method.
5. Optionally, check the checkbox for Guess and enter a value for the trial initial condition of the
state variable.
6. Click OK to create the state variable.
System Elements and Data Elements 155
Linear State Equation

Linear State Equation


The Linear State Equation (LSE) statement defines the following linear system:

x· = Ax + Bu
y = Cx + Du
of first-order, explicit differential equations and algebraic equations in classical state-space form.

Application
The state variables, x, the inputs, u, and the outputs, y, are specified by ARRAY statements. Use
MATRIX statements to define the coefficient matrices A, B, C, and D. A single LSE can have a
maximum of 1200 inputs, 1200 states, and 1200 outputs.
The LSE statement provides a very general capability for defining a linear element. The ADAMS solvers,
however, have been developed and refined for sparse systems of equations that arise from the modeling
of mechanical systems. With the LSE statement, you can create very dense sets of equations. If these
equations form a large portion of your completed model, ADAMS/Solver (C++) may perform more
slowly than expected.
Note that, if the algebraic equations defined by the LSE statement have no solution or multiple solutions
(this is possible because of the general nature of the input ARRAY), ADAMS/Solver (C++) most likely
fails to converge or possibly converge to an unexpected answer. To avoid this possibility, you should not
reference the X (state) or Y (output) ARRAY statements in the VARIABLE statements listed in the U
(input) array.

Description of Fields

Field Description
Specifies user entered name for the linear state equation. Populated with
Name
Linear_State_# by default.
Outputs Field that sets the value for number of outputs from the equation.
Inputs Field that sets the value for number of inputs from the equation.
States Field that sets the value for number of states for the equation.
Option button that selects between defining the A matrix values with entered data
A Matrix Method
or data from an existing matrix file. Entered data is the default method.
Option button that selects between defining the values with entered data or data
B Matrix Method from an existing matrix file. Only enabled if N_INPUTS > 0. Entered data is the
default method.
156
Linear State Equation

Field Description
Checkbox that activates the C matrix and option button that selects between
C Matrix Method defining the values with entered data or data from an existing matrix file. Only
enabled if N_OUTPUTS > 0. Entered data is the default method.
Checkbox that activates the D matrix and option button that selects between
defining the linear state equation with entered data or data from an existing matrix
D Matrix Method
file. Only enabled if N_INPUTS > 0 and N_OUTPUTS > 0. Entered data is the
default method.
Specify Initial Checkbox that enables initial condition specification for the linear state equation.
Conditions Clicking on the Edit Values icon allows values to be entered.
Keep initial
values constant Checkbox that selects whether or not the motion solver should hold constant the
during static value of the transfer equation during static and quasi-static simulations.
analysis
System Elements and Data Elements 157
Linear State Equation

Sample Form

To create a Linear State Equation:


1. From the System Elements toolbox, select Linear State Equation.
2. Enter a name for the linear state equation.
3. Use the drop-downs to specify the configuration of the equation by defining the number of
outputs, inputs, and states.
4. Input data or select an existing matrix file for the A Matrix.
158
Linear State Equation

5. If necessary, input data or select an existing matrix file for the B, C, and D matrices. The
availability of these matrices depend on the number of outputs and inputs specified in the
configuration.
6. Optionally check the checkbox to define initial conditions..
7. Select whether to keep the equation values constant during a static analysis.
8. Click OK to create the linear state equation.
System Elements and Data Elements 159
General State Equation

General State Equation


The GSE (General State Equation) statement lets you represent a subsystem that has well defined inputs
(u), internal states (x), and a set of well-defined outputs (y).

Application:
The GSE (General State Equation) statement defines the equations for modeling a nonlinear, time
varying, dynamic system. The statement is especially useful for importing nonlinear control laws
developed manually or with an independent software package. It can also be used to define an arbitrary
system of coupled differential and algebraic equations. The GSE allows you to implement continuous
and feed forward systems.
The GSE statement provides a very general capability for modeling nonlinear systems. However, the
routines for solving the linear equations in ADAMS/Solver (C++) have been developed and refined to
work particularly well with the sparse systems of equations that come from the assembly of mechanical
models. With the GSE statement, you can create very dense sets of equations. If these equations form a
large portion of the completed model, ADAMS/Solver (C++) may perform more slowly than expected.
To improve the performance of ADAMS/Solver (C++), any arrays of partial derivatives which are not
full can be represented in sparse form. This sparse form can substantially reduce the effort required by
the integrator. To represent the partials in sparse form, use the GSEMAP_* (provide link) utility
subroutines, when calling GSE_DERIV (provide link) with IFLAG=1, to define the sparsity. Then, use
the GSEPAR_* utility subroutines to pass the sparse partial arrays to the integrator.
160
General State Equation

Description of Fields:

Field Description
Specifies user entered name for the general state equation. Populated with
Name
General_State_# by default.
Outputs Field that sets the value for number of outputs from the equation.
Inputs Field that sets the value for number of inputs from the equation.
Field that sets the value for number of continuous states (N_STATES) for the
Continuous States
equation.
Field that sets the value for number of discrete states (N_DSTATES) for the
Discrete States
equation.
Option button that selects between Interface style and routine style. Interface style
Formulation
allows the use of implicit formulation, and is the default.
Parameters Subroutine parameters (comma separated numerical entries).
Field that specifies a user subroutine. Users enter library name and routine name,
Routine
with specific syntax: library_name::routine_name. Example abgFDM::fie910
Checkbox that enables initial condition specification for continuous and/or
Initial Conditions discrete states. Fields are enabled if the number of corresponding states = 0.
Clicking on the Edit Values icons allows values to be entered.
Keep state values
Checkbox that selects whether or not the motion solver should hold constant the
constant during
state values during static and quasi-static simulations.
static analysis

Sample form:
System Elements and Data Elements 161
General State Equation

To create a general state equation:


1. From the System Elements toolbox, select General State Equation.
2. Enter a name for the equation.
3. Using the drop-down, define the configuration (number of outputs, inputs, continuous, and
discrete states) of the state equation.
4. Select the formulation style between Interface Style or Routine Style. Enter parameters and select
a subroutine to which they will be passed.
5. Optionally specify initial conditions for continuous and discrete states.
6. Select whether to keep the equation values constant during a static analysis.
162
General State Equation

7. Click OK to create the general state equation.


System Elements and Data Elements 163
Transfer Function

Transfer Function
The TFSISO (Transfer Function, Single-Input, Single-Output) statement defines a single-input, single-
output transfer function as a ratio of two polynomials in the Laplace domain when used with the
associated ARRAY statements.

Application:
The TFSISO (Transfer Function, Single-Input, Single-Output) statement is designed to model a linear,
time-invariant dynamic system defined in the Laplace domain, especially to facilitate the import of
elements from control-system block diagrams. It can also be used, however, to define an arbitrary set of
constant-coefficient, differential and algebraic equations which can be expressed in the Laplace domain
as:
1 m
y( S) b0 + b1 s + bm s
G ( S ) = ----------- = ----------------------------------------
-
u(S) a0 + a1 s + ak s
1 k

The TFSISO follows standard control systems terminology, where x is the state variable array, y is the
output variable, and u is the input variable. Initial conditions are assumed to be identically zero. In the
ADAMS/Solver (C++) dataset, each of these arrays is defined using an ARRAY statement. The
characteristic equation for a single TFSISO statement, defined by the DENOMINATOR argument, can
be a polynomial of degree less than 30.
164
Transfer Function

Description of Fields:

Field Description
Specifies user entered name for the linear state equation. Populated with
Name
Transfer_Function_# by default.
Input Variable Field that selects a motion state variable as the input for the transfer function.
Field that sets the number of coefficients for the numerator of the transfer
function. These coefficients are specified using the Edit Values icon to the right
Numerator Size of the field. The number of coefficients for the denominator must be greater than
or equal to the number of coefficients for the numerator, so if users enter a number
here greater than the current denominator size the denominator size will increase.
Icon that opens a matrix editor form to enter the selected number of numerator
Edit Values
coefficients.
Field that sets the number of coefficients for the denominator of the transfer
function. These coefficients are specified using the Edit Values icon to the right
Denominator Size
of the field. The number of coefficients for the denominator may not be set lower
than the number in the numerator.
Icon that opens a matrix editor form to enter the selected number of denominator
Edit Values
coefficients.
Keep value Checkbox that selects whether or not the motion solver should hold constant the
constant during value of the transfer equation during static and quasi-static simulations. Checked
static analysis by default.

Sample form:
System Elements and Data Elements 165
Transfer Function

To create a transfer function:


1. From the System Elements toolbox, select Transfer Function.
2. Enter a name for the transfer function.
3. Select the input variable for the transfer function.
4. Select the numerator size and denominator size, keeping in mind that the denominator must be
equal to or greater than the numerator in size.
5. Click on the edit values icons to enter the coefficients for the numerator and denominator.
6. Select whether to keep the function values constant during a static analysis.
7. Click OK to create the transfer function.
166
String

String
The STRING statement defines a character string that may be referred to later in the execution of the
motion solver. An interactive STRING command can be used to alter or review this character string. A
GTSTRG subroutine can be used to retrieve this character string in a user-written subroutine.

Application:
The STRING statement enters a character string for later reference. The GTSTRG subroutine can retrieve
this string.
The following characters are not permitted in a STRING argument because they are delimiters in the
ADAMS/Solver command language: comma (,), semicolon (;), ampersand (&), and exclamation point
(!). This is because the comma indicates that additional ADAMS/Solver arguments follow; the semicolon
indicates that additional ADAMS/Solver statements follow on the same line; the ampersand indicates
that the next line is a continuation of the statement on this line; and the exclamation point indicates that
ADAMS/Solver is to stop reading the line.

Description of Fields:

Field Description
Name Field that specifies the ASCII text name of the string. This name is used
with the GTSTRG subroutine to retrieve the string.
String Field that specifies the string values.

Sample form:

To create a string:
1. From the Data Elements toolbox, select String.
2. Enter a name for the string.
System Elements and Data Elements 167
String

3. Enter the value of the string. Be aware to avoid using the comma (,), semicolon (;), ampersand
(&), and exclamation point (!) as they have other solver functions.
4. Click OK to create the string.
168
Array

Array
An Array is a list of input variables, state variables, output variables, and initial conditions associated
with system elements, such as general state equations, linear state equations, and transfer functions. You
can also use general arrays to define lists of constants. You can access the values in function expressions
or user-written subroutines.

Application:
There are five types of arrays:
1. (1) General/ (2) Initial Conditions - Define an array of constants used as initial conditions for a
system element or user-written subroutine.
2. (3) States (X) and (4) Outputs (Y) - Designate the state or output variable arrays for a system
element, such as a linear state equation, general state equation, or transfer function. Adams/Solver
computes these values during a simulation.
To use the arrays, you reference them in function expressions. You can reference the array as the
state or output variable array of only one system element in a model (for example, only one linear
state equation or one general state equation).
3. (5) Inputs (U) - An array that groups together a set of variables used to define the inputs for a
system element. Motion should compute variable values from the specified variable data
elements.
The inputs (U) and the initial conditions arrays can exist independently, and do not need to be
referenced by another system element.
System Elements and Data Elements 169
Array

Array Sizing

For arrays
used in: The array size is:
States (X) array size must be the same size as the row dimension of the matrix
used to define the state transition matrix for the linear system.
Linear state
equation (LSE) Outputs (Y) size must be the same size as the row dimension of the matrix used
to define the output matrix for the linear system or the matrix used to define the
feed forward matrix for the linear system.
States (X) size is determined by the transformation from polynomial ratio type to
Transfer functions canonical state-space form, which is a set of coupled, linear, constant-coefficient
(TFSISO) differential equations and a single algebraic equation.

Outputs (Y) size is always 1.


States (X) size is the same as the number defined in the matching general state
equation definition.
General state
equations (GSE)
Outputs (Y) size is the same as the number of output equations, as defined in the
same general state equation definition.

Description of Fields:

Field Description
Name Name of the array.
Table of array values. Rows may be added using the “+” icon to the right of the
Values
table to make the array any size.
170
Array

Sample form:

To create an array:
1. From the Data Elements toolbox, select Array.
2. Enter a name for the array.
3. Adjust the size of the array table using the “+” and “-” icons.
4. Enter values for the array.
5. Click OK to create the array.
System Elements and Data Elements 171
Curve

Curve
The Motion Curve object allows users to manually define a curve without any geometric reference. This
allows creation of point-curve and curve-curve constraints without imported geometry.

Application:
The Motion Curve object allows users to create point-curve and curve-curve constraints without
imported geometry. Motion Curves can be referenced by the Point-Curve and Curve-Curve objects.

Description of Fields:

Field Description
Name Specifies user entered name for curve. Populated with Curve_# by default.
Field which specifies the coordinate system that defines the location and reference
Coordinate
part for the curve to be created. An icon is available to select the model origin,
System
which is the default.
Checkbox that specifies that the curve meets at the ends. If you specify
CURVE_POINTS, the motion solver attempts to compute a curve that meets at
the ends and has continuous first and second derivatives across the closure. If you
specify FUNCTION, you must ensure that the defined curve meets at the ends and
Closed
has continuous first and second derivatives across the closure. If the curve is
closed, the first and last control or curve points must be the same. During a
simulation, the motion solver moves a PTCV or CVCV contact point across the
closure, if necessary.
Drop-down that allows selection between user entered values, user subroutine,
Method and matrix files as a method to define the curve. The default method is user
entered values.
172
Curve

Curve: User Entered Values

Field Description
Checkbox that indicates the matrix below contains data points that lie on the
Curve Points
curve. Cleared by default.
Field which specifies the order of the b-spline interpolating the curve. The order
is 1 plus the degree of the functions used to define the spline. The order also
affects the number of points used to determine each spline segment. For example,
Order splines of order 2 are basically polylines, while the segments used to create an
spline of order 4 are of the 3rd order. 4 is the default order of splines, which is a
cubic b-spline. The order must be greater than or equal to 2, and the default value
is 4.
Table of data that defines the curve in all three dimensions. Rows may be added
Curve Matrix to or removed from the matrix using the + and - icons. Four rows are present by
default.

Curve: User Subroutine

Field Description
Field that specifies parameters for the user-written subroutine CURSUB. Enter
Parameters the user function using the following format where r1 through r30 are constants
passed to the subroutine: r1, ..., r30
Field that specifies an existing user subroutine. Users enter library name and
Routine routine name, with specific syntax: library_name::routine_name. Example
abgFDM::fie910
Maximum Enter the maximum value of the curve parameter for a user-written curve.
Minimum Enter the minimum value of the curve parameter for a user-written curve.
System Elements and Data Elements 173
Curve

Curve: Matrix File

Field Description
Checkbox that indicates the matrix file contains data points that lie on the curve.
Curve Points
Cleared by default.
Field which specifies the order of the b-spline interpolating the curve. The order
is 1 plus the degree of the functions used to define the spline. The order also
affects the number of points used to determine each spline segment. For example,
Order splines of order 2 are basically polylines, while the segments used to create an
spline of order 4 are of the 3rd order. 4 is the default order of splines, which is a
cubic b-spline. The order must be greater than or equal to 2, and the default value
is 4.
Field that selects the name of the file containing the matrix values. Icons are
Matrix File
available to browse to a different directory, and to edit an existing file.
Enter the name of the matrix in the file. The name of the matrix is necessary even
Matrix Name if the file contains only one matrix. You will need to create additional matrices to
read other matrices from the same file.

Sample form:
174
Curve

To create a curve:
1. From the Data Elements toolbox, select Curve.
2. Enter a name for the curve.
3. Select a coordinate system in which the curve will be defined.
4. Select a method to define the curve from User Entered Values, User Subroutine, or Matrix File.
5. Enter points or select a matrix or subroutine and enter parameters to be passed to it.
6. Click OK to create the curve.
System Elements and Data Elements 175
Spline

Spline
The SPLINE statement defines discrete data that ADAMS/Solver (C++) interpolates using the AKISPL
and CUBSPL function expressions and the AKISPL and CUBSPL data-access subroutines. A SPLINE
statement provides one or two independent variables and one dependent variable for each data point you
supply.

Application:
ADAMS/Solver (C++) applies curve-fitting techniques that interpolate between data points to create a
continuous function. If the SPLINE data has one independent variable, ADAMS/Solver (C++) uses a
cubic polynomial to interpolate between points. If the SPLINE data has two independent variables,
ADAMS/Solver (C++) uses a cubic method to interpolate between points of the first independent
variable, and then uses a linear method to interpolate between curves of the second independent variable.
176
Spline

Description of Fields:

Field Description
Name Field that specifies an ASCII text name for the spline.
Option button to specify the method for entering/editing spline data.

Entered Data:

Displays a properties button that launches the curve editor tool to enter and
Method display spline data.

File:

Select an ASCII [.txt, .dat] file that contains the desired spline data. Icons are
available to browse to another directory or edit the text file.
Linear
Checkbox that enables linear extrapolation for the spline data. Cleared by default.
Extrapolation

Sample form:

To create a string:
1. From the Data Elements toolbox, select Spline.
2. Enter a name for the spline.
System Elements and Data Elements 177
Spline

3. Select a method to define the spline data. Available options are Entered Data (via the Spline
Editor) or File (via accessing an external file).
4. Enter the data or select the file and file type to define the spline.
5. Click the checkbox to enable extrapolation if desired.
6. Click OK to create the spline.
178
Spline
Instrumentation 177

Instrumentation
178
Overview

Overview
The contents of the Instrumentation toolbar allow users of the SimXpert Motion Workspace to request
specific output from a simulation and to trigger events based on the current status of a simulation or the
configuration of its parts. These allow users to interact with the simulation based upon its results.
Instrumentation 179
Request

Request
Requests allow users to create their own measurements. Quantities may be measured between two
coordinate systems and reported in a reference coordinate system.

Application
Various types of request are available, including displacement, velocity, acceleration, force, user defined,
and user subroutine. Examples are measuring locations and orientations of one part with respect to
another, measuring relative velocity between 2 coordinate systems, and measuring forces between
coordinates systems.

Description of Fields

Field Description
Name Specifies name of the request object. Populated with Request_# by default.
Type Specifies type of request object. Displacement is the default.
Measures displacement between two user selected coordinate systems in a
Displacement
reference coordinate system.
Measures velocity of one user selected coordinate system relative to another
Velocity
in a reference coordinate system.
Measures acceleration of one user selected coordinate system relative to
Acceleration
another in a reference coordinate system.
Measures force between two user selected coordinate systems in a reference
Force
coordinate system.
Allows the user to specify multiple components of the request using
User Defined
expressions. See User Defined Form Entries below.
Allows the user to select an existing subroutine and specify parameters to be
Runtime
passed to it. Units may be selected or defined for each output component from
Subroutine
the subroutine. See Runtime Subroutine Form Entries below.
The first coordinate system that defines the request measurement reference
Coordinate System 1
location. Enabled for all types except User Defined.
The second coordinate system that defines the request measurement reference
Coordinate System 2
location. Enabled for all types except User Defined.
Reference Coordinate The reference coordinate system for the request measurement. Enabled for all
System types except User Defined.
180
Request

User Defined Form Entries

Field Description
Table that allows the user to specify an arbitrary number of components for a
Component
request. This table is visible only for User Defined Request types.
Specifies the name for the request component. Must be solver compliant,
Name
standard ASCII text, no spaces or special characters.
Offers the option of selecting a type of unit from a drop down list. User defined
Unit Type
is an available option as well, which makes the Units field editable.
Displays the unit of the selected unit type in the current set of units. The list
updates based on session units. So if the session units are MMKS, only
Units
MMKS units appear in the list. If the user switches to English units (in, lbs,
etc.), the unit field updates to that set of units.
Displays the expression for the request component. You may either type the
Expression request expression or use the Function Expression Builder to assist you in its
creation. You may verify each component expression individually.
Icon to the right of the table that adds another row to the table to add another
+
component to the request.
Icon to the right of the table that removes a selected row from the table,
-
removing that component from the request.
Instrumentation 181
Request

Runtime Subroutine Form Entries

Field Description
Field that specifies a list of parameters to be passed to the selected subroutine
Parameters
to define the request.
Field that specifies an existing subroutine. Users enter library name and
Routine routine name, with specific syntax: library_name::routine_name. Example
abgFDM::fie910
Table that allows the user to select units for the number of components defined
Component
by a subroutine. This table visible only for Runtime Subroutine Request types.
Specifies the name for the request component. Must be solver compliant,
Name
standard ASCII text, no spaces or special characters.
Offers the option of selecting a type of unit from a drop down list. User defined
Unit Type
is an available option as well, which makes the Units field editable.
Displays the unit of the selected unit type in the current set of units. The list
updates based on session units. So if the session units are MMKS, only
Units MMKS units appear in the list. If the user switches to English units (in, lbs,
etc.), the unit field updates to that set of units. Field is read only unless the Unit
Type is set to User Defined.

Sample Form

To create a request:
1. From the Instrumentation toolbox, select Request.
182
Request

2. Enter a name for the request.


3. Select the type of request, which specifies the quantity to be measured. User defined and
subroutine options are available for more advanced measures.
4. Select the two coordinate systems between which the selected quantity will be measured.
5. Select a reference coordinate system in which the results will be measured.
6. Click OK to create the request.
Instrumentation 183
Sensor

Sensor
The SENSOR statement is used to modify the simulation when a user-defined event occurs during run-
time. The event is defined by a logical expression which compares an expression to a target value. If the
logical expression becomes true during the simulation, the sensor modifies the simulation by various
means which are selected by the user under the Actions tab of the property editor form.

Application
The SENSOR statement defines a user-defined event that affects a set of simulation controls when the
event occurs. The event is defined by a logical expression that compares a function expression (or
evaluation of a user-written subroutine) to a target value using a relational operator. If the logical
expression becomes true during the simulation, the sensor modifies a set of simulation controls, which
include output and integration step sizes, simulation end time, and the Jacobian pivot sequence. A sensor
can also output diagnostic information and store the value of a function expression for later recall.
ADAMS/Solver (C++) evaluates the logical expression after every successful integration step when
doing dynamic analysis and after every successful output step when doing other types of analyses. To
define the function, use a function expression or a user-written subroutine. User-written subroutines and
utility subroutines discuss the subroutines they can access.
When using the default search algorithm in ADAMS/Solver (C++), the SENSOR function must be
continuous. The secant-type search algorithm is inaccurate and time consuming when the function is
discontinuous. For that reason, functions of time or displacements work best for sensors; functions of
velocities, accelerations, and forces are less desirable.

Description of Fields
184
Sensor

Definition Tab:

Field Description
Checkbox that enables evaluation of an expression or subroutine when the event
Set Evaluation
that the sensor is monitoring becomes true.
Method Specifies method for evaluation between run time expression and user subroutine.
Specifies run time expression to be evaluated when sensor is triggered. The
Expression launch function expression builder icon is available to assist in defining the
expression.
Specifies parameters to be passed to selected user subroutine when the sensor is
Parameters
triggered. Enabled only if the method is set to User Subroutine.
Field that selects a user subroutine to be evaluated when the event the sensor is
Routine
monitoring becomes true. Enabled only if the method is set to User Subroutine.
Option button that selects between angular and non-angular values for defining
Values
the sensor.
Drop-down that selects the range when the sensor will be triggered. The options
are:

Equal to Value: From (Target - Error) to (Target + Error). This is the default.
Type
Greater than or Equal to Value: Greater than or equal to (Target - Error).

Less than or Equal to Value: Less than or equal to (Target + Error).


Value Field that specifies user entered value for the target value that triggers an action
Field that specifies the absolute value of allowable error between the targeted
Error Tolerance
value and the actual sensed value. Default =0.001

Actions Tab
Instrumentation 185
Sensor

Standard::

Field Description
Generate
Checkbox that creates an extra output step when the motion solver triggers the
Additional Output
sensor so the simulation captures the action. Cleared by default.
Step
Checkbox and field that redefine the time between consecutive output steps. The
Set Output Step motion solver uses this value until it is changed. The default step size is the current
Size time between output steps for the simulation. If checked, a numeric field becomes
active to specify the output step size. Cleared by default.
Checkbox and option button that terminates current simulation step and does one
of the following:

Stop simulation script - Stop the simulation


Terminate current
simulation step Continue simulation script - Stop the current command in the simulation script
and continue with the next command.

Cleared by default.
186
Sensor

Special:

Field Description
Checkbox that redefines the next integration step size. This change is temporary
and lasts only for the next solution step. The default is an integrator-determined
value except when you've included restarting the integrator as part of the sensor
Set integration action as explained next. In this case, the step size defaults to the integrator step
Step Size size.

If checked, a numeric field becomes active to specify the integration step size.
Cleared by default.
Checkbox that restarts integration and reduces the integration order to one. If you
also set integration step size as explained above, the motion solver reinitializes the
Restart Integrator integration step size to the specified value. If you do not specify the step size, the
solver reinitializes the integration step size to the integrator's default step size.
Cleared by default.
Checkbox that causes the motion solver to generate a new pivot sequence for
matrix factorization. This can help the integrator produce more accurate data or
Refactorize proceed more robustly through the simulation. The motion solver generates a
Jacobian pivot sequence for matrix factorization before starting the simulation. It does not
generate a new pivot sequence unless you specify to refactorize the Jacobian or it
is necessary to refactorize to reach convergence. Cleared by default.
Dump State Checkbox that when checked writes the entire array of state variable values to a
Variable Vector text file in your current working directory. Cleared by default.
Checkbox that specifies that a bisection search algorithm will be used to isolate
Bisection Search
the activation time of the sensor. When not present the default, secant-type root-
Algorithm
finding algorithm is used. Cleared by default.
Checkbox and field that specify the temporal error with which the activation time
Set temporal error
of the sensor is isolated. By default the TERROR condition is not enforced.
Instrumentation 187
Sensor

Sample forms
Definition Tab:
188
Sensor

Actions Tab:

To create a sensor:
1. From the Instrumentation toolbox, select Sensor.
2. Enter a name for the sensor.
3. Select a method to define the sensor. Expression and User Subroutine are the available options.
4. Optionally check the Set Evaluation checkbox and define an evaluation method.
5. Enter an equality type, value, and error tolerance for the target of the sensor.
6. Click on the actions tab and select actions to take place when the definition value is reached.
7. Click OK to create the sensor.
Instrumentation 189
Height Sensor

Height Sensor
The height sensor object reports the minimum distance of a point on a geometric body above a roadway.
The sensor also reports the components of distance in a user specified coordinate system, as well as the
relative velocity of the geometric point relative to the 3D road.

Application
The height sensor is applicable as part of the transportation functionality of the motion workspace and
works closely with the Tire and Road functionality. Using the position of the geometric point on a body,
the height sensor request subroutine calls the 3D road routines and iterates towards the road point with
the minimum distance to the body point. The user subroutine returns the minimum distance as well as
components of the distance vector in a specified coordinate frame. The relative velocity is calculated in
a similar manner and also reported in the specified coordinate frame.

Description of Fields
190
Height Sensor

Definition Tab:

Field Description
Specifies name of the height sensor. Automatically populated with
Name
HeightSensor_#.
Specifies motion part on which a point’s position will be measured relative to
a 3D road. This field is read-only if Coordinate System option has been
Part
selected for location, and the selected Coordinate System does not belong to
ground.
Define Location
Allows selection of the method to define location of the point to be measured.
Using
Allows selection of geometric point locations, such as a vertex, center point of
a circular edge, or center of a sphere. If geometry filters are active, they will
Geometry
affect the default types of picks that can be made. If multiple locations are
selected, this option will average the locations to determine a single location.
Hardpoint Allows selection of an individual hardpoint to be used as the location.
Custom Allows the direct entry of X, Y, and Z coordinates of a position.
Coordinate
Allows selection of a coordinate system origin to be used as the location.
System
Center of
Mass Allows selection of a part’s center of mass as the location.
Location
Reference coordinate system for the sensor in which distance and relative
Reference CS
velocity values will be output.
Road Specifies an existing 3D road model to which the height will be measured.
Instrumentation 191
Height Sensor

Sample form
Definition Tab:

To create a height sensor:


1. From the Instrumentation tab, select Height Sensor.
2. Enter a name for the sensor.
3. Select a Part for which the sensor will measure the height above the roadway.
4. Select a method to define the location. This defines the exact location on the selected part that will
be measured to.
5. Select a reference coordinate system for the measurement to be reported in.
6. Select an existing road model to measure the height of the part above.
7. Click OK to create the height sensor.
192
Select Results

Select Results
The Select Results form allows users to select a subset of calculated results quantities and export them to
a .csv file during the simulation. The .csv file will have a header line with all the entity names, and then
subsequent lines for data at each timestep. Time will always be included as an initial column.

Application
This feature is applicable when the user wishes to export CSV file during simulation for selected results
of interest. Once generated, this file may be useful for 3rd party post-processing on generic formats and
for archival purposes.

Description of Fields

Field Description
Name Specifies name of the table. Automatically populated with Output_Table_#.
Specifies interval between output. Available options are at each output step,
Time Interval
each integration step, or at custom defined points in the simulation.
Specifies Number of decimal places to right of decimal point. Must be greater
Decimal Places
than or equal to 2, and the default value is 4.
Specifies the numerical format of output data. The options are:

Scientific Ex: 1.543E+01 and


Format
General Ex: 15.43

The default is Scientific.


The ASCII text for identifier used to construct file name. Is same as object
Identifier name by default. Duplicate identifier strings (if model as more than one
Output Report) are not accepted. Non- ASCII text is not accepted.
Table of objects and their respective result data to be included in the output
Object file. For each output quantity user selects a motion object which has output,
and a result quantity.
Result Quantity Result quantity to be reported for the corresponding object.
Instrumentation 193
Select Results

Sample form

To create an output table:


1. From the Instrumentation toolbox, select Output Table.
2. Enter a name for the table.
3. Select a time interval for the output. Output Step, Integration Step, and Custom are the available
options.
4. Select the number of decimal places to be included for the output data.
5. Select a format for the output data between scientific and general.
6. Select motion object(s) for which to report output.
7. Select available result quantities to be reported for each object.
8. Click OK to create the table. The output will be generated when the simulation is ran.
194
Max Min

Max Min
The Max Min form allows users to generate an ASCII report file containing a table of maximums and
minimums and associated time points for a selected list of parameters ('Set A'). For an additional set of
selected parameters ('Set B') that are a subset of 'Set A', it reports out in the same file, the associated
values at the time of the maximum/minimum ('Set C'). These parameters, 'Set C' are specific to the 'Set
B' parameter.

Application
This feature is applicable when the user wishes to export an ASCII text file during simulation for selected
maximum and minimum results of interest.

Description of Fields

Field Description
Specifies name of the text output table. Automatically populated with
Name
Select_Results_#.
Specifies interval between output. Available options are at each output step,
Time Interval
each integration step, or at custom defined points in the simulation.
Unique identifier for the max min report. Populated with the report name by
Identifier default. Duplicate identifier strings (if model as more than one Output Report)
are not accepted. Non- ASCII text is not accepted.
Specifies the numerical format of output data. The options are:

Scientific Ex: 1.543E+01 and


Format
General Ex: 15.43

The default is Scientific.


Specifies Number of decimal places to right of decimal point. Must be greater
Decimal Places
than or equal to 2, and the default value is 4.
Table of objects and their respective result data to be included in the output
Max/Min Quantities file. For each output quantity user selects a motion object which has output,
and a result quantity.
Additional result quantity to be reported for the corresponding maximum or
Associated Quantity
minimum.
Instrumentation 195
Max Min

Sample form

To create max min output:


1. From the Instrumentation tab, select Max Min.
2. Enter a name for the report.
3. Select a time interval for the output. Output Step, Integration Step, and Custom are the available
options.
4. Select the number of decimal places to be included for the output data.
5. Select a format for the output data between scientific and general.
6. Select motion object(s) for which to report output.
7. Select available result quantities to be reported for each object.
8. Click OK to create the report. The output will be generated when the simulation is ran.
196
2D Envelope

2D Envelope
The 2D Envelope form allows users to generate a .csv file containing a summary of data that provides a
2-dimension envelope, or convex hull, of the selected pairs('Set A') when the pairs are plotted against one
another for each simulation. For an additional set of selected parameters (Set B), it reports out in the same
file, their associated values at the time the 2D Envelope points occur.

Application
This feature is applicable to find out the convex hull (or the envelope) inside which all the points would
lie when the XAxis and YAxis data are plotted on a graph.
For example, suppose you have chosen Fz for a Gear in XAxis and Fx for YAxis. That would mean that
the envelope object would plot a graph by plotting Fz along XAxis and Fx along YAxis and then find out
the convex hull (the dotted curve pointed to by the red arrow below) of the resulting curve (the darker
curve below).
Note that the darker curve is completely inside the dotted curve (they have some overlapping boundary
points). And that's why the dotted curve is the hull or envelope of the darker curve. Our envelope object
is intended to find out the points on the hull or the dotted curve only. These points would be a subset of
the points on the darker curve and in certain cases may be the same as the darker curve (for example if
the darker curve is a straight line or circle or a polygon then its hull will be identical to itself).

Since we are interested in the points on the hull only, the resulting points may not be in a increasing order
with respect to time.
Also note that since the hull is an curve which encloses the darker curve completely, it ends on the same
point where it started.
Instrumentation 197
2D Envelope

Multiple
The input for multiple determines which time step output will be used for the envelope plot. For example,
if you have chosen a multiple of 2 and chosen 20 time steps for your simulation, the TwoDEnvelope
would take the data for 0th, 2nd, 4th, 6th, 8th, 10th, 12th, 14th, 16th, 18th output steps and calculate the
hull for those data. The output hull would be a subset of these output steps' data.
Had you chosen a multiple of 3 and 20 time steps the input for the TwoDEnvelope would be 0th, 3rd, 6th,
9th, 12th, 15th, 18th output steps' data.
Had you chosen a multiple of 4 and 20 time steps the input for the TwoDEnvelope would be 0th, 4th, 8th,
12th, 16th output steps' data.
When you increase the multiple the number of input points for the TwoDEnvelope decreases, but that
does not mean that the number of output hull points would decrease proportionately.

Description of Fields

Field Description
Specifies name of the text output table. Automatically populated with
Name
TwoDEnvelope_#.
Specifies interval between output. Available options are at each output step,
Time Interval
each integration step, or at custom defined points in the simulation.
Unique identifier for the max min report. Populated with the report name by
Identifier default. Duplicate identifier strings (if model as more than one Output Report)
are not accepted. Non- ASCII text is not accepted.
Specifies the numerical format of output data. The options are:

Scientific Ex: 1.543E+01 and


Format
General Ex: 15.43

The default is Scientific.


Specifies Number of decimal places to right of decimal point. Must be greater
Decimal Places
than or equal to 2, and the default value is 4.
Table of objects and their respective result data to be included in the output
Object file. For each output quantity user selects a motion object which has output,
and a result quantity.
Additional result quantity to be reported for the corresponding maximum or
Associated Quantities
minimum.
198
2D Envelope

Sample form

To create a 2D envelope report:


1. From the Instrumentation toolbox, select 2D Envelope.
2. Enter a name for the report.
3. Select a time interval for the output. Output Step, Integration Step, and Custom are the available
options.
4. Select the number of decimal places to be included for the output data.
5. Select a format for the output data between scientific and general.
6. Select motion objects for the X and Y axis for which to report output.
7. Select available result quantities to be reported for each object.
8. Optionally select associated quantities to be reported for each object.
9. Click OK to create the report. The output will be generated when the simulation is ran. The
envelope can be plotted by reading in the CSV file generated for the TwoDEnvelope object.
Simulation 191

Simulation
192
Simulation Types

Simulation Types
You may choose from three solution types as you submit a simulation. The four available types are static,
quasi-static, transient, and dynamic. A transient simulation instructs the solver to run a kinematic analysis
if the system has zero degrees of freedom or a dynamic analysis if the system has one or more degrees of
freedom, and is the default in SImXpert motion.

Static
In a static simulation, the system has more than 0 degrees of freedom and is solved to find a static
equilibrium point. All system velocities and accelerations are set to zero.

Quasi-Static
In a quasi-static simulation, a sequence of static simulations are performed for different configurations
of the model. Typically, static equilibrium is computed at fixed time intervals throughout a prescribed
motion for a model.

Kinematic
A kinematic analysis solves for the displacements, velocities, accelerations, and forces (if any) at a series
of points in time. A kinematic analysis is only appropriate when a system has zero degrees of freedom.

Dynamic
In a dynamic simulation, the system has more than 0 degrees of freedom and is driven by external forces
and excitations. Nonlinear differential and algebraic equations are solved.
Simulation 193
Simulation Properties

Simulation Properties
The simulation properties form is accessible from the simulation toolbox in SimXpert. It may also be
accessed from the tree for an existing simulation.
Before submitting a simulation, this form allows you to specify the end time of a simulation, the number
of steps, and the simulation type. The simulation controls section contains tools for verifying the model
prior to simulation and submitting the simulation.
During a simulation, the form displays the current time and current step, as well as the estimated time
remaining.

Description of Fields

Field Description
Name Allows you to specify a unique name for each simulation.
Simulation Type Includes options for running a dynamic, quasi-static, or static simulation.
Start at Static Check box that if selected has a quasi-static or dynamic solution begin
Equilibrium from the static equilibrium solution.
End Time Sets the end time and therefore the length of a simulation
Steps Sets the number of steps for a simulation. Used with the end time to
determine the time interval of each step.
Auto Verify Checkbox that toggles the automatic verification of the model before
running a simulation.
Debug Eprint Prints a block of information for each kinematic, static, or dynamic step.
This information helps you monitor the simulation process and locate the
source of the error if there is a problem.
Animate While Checkbox that toggles display of anumation during a simulation. Options
Simulating for the animation are controlled under the Animation Tab.
Hide When Finished Check box that if selected will close the simulation form once the
simulation has been completed.
Verify Model Checks for error conditions in the model
Simulation Preferences Opens the Simulation Preferences Dialog box to define Dynamics,
Equilibrium, and Initial Conditions Simulation Parameters for the
simulation.
Begin Model Simulation Starts the computation of a simulation
Stop Simulation Stops the in progress simulation
194
Simulation Properties

Sample Form

To set up a simulation:
1. Select Simulation from the Simulation toolbox or right click on an existing simulation and select
properties.
2. If desired, you may enter a unique simulation name.
3. Select the desired simulation type.
4. If you want the simulation to begin from a static equilibrium, select the Start at Static Equilibrium
check box.
5. Enter the desired end time and number of steps.
6. Click on the verify model button to check for error conditions in the model.
7. Click the begin model simulation button to submit the simulation.
8. Monitor the status of the simulation as it progresses. If the Animate While Simulating checkbox
is checked the model will animate while the simulation progresses.
Gravity 195

Gravity
196
Gravity

Gravity
The properties form for the gravity item in the tree allows you to define gravity for the model. You can
specify the magnitude and direction of the acceleration of gravity.

Application
You may specify a positive or negative direction along any of the global axes, or you may specify a
unique direction. Unique directions may be necessary if the model is oriented such that gravity acts in a
direction other than one of the global axes, as in the case of a car on a banked track.
The magnitude may be modified to any desired value to accommodate situations with non-standard
gravitational acceleration. This could be useful in accounting for variations in gravitational acceleration
with altitude or modeling situations where the model is subject to some other constant acceleration.
For each part with mass, the gravitational force produces a point force at its center of mass.

Description of Fields

Field Description
Active Check box that elects whether gravity is enabled for the model. Selected by
default.
Direction Direction in which gravitational acceleration will act. Available options
include the positive and negative directions along each axis, as well as a
custom option which allows you to enter components of gravity along each
axis.
Magnitude Allows you to specify the magnitude of the gravitational acceleration. If the
custom direction option is chosen, the magnitude will be calculated as the
resultant of the acceleration in each axis direction.
Defaults Resets all gravity fields to their default values.
Gravity 197
Gravity

Sample Form

To modify gravity properties:


1. Right click on the Gravity object in the tree and select Properties.
2. If you want to disable gravity, you may clear the Active check box.
3. Choose a direction in which gravity will act. You may choose from the positive or negative
direction along any axis, or select Custom to define another direction.
4. If you chose to select a custom direction, enter the components of gravity in each axis direction.
The resultant magnitude will be calculated for you.
5. If you selected an axis direction, you may modify the magnitude of the acceleration using the
magnitude field.
6. Click OK to modify the gravity properties.
198
Gravity
Simulation Preferences 199

Simulation Preferences
200
Overview

Overview
The simulation preferences form allows you to control how the solver operates. This form is divided into
four sections: Dynamics, Equilibrium, Initial Conditions, and Contact.
Simulation Preferences 201
Dynamics

Dynamics
The dynamics tab located under simulation preferences allows you to specify parameters that affect the
integrator and dynamic solution of the model. The form is separated into two groups: Integrator and
Integration Parameters.

Integrator Group
The integrator is an algorithm that solves the differential equations of motion over an interval of time
during a dynamic simulation. SimXpert lets you select from the GSTIFF (Gear Stiff) and WSTIFF
(Modified Gear) integrators when you customize how the solver solves equations of motion. The default
is the GSTIFF integrator.
• GSTIFF is based on the DIFSUB integrator. GSTIFF is the most widely-used and tested
integrator in SimXpert. It is a variable-order, variable-step and multi-step integrator with a
maximum integration order of six. The BDF coefficients it uses are calculated by assuming that
the step size of the model is mostly constant. Thus, when the step size changes in this integrator,
a small error is introduced in the solution.
• WSTIFF is a stiffly stable, BDF-based, variable-order, variable-step, multi-step integrator. It has
a maximum order of six. The BDF coefficients it uses are a function of the integrator step size.
Thus, when the step size changes in this integrator, the BDF coefficients change. WSTIFF can
change step size without any loss of accuracy, which helps problems run more smoothly.
Next, you may select the type of formulation used by the solver. The available options are I3, SI2, and
SI1. The default formulation is I3.
The corrector entry specifies the corrector algorithm that is to be used with the stiff integrators. Original
and Modified correctors are available, as described below:
• Original - Specifies that the corrector available in the previous releases of the solver be used.
This is the default. This implementation of the corrector requires that at convergence, the error in
all solution variables be less than the corrector error tolerance.
• Modified - Specifies that a modified corrector is to be used. This implementation of the corrector
requires that at convergence, the error in only those variables for which integration error is being
monitored, be less than the corrector error tolerance. This is a slightly looser definition of
convergence, and you should use proper care when using this. The modified corrector is helpful
for models containing discontinuities in the forcing functions. Problems with contacts belong in
this category.
Finally, you may set Interpolate to Yes when you don't want the integrator to control the integration step-
size to precisely hit an output step. The integrator might then overshoot an output point and in this case
an interpolation algorithm will provide an approximation of the solution at the output point. This
approximation is then refined to provide for the consistent solution at the output point. The default for
Interpolate is No.
202
Dynamics

Integration Parameters Group


The error field allows you to specify the relative and absolute local integration error tolerances that the
integrator must satisfy at each step.
The initial step size allows you to enter the initial time step that the integrator attempts. The default is
1/20 of the output step.
For the maximum step size, enter the maximum time step that the integrator is allowed to take. When
setting the Interpolate option, the integration step size is limited to the value that is specified for HMAX.
If HMAX is not defined, no limit is placed on the integration step size. If you do not set the Interpolate
option, the maximum step size is limited to the output step.
The minimum step size specifies the minimum time step that the integrator is allowed to take.
Under maximum iterations, enter the maximum number of iterations allowed for the Newton-Raphson
iterations to converge to the solution of the nonlinear equations.
For the integration order, specify the maximum order that the integrator can use. The order of integration
refers to the order of the polynomials used in the solution. The integrator controls the order of the
integration and the step size, and, therefore, controls the local integration error at each step so that it is
less than the error tolerance specified.
The pattern field indicates the pattern of trues and falses for reevaluating the Jacobian matrix for Newton-
Raphson.
• A value of true (T) indicates that the solver is evaluating a new Jacobian matrix for that iteration.
A value of false (such as PATTERN=F) turns on the adaptive Jacobian evaluation algorithm. The
evaluation of the integration Jacobian is then only done when needed. The algorithm determines
a corrector convergence speed and based on this value, it extrapolates the configuration of the
system after MAXIT iterations. The Jacobian is updated if the algorithm indicates that the
convergence rate is too slow for the corrector to meet the convergence criteria. Overall, this
approach is expected to result in fewer Jacobian evaluations, which in turn can lead to shorter
simulation times.
Simulation Preferences 203
Dynamics

PATTERN accepts a sequence of at least one character string and not more than 10 character strings. Each
string must be either TRUE or FALSE, which you can abbreviate with T or F. You must separate the
strings with colons.

Field Description
Error The relative and absolute local integration error tolerances that the integrator
must satisfy at each step.
Initial Step Size HINIT
Range: 0 < HMIN <= HINIT <= HMAX
Maximum Step Size HMAX
Range: 0 < HMIN <= HINIT <= HMAX
Minimum Step Size Default:1.0E-6*HMAX
Range: 0 < HMIN <= HINIT <= HMAX
Maximum Iterations MAXIT
Default: 10 Range: MAXIT > 0
Integration Order KMAX
Default: 6 Range: 1 <= KMAX <= 6
Pattern Default: T:F:F:F:T:F:F:F:T:F
204
Equilibrium

Equilibrium
The equilibrium tab located under simulation preferences allows you to specify parameters that affect the
equilibrium solution of the model.
The error field specifies the relative correction convergence threshold. The iterative process carried out
during the equilibrium analysis can not converge prior to all relevant relative corrections being smaller
than this value.
The translational limit specifies the maximum translational increment allowed per iteration during static
simulations.
The angular limit specifies the maximum angular increment allowed per iteration.
The maximum iterations field specifies the maximum number of iterations allowed for finding static
equilibriums.
The stability field specifies the fraction of the mass and damping matrices the solver adds to the stiffness
matrix. Adding a fraction of the mass and damping matrices to the stiffness matrix can stabilize the
iteration process and prevent the iteration from diverging.
The imbalance field specifies the equation imbalance convergence threshold. The iterative process
carried out during the equilibrium analysis can not converge prior to each equation imbalance being
smaller than this value.
The pattern field allows you to specify as many as ten character strings that together establish the pattern
for evaluating the Jacobian matrix during the modified Newton-Raphson iteration. For each iteration, T
or TRUE indicates that the solver evaluates the Jacobian and F or FALSE indicates that the solver does
not evaluate the Jacobian. Thus, cj determines whether or not the solver evaluates the Jacobian at the jth
iteration. If necessary, the solver repeats the pattern of evaluations until it reaches the maximum number
of iterations (MAXIT). The number of Ts or TRUEs and Fs or FALSEs together must be at least one and
no more than ten.

Field Description
Error ERROR
Default: 1.0E-04 Range: ERROR > 0
Translational Limit TLIMIT
Default: 20 Range: TLIMIT > 0
Angular Limit ALIMIT
Default: 10D Range: ALIMIT > 0
Simulation Preferences 205
Equilibrium

Field Description
Maximum Iterations MAXIT
Default: 25 Range: MAXIT > 0
Stability Default: 1.0E-05
Range: Stability >= 0
Imbalance Default: 0
Range: Imbalance > 0
Pattern Default: T:T:T:T:T:T:T:T:T:T
Which evaluates the Jacobian at every iteration (for example, the
unmodified Newton-Raphson algorithm).
206
Initial Conditions

Initial Conditions
The initial conditions tab located under simulation preferences allows you to specify parameters that
affect the initial condition solution of the model.
The Error field allows you to specify the maximum displacement error the solver is to allow for the
assembly process.
The translational limit field allows you to specify the maximum translational increment the solver is to
allow while testing trial solutions during a solution step.
The angular limit field allows you to specify the maximum angular increment the solver is to allow while
testing trial solutions for a set of consistent initial conditions that satisfy all system constraints. The
default units for ALIMIT are radians. To specify ALIMIT in degrees, add a D after the value.
Under maximum iterations, you may specify the maximum number of iterations the solver is to allow for
finding displacements during initial conditions, or when reconciling displacement output.
The max acceleration error field allows you to specify the maximum acceleration error the solver is to
allow during an initial conditions solution or for reconciling acceleration output.
The max acceleration iterations field allows you to specify the maximum number of iterations the solver
is to allow for finding accelerations during an initial conditions solution or for reconciling acceleration
output.
The pattern fields specify as many as ten character strings that together establish the pattern for
evaluating the Jacobian matrix during the modified Newton-Raphson solution for the displacements and
accelerations. For each iteration, T or TRUE indicates that the solver is to evaluate the Jacobian, and F
or FALSE indicates that the solver is not to evaluate the Jacobian. Thus, cj determines whether or not the
solver is to evaluate the Jacobian at the jth iteration. If necessary, the solver repeats the pattern of
evaluation until it reaches the maximum number of iterations (MAXIT for displacements or AMAXIT
for accelerations). The number of T's or TRUE's and F's or FALSE's together must be at least one and no
more than 10.

Field Description
Error ERROR
Default: 1.0E-10 Range: ERROR > 0
Translational Limit TLIMIT
Default: 1.0E10 (no limit) Range: TLIMIT > 0
Angular Limit ALIMIT
Default: 30D Range: ALIMIT > 0
Maximum Iterations MAXIT
Default: 25 Range: MAXIT > 0
Simulation Preferences 207
Initial Conditions

Field Description
Max Acceleration Error AERROR
Default: 1.0E-4 Range: AERROR > 0
Max Acceleration AMAXIT
Iterations Default: 25 Range: AMAXIT > 0
Acceleration Pattern Default: T:T:T:T:T:T:T:T:T:T
Which means the solver is evaluating the Jacobian at every iteration.
Pattern Default: T:T:T:T:T:T:T:T:T:T
Which means the solver is evaluating the Jacobian at every iteration.
208
Contacts

Contacts
The contacts tab located under simulation preferences allows you specify how surfaces of solid parts will
be represented in order to model contact.
Faceting is the process of approximating the surface of an object by a mesh of triangles. All polygon-
based geometry engines used faceted representations of surfaces. The default value Faceting Tolerances
is 300. Increasing this value will result in a finer mesh of triangles, which gives a more accurate
representation of surfaces, which are curved. Increasing the tolerance, however, also increases the
memory requirements of the geometry engine and adds to the computational overhead, which makes it
run slower. Setting the faceting tolerance to values greater than 1000 is not recommended. Values smaller
than 300 will give negligible performance improvements. The faceting tolerance has no effect on
inherently polygonal surfaces such as boxes. You have a slider bar to adjust the current value between
the lower and upper limits.

Field Description
Current Value Current value for faceting tolerance.
Default: 300
Lower Limit The lower limit for the faceting tolerance in the slider bar.
Default: 300
Upper Limit The upper limit for the faceting tolerance in the slider bar.
Default:1000
Results 209

Results
210
Overview

Overview
SimXpert has the capability to display results quantities in animations and charts. You may specify
quantities to be displayed and modify the appearance of the results output as shown below. You may also
transfer loading results to the structures workspace to perform additional analysis.
Results 211
Animation

Animation
You may animate the results of a simulation using the Animation property editor, which is accessible
from the Results toolbox. You may specify key parameters for the animation, including which simulation
is to be animated, the start and end times, as well as looping options. You may record the animation to
generate an MPEG movie file that may be replayed outside of SimXpert. Additional options are available
to control tracking of objects in the animation. If you are animating a model with flexible bodies, the Plot
Data, Deform, and Fringe sections of the Animation form allow you to plot additional result data.

Description of Fields:

Field Description
Reset Button that rewinds the animation to the first frame.
Pause Button that pauses the animation at the current frame.
Play Button that plays animation forward at one frame/time step at a time
Record Button that will cause the animation to be recorded when played.
Results Set Drop down menu shows a list of result sets that have been created from motion
simulations and allows you to choose one for the current animation.
Current Slider bar that shows progress of the animation. You may slide the bar to any
position in the frame set. The arrows at each end advance or rewind the animation
in single frame increments.
Time Displays the time of the current frame in the animation. May also be used to enter
a specific time for which to display the animation.
Frame Displays the frame number of the animation at the current time.
Start Time Field that specifies the start time for the animation. Value entered must be within
the time range of the chosen simulation.
Set to Current Button that sets the start time to the currently displayed time of the animation.
End Time Field that specifies the end time for the animation. Value entered must be within
the time range of the chosen simulation.
Set to Current Button that sets the end time to the currently displayed time of the animation.
Loop Drop down that selects the loop function to repeat the animation replay. Default
setting is Forever.
Forever Animation will continue to run start to finish and then repeat until stopped.
Once Animation will run through one complete cycle and stop.
Oscillate Animation will run from start to end, then run in reverse back to the start point
Once and stop.
Oscillate Animation will run from start to end, then run in reverse back to the start point
Forever and repeat until stopped.
Speed Slider bar that adjusts the speed at which the animation is played.
212
Animation

Sample Form

To create an animation:
1. Make sure that you have successfully completed a Simulation.
2. Select Animation from the Results toolbox.
3. Under Results Set, select the simulation that you wish to animate.
4. Enter your desired start and end time.
5. Select the loop option. This defines what will happen once the animation has finished the selected
time range of the simulation.
6. If you wish to save an MPEG file of the animation, click the record button. Additional recording
options may be set under the Record tab.
7. Click the Play Animation button to start the animation (and recording if selected).
8. While the Animation is playing, you may pause it using the Pause Animation button.
9. Click the Reset Animation button to reset the animation back to the first frame.
10. Optionally select the Camera tab to define the object tracking. Select the Follow Object option
and click in the Follow Object field and select a part for the animation to follow. Select the
Animation tab and click the Play Animation button to play the animation following the part.
11. For a flexible body simulation, use the Plot Data tab to detemine which results quantities will be
displayed in a fringe plot during the animation. The Deform and Frimnge tabs provide additional
flexible results visualization options.
Results 213
Charting

Charting
You may plot result quantities as graphs using the Chart editor, which is accessible from the Results
toolbox. You may select time or a result quantity for the independent axis and result quantities for the
dependent axis. You may plot any available result quantities for any entity in the model. You are limited
to one independent axis but you may have up to two different dependent axes, each with units that
automatically correspond to the units for the curves being plotted.

Description of Fields

Field Description
Dependent Data Form Entries
Chart Name Specifies a name for the chart.
Simulations Selects the simulation to chart from the simulations available in the model.
Entity Selects the part within the model for which to chart data.
Quantity Selects the result quantity of the particular part to be charted.
Auto Update Check box that allows curves to be added to the chart and the prior data cleared
automatically as soon as new data is selected. Cleared by default.
214
Charting

Field Description
Add Curves Adds the curve for the selected data to the current chart. Multiple curves may be
added to the same chart by selecting the desired data for each and then clicking
Add Curves.
Clear Chart Clears all curves from the current chart.
Update Curves Updates the curves on the current chart using data from a later run of the same
simulation but the same entity and quantity.
Independent Data Form Entries
Time Checkbox that selects time as the independent axis. Checked by default.
Simulations Selects the simulation to chart from the simulations available in the model.
Entity Selects the part within the model for which to chart data.
Quantity Selects the result quantity of the particular part to be used as the independent axis.
Results 215
Charting

Sample Forms

To create a chart:
1. Make sure that you have successfully completed a Simulation.
2. Select Chart from the Results toolbox.
3. In the Dependent Data Browser, select the simulation from which to chart data.
4. Select the Entity for which to chart data.
5. Select the Quantity to plot for the selected entity.
6. Click Add Curves to plot the selected result quantity versus time.
7. Select any additional entities and quantities to plot and click Add Curves again.
216
Charting

8. To clear the charting window, click Clear Chart.


9. Click on the Independent Data Browser and deactivate the Time checkbox.
10. Select the Simulation, Entity, and Quantity to be the independent variable.
11. Return to the Dependent Data Browser and select the dependent variable as before.
12. Click Add Curves.
13. To automatically clear the chart and add selected curves, check the Auto update checkbox.
14. You may further edit the chart by using the XY Chart Properties, Chart Legend, Chart Grids, and
Chart Titles properties tabs on the Chart Properties form.
Results 217
Load Transfer

Load Transfer
You may export the loading results from a particular simulation to the structures workspace. This is
accomplished by using the Load Transfer section of the part property editor after a simulation has been
completed. You may select a time frame and interval over which to export the loading.

Description of Fields:

Field Description
Results Set Specifies results set to be used for quasi-static load transfer.
Specifies start time for loads to be transferred. Time must be within the range of
Start Time
the selected results set.
Specifies end time for loads to be transferred. Time must be within the range of
End Time
the selected results set.
Output interval for load transfer. Within the selected range, transfer loads will be
Interval
calculated at this interval.
Transfer Button that begins the load transfer process with the specified parameters.

Sample Form:

To transfer loads:
1. Complete a simulation.
2. Open the part property editor for the part on which you want to transfer loads.
3. Select the Transfer Loads section of the property editor. Specify the desired results set, start time,
end time, and interval for load transfer.
4. Select the Loads section of the property editor. Specify load bearing geometry for each connection
on the part.
218
Load Transfer

5. Click the Transfer button to export the loads to the Structures workspace.
Example Simulation 219

Example Simulation
220
Overview

Overview
This example shows the simulation of a piston and cylinder assembly subject to specific motion. The
example covers many simulation topics, including importing geometry, creating hardpoints, creating
various types of joints, and imposing motion. By following the steps below, you may complete a sample
simulation and learn the key aspects of motion simulation.
Example Simulation 221
Piston and Cylinder Assembly

Piston and Cylinder Assembly


1. Enter the Motion Workspace.
2. Import the connecting rod geometry.
File / Import / Parasolid.
Select the file from the SimXpert installation directory:
\WINNT\plugins\MSC\Motion\examples\geometry\motion_tutorial_102\conrod.x_t
Click Open.
3. Create the connecting rod part.
Components / Part.
Enter “conrod” as the part Name.
Click in the Geometry field and select the imported connecting rod geometry from the canvas.
Click OK.
4. Import the crankshaft geometry.
File / Import / Parasolid.
Select the file from the SimXpert installation directory:
\WINNT\plugins\MSC\Motion\examples\geometry\motion_tutorial_102\crankshaft.x_t
Click Open.
5. Create the crankshaft part.
Components / Part.
Enter “crankshaft” as the part Name.
Click in the Geometry field and select the imported crankshaft geometry from the canvas.
Click OK.
6. Import the piston geometry.
File / Import / Parasolid.
Select the file from the SimXpert installation directory:
\WINNT\plugins\MSC\Motion\examples\geometry\motion_tutorial_102\piston.x_t
Click Open.
7. Create the piston part.
Components / Part.
Enter “piston” as the part Name.
Click in the Geometry field and select the imported piston geometry from the canvas.
Click OK.
8. Import the engine block geometry.
File / Import / Parasolid.
222
Piston and Cylinder Assembly

Select the file from the SimXpert installation directory:


\WINNT\plugins\MSC\Motion\examples\geometry\motion_tutorial_102\engineblock.x_t
Click Open.
9. Create the engine block part.
Components / Part.
Enter “engineblock” as the part Name.
Select the Ground checkbox.
Click in the Geometry field and select the imported engine block geometry from the canvas.
Click OK.
10. Create a hard point.
Components / Hardpoint.
Enter “CrankPivotHP” as the hardpoint Name.
Select Single.
Enter value for X location: -0.3965
Enter value for Y location: -0.30225
Enter value for Z location: 0.314
Click OK.
11. Create another hard point.
Components / Hardpoint.
Enter “CrankToRodHP” as the hardpoint Name.
Select Single.
Enter value for X location: -0.4765
Enter value for Y location: -0.30225
Enter value for Z location: 0.314
Click OK.
12. Create another hard point.
Components / Hardpoint.
Enter “RodToPistonHP” as the hardpoint Name.
Select Single.
Enter value for X location: -0.3965
Enter value for Y location: -0.108
Enter value for Z location: 0.314
Click OK.
13. Create another hard point.
Example Simulation 223
Piston and Cylinder Assembly

Components / Hardpoint.
Enter “PistonSlideHP” as the hardpoint Name.
Select Single.
Enter value for X location: -0.3965
Enter value for Y location: 0
Enter value for Z location: 0.314
Click OK.
14. Create a cylindrical joint.
Connections / Cylindrical.
Enter “CrankPivot” as the Connector name.
Click in the Part1 field and select crankshaft from the tree.
Click in the Part2 field and select engineblock from the tree.
Select Define Location Using Hardpoint.
Click in the Hardpoint field and select CrankPivotHP from the tree.
Select Global under Define Orientation Using.
Click OK.
15. Create a spherical joint.
Connections / Spherical.
Enter “CrankToRod” as the Connector name.
Click in the Part1 field and select crankshaft from the tree.
Click in the Part2 field and select conrod from the tree.
Select Define Location Using Hardpoint.
Click in the Hardpoint field and select CrankToRodHP from the tree.
Click OK.
16. Create a revolute joint.
Connections / Revolute.
Enter “RodToPiston” as the Connector name.
Click in the Part1 field and select conrod from the tree.
Click in the Part2 field and select piston from the tree.
Select Define Location Using Hardpoint.
Click in the Hardpoint field and select RodToPistonHP from the tree.
Select Global under Define Orientation Using.
Click OK.
17. Create a translational joint.
224
Piston and Cylinder Assembly

Connections / Translational.
Enter “PistonSlide” as the Connector name.
Click in the Part1 field and select piston from the tree.
Click in the Part2 field and select engineblock from the tree.
Select Define Location Using Hardpoint.
Click in the Hardpoint field and select PistonSlideHP from the tree.
Select User Specified under Define Orientation Using.
Enter value for the Rotation 1 Euler angle: 0
Enter value for the Rotation 2 Euler angle: 90
Enter value for the Rotation 3 Euler angle: 0
Click OK.
18. Create a motion.
Motions / Add Motion.
Enter Motion_1 for the name.
Click in the Joint Name field and select CrankPivot from the tree.
Select Rotate Z as the Freedom.
Select Displacement as the Motion Type.
Select Step as the Function Type.
Enter 0 as the Initial Value.
Enter 14400 as the Final Value.
Enter 0 as the Start Step Time.
Enter 8 as the End Step Time.
19. Perform the Simulation.
Simulation / Simulation.
Enter 4 as the End Time.
Enter 400 as the Number of Steps.
Click the Begin Model Simulation icon.
20. Once the simulation has completed, view an animation of the results.
Results / Animation.
Click the Play Animation button.
21. Chart the position of the piston versus time.
Results / Chart.
Select the simulation that you completed earlier.
Select piston as the Entity.
Example Simulation 225
Piston and Cylinder Assembly

Select Y as the Quantity.


Click Add Curves. This plots the Y position of the piston versus time.
22. Chart the Y position of the conrod versus its X position.
Results / Chart
Click Clear Chart.
Select the Independent Data Browser.
Clear the checkbox for Time.
Select the simulation.
Select conrod as the Entity.
Select X as the Quantity.
Select the Dependent Data Browser.
Select conrod as the Entity.
Select Y as the Quantity.
Click Add Curves. This plots the path of the center of mass of the conrod during the simulation.
226
Piston and Cylinder Assembly

Вам также может понравиться