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 Floating Coordinate System
Checkbox that when enabled allows definition of a floating coordinate system, which only has a name and a part to which it is associated. This option is used by General Force, Vector Force, and Vector Torque. Cleared by default.
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. Location
Allows specification of location of the coordinate system origin using common location selection tools.
Orientation
Allows specification of the orientation of the coordinate system using common 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 No Symmetry
Appears when Pair is selected. Selects whether second hardpoint will be 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 Properties
Select User Specified or Geometry. Geometry specifies that automatically 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.
Density
Specifies the density value used if mass and inertia properties are automatically calculated based on part Geometry.
Reference System
Specifies the Coordinate System defining the local part reference frame.
Mass
Specifies the part mass.
Ixx/Iyy/Izz
Specifies diagonal inertia values as calculated about the Inertia Properties Location, expressed in the coordinate system of the Inertia Orientation.
Ixy/Ixz/Iyz
Specifies off-diagonal inertia values as calculated about the Inertia 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 Center of Mass
Specifies that inertia values are calculated about center of mass location if selected, or about the manually entered Inertia Properties Location if cleared. Check box is selected by default.
Inertia Properties Location
Allows manual specification of coordinates of location about which inertia 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 are calculated if Source Of Inertia Properties is selected. Specified relative Reference System.
Inertia Orientation 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.
Reference System
Specifies coordinate system for initial translational velocity values. Origin is 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.
Load Bearing Geometry
Selections of geometry within the part to carry the load from connections or forces. This geometry may be modified to apply loads as the user desires.
Replace Geometry
Button that allows selection of alternate geometry as the load bearing region of a selected connection or force.
Append Geometry
Button that allows selection of additional geometry as the load bearing region of a selected connection or force.
Components 19 Parts
Structures Tab: Field
Description
Properties: Source
Specifies whether properties will be defined by entries on this form or by existing material properties in the Structures workspace.
Density
Specifies density for the part.
Young’s Modulus
Specifies Young’s (Elastic) modulus for use in the structural analysis of the part.
Poisson’s Ratio
Specifies Poisson’s ratio for use in the structural analysis of the part.
Mesh: Source
Specifies whether the finite element mesh will be defined by entries on this form or by an existing mesh in the Structures workspace.
Element Size
Selects whether the global edge length for the elements will be determined automatically or set to a user input value.
Type
Specifies the dimensionality of the mesh to be created. Options are available for surface and solid meshing.
Element Type
Specifies whether linear elements (without midside nodes) or quadratic elements (with midside nodes) will be created for the part.
Output: Number of Modes
Specifies the number of modes to be requested from the modal structures analysis of the part.
Results
Selects which result quantities will be requested from the modal analysis. Element Stress, Grid Point Stress, Element Strain, and Grid Point Strain may each be activated or deactivated individually.
Flexible Body Tab: Damping
Field Method
Description Drop-down that selects between default damping and custom damping, which is defined by a user entered expression or subroutine.
Custom Method Espression
Option button that selects between runtime expression and user subroutine to define the damping. Field that defines the expression for the damping. To define the expression using 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.
Routine
Field that selects user subroutine to define damping. Users enter library name and routine name, with specific syntax: library_name::routine_name. Example abgFDM::fie910
Generalized Damping
Drop-down that defnes optin for generalized damping. Set to off by default.
Off
No generalized damping is used. This is the default setting.
Full
Generalized damping applied to both rigid and modal coordinates.
Internal Only
Generalized damping only applied to modal coordinates.
Animation Visualization
Field Animation Visualization
Description Option button that determines how the part will be displayed during animation.
Rigid
Disables flexible body results visualization in animations.
Linear Stress / Deformati on
Provides option to display part stress and/or deformation during animation. Actual result data to be displayed will be specified on the Animation form.
Modal Information Tab:: Field Specify
Description Option button that determines whether modal information is defined by a range or table.
Range Modes
Option button that specifies whether the modes in the specified range will be enabled or disabled.
Method
Frequency (Hz) is currently the only available option.
Range
Drop-down that selects whether the values specified will be above, between, or below user specific values.
Values
Frequency (Hz) values to be used in filtering the range of modes.
Icon
Matrix editor icon opens panel to directly enter table of modes to enable.
Table
Components 21 Parts
Transfer Loads Tab: Field
Description
Results Set
Specifies results set to be used for quasi-static load transfer.
Start Time
Specifies start time for loads to be transferred. Time must be within the range of the selected results set.
End Time
Specifies end time for loads to be transferred. Time must be within the range of the selected results set.
Interval
Output interval for load transfer. Within the selected range, transfer loads 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 Displacement
Checkbox that enables translational displacement output for the part. This must be selected in order to generate an animation.
Center of Mass Translational Displacement
Checkbox that enables translational displacement output for the part’s center of mass. This is cleared by default.
Euler Angles
Checkbox that enables output of Euler angles for the part.
Yaw/Pitch/Roll Angles
Checkbox that enables output of Yaw, Pitch, and Roll angles for the part. Cleared by default.
Modal Scaling Factor
Checkbox that enables output of a modal scaling factor for each mode in a flexible body simulation.
Euler Parameters
Checkbox that enables output of Euler parameters for the part. This must be selected in order to generate an animation.
Translational Velocity
Checkbox that enables output of translational velocity for the part.
22 Parts
Field
Description
Center of Mass Translational Velocity
Checkbox that enables output of translational velocity for the center of mass of the part. Cleared by default.
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 Acceleration
Checkbox that enables output of translational acceleration for the part.
Center of Mass Translational Acceleration
Checkbox that enables output of translational acceleration for the center of mass of the part.
Angular Acceleration
Checkbox that enables output of angular accelerations for the part.
Modal Acceleration
Checkbox that enables output of modal acceleration for the part.
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_
\R2\\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
Parent Part
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 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 Coordinate System
Field that specifies an existing coordinate system to form a corner of box geometry.
From Coordinate System
Field that specifies an existing coordinate system from which a link will extend and the orientation of the link. The link’s depth will extend along this coordinate system’s Z axis, and the curved ends will be in its XY plane.
To Coordinate System
Field that specifies an existing coordinate system to which a link will extend.
Geometry 149 Motion Geometry
Field
Description
Length
Length of the geometry extending in a particular direction. The number of available length fields depend on the type of geometry.
Depth
Depth of link geometry, which is along the Z axis of the From Coordinate System. The depth is constant throughout the link and in a direction normal to the plane containing the curved ends.
Width
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 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
s
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.
s
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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition 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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition 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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition 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 Name
Description 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 Name
Description 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 Name
Description 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 Name
Description 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 Name
Description 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 Name
Description 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 Name
Description 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 Name
Description 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 Name
Description 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 Systems
Checkbox that when enabled replaces the part and location definition 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
Section Type
Icons are available to select from a variety of cross section shapes or a custom option, where you enter numerical section properties.
Current Cross Section Type
Displays the type of cross section selected from the icons above.
Dim i
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 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.
Damping Ratio
Enter a damping value to establish a ratio for calculating the structural 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-bysix 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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition options with directly specified coordinate systems to be connected by the connection. Cleared 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 System
Field that selects the coordinate system to be the location of the general constraint.
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
Method
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 User Subroutine (where the user selects a subroutine to define the matrices). User Entered Values is the default.
User Entered Values k Matrix
damping Method
Field table that defines the values in the stiffness matrix. Additional rows may be 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 a user specified damping ratio) and Damping Matrix (where the user manually defines the damping matrix). User Entered Values is the default.
c Ratio
Field that defines the ratio of the damping matrix to the stiffness matrix. Available only if the damping method is set to damping ratio.
c Matrix
Field table that defines the values in the damping matrix. Additional rows may be 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.
t Preload (X, Y, and Z)
Fields that define three preload force components transferred by the field element when the I and J markers are separated/misaligned by the values specified in the t 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.
r Preload (X, Y, and Z)
Fields that define three preload torque components transferred by the field element when the I and J markers are separated/misaligned by the values specified in the r Offset text boxes. The terms are the torque components about the x, y-, and z-axis of the J marker.
t Offset (X, Y, and Z)
Field that defines the translation at preload to define three reference lengths. This is the nominal (x0, y0, z0) position of the I marker with respect to the J marker, resolved in the J marker coordinate system.
r Offset (X, Y, and Z)
Field that defines the rotation at preload to define the reference rotational displacement of the axes of the I marker with respect to the J marker, resolved in the J marker axes (a0, b0, and c0) (specified in radians).
User Subroutine Parameters
Field table that specifies parameters to be passed to a user subroutine if the method is set to user subroutine.
Routine
Field table that specifies a user subroutine to define the stiffness matrix if the 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.
Expression
Field that defines the expression for the general constraint. To define the expression using the Expression Builder, click the icon to the right of the text.
Launch Function Expression Builder
Icon that opens the Expression Builder to assist in defining solver functions.
Verify Motion Solver Syntax
Icon that verifies that the expression entered is in correct Motion Solver syntax.
Coordinate System
Field that selects the coordinate system to be the location of the general constraint.
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
Name
Allows specification of a unique name for each coupler. Automatically populated with CouplerJoint_###.
Active
Selects whether coupler will be included in the simulation.
Type
Select whether the coupler joins two or three joints.
Method
By Displacements allows specification of displacement values for each joint, while 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.
Value
Enter equivalent motion for By Displacements method, or scale factor for By Scales method.
Second Joint
Second joint to be connected by the coupler, the coupled joint.
Motion Type
Select translational or rotational motion.
Value
Enter equivalent motion for By Displacements method, or scale factor for By Scales 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.
Value
Enter equivalent motion for By Displacements method, or scale factor for By Scales 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
Name
Allows specification of a unique name for each coupler. Automatically populated 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.
Value
Enter equivalent motion for By Displacements method, or scale factor for By Scales method.
Output Joint
Second joint to be connected by the gear coupler.
Output Freedom
Select translational or rotational motion. 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
Location form available to define contact point location if the Type is set to Contact 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 Method
Description 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
Exponent
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 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
Damping value that defines the damping properties of the contacting material. You should set the damping coefficient is about one percent of the stiffness coefficient.
Penetration
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, 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.
Friction
Contact friction may be enabled for both static and dynamic, dynamic only, or disabled completely.
Velocity
Specifies the maximum velocity for static friction or the minimum for dynamic 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
Type
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 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 Method
Description Allows selection of the method to define location of the point in contact.
Geometry
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 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 System
Allows selection of a coordinate system origin to be used as the location.
Center of Mass Location
Allows selection of a part’s center of mass as the location.
Curve:
Field
Description Drop-down that allows selection of curves defined by Geometry or curves defined mathematically via the System Elements toolbox.
Method Geometry Part
Part that contains the curve to participate in the contact. Available if Method is set to Geometry
Features
Curve on selected part which point will contact in Geometry contact method.
Flip
Reverses curve normal direction. The curve normal points away from the solid side of the curve (it points away from the side of the curve that other curves cannot penetrate).
Points Per Curve or Curvature Tolerance
Drop-down and field that determine the number of points evaluated along a geometric curve. Setting to Points Per Curve specifies the number of points directly, while Curvature tolerance defines a maximum deviation for the point to point path versus the original curve location.
Curve
Field for selection of a predefined non-geometric curve. Available if Method is set to Curve.
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 nongeometric 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
Type
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 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 defined mathematically via the System Elements toolbox.
Method Geometry Part
Part that contains the first curve to participate in the contact. Available if Method is set to Geometry
Features
Curve on selected part which point will contact in Geometry contact method.
Flip
Reverses curve normal direction. The curve normal points away from the solid side of the curve (it points away from the side of the curve that other curves cannot penetrate).
Points Per Curve or Curvature Tolerance
Drop-down and field that determine the number of points evaluated along a geometric curve. Setting to Points Per Curve specifies the number of points directly, while Curvature tolerance defines a maximum deviation for the point to point path versus the original curve location.
Curve
Field for selection of a predefined non-geometric curve. Available if Method is set to Curve.
Curve
Curve 2:
Field
Description Drop-down that allows selection of curves defined by Geometry or curves defined mathematically via the System Elements toolbox.
Method Geometry Part
Part that contains the second curve to participate in the contact. Available if Method is set to Geometry
Features
Curve on selected part which point will contact in Geometry contact method.
Flip
Reverses curve normal direction. The curve normal points away from the solid side of the curve (it points away from the side of the curve that other curves cannot penetrate).
Points Per Curve or Curvature Tolerance
Drop-down and field that determine the number of points evaluated along a geometric curve. Setting to Points Per Curve specifies the number of points directly, while Curvature tolerance defines a maximum deviation for the point to point path versus the original curve location.
Curve
Field for selection of a predefined non-geometric curve. Available if Method is set to Curve.
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 twodimensional 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
Expression
Field that allows direct text entry of expressions and shows expressions inserted from drop down options below.
Verify
Icon that verifies that the expression entered is in correct Motion Solver syntax.
Category Dropdown
Drop-down that selects the category of motion function to be inserted. May be set to All Functions to allow selection of any available solver function.
Function Dropdown
Drop-down that selects a particular solver function.The available functions depend on the option selected in the category drop-down on the left. Once a function is selected in the drop-down, the Insert, Append, and Help buttons apply to that function.
Insert
Button that inserts the selected function into the expression at the current cursor location.
Append
Button that inserts the selected function into the expression on a new line at the end of the expression.
Help
Button that opens help specific to the selected function in order to assist with the 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
Name
User specified name of the single point motion. Populated with Single_Point_# by default,
Moving Point
Field that selects a coordinate system as the moving point.
Reference Point
Field that selects a coordinate system as the reference point. This coordinate 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 Displacement
Initial displacement before motion is applied. Active only for Velocity and Acceleration motion types.
Initial Velocity
Initial velocity before motion is applied. Active only for Acceleration motion type.
Method
Option button that selects between defining the motion with a run time expression or a user subroutine. Expression is the default method.
Expression
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 may be launched to edit the expression by clicking the icon to the right of the expression field.
Parameters
Field that defines user subroutine input parameters. Available only if the definition method is set to User Subroutine.
Routine
Field that selects an existing User Subroutine in the model if the method is set to 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
Name
User specified name of the single point motion. Populated with General_Point_# by default,
Moving Point
Field that selects a coordinate system as the moving point.
Reference Point
Field that selects a coordinate system as the reference point. This coordinate system defines the orientation of the motion of the parts.
Type
Select from Free, Displacement, Velocity, or Acceleration to control the motion in each of the 6 degrees of freedom. Free is the default.
Function
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 the icon to the right of the function field. Each field may be verified individually by clicking the verify icons.
Initial Displacement
Initial displacement in the specified direction before motion is applied. Active only for Velocity and Acceleration motion types.
Initial Velocity
Initial velocity in the specified direction before motion is applied. Active only for 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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition options with directly specified coordinate systems between which the force acts. Cleared 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 actionreaction 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 actionreaction 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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition options 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 actionreaction 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 actionreaction 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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition options with directly specified coordinate systems between which the force acts. Cleared by default.
Part 1
First part which the force will be applied between.
Part 2
Second part which the vector force will be applied between.
Reference Part
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
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 Method
Description Option button that selects between Expression and User Subroutine as the method to define the Vector Force.
Expression X Force Expression
Field that allows input of an expression to define the force in the X direction. The Function Expression Builder is available to assist in creating runtime functions, and each expression may be verified individually using the Verify icon.
Y Force Expression
Field that allows input of an expression to define the force in the Y direction. The Function Expression Builder is available to assist in creating runtime functions, and each expression may be verified individually using the Verify icon.
Z Force Expression
Field that allows input of an expression to define the force in the Z direction. The Function Expression Builder is available to assist in creating runtime functions, 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.
Routine
Field that specifies an existing user subroutine to define force component values. 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 Coordinate Systems
Checkbox that when enabled replaces the part and location definition options with directly specified coordinate systems between which the torque acts. Cleared by default.
Part 1
First part which the torque will be applied between.
Part 2
Second part which the vector force will be applied between.
Reference Part
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
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 Method
Description Option button that selects between Expression and User Subroutine as the method to define the Vector Force.
Expression X Torque Expression
Field that allows input of an expression to define the torque in the X direction. The Function Expression Builder is available to assist in creating runtime functions, and each expression may be verified individually using the Verify icon.
Y Torque Expression
Field that allows input of an expression to define the torque in the Y direction. The Function Expression Builder is available to assist in creating runtime functions, and each expression may be verified individually using the Verify icon.
Z Torque Expression
Field that allows input of an expression to define the torque in the Z direction. The Function Expression Builder is available to assist in creating runtime functions, 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.
Routine
Field that specifies an existing user subroutine to define torque component values. 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
Define Using Coordinate Systems
Checkbox that when enabled replaces the part and location definition options with directly specified coordinate systems between which the force 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 Function Expressions
Tabs select the force or torque in each coordinate direction. Options are 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.
Reference Part
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.
Method
Dropdown that selects between Single Loadcase, Subroutine (Function) and Subroutiine (Force) as the method to define the modal force.
Single Loadcase Load Case
Field that specifies an existing modal loadcase to be applied to the flexible part scaled by a function expression.
Scale Function Expression
Field that defines an expression for scaling the load case selected above. The Function Expression Builder is available to assist in defining expressions. A verify icon is available to verify expression syntax.
Subroutine (Function)
Parameters
Field that specifies up to thirty user-defined constants to be passed to the userdefined subroutine, MFOSUB to directly compute the modal load case and scale 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.
Routine
Field that selects a user subroutine to which the above parameters will be passed. Users enter library name and routine name, with specific syntax: library_name::routine_name. Example abgFDM::fie910
Subroutine (Force)
Parameters
Field that specifies up to thirty user-defined constants to be passed to the userdefined subroutine, MFOSUB to directly compute the modal force on the flexible body. Each component of the modal force can depend on time or the state of the system.
Routine
Field that selects a user subroutine to which the above parameters will be passed. 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
Name
User specified name of multi point force. Populated with Multi_Point_Force_# by default.
Points
Table for referencing one or more coordinate systems. "+" and "-" buttons are 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.
Reference Point
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 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
Stiffness Matrix
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 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 Data
Icon that opens matrix editor to define stiffness values.
Matrix File
Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix Name
Drop-down that selects from available matrices in the selected matrix file.
File
Forces and Motions 131 Multi Point Force
Damping
Field
Description
Active
Checkbox that activates damping and enables remaining fields.
Damping Method
Option button selects between specification of a damping matrix or a damping ratio. If damping ration is selected, all matrix fields will be disabled.
Damping Ratio
Damping Matrix
Field that specifies the proportional damping ratio for the NFORCE. The elements of the damping matrix are determined by multiplying the corresponding 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 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 Data
Icon that opens matrix editor to define damping values.
Matrix File
Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix Name
Drop-down that selects from available matrices in the selected matrix file.
File
Force Matrix
Field
Description
Active
Checkbox that activates force matrix and enables remaining fields.
Force Matrix
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, 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 Data
Icon that opens matrix editor to define force values.
Matrix File
Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix Name
Drop-down that selects from available matrices in the selected matrix file.
File
132 Multi Point Force
Length Matrix
Field
Description
Active
Checkbox that activates length matrix and enables remaining fields.
Length Matrix
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 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 Data
Icon that opens matrix editor to define length values.
Matrix File
Field that specifies location of an existing Adams matrix (.mtx) file.
Matrix Name
Drop-down that selects from available matrices in the selected matrix file.
File
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 Systems
Checkbox that when enabled replaces the part and location definition 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 Systems
Checkbox that when enabled replaces the part and location definition 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 Name
Description Name of bump stop
Active Checkbox that determines whether bump stop is active.
Upper Location
Field Part
Description The part to which the upper location of the bumper is attached.
Location Define Location Using
Allows selection of the method to define a location.
Geometry
Default option. Allows selection of geometric point locations, such as a vertex, 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 System
Existing coordinate system origin may be selected in the field below.
Orientation Define Orientation Using
Allows selection of the method to define orientation.
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 Angles
Euler angles may be input for Body 313 rotation.
Coordinate System
Existing coordinate system may be selected in the field below.
Lower Location
Forces and Motions 147 Bump Stops and Rebound Stops
Field Part
Description The part to which the lower location of the bumper is attached.
Location 2 Define Location Using
Allows selection of the method to define a location.
Geometry
Default option. Allows selection of geometric point locations, such as a vertex, 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 System
Existing coordinate system origin may be selected in the field below.
Installation Method
Field
Description
Installation Method Clearance
Default option. Specifies the distance the bumper travels after the upper and lower locations come together. Default value is 25mm.
Impact Length
Specifies the maximum distance from the initial location of the upper part to the fully compressed location. This is the sum of the initial distance between the 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 Length
The x-axis data is the distance between the spring seats. With this technique the spline has a negative slope.
Deflection
The x-axis data is deflection from some trim condition. The spline has a positive 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)
Linear Rate
Specifies the linear term in the third order polynomial used to calculate the bump stop force.
Quadratic Rate
Specifies the quadratic term in the third order polynomial used to calculate the bump stop force.
Cubic Rate
Specifies the cubic term in the third order polynomial used to calculate the bump 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
Linear
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 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 Rate
Specifies the dampingRate term in the calculation of the linear damping force. 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 that was specified in the Definition page is pre-populated in this field by default.
Part Location Define Location Using
Allows selection of the method to define a location. The same location that was specified in the Definition page is pre-populated in this field by default.
Geometry
Default option. Allows selection of geometric point locations, such as a vertex, 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 System
Existing coordinate system origin may be selected in the field below.
Orientation Define Orientation Using
Allows selection of the method to define orientation. The same orientation that 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 Angles
Euler angles may be input for Body 313 rotation.
Coordinate System
Existing coordinate systems may be selected in the field below.
Metal to Metal Rate
Specify the linear rate for the metal to metal contact. 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
Name
Specifies user entered name for differential equation. Populated with Differential_# by default.
ID
Read-only text that tells the user the numerical ID (the ID motion solver will eventually see) of the DIFF. This is useful because the DIFF expression may reference itself.
Type
Option button that specifies Explicit or Implicit type. When set to Explicit the Derivative field is disabled. Set to Explicit by default.
Method
Option button that selects between defining the equation with a run time expression or a user subroutine. Expression is the default.
Expression
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 Function Expression Builder may be launched to edit the expression by clicking the icon to the right of the expression field.
Parameters
Field that defines user subroutine input parameters. Available only if the definition method is set to User Subroutine.
Routine
Field that selects an existing User Subroutine in the model if the method is set to User Subroutine. Users enter library name and routine name, with specific syntax: library_name::routine_name. Example abgFDM::fie910
Initial Condition Value
Field that specifies real value initial condition for the differential equation.
Initial Condition Derivative
Field that specifies real value initial derivative for the differential equation. Enabled only if the type is set to Implicit.
Keep Constant During Static Analysis
Checkbox that defines whether value of differential equation will be held constant during static analyses. Checked by default.
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
Name
Specifies user entered name for the state variable. Populated with State_Variable_# by default.
ID
Read-only text that tells the user the numerical ID (the ID motion solver will eventually see) of the state variable.
Method
Option button that selects between defining the variable with a run time expression or a user subroutine. Expression is the default method.
Expression
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 Builder may be launched to edit the expression by clicking the icon to the right of the expression field.
Parameters
Field that defines user subroutine input parameters. Available only if the definition method is set to User Subroutine.
Routine
Field that selects an existing User Subroutine in the model if the method is set to 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 Value
Field that specifies real value initial condition for the state variable.
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
Name
Specifies user entered name for the linear state equation. Populated with 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.
A Matrix Method
Option button that selects between defining the A matrix values with entered data or data from an existing matrix file. Entered data is the default method.
B Matrix Method
Option button that selects between defining the values with entered data or data from an existing matrix file. Only enabled if N_INPUTS > 0. Entered data is the default method.
156 Linear State Equation
Field
Description
C Matrix Method
Checkbox that activates the C matrix and option button that selects between 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.
D Matrix 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 file. Only enabled if N_INPUTS > 0 and N_OUTPUTS > 0. Entered data is the default method.
Specify Initial Conditions
Checkbox that enables initial condition specification for the linear state equation. Clicking on the Edit Values icon allows values to be entered.
Keep initial values constant during static analysis
Checkbox that selects whether or not the motion solver should hold constant the value of the transfer equation during static and quasi-static simulations.
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
Name
Specifies user entered name for the general state equation. Populated with 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.
Continuous States
Field that sets the value for number of continuous states (N_STATES) for the equation.
Discrete States
Field that sets the value for number of discrete states (N_DSTATES) for the equation.
Formulation
Option button that selects between Interface style and routine style. Interface style allows the use of implicit formulation, and is the default.
Parameters
Subroutine parameters (comma separated numerical entries).
Routine
Field that specifies a user subroutine. Users enter library name and routine name, with specific syntax: library_name::routine_name. Example abgFDM::fie910
Initial Conditions
Checkbox that enables initial condition specification for continuous and/or 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 constant during static analysis
Checkbox that selects whether or not the motion solver should hold constant the state values during static and quasi-static simulations.
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, singleoutput 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
b0 + b1 s + bm s y( S) G ( S ) = ----------- = ---------------------------------------1 k u(S) a0 + a1 s + ak s 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
Name
Specifies user entered name for the linear state equation. Populated with Transfer_Function_# by default.
Input Variable
Field that selects a motion state variable as the input for the transfer function.
Numerator Size
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 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.
Edit Values
Icon that opens a matrix editor form to enter the selected number of numerator 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. Edit Values
Icon that opens a matrix editor form to enter the selected number of denominator coefficients.
Keep value constant during static analysis
Checkbox that selects whether or not the motion solver should hold constant the value of the transfer equation during static and quasi-static simulations. Checked 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 differential equations and a single algebraic equation. (TFSISO) Outputs (Y) size is always 1. General state equations (GSE)
States (X) size is the same as the number defined in the matching general state equation definition. 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.
Values
Table of array values. Rows may be added using the “+” icon to the right of the 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.
Coordinate System
Field which specifies the coordinate system that defines the location and reference part for the curve to be created. An icon is available to select the model origin, which is the default.
Closed
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 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.
Method
Drop-down that allows selection between user entered values, user subroutine, 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
Curve Points
Checkbox that indicates the matrix below contains data points that lie on the curve. Cleared by default.
Order
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, 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.
Curve Matrix
Table of data that defines the curve in all three dimensions. Rows may be added to or removed from the matrix using the + and - icons. Four rows are present by default.
Curve: User Subroutine
Field
Description
Parameters
Field that specifies parameters for the user-written subroutine CURSUB. Enter the user function using the following format where r1 through r30 are constants passed to the subroutine: r1, ..., r30
Routine
Field that specifies an existing user subroutine. Users enter library name and 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
Curve Points
Checkbox that indicates the matrix file contains data points that lie on the curve. Cleared by default.
Order
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, 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.
Matrix File
Field that selects the name of the file containing the matrix values. Icons are available to browse to a different directory, and to edit an existing file.
Matrix Name
Enter the name of the matrix in the file. The name of the matrix is necessary even 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 Name
Description Field that specifies an ASCII text name for the spline. Option button to specify the method for entering/editing spline data. Entered Data:
Method
Displays a properties button that launches the curve editor tool to enter and 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 Extrapolation
Checkbox that enables linear extrapolation for the spline data. Cleared by default.
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. Displacement
Measures displacement between two user selected coordinate systems in a reference coordinate system.
Velocity
Measures velocity of one user selected coordinate system relative to another in a reference coordinate system.
Acceleration
Measures acceleration of one user selected coordinate system relative to another in a reference coordinate system.
Force
Measures force between two user selected coordinate systems in a reference coordinate system.
User Defined
Allows the user to specify multiple components of the request using expressions. See User Defined Form Entries below.
Runtime Subroutine
Allows the user to select an existing subroutine and specify parameters to be passed to it. Units may be selected or defined for each output component from the subroutine. See Runtime Subroutine Form Entries below.
Coordinate System 1
The first coordinate system that defines the request measurement reference location. Enabled for all types except User Defined.
Coordinate System 2
The second coordinate system that defines the request measurement reference 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 Component
Description Table that allows the user to specify an arbitrary number of components for a request. This table is visible only for User Defined Request types.
Name
Specifies the name for the request component. Must be solver compliant, standard ASCII text, no spaces or special characters.
Unit Type
Offers the option of selecting a type of unit from a drop down list. User defined is an available option as well, which makes the Units field editable.
Units
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 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.
Expression
Displays the expression for the request component. You may either type the 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
Parameters
Field that specifies a list of parameters to be passed to the selected subroutine to define the request.
Routine
Field that specifies an existing subroutine. Users enter library name and routine name, with specific syntax: library_name::routine_name. Example abgFDM::fie910
Component
Table that allows the user to select units for the number of components defined by a subroutine. This table visible only for Runtime Subroutine Request types.
Name
Specifies the name for the request component. Must be solver compliant, standard ASCII text, no spaces or special characters.
Unit Type
Offers the option of selecting a type of unit from a drop down list. User defined is an available option as well, which makes the Units field editable.
Units
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 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 runtime. 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
Set Evaluation
Checkbox that enables evaluation of an expression or subroutine when the event that the sensor is monitoring becomes true.
Method
Specifies method for evaluation between run time expression and user subroutine.
Expression
Specifies run time expression to be evaluated when sensor is triggered. The launch function expression builder icon is available to assist in defining the expression.
Parameters
Specifies parameters to be passed to selected user subroutine when the sensor is triggered. Enabled only if the method is set to User Subroutine.
Routine
Field that selects a user subroutine to be evaluated when the event the sensor is monitoring becomes true. Enabled only if the method is set to User Subroutine.
Values
Option button that selects between angular and non-angular values for defining the sensor. Drop-down that selects the range when the sensor will be triggered. The options are:
Type
Equal to Value: From (Target - Error) to (Target + Error). This is the default. 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
Error Tolerance
Field that specifies the absolute value of allowable error between the targeted 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 Set Output Step Size
Checkbox and field that redefine the time between consecutive output steps. The motion solver uses this value until it is changed. The default step size is the current 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:
Terminate current simulation step
Stop simulation script - Stop the simulation Continue simulation script - Stop the current command in the simulation script and continue with the next command. Cleared by default.
186 Sensor
Special: Field
Set integration Step Size
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 action as explained next. In this case, the step size defaults to the integrator step size. If checked, a numeric field becomes active to specify the integration step size. Cleared by default.
Restart Integrator
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 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.
Refactorize Jacobian
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 proceed more robustly through the simulation. The motion solver generates a 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 Variable Vector
Checkbox that when checked writes the entire array of state variable values to a text file in your current working directory. Cleared by default.
Bisection Search Algorithm
Checkbox that specifies that a bisection search algorithm will be used to isolate the activation time of the sensor. When not present the default, secant-type rootfinding algorithm is used. Cleared by default.
Set temporal error
Checkbox and field that specify the temporal error with which the activation time 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
Name
Specifies name of the height sensor. Automatically populated with HeightSensor_#.
Part
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 selected for location, and the selected Coordinate System does not belong to ground.
Define Location Using
Allows selection of the method to define location of the point to be measured.
Geometry
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 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.
Center of Mass Location
Allows selection of a part’s center of mass as the location.
Reference CS
Reference coordinate system for the sensor in which distance and relative 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_#.
Time Interval
Specifies interval between output. Available options are at each output step, each integration step, or at custom defined points in the simulation.
Decimal Places
Specifies Number of decimal places to right of decimal point. Must be greater 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. Identifier
The ASCII text for identifier used to construct file name. Is same as object name by default. Duplicate identifier strings (if model as more than one Output Report) are not accepted. Non- ASCII text is not accepted.
Object
Table of objects and their respective result data to be included in the output 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
Name
Specifies name of the text output table. Automatically populated with Select_Results_#.
Time Interval
Specifies interval between output. Available options are at each output step, each integration step, or at custom defined points in the simulation.
Identifier
Unique identifier for the max min report. Populated with the report name by 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. Decimal Places
Specifies Number of decimal places to right of decimal point. Must be greater than or equal to 2, and the default value is 4.
Max/Min Quantities
Table of objects and their respective result data to be included in the output file. For each output quantity user selects a motion object which has output, and a result quantity.
Associated Quantity
Additional result quantity to be reported for the corresponding maximum or 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
Name
Specifies name of the text output table. Automatically populated with TwoDEnvelope_#.
Time Interval
Specifies interval between output. Available options are at each output step, each integration step, or at custom defined points in the simulation.
Identifier
Unique identifier for the max min report. Populated with the report name by 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. Decimal Places
Specifies Number of decimal places to right of decimal point. Must be greater than or equal to 2, and the default value is 4.
Object
Table of objects and their respective result data to be included in the output file. For each output quantity user selects a motion object which has output, and a result quantity.
Associated Quantities
Additional result quantity to be reported for the corresponding maximum or 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 Equilibrium
Check box that if selected has a quasi-static or dynamic solution begin 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 Simulating
Checkbox that toggles display of anumation during a simulation. Options 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 stepsize 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 NewtonRaphson. • 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 Iterations
AMAXIT 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 polygonbased 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.
Speed
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 Once
Animation will run from start to end, then run in reverse back to the start point and stop.
Oscillate Forever
Animation will run from start to end, then run in reverse back to the start point and repeat until stopped. 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.
Start Time
Specifies start time for loads to be transferred. Time must be within the range of the selected results set.
End Time
Specifies end time for loads to be transferred. Time must be within the range of the selected results set.
Interval
Output interval for load transfer. Within the selected range, transfer loads will be 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