Adams Car
Adams Car
Adams Car
Analyze design changes much faster and at a lower cost than physical prototype testing would
require. For example, you can change springs with a few mouse clicks instead of waiting for a
mechanic to install new ones in your physical prototype before re-evaluating your design.
Vary the kinds of analyses faster and more easily than if you had to modify instrumentation, test
fixtures, and test procedures.
Work in a more secure environment without the fear of losing data from instrument failure or losing
testing time because of poor weather conditions.
Run analyses and what-if scenarios without the dangers associated with physical testing.
Learning the Basics
Starting Adams Car
In the Windows environment, you start Adams Car from the Start button. In the Linux environment, you
start Adams Car from the Adams Toolbar. For more information, see Running and Configuring Adams.
This topic describes how you start the two Adams Car Interface Modes, standard interface or template
builder.
Interface Modes
Adams Car has two interface modes:
Learning the Basics 7
Interfaces and Access
Standard Interface - You use it when working with existing templates to create and analyze
assemblies of suspensions and full vehicles. Users with standard and expert access can use the
Standard Interface.
Template Builder - If you have expert-user access, you use the Template Builder to create new
templates for use in the Standard Interface.
When you create a new component in the Template Builder, your product automatically adds a
prefix based on the entity type and the symmetry. Your product uses a naming convention to let you
easily determine an entity’s type from the entity’s name. Learn about the naming convention and see a table
that lists the prefixes of various entities. If you have expert-user access, you use the Template Builder to
create new templates for use in the Standard Interface.
Using the Template Builder, you can assemble standard components, such as springs, parts, and
bushings, to define the topology of your system, such as a suspension or a single valvetrain in an
engine.
Note: The private configuration file is not located in the installation directory. Never change the
acar.cfg file located in the installation
8 Adams Car
Navigating Through a Modeling Database
Viewing Objects
Showing, Hiding, and Selecting Objects in the Database Navigator
Managing the Select List
Filtering Objects in the Database Navigator
Sorting Objects in the Database Navigator
Setting Highlighting in the Database Navigator
Changing Objects
Setting Appearance of Objects Through the Database Navigator
Renaming Objects Through the Database Navigator
Adding Comments Through the Database Navigator
Request to view information about an object using the Info command on the Edit pop-up menu.
Browse for the name of an object to enter in a dialog box using the Browse command.
Your template-based product displays the Database Navigator.
To use the Up and Down arrow keys to select a continuous set of objects:
1. In the tree list, click on the first object, hold down the Shift key, and then use the Up or Down arrows
to select a block of objects.
2. Select OK.
Tip: For transparency, the higher the value, the more transparent the object is, allowing
other objects to show through. The lower the value, the more opaque the object is,
covering other objects. However, setting the transparency of objects can have a negative
impact on graphical performance if you are using a graphics card without hardware
acceleration for OpenGL. Instead of setting an object’s transparency, consider setting
the object’s render mode to wireframe.
3. To set the scope of the appearance changes, you can select either:
• Object - Only apply to the selected object.
• Siblings - Apply changes to all objects of the same type that are children of the parent of the
selected object.
• All - Apply changes to objects matching the filter you set in the Filter text box.
4. Select Apply.
To rename an object:
1. From the Database Navigator pull-down menu, select Rename.
2. From the Tree list, select the object to rename.
3. In the text box that appears to the right, type a new name for the object.
4. Select Apply.
Part ground
Is connected to:
LINK_1 via JOINT_2 (Revolute Joint)
LINK_6 via JOINT_1 (Revolute Joint)
LINK_1 via FORCE_1 (Single_Component_Force)
Part LINK_1
Is connected to:
LINK_5 via JOINT_3 (Revolute Joint)
ground via JOINT_2 (Revolute Joint)
ground via FORCE_1 (Single_Component_Force)
Learning the Basics 15
Navigating Through a Modeling Database
Part LINK_5
Is connected to:
LINK_1 via JOINT_3 (Revolute Joint)
LINK_6 via JOINT_4 (Revolute Joint)
Part LINK_6
Is connected to:
LINK_5 via JOINT_4 (Revolute Joint)
ground via JOINT_1 (Revolute Joint)
Unconnected Parts:
LINK_1
Select .
tool .
information about the current object's parent or child, print the information, display information about a
different object in the database, and more.
Displaying Information
Displaying Object Information and Accessing the Information Window
Displaying Parent and Children Information
Displaying an Object's Modify Dialog Box
Managing Information
Clearing the Information Window
Saving Information in the Information Window
Displaying a Text File in the Information Window
Copying Text in the Information Window
Setting the Information Mode
Tip: You may want to zoom in on the object on the screen to more easily place the cursor
over just that object.
To use the Database Navigator to display information about objects in the Information window:
1. On the Status bar, select the Info tool from the Information tool stack.
The Database Navigator appears.
20 Adams Car
Working with the Information Window
2. Select the object about which you want to display information. Learn about selecting objects.
3. Select OK.
The information window appears.
To display object information once you've displayed the Information window, do one of the
following:
In the text box at the top of the Information window, enter the name of the object, and then select
Apply.
If the object name already appears in the Information window, place the text cursor in the name of
the object, and then select Apply.
3. Select OK.
The Information window appears with the text of the file as its content.
Using Wildcards
You can use wildcards to narrow any search, set the type of information displayed in a window, such as the
Database Navigator or the Log file, or specify a name of an object in a dialog box.
This Character:
* (asterisk) Zero or more characters
? Any single character
[ab] Any one of the characters in the brackets
[^AB] Any character other than the characters following the caret symbol (^) in the
brackets
[a-c] Any one character in a range enclosed in brackets
{AB, bc} Any of the character strings in the braces
You can match alternative sequences of characters by enclosing them in braces and separating them
with commas. For example, the pattern a{ab,bc,cd}x matches aabx, abcx, and acdx.
You can form character sets that match a single character using brackets [ ]. For example, [abc]d
matches ad, bd, and CD
You can use a dash (-) to create ranges of characters. For example, [a-f1-4] is the same as
[abcdef1234].
You can use a backslash (\) to include a special character as part of the character set. For example,
[AB\]CD] includes the five characters a, b, ], c, and d.
Here are some examples of more complex patterns and possible matches:
x*y - Matches any object whose name starts with x and ends with y. This would include xy, x1y, and
xaby.
x??y - Matches only those objects with four-character long names that start with x and end with y.
This would include xaay, xaby, and xrqy.
x?y* - Matches all of those objects whose names start with x and have y as the third character. This
would include xayee, xyy, and xxya.
*{aa,ee,ii,oo,uu}* - Matches all those objects whose name contains the same vowel twice in a row.
This would include loops and skiing.
[aeiou]*[0-9] - Matches any object whose name starts with a vowel and ends with a digit. This would
include eagle10, arapahoe9, and ex29.
[^aeiou]?[xyz]* - Matches any object whose name does not start with a vowel and has x, y, or z as the
third letter. This would include thx1138, rex, and fizzy.
Setting Preferences
4. Select OK.
• Off - Turns off the display of screen icons for the selected type of object. Remember, however,
that turning on the display of screen icons for the entire database overrides this setting.
• Inherit - Lets the object type simply inherit the display settings from its parent. For example, a
coordinate system marker inherits settings from its parent part.
• No Change - Does not change the current settings. Lets you make changes to other display
options without affecting the visibility of the icons.
4. Enter the size you want for the icons or select the amount by which you want to scale the icons. The
scale factor is relative to the current size set. A scale factor of 1 keeps the icons the same size. A scale
factor less than 1.0 reduces the size of the icons and a scale factor greater than 1.0 increases the size of
the icons. Note that these changes take precedence over the size you specify globally for the modeling
database.
5. Enter the color you want to use for the icons.
6. To browse for or create a color, right-click the Color text box, and then select Browse or Create.
7. Set Name Visibility Option to whether or not you want the names of objects of the selected type
displayed in the view. Refer to Step 3 for an explanation of the choices.
8. Select OK.
To use a dialog box to toggle on and off the display of view accessories:
1. Click the Main window.
2. On the View menu, select View Accessories, and then select the accessories that you want to turn on
or off from the View Accessories dialog box that appears.
3. Enter the title you want displayed in the main window, and then press Enter.
4. On the Window menu in the View Accessories dialog box, select Exit.
Tip: Type a lowercase g while the cursor is in the main window to toggle on and off the
display of the working grid.
Type a lowercase v to toggle on and off the display of screen icons.
2. Select Status Toolbar and its placement in the main window. Your changes take place immediately.
3. Close the dialog box.
To create a color:
1. From the Settings menu, select View Background Colors.
2. Press F1 and then follow the instructions in the dialog box help for Edit Background Color.
3. Select OK.
To toggle on and off the display of the coordinate window, do one of the following:
On the View menu, select Coordinate Window.
The coordinate window appears in the lower right corner of the screen. You can move and size it as
you do any window in your operating system.
Tip: Press the F4 key to toggle the display of the coordinate window.
Command Navigator
Enables you to enter Adams View commands without having to know the entire syntax of the commands.
See Command Navigator dialog box help.
Learning the Basics 31
Using Template-Based Product Tools
The Command Navigator displays a list of all Adams View command Keywords. A plus (+) in front of a
keyword indicates that the command has more keywords below it but they are hidden. A minus (-) indicates
that all keywords below the keyword are displayed. No indicator in front of a keyword indicates that there
are no more keywords below the object. When you select an object with no indicator, a dialog box appears
in which you enter parameters for executing the command.
About Commands
The commands that you enter in the command window or Command Navigator are made up of keywords,
parameters for the keywords, and parameter values as shown next:
{keywords} {parameters=values}
In a command:
Keywords correspond to menu selections.
Parameters correspond to dialog box choices.
Parameter values correspond to values you enter or select in the dialog boxes.
For example, the following command contains the keyword constraint followed by other keywords, then by
parameters, such as the name of the joint. In the example, an ! indicates a comment and an & at the end of
a line indicates that the command continues onto the next line.
constraint create joint revolute & !{keywords}
joint_name=.model_1.JOINT_1 & !{parameter=value}
i_marker_name=.model_1.PART_1.MAR_3 & !”&” for continuation
j_marker_name=.model_1.ground.MAR_1 &
friction_enabled = no
To help you enter commands correctly, your template-based product checks for syntax errors whenever you
enter a space, comma, or equal sign (except in a string or expression) in the command window. If it detects
an error, it displays a message above the command information area. You cannot proceed until you correct
the error.
Learning the Basics 33
Using Template-Based Product Tools
Continuing Commands
You can continue a command you enter in the command window for as many lines as necessary. To continue
a command, place an ampersand (&) at the end of a line and then continue the command on the next line.
Note that a command must be entered all at once.
34 Adams Car
Using Template-Based Product Tools
To create: Enter:
A comment alone on one line !comment <CR>
A command followed by a comment on one line command !comment<CR>
A command followed by a comment on one line, with the command continuing on &!comment<CR>
the next line command continue
command
A command followed by a comment on one line, with the comment continuing on &!comment<CR>
the next line, and the command continuing on the following line command &!comment<CR>
continue
command
Entering Abbreviations
You can enter abbreviations for commands and parameters when you are entering commands directly in the
command window. You should always use full keywords for macros and command files to avoid any future
compatibility problems. Also note that if you use abbreviations, your template-based product takes longer to
execute your commands because it must substitute an abbreviation with its full command.
Reviewing Commands
You can use the scroll bar at the side of the command information area to view the last 50 commands that
were entered.
If the parameter value requires a modeling object, the command window displays a list of possible
objects in your current model. If the parameter value requires a file, the File Browser appears.
3. Copy or select the desired object and place it in the parameter value.
The UNDO FORWARD reverses the undo of the entire undo block as if the undo block were a
single command.
The limit on the number of commands your template-based product remembers does not apply to
commands within an undo block. You may notice slowed system performance if you store too many
commands in a single undo block.
Message Window
Provides you with messages on the status of Adams View and displays helpful information while you are using
Adams.
Adams View displays messages about the execution of a command in the message window. By default, the
message window only displays messages about commands you execute from the user interface. You can also
set it to display messages about commands that you execute from the Command Window, Command
Navigator, and Adams View command files.
Learn about Managing Messages.
Information Window
Adams View uses the Information window to display many different types of information about your model,
simulation, or motion data. In addition to just viewing information about your model, you can perform a
variety of operations in the Information window.
The information includes:
Topology on the different objects in your model
Object information, such as information about a part or a view
Model verification results
Measurements from one coordinate system marker to another
Result set component information
View attributes
Results from a system command you run using the Tools -> System Command
Learn about:
Displaying Object Information and Accessing Information Window
Viewing Model Topology Map Through Information Window
Verifying Your Model
Learning the Basics 37
Using Template-Based Product Tools
Database Navigator
Displays the types of objects appropriate for the command you are executing and shows objects in their
database hierarchy. You can browse for objects or set it to rename objects, view information about the objects
and view dependencies. You can also set a filter for the types of objects displayed in the Database Navigator.
Learn more about Database Navigator.
38 Adams Car
Files and Commands
If you select to display the results in the log file, you can keep the command results with the other commands
that you execute so that you can cut and paste the information together into a new file.
Note: You can change the name of the log file through the initialization file .mdi_init. For more
information, see Running and Configuring Adams.
To set the type of information displayed in the Display Log File dialog box:
1. Select the Show only lines of type check box and then select one of the following:
• Info - Displays all commands that you have executed in your template-based product.
• Warning - Displays non-fatal messages that warn you of possible problems with commands you
entered.
• Error - Displays fatal messages that your template-based product did not understand and,
therefore, did not successfully process.
• Fatal - Displays messages that indicated that your model would not simulate.
2. If desired, select Show only lines containing and enter the text that the line must contain in the text
box. You can also enter wildcards.
3. Select Apply.
To unload a plugin:
1. From the Tools menu, select Plugin Manager.
2. In the Load column, next to the plugin you want to unload, clear the selection of Yes.
3. Select OK.
Your template-based product removes any plugin menus or commands.
To set up a plugin so it loads automatically when you start your template-based product:
1. From the Tools menu, select Plugin Manager.
2. In the Load at Startup column, next to the plugin you want to load automatically, select Yes.
3. Select OK.
Testrigs are special models that are used to actuate or drive your assembly. Each analysis requires a specific
testrig. For example, most full-vehicle events require the __MDI_SDI_TESTRIG, while most suspension
analyses require the __MDI_SUSPENSION_TESTRIG.
48 Adams Car
Overview
Prior to version 2021, a testrig was required to be specified in every full-vehicle and suspension assembly. In
2021 and onwards, testrigs are optional. If the assembly doesn't contain the testrig required for a particular
analysis, then that testrig will be added to the assembly during analysis submission. This means that one
assembly can now be used for any type of analysis.
Assembly Variants
An assembly file includes the assembly class (full-vehicle, suspension, generic and so on), list of Adams plugins
needed, a list of one or more subsystems, and optionally a testrig and Adams Solver settings.
The simplest assembly file would define only the "default" variant (this is the case with Adams Car versions
prior to 2021). Any deviations from the default definition can be saved as a new variant.
The following items can be defined in an assembly variant:
Assembly class - the default variant may be a full-vehicle assembly, while a variant may define a
suspension assembly.
Plugin list - the default variant may not require any plugins, while a variant may require Adams
Ride, Adams Durability, and Adams Vibration. These plugins will not be loaded until the user
switches to this variant.
Subsystems - the default variant includes a list of one or more subsystems, while a variant may
include any or none of these, plus additional subsystems.
Subsystem variants - each assembly variant also specifies which subsystem variants to use.
Testrig - optionally, each assembly variant specifies which testrig it needs. If one or more testrigs are
referenced, testrig hardpoints and parameter variable tables will be included. These hardpoints and
parameter variables can include variant values.
Solver settings - optionally, each assembly variant can specify its own Solver settings.
Subsystem Variants
While the testrig defines the model topology (for example, parts and connections), the subsystem file
populates that model topology with the designer's intent. In previous versions of Adams Car, a single
variation of that design intent could not be captured in the same subsystem file, necessitating a new subsystem
file (and therefore a new assembly file) for every small variation.
The following items can now be defined in a subsystem variant:
Hardpoints
Parameter variables
General parts
Switch parts
Flex bodies
FE_parts
FE_part Sections
Nonlinear rods
Building Models 49
Overview
Anti-roll bars
All UDE types (bushings, springs, dampers, bumpstops, reboundstops and so on)
Gears
General parameters
General splines
General variables
Compared with versions of Adams Car prior to 2021, the use of assembly and subsystem variants can greatly
reduce the number of files you need to maintain. To illustrate, imagine the set of files previously needed to
define slight variations in vehicle design. For three variations of an imaginary vehicle design, Table 1 below
shows 34 files, 12 of which are assemblies, necessary to perform standard full-vehicle analyses, front and rear
suspension analyses, and four-post shaker analysis.
By using assembly and subsystem variants, Table 2 shows how a single assembly file, containing nine assembly
variants, and referencing nine unique subsystem files, can represent the same vehicle configurations and
analysis types. Note that because testrigs are now optional, there was no need to define separate variants for
the four-post shaker.
Subsystems
You only use subsystems in the Standard Interface. You can either create new subsystems or read in existing
ones. When you create a new subsystem, you must reference an existing template. When you use an existing
subsystem, the template associated with it is automatically read in.
Subsystems are based on templates and allow standard users to change the parametric data of the template as
well as the definition of some of the components. For example, you can change the location of hardpoints
and modify parameter variables. See Generating a Subsystem.
The template-based products organize the basic components that make up a full assembly or subassembly
into subsystems. For example, subsystems can include suspensions, wheels, drivelines, chassis, and so on.
Subsystems contain descriptions of the component that they model. These descriptions consist of:
Design data, such as wheel radii, toe angles, and locations of various points in the subsystems,
named hardpoints, mass properties of parts, and so on.
References to property files that contain design data for bushings, bumpstops, dampers, engines,
springs, and tires. A bushing property file, for example, contains a description of the bushing's
stiffness and damping characteristics.
References to CAD files. These will be imported and attached to individual parts in the subsystem,
so the use of CAD files containing assemblies must be considered carefully.
Reference to a template that defines the subsystem's construction, including the kinds of parts and
how the parts interact and attach to one another. For example, a template that defines a rack and
pinion steering system defines a rack part, a pinion part, and a housing part. It also defines that the
rack slides in the housing, that the pinion rotates in the housing, and that the rack and pinion are
geared together. Since the construction of all rack and pinion steering systems is similar, all
subsystems describing a rack and pinion steering system can reference the same template.
Learn more about subsystems:
Opening Subsystems
Getting Subsystem Information
Creating Subsystems
Updating Subsystems
Synchronizing Subsystems
Adding Subsystems
Replacing Subsystems
Removing Subsystems
Setting Subsystem Activity
Saving Subsystems
Closing Subsystems
Subsystem Modes
Minor Roles
Building Models 53
Subsystems
Publishing Subsystems
Importing CAD files
Opening Subsystems
When you open a subsystem that specifies a flexible representation of a rigid part, your template-based
product replaces the equivalent rigid body from the template with the flexible body. Learn about flexible bodies.
Creating Subsystems
You create subsystems by selecting a template that defines the topology and default data for your subsystem.
Using the Standard Interface, you can modify the default data to match your design. We supply several
templates with each product. For example, for Adams Car users, we supply templates that represent
MacPherson strut and double-wishbone suspension subsystems. Using the Template Builder you can create
templates for your company-specific topologies.
When creating a new subsystem, you can reference the property files that the template references, or reference
other property files held either in a different database or with a different file name, as indicated by the dashed
lines in the Example Model Architecture. A collection of subsystems merged together forms an assembly.
To create a subsystem:
1. In the Standard Interface, from the File menu, point to New, and then select Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for New Subsystem.
3. Select OK.
54 Adams Car
Subsystems
Updating Subsystems
Resets the values of a subsystem to those stored in a subsystem file. You can update a subsystem using any
subsystem file that is based on the same template as the subsystem in session.
When you update a subsystem, your template-based product does not reload the template.
To update a subsystem:
1. In the Standard Interface, from the File menu, point to Manage Subsystems, and then select Update.
2. Press F1 and then follow the instructions in the dialog box help for Update Subsystem.
3. Select OK.
Synchronizing Subsystems
When you synchronize a subsystem, you apply the values of the selected master subsystem to one or more
subsystem instances using the automated subsystem update feature. You can synchronize the subsystems in
session that are based on the same subsystem file. The subsystem mode flags (kinematic or compliant) of the
target subsystems will be retained.
For example, you may have several instances of one subsystem open in your session under several assemblies.
If you modify one subsystem and want to propagate those changes to every instance of the subsystem, you
can use the synchronize subsystems functionality.
To synchronize subsystems:
1. In the Standard Interface, from the File menu, point to Manage Subsystems, and then select
Synchronize.
2. Press F1 and then follow the instructions in the dialog box help for Synchronize Subsystem.
3. Select OK.
Adding Subsystems
When you add a subsystem into an assembly, your template-based product disassembles the assembled model,
opens the subsystem, and then reassembles the model to include the new subsystem.
To add a subsystem:
1. From the File menu, point to Manage Assemblies, and then select Add Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Add Subsystem.
3. Select OK.
Your template-based product does the following:
Building Models 55
Subsystems
Replacing Subsystems
When you replace a subsystem in an assembly with a new subsystem, your template-based product disassembles
the assembled model, deletes the subsystem, opens the new subsystem, and then reassembles the model to
include the new subsystem.
To replace a subsystem:
1. From the File menu, point to Manage Assemblies, and then select Replace Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Replace Subsystem.
Select OK.
Your template-based product does the following:
• Disassembles the assembly, which includes 'unassigning' communicators.
• Deletes the subsystem from the existing assembly.
• Opens the new subsystem underneath the existing assembly.
• Reassembles the assembly, which includes re-assigning the communicators.
Removing Subsystems
When you remove a subsystem from the assembly to which it belongs, your template-based product
disassembles the assembled model, deletes the subsystem, and then reassembles the model.
To remove a subsystem:
1. From the File menu, point to Manage Assemblies, and then select Remove Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Remove Subsystem.
3. Select OK.
Your template-based product does the following:
• Disassembles the assembly, which includes 'unassigning' communicators.
• Deletes the subsystem from the assembly.
• Reassembles the assembly, which includes re-assigning the communicators.
When you set the subsystem activity status to inactive, your template-based product ignores the subsystem
during model assembly, and will not write it to the Adams Solver files.
Note that compared to the Remove Subsystem functionality, which deletes the subsystem, the Toggle
Subsystem Activity functionality only de-activates the subsystem and all objects in it.
Saving Subsystems
You save subsystems in ASCII format, and you can publish subsystems to databases so other users can share
them. We support two formats: TeimOrbit File Format and XML File Format.
You have the option to save newly created subsystem objects, such as measures and design objectives, to the
subsystem file. These subsystem-level objects cannot be combined with subsystem variants.
If your subsystem contains a flexible part, your template-based product saves information about the part, as
well as the marker-node association, in the PART_ASSEMBLY block of the subsystem file. Your template-
based product writes one block for a single flexible part or two for paired parts, of which one is flexible.
To save a subsystem:
While viewing a subsystem, from the File menu, do one of the following:
• Select Save (or use the keyboard shortcut, Ctrl + s) - Your template-based product saves the
TeimOrbit version of the subsystem to the default writable database and prompts you if a
subsystem already exists. For save options, select Save As.
• Point to Save As, and then select Subsystem - Press F1 and then follow the instructions in the
dialog box help for Save Subsystem. Select OK.
Building Models 57
Subsystems
Closing Subsystems
You can close a subsystem without first saving it to a Database.
To close a subsystem:
1. In the Standard Interface, from the File menu, point to Close, and then select Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Close Subsystem.
3. Select OK.
Subsystem Modes
A subsystem exists in one of two modes - kinematic or compliant. When you toggle a subsystem between
these two modes, certain elements such as joints and bushings may be enabled or disabled. When you create
a joint, you define it to be active always or only in kinematic mode. Conversely, when you create a bushing,
you define it to never be inactive or be inactive only in the kinematic mode. This allows you to use the same
subsystem for both Dynamic Analysis and Kinematic Analysis.
Minor Roles
You assign a minor role, or function, to every subsystem. The minor role of a subsystem is stored in a variable
as a string. This string will also be written to the subsystem file. You select a minor role to identify how your
product should use the subsystem when creating an assembly of subsystems for Analysis.
A minor role defines the subsystem's location.
Adams Car - A minor role can be front or rear. The following are the minor roles for Adams Car:
any, front, rear, and trailer.
If you create a new subsystem with the minor role front based on a steering template, during
assembly Adams Car connects your front steering subsystem to a front suspension subsystem, but
not a rear suspension subsystem.
58 Adams Car
Subsystems
If you create a new subsystem with the minor role any, during assembly Adams Car connects your
new subsystem to any other active subsystem having matching communicators.
Publishing Subsystems
When you publish a subsystem, you copy the subsystem file and all its associated property files to the target
database, which is the database where your template-based product saves all files. You can also select to
publish the subsystem's template file. As you publish the subsystem, you can choose to write over existing
files or create backups of the files.
You can also select to update the in-session subsystem data to point to the target database or to have the
subsystem retain the existing references.
The subsystem you are publishing must be currently opened in the standard interface, and the target database
must be writable. Learn about setting the writable database.
You can also publish an entire assembly. Learn about publishing an assembly.
To publish a subsystem:
1. From the Tools menu, point to Database Management, and then select Publish Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Publish an Open Subsystem.
3. Select OK.
Assemblies
Assemblies represent a collection of subsystems, along with a test rig, which when assembled form a system
that you can analyze using Adams Solver.
In Adams Car for example, a steering subsystem and a front-suspension subsystem, plus a suspension test rig,
form the basis of a suspension assembly that you can analyze for kinematic behavior.
In the Standard Interface, you can create, open, save, and analyze assemblies. You can also publish assemblies
to databases so other users can share them. Learn about publishing assemblies.
Learn more about assemblies:
Opening Assemblies
Getting Assembly Information
Creating Suspension Assemblies
Creating Full-Vehicle Assemblies
Creating Generic Assemblies
Updating Assemblies
Saving Assemblies
Closing Assemblies
Publishing Assemblies
Property Files
Repositioning Assemblies
Opening Assemblies
To open an existing assembly:
1. In Standard Interface, from the File menu, point to Open and then select Assembly.
2. Press F1 and then follow the instructions in the dialog box help for Open Assembly.
3. Select OK.
60 Adams Car
Assemblies
Note: Once the assembly is open, the Edit, Adjust, and Simulate menus become active. We
recommend that you familiarize yourself with each menu item.
Updating Assemblies
You can re-read an assembly file, in case you modified the file by an alternative process. For example, if you
edit in a text editor an assembly file stored in the shared database, you can reflect this change in your template-
based product by using the update assembly functionality.
To update an assembly:
1. In the Standard Interface, from the File menu, point to Manage Assemblies, and then select Update.
2. Press F1 and then follow the instructions in the dialog box help for Update Assembly.
3. Select OK.
Saving Assemblies
You save assemblies in ASCII, binary, or XML format:
ASCII Assemblies - ASCII assemblies are written in the TeimOrbit format, which is easily edited by
hand. An ASCII assembly file references subsystems, but does not contain subsystem data. If you
want your assembly to be updated with the current template/subsystem files, you should save your
assemblies in ASCII format. When you open an ASCII-format assembly, your template-based
product opens each individual subsystem, which in turn accesses the current version of each
corresponding template. You have the option to save newly created assembly objects, such as
measures and design objectives, to the ASCII assembly file. These assembly-level objects cannot be
combined with assembly variants.
Binary Assemblies - A binary assembly is a static snapshot of what's currently in your session. That
is, when you reopen a binary assembly, you will return to the exact state at which you left. Adams
Car ignores any subsequent modifications made to templates and/or subsystems, which were
originally used to create the assembly, when you open the binary assembly. Therefore, if you want
your assembly to be updated with the current template/subsystem files, you should save your
assemblies in ASCII format. Binary assemblies can be very useful, if you are working on a project
where the templates will not change, and a static snapshot of the assembly is sufficient.
Note that saving an assembly as a binary will not save the plots, nor the setting for simulation
(hold_solver_license). It will, however, save the analyses associated with the assembly, and you could
re-create plots using a plot configuration file. Learn about plot configuration files.
XML Assemblies - XML is an industry standard format. XML assemblies function exactly like
ASCII assemblies.
To save an assembly:
1. From the File menu, select Save or Save As.
2. If you selected:
• Save - Your template-based product saves the ASCII version of the assembly to the default
writable database. Your template-based product prompts you if it detects subsystem changes. It
also prompts you if the assembly already exists in the database. For save options, select Save As.
62 Adams Car
Assemblies
• Save As - Press F1 and then follow the instructions in the dialog box help for Save Assembly. Select
OK.
Closing Assemblies
To close an assembly:
1. In the Standard Interface, from the File menu, point to Close, and then select Assembly.
2. Press F1 and then follow the instructions in the dialog box help for Close Assembly.
3. Select OK.
Publishing Assemblies
When you publish an assembly, you copy each subsystem file included in the assembly definition, including
the associated property files for each subsystem, to the target database, which is the database where your
template-based product saves all files. You can also select to publish each subsystem's template file. As you
publish the assembly, you can select to write over existing files or create backups of the files.
You can also select to update the in-session assembly data to point to the target database or to have the
assembly retain the existing references.
The assembly you are publishing must be currently opened in the standard interface, and the target database
must be writable. Learn about setting the writable database.
You can choose to publish only a subsystem, not an entire assembly. Learn about publishing a subsystem.
To publish an assembly:
1. From the Tools menu, point to Database Management, and then select Publish Assembly.
2. Press F1 and then follow the instructions in the dialog box help for Publish an Open Assembly.
3. Select OK.
Property Files
Property files are ASCII-based files that contain data for modeling components, such as valve spring, cams,
and bushings. Because property files are flat text files, you can use any text editor to create or modify them.
You use property files to:
Apply the same characteristics or parameters to many components within a template or subsystem.
In Adams Car for example, a suspension might contain many bushings with the same properties. In
this case, all the bushings could reference the same property file.
Share a component between different templates and subsystems.
You can reference property files in different subsystems and templates, as shown in the Example Model
Architecture.
Building Models 63
Templates
All property file types are specified in the configuration file (acar.cfg). When you edit property files, you can
save them either with the existing file name or with a new file name. Learn about managing property files through
configuration files.
Property files are grouped in classes and stored in databases. Every class (such as bushings and dampers) is
filed in the corresponding Database table (in this case, bushings.tbl and dampers.tbl).
A subset of property files define force-displacement or force-velocity characteristics for springs, dampers,
bumpstops, reboundstops, and bushings. For those components, you use the Curve Manager or Property File
Editor to create, edit, and view property files. You can access the Curve Manager from the Tools menu. From
within dialog boxes, you can edit property files using the Curve Manager/Property File Editor tool and
Repositioning Assemblies
If you are setting up your assembly for real time analysis and your road file origin doesn't match your vehicle
origin, you may wish to reposition the assembly instead of specifying a road offset. The use of a road offset
requires additional computation at each time step in order to calculate the location of each tire with respect
to the road surface. Repositioning the assembly to match the road origin eliminates the need for these
additional computations, resulting in faster run times. This process is generally irreversible, so it should be
performed immediately before submitting an analysis.
Note: saving the repositioned assembly in ASCII or XML formats will not store the location/orientation
changes. If you wish to save the repositioned assembly in its new position, save as binary format.
To reposition an assembly:
1. From the Tools menu, select Model Reduction, and then select Assembly Repositioning.
2. Press F1 and then follow the instructions in the dialog box help for Reposition Assembly.
3. Select OK.
Templates
Templates are parametric models, built by expert users within the Template Builder. Templates define the
default geometric data and topology of models, such as a double-wishbone suspension, an engine cranktrain,
or an aircraft landing gear. The components within a template are parametrically defined such that you can
use a single template within numerous subsystems.
Templates are intended to be a generic representation of a mechanical system, such that a template that is
common to a number of different vehicles can be reused in each of those vehicles. For example, assume that
you have two cars, a small car and a large car and that each of the two cars have a double-wishbone front
suspension. You could use a double-wishbone template in each of the two vehicles. The only difference is that
the large car requires stiffer springs, larger A arms, different dampers, and so on. The basic topology is the
64 Adams Car
Templates
same: it is the components/properties that are changed. It is the subsystem file that references the topology
of the template but changes the characteristics of the suspension by referencing different springs, parts,
dampers, and so on.
Templates provide a quick way to experiment with different subsystems and still retain the basic design
components that are required.
A template in its most fundamental form cannot be used in the Standard Interface without first being
referenced by a subsystem file. See Generating a Subsystem.
You can modify the data of a template by changing the values of design parameters. Hardpoints, parameter
variables, and property files are the design parameters of templates, where:
Hardpoints define locations for geometry, attachments, and construction frames.
Parameter variables contain strings, integers, and real values that you can modify in the Standard
Interface and store in the subsystem file.
Property files are referenced by some components.
Templates contain communicators to enable the exchange of information with other templates.
Learn more about templates:
Opening Templates
Creating Templates
Saving Templates
Closing Templates
Major Roles
Location of Templates
Building Models 65
Templates
Opening Templates
When using the Template Builder for the first time, we recommend that you first open some of the example
templates we provide and familiarize yourself with them.
Note: Once the template is open, the Edit and Build menus become active. We recommend that you
familiarize yourself with each menu item.
Creating Templates
To ensure that an analysis will work with your new template, when you create a template you must make sure
that the template is compatible with other templates and with the test rigs. The template must contain the
proper output communicators.
To create a template:
1. From the File menu, select New.
2. Press F1 and then follow the instructions in the dialog box help for New Template.
3. Select OK.
Note: Once the template is open, the Edit and Build menus become active. We recommend that you
familiarize yourself with each menu item.
66 Adams Car
Templates
Saving Templates
Using the Template Builder, you can save your files in ASCII or Binary File Format. Saving your files in ASCII
format provides the benefit of small file sizes and being human readable. On the other hand, saving your files
in binary format ensures faster processing, but does not have the benefits associated with ASCII format.
When saving a template that includes a flexible part, your template-based product saves the part as rigid.
To save a template:
1. From the File menu, select Save or Save As.
2. If you selected:
• Save - Your template-based product saves the binary version of the template to the default writable
database and prompts you if the template already exists. For save options, select Save As.
• Save As - Press F1 and then follow the instructions in the dialog box help for Save Template. Select
OK.
Closing Templates
You can close a template without first saving it to a Database.
To close a template:
1. From the File menu, select Close.
2. Press F1 and then follow the instructions in the dialog box help for Close Template.
3. Select OK.
Major Roles
You assign a major role, or function, to every template. The choices in the Major Role option menu
correspond to the available major roles for a template.
A major role is a property of a template. A subsystem inherits the major role of the type on which it is based.
In Adams Car, examples of major roles are: suspension, steering, and body. Note that for each major role (for
example, suspension, steering, and so on) Adams Car allows only one active subsystem with the minor role any.
The choices in the Minor Role option menu correspond to the available minor roles for an Adams Car
subsystem.
Building Models 67
Test-Rig Templates
Location of Templates
The templates are located in the templates.tbl table, or directory, of your template-based product's shared
database. The shared database is usually located in your product's installation directory. For location details,
see your system administrator.
Test-Rig Templates
You can extend the functionality of your templates by converting them into test-rig templates, also referred
to as test rigs.
In the template-based products, test rigs are almost completely comparable to regular templates. The basic
topological difference between test rigs and regular templates is that besides containing parts that are attached
using attachments and forces, test rigs also contain actuator elements, such as motions and forces, to excite
the assembly. Just like regular templates, test rigs also contain communicators to enable the exchange of
information with other templates.
You use test rigs when creating assemblies. A collection of subsystems and a test rig form an assembly.
Note that the name of a test rig is always preceded by a period and two underscores, that is .__. For example,
.__MY_TESTRIG. This is a convention used by all template-based products to differentiate between
templates (period and one underscore, ._), subsystems (period, .), and test rigs (period and two underscores,
.__).
Learn about test rigs:
Process Overview
Creating Test-Rig Templates
Saving Test-Rig Templates
Converting Templates into Test Rigs
Adding Test Rigs to Binaries in Adams Car
Adding a Test Rig
Replacing the Test Rig
Removing the Test Rig
Toggling Test Rig Activity
Process Overview
The process of working with test-rig templates involves the following steps:
3. Saving the ASCII command file into a binary file as described in Adding Test Rigs to Binaries.
Note: You must specifically set the minor roles of communicators in test-rig templates to any. Do not set
them to inherit. You set the minor roles to any because generally a template test rig should be
capable of connecting with any subsystem.
The following example shows a typical header from an ASCII template file:
$-----------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'tpl'
FILE_VERSION = 13.3
FILE_FORMAT = 'ASCII'
HEADER_SIZE = 9
(COMMENTS)
{comment_string}
'Simple Double Wishbone Suspension'
$--------------------------------------------TEMPLATE_HEADER
[TEMPLATE_HEADER]
MAJOR_ROLE = 'suspension'
TIMESTAMP = '1999/07/15,17:21:32'
HEADER_SIZE = 5
You should remove all the lines from the beginning of the file up to, and including, the line containing the
HEADER_SIZE attribute.
Major Role
The major role of templates and test rigs is stored in an Adams View variable called role. The major role of a
test rig is always analysis.
When creating a test rig, make sure that you set the major role as shown next:
variable create &
variable_name = .__acme_4PostRig.role &
string_value = "analysis" &
comments = "Memory for Adams Car major role"
70 Adams Car
Test-Rig Templates
Minor Role
The minor role of templates and test rigs is stored in an Adams View variable called minor_role. The minor
role of a test rig is typically any. Setting the minor role to any is very important if you are designing a test rig
that is supposed to work with other subsystems that can have different minor roles.
In Adams Car for example, a suspension test rig should work with either front, rear, or trailer-type
suspensions. If the minor role of the test rig were defined as front, the test rig would hook up only to front
suspensions.
Set the minor role as shown next:
variable create &
variable_name = .__acme_4PostRig.minor_role &
string_value = "any" &
comments = "Memory for Adams Car minor role"
Model Class
Every assembly in template-based products has a specific model class. The model class of an assembly is stored
in an Adams View variable called model_class. Your template-based product automatically creates this
variable when you create the assembly.
Currently, in template-based products, there are four model classes defined: template, subsystem, testrig, and
assembly.
Set your model class as shown next:
variable create &
variable_name = .__acme_4PostRig.model_class &
string_value = "testrig" &
comments = "Memory for Adams Car model class"
Test-Rig Class
You can associate any test rig with a particular class of assembly. In Adams Car for example, the test rig
.__MDI_SUSPENSION_TESTRIG is associated with suspension assemblies. The assembly class of a test
rig is stored in an Adams View variable called testrig_class.
Set the test rig class as shown next:
variable create &
variable_name = .__acme_4PostRig.testrig_class &
string_value = "full_vehicle" &
comments = "Memory for Adams Car testrig class"
You can reference the variable testrig_class directly from the graphical user interface. In Adams Car for
example, this variable is used in the suspension assembly and the full-vehicle assembly dialog boxes. Each of
these two dialog boxes contain an option menu from which you can select the test rig to be included in the
new assembly. The option menu will only contain test rigs that are compatible with the particular class of
assembly you specified.
The following steps describe how you can reference testrig_class from the Adams Car interface. You can
follow the same basic steps for the other template-based products.
Building Models 71
Test-Rig Templates
If activating the test rig, your template-based product does the following:
Disassembles the assembly, which includes 'unassigning' communicators.
Activates the test rig, which means that it will now be considered a valid part of the assembly.
Reassembles the assembly (with the activated test rig now taking part), which includes re-assigning
the communicators.
If deactivating the test rig, your template-based product does the following:
Disassembles the assembly, which includes 'unassigning' communicators.
Deactivates the test rig, which means that it is not actually removed from the assembly, but simply
ignored.
Reassembles the assembly (with the deactivated test rig not considered), which includes re-assigning
the communicators.
Communicators
Communicators are the key elements in template-based products that enable the exchange of information
between subsystems, templates, and the test rig in your assembly.
An assembly requires two directions of data transfer between its subsystems. To provide for these two
directions of data transfer, the template-based products have two types of communicators:
Input communicators - Request information from other subsystems or test rigs.
Output communicators - Provide information to other subsystems or test rigs.
In Adams Car for example, a mount communicator in the rack and pinion steering templates outputs the
rack part name so that tie rods of suspension templates can attach to the rack. In addition, a mount
communicator in the steering template inputs a part name. The steering template uses the part name to
determine where to attach the steering column.
Learn more about communicators:
Creating/Modifying Input Communicators
Creating/Modifying Output Communicators
Communicator Entity Class
Communicator Roles
Communicator Naming
Matching Communicators During Assembly
Displaying Communicator Information
Testing Communicators
74 Adams Car
Communicators
This template-based
product: Has these communicator minor roles:
Adams Car any (see Communicator Minor Role: Any )
inherit (see Communicator Minor Role: Inherit )
front (see Communicator Minor Role: Front, Rear, Middle)
rear (see Communicator Minor Role: Front, Rear, Middle)
trailer
You can define a communicator's minor role when you create it. For example, if you want to provide input
to or output from subsystems of specific roles, then you set the minor role for communicators when you
create them. We recommend, however, that you do not set a communicator's minor role. Instead, let the
subsystem determine the minor role by setting it to inherit, in which case the communicator inherits the
minor role from the subsystem in which it is embedded. For example, in Adams Car a suspension template
might be used to define either a front or rear suspension subsystem. By letting the subsystem determine the
minor role, the assembly process attaches a steering system to the front suspension and not to the rear.
Communicator Naming
After you create a communicator, your template-based product assigns a prefix to the name. For example, it
creates a prefix, cil_ where:
ci indicates it is an input communicator. If it were an output communicator, the template-based
product would use co.
l indicates it is for the left side of a symmetrical pair. If it were for the right side, the template-based
product would use an r. If it were a single communicator, it would have an s (cis).
If you create a mount part, your template-based product automatically creates an input communicator of the
class mount. It uses the name of the mount part as the name of the communicator and appends the prefix
ci[lrs]_ to it, depending on whether or not it is a left, right, or single communicator. For example, if you create
a mount part of mtl_rack_mount, your template-based product creates an input communicator with the
name cil_rack_mount, where the l indicates it is for the left side.
As you name communicators, you should ensure that any input and output communicators that exchange
information have identical matching names. In Adams Car for example, the name you give to communicators
that exchange a part name during assembly might be cil_strut_mount and col_strut_mount, each of which has
a default matching name of strut_mount. In addition, if you are working with MSC Software templates, you
must ensure that you use the same naming conventions as the MSC Software templates. Learn about matching
communicators.
From
Belongs to minor To minor Subsystem Subsystem
The pair: the class: role: role: Matching name: index: minor role:
cil_strut_mount mount front - strut_mount inherit any
col_strut_mount mount - inherit strut_mount inherit front
cil_strut_mount mount any - strut_mount inherit any
col_strut_mount mount - front strut_mount inherit any
cil_strut_mount mount inherit - strut_mount inherit any
col_strut_mount mount - any strut_mount inherit any
cis_hitch_location location inherit - hitch_location inherit trailer_2
cos_aft_hitch_location location - inherit hitch_location next trailer
If your assembly contains multiple subsystems with the same major and minor roles, they will be internally
indexed. For example, imagine a trailer model which uses the same suspension at three locations. You can
include a subsystem named trailer_suspension (major role: suspension, minor role: trailer) three times.
Internally, these subsystems' minor roles will be indexed. The minor role of the first suspension will be
"trailer", the second minor role becomes "trailer_2", the third becomes "trailer_3" and so on. If the rest of
your trailer assembly contains communicators that match these minor roles + subsystem indices ("trailer",
"trailer_2", "trailer_3"), the communicators will match successfully.
78 Adams Car
Communicators
You can match an input communicator with only one output communicator. You can, however, match an
output communicator with any number of input communicators.
Note: You should always check the warning messages during the assembly, especially if the warning
refers to an input communicator of the mount class that does not get assigned, and is
therefore attached to ground.
Testing Communicators
You can perform a test to verify that you have correctly specified input and output communicators in your
template. You can use this test to determine whether or not you need to add or modify communicators to
correctly create an assembly.
When you perform the test, you specify the model names of one or more existing templates or test rigs.
Although you can specify a single template, you should specify all the templates containing communicators
that transfer information between the selected template. You must specify a minor role for each template,
subsystem, or test rig you chose to test.
After you perform the test, your template-based product lists the matching input and output communicators,
the unmatched input communicators, and the unmatched output communicators for the templates,
subsystems, and test rigs you selected. You can save the test information to a file.
To test communicators:
1. From the Build menu, point to Communicator, and then select Test.
2. Press F1 and then follow the instructions in the dialog box help for Test Communicators.
3. Select OK.
Building Models 79
Communicators
The Information window appears. It contains a list of the communicators that match other
communicators and a list of those that do not. It shows the matched communicators followed by the
unmatched communicators. The lists include the names of the input and output communicators and
the names of the templates to which they belong. Often, you'll see many communicators that are
unmatched. Many of these communicators are related to subsystems or test rigs that you do not
currently have open.
If you want to fully test the communicators in your template, you should open the other templates
with which you want the template to communicate. In Adams Car for example, if you are creating a
suspension template, the template must be able to communicate with a steering template and the
suspension test rig.
From
Belongs to the minor
The communicator: class: role: Receives:
ci[lr]_camber_angle parameter_real any Camber angle value from the suspension
subsystem. Sets the correct orientation of the
test rig wheels.
ci[lr]_diff_tripot location any Location of the differential.
ci[lr]_toe_angle parameter_real any Toe angle value from the suspension
subsystem. Sets the correct orientation of the
test rig wheels.
ci[lr]_suspension_mount mount any Part to which the test rig wheels can attach.
ci[lr]_suspension_upright mount any Upright part from suspension subsystem.
ci[lr]_jack_frame mount any Not matched (fixed to ground).
ci[lr]_wheel_center location any Location of the wheel center from the
suspension subsystem. Test rig wheels attach
to the suspension at that location.
cis_driveline_active parameter_integer any Integer value stored in the suspension
template/subsystem that indicates the
activity of the drivetrain.
80 Adams Car
Communicators
From
Belongs to the minor
The communicator: class: role: Receives:
cis_powertrain_to_body mount any Part to which differential outputs are
constrained.
cis_leaf_adjustment_steps parameter_integer any Integer value stored in the leaf spring
template (currently not available).
cis_steering_rack_joint joint_for_motion any Steering-rack translational joint from the
steering subsystem.
cis_steering_wheel_joint joint_for_motion any Steering-wheel revolute joint from the
steering subsystem.
cis_suspension_parameters_ARRAY array any Array used in the suspension characteristic
calculations; comes from the suspension
subsystems.
From
Belongs to minor
The communicator: the class: role: Outputs:
cos_leaf_adjustment_multiplier array any Leaf Spring toolkit. It is currently not supported in
the standard product.
cos_characteristics_input_ARRAY array any Suspension, vehicle, and test-rig parameters array
IDs used by suspension characteristics calculations
routines.
co[l,r]_tripot_to_differential mount any Outputs the ge[lr]_diff_output parts.
cos_tire_forces_array_left array any Outputs array of Adams IDs used by the conceptual
suspension module.
cos_tire_forces_array_right array any Outputs array of Adams IDs used by the conceptual
suspension module.
Belongs to the
The communicator class: From minor role: Outputs:
cos_characteristics_input_A array front Suspension, vehicle, and test-rig parameters array
RRAY_front IDs. This is just a placeholder.
cos_characteristics_input_A array rear Suspension, vehicle, and test-rig parameters array
RRAY_rear IDs. This is just a placeholder.
The co[lr]_suspension_mount output communicators publish the parts to which the test rig wheels should
mount. As you create these communicators, ensure that you set their minor role to inherit. By setting the
minor role to inherit, the communicator takes its minor role from the minor role of the subsystems that use
your suspension template.
The co[lr]_wheel_center output communicators publish the location of the wheel centers to the test rig so
the test rig can locate itself relative to the suspension. As you create these types of communicators, make sure
that you also leave their minor role set to inherit.
88 Adams Car
Communicators
The toe and camber communicators (co[lr]_toe_angle and co[lr]_camber_angle) publish, to the test rig, the
toe and camber angles set in the suspension so the test rig can orient the wheels correctly.
Working with Components
Introducing the Components
The template-based products offer a number of component definitions that allow you to quickly and
efficiently create components such as springs, dampers, and tires in the Template Builder. This allows the
expert user to generate complex components without being overly concerned with the underlying elements,
such as parts, markers, and geometry.
Components provide the building blocks required to define topological systems. Components are designed
to be intuitive, to allow you to create templates quickly and easily.
The expert user can create, modify, and delete components using the Template Builder. In the Standard
Interface, either the standard or the expert user can only modify components. Learn about user access.
The components within a template are parametrically defined such that you can use a single template to
represent numerous subsystems.
Creating Components
You can create components only in the Template Builder. The Template Builder design leads you through a
step-by-step process for creating components: the Build menu is organized such that you can start at the top
of the menu, building basic components, and work your way down, attaching these basic components
together and building increasingly complex components.
For information about a certain component, see the topic for that component.
The following example shows how you can create arm geometry. You follow the same basic steps to create any
other component listed under the Build menu.
Modifying Components
Depending on the component you want to modify, one or more of the following methods will be available:
Modifying Component Parameters
Modifying Component Property File
Replacing Instance Definition
3. Select OK.
Note: You can only change a limited number of parameters in the Standard Interface.
Note: In Adams Car you can change the component definition only in the Standard Interface.
Deleting Components
You can delete components only in the Template Builder. If you try to delete a component that is dependent
on other components, your template-based product informs you that the component is dependent on others,
and if you delete it, the dependents also are deleted.
Because not all the components you can create and delete in the Template Builder have a graphical
representation, you cannot delete some components by right-clicking on them. The following procedures
explain how you can delete both types of components: those that have a graphical representation as well as
those that don’t.
Hardpoints
Hardpoints contain location information and are the basic building blocks for most other components.
Hardpoints have no orientation. If you need components that hold both location and orientation
information, use construction frames.
Hardpoints and construction frames are also referred to as coordinate references.
You use the Template Builder’s Build menu to create, modify, and delete hardpoints. When you create
hardpoints, you can define them symmetrically or as a single point 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.
Creating a Hardpoint
To create a hardpoint:
1. From the Build menu, point to Hardpoint, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create Hardpoint.
3. Select OK.
Modifying a Hardpoint
2. Press F1 and then follow the instructions in the dialog box help for Modify Hardpoint Location.
3. Select OK.
Construction Frames
Construction frames contain both location and orientation information, and are the basic building blocks for
many other components. When you need only location and no orientation information, hardpoints are the
correct components to use.
Hardpoints and construction frames are also referred to as coordinate references.
You can define construction frames symmetrically. To easily locate and orient construction frames without
having to worry about complex rotations and translations, you can use various options:
Summary of Location Dependency Options
Summary of Orientation Dependency Options
Instrumentation
An instrumentation is a user-defined element that consists of request and variables. It is designed to aid users
with correlation studies. It modifies the request as per the type of the sensor.
Following sensor types can be added using instrumentation object:
Acceleration
Height (w.r.t tire ref)
Ride Height
StringPot
Velocity
Acceleration Sensors
For each acceleration sensor, you must specify the the part to which the sensor attached to, to calculate its
acceleration.
The acceleration sensor results uses reqsub 1121 (See Body Acceleration as Measured by an Accelerometer).
StringPots
Stringpot are the transducers that measures the normalized distance between two locations. The Normalized
Distance Request Subroutine (see Normalized Distance Between MARKERS) is used in the requests.
Velocity Sensors
Velocity Sensors measure lateral and longitudinal velocity of the vehicle through Q-head transducers. For
each velocity sensor, you must specify the front and rear sensor location.
The velocity sensor results uses reqsub 1116 (see Sideslip Calculations using Q-Heads).
It also has additional requests that uses reqsub 1090 (See Request 1090.
Parts
You can build the following types of parts in Template Builder:
General Parts
Flexible Bodies
FE Parts
Nonlinear Beams
Mount Parts
Switch Parts
Interface Parts
General Parts
A general part is a rigid part that is defined by its location, orientation, mass, inertia, and center of gravity.
Note that the computed mass properties are not parametric. Your template-based product does not update
the mass properties when the geometry changes, if hardpoints have changed position, for example. If you
want to have the part mass re-computed based upon a part’s geometry, you must explicitly have your
template-based product compute the mass properties based on the changed geometry by calculating the mass
Working with Components 93
Parts
for the general part, using the Build or Adjust menus. Alternatively, you can change the mass properties to user-
defined values by modifying the general part using the Build or Adjust menus.
In the Standard Interface, general parts are enhanced to be either rigid or flexible. Learn about flexible parts.
Flexible Bodies
Template-based products use descriptions of flexible bodies, named modal neutral files (MNF), from a finite
element (FEM) program. The MNF is a binary, platform-independent file that combines compact storage
and efficiency of data access.
The information in an MNF includes:
Geometry (locations of nodes and node connectivity)
Nodal mass and inertia
Mode shapes
Generalized mass and stiffness for mode shapes
The Template Builder uses a method of modeling flexible bodies named modal flexibility. Modal flexibility
assigns a set of mode shapes (eigenvectors) to a flexible body. The principle of linear superposition is then
used to combine the mode shapes at each time step to reproduce the total deformation of the flexible body.
This method can be very useful in problems that are characterized by high elasticity and moderate deflections.
FE Parts
Your template-based product can model structural flexibility with the use of FE Parts, without the need for a
Finite Element Modeling (FEM) program. The FE Part is a wholly Adams-native modeling object with
inertia properties and is accurate for very large deformation cases (that is, geometric nonlinearity) of beam-
like structures. The FE Part differs from the linear flexible body option within Adams Flex in two significant
ways: 1) it has the ability to accurately represent large deformations which the linear modes approach cannot
and 2) its modeling does not require an FEA-produced file like the modal neutral file (MNF). The FE Part
also differs from the beam force element in that it possesses inertia properties, and is capable of very large
deformation.
3. Select OK.
Nonlinear Beams
Using a nonlinear beam offers you a quick and easy way to deliver flexibility during early design stages.
A nonlinear beam can be modeled in one of three ways:
Rigid - A rigid nonlinear beam is a sequence of cylindrical/rectangular segments that belongs to one
part. You can use rigid nonlinear beams to model links that do not have a simple straight-line shape.
Discrete Flexible Links - Consists of one or more cylindrical/rectangular segments connected to
each other at Coordinate References. The template-based product creates a separate part for each
coordinate reference you specify. Each part is divided into two halves between coordinate references,
with each half connected elastically by a beam element. You can use this type of nonlinear beam to
model components such as anti-roll bars.
FE Part - Consists of a single FE Part. The FE Part can be created with a node at each Coordinate
Reference you specify, or with evenly distributed nodes along the centerline. You can use this type of
nonlinear beam to model components such as twist-beam suspensions.
The mass and inertia properties of a nonlinear beam are determined according to the cross-section and
material type. The stiffness properties can either be automatically calculated or user-specified.
Mount Parts
A mount part is a massless part that acts as an alias for another part in a separate template. You can use this
alias part as you would use the real part when creating joints, springs, contacts, and so on. A mount part is
fixed to ground by default. If there are matching communicators of type mount found during the assembly
96 Adams Car
Parts
process, the template-based product fixes the mount part to the part specified as the value of the
corresponding output communicator.
Switch Parts
A switch part is a massless part that enables flexible topology. You can use this switch part as you would use
any real part when creating joints, springs, bushings, and so on. Your template-based product has a list of real
parts related to each switch part. At any time, the switch part is fixed to one and only one of the parts on the
part list.
A switch part lets you explore two different topological solutions. For example, a suspension may connect
directly to a subframe, depending on the subsystems active during assembly. The switch part makes these
topological solutions possible. Following assembly, switch parts are automatically deleted.
When you choose a new part in the Switch to Part pull-down menu, the switch part changes the part it is
fixed to, and all the joints and forces acting on the switch part will act on the new part. The switch part
concept allows you to model and investigate different topologies.
See Switch Part Example for Adams Car.
3. Select OK.
Interface Parts
Interface parts are optional dummy parts that you may wish to use to connect flexible bodies to the rest of
your template. Since flexible bodies cannot include floating markers, certain modeling elements cannot be
attached directly to flexible bodies selected as the J part. These include GFORCE, VFORCE, and
VTORQUE. If you wish to create such a force acting on a flexible body, you must either select the flexible
body as the I part, or use an interface part.
Markers
A marker defines a local coordinate system on any part in your model or on ground. A marker has a location
(the origin of the coordinate system) and an orientation.
Geometry
Geometry components in the template-based products allow you to easily build parametric representations
of standard parts. If mass and inertia information is unavailable, you can automatically calculate the mass of
the general part based on the size of the geometry.
You can build the following simple geometry components that will be saved to the subsystem file:
Arm Geometry
Link and Cylinder Geometry
98 Adams Car
Geometry
Ellipsoid Geometry
Outline Geometry
Note that the computed mass properties, based on geometry, are not parametric by default. Your template-
based product does not update the mass properties when the geometry changes, if hardpoints have changed
position, for example. If you want to have the part mass re-computed, based upon a part's geometry, you must
explicitly have your template-based product compute the mass properties based on the changed geometry, by
Calculating Mass for the General Part, using the Build or Adjust menus. You can also parameterize the mass
and inertia values to Parameter Variables.
Alternatively, you can change the mass properties to user-defined values by modifying the General Part, using
the Build or Adjust menus.
There are a few tools to control visibility of part geometry at the subsystem level. In the Standard Interface,
you can right-click on a part and select Hide/Show to turn off/on visibility of all geometry belonging to that
part. The part itself remains visible so that you can see its markers. If you need to control visibility of
individual geometry children, place them in groups and control the groups' activity with parameter variables.
For more information on this topic, see Controlling Geometry Visibility
Arm Geometry
An arm part is a solid triangular plate defined by three Coordinate References and a thickness. If necessary, you
can automatically update the mass and inertia properties of the general part.
In Adams Car, you could use the arm geometry to view the control arm of a MacPherson suspension.
You define the cylinder using a construction frame, rather than two hardpoints. The centerline of
the cylinder follows the z-axis of the construction frame. You can define the cylinder so that it has
length in both the positive and negative z-axis. You can use cylinders to view the strut rods of certain
suspensions.
If necessary, you can automatically update the mass and inertia properties of the general part.
Ellipsoid Geometry
An ellipsoid geometry is defined by a Coordinate Reference and a user-specification of x, y, and z dimensions.
You can use ellipsoids to represent spherical elements of your template. A sphere is an ellipsoid whose x, y,
and z radii have the same values.
You can use two different methods of defining an ellipsoid:
Use a link to define the radius and then specify a scaling factor in each of the orthogonal axes
Define a measurement in each axis
If necessary, you can automatically update the mass and inertia properties of the general part.
3. Select OK.
Outline Geometry
You can use the outline to draw a line between different hardpoint locations. You can choose to define either
an open or a closed outline. In general, you would use outlines to visualize the general form of parts. For
example, you would add outline geometry to represent the subframe of a vehicle.
Because the geometry entity has no thickness, you cannot update the mass and inertia properties of an
outline.
B-spline Geometry
You can use the B-spline to draw a line between several reference coordinates. You can choose to define either
an open or a closed spline. In general, you would use B-splines to visualize the general form of parts. For
example, you could add B-spline geometry to represent the profile of an anti-roll bar.
Because the spline entity has no thickness, you cannot update the mass and inertia properties of an B-spline.
Attachments
When working with template-based products, you can use three types of attachments:
Joints
Bushings
Connectors
Joints
Joints define a rigid connection between two parts and help define the motion of the parts. The following
table lists the joints the template-based products support, along with information about their degrees of
freedom (DOF):
Number of
Joint name: DOF: Type of motion DOFs allow:
Translational 1 Translation of one part with respect to another while all axes are co-
directed.
Revolute 1 Rotation of one part with respect to another along a common axis.
Cylindrical 2 Translation and rotation of one part with respect to another.
Spherical 3 Three rotations of one part with respect to the other while keeping
two points, one on each part, coincident.
Planar 3 The x-y plane of one part slides with respect to another.
Fixed 0 No motion of any part with respect to another.
Inline 4 One translational and three rotational motions of one part with
respect to another.
Inplane 5 Two translational and three rotational motions of one part with
respect to another.
Orientation 3 Constrains the orientation of one part with respect to the orientation
of another one, leaving the translational degrees of freedom free.
Parallel_axes 4 Three translational and one rotational motions of one part with
respect to another.
Perpendicular 5 Three translational and two rotational motions of one part with
respect to another.
Convel 2 Two rotations of one part with respect to the other while remaining
coincident and maintaining a constant velocity through the spin axes.
Hooke/Universal 2 Two rotations of one part with respect to the other while remaining
coincident.
102 Adams Car
Attachments
You can use different parametric orientation options to define the location and direction of the joint.
Nonlinear Bushings
Linear Bushings
FMU Bushings
Any existing bushing can be replaced with a Functional Mock-up Interface (FMI) submodel. This allows the user to
create a "black box" bushing model. The user first creates the bushing model in a controls modeling package
(for example, Easy5 and Matlab), and exports this model as an FMU. The FMU is assumed to be built with
the following convention:
Positive displacement & velocity mean the bushing is in tension.
Positive displacement & velocity produce positive force.
If users choose to author an FMU such that positive displacement & velocity produce negative force,
they will need to set the force/torque scale factors to -1.
104 Adams Car
Attachments
Adams Car does not require any particular units convention in the FMU. Users are responsible to set
the scale factors if the FMU was modeled in a different unit system than the Adams Car model.
Use of an FMU bushing requires a license of Adams Controls. Any number of bushings can be replaced with
FMU bushings, but there will be some Solver performance degradation associated with each FMU bushing
instance.
Note: A positive force acts to repel the I and J parts, resisting compression.
Bushings in Series
The bushings in series option allows you to model up to three bushings in a series without modeling the parts
between them. The intent is to aid design studies by representing local part compliance as a bushing.
Currently, only linear bushings can be used to model the I part and J part compliances, whereas the nominal
bushing can use any of the available stiffness/damping formulations.
2. Select the I Part Compliance tab. Switch the I part compliance toggle on. Supply a valid linear
bushing property file.
3. Optionally you may now select the J Part Compliance tab and switch on its toggle.
4. Press F1 and then follow the instructions in the dialog box help for Modify Linear Bushing.
5. Select OK.
To calculate the bushing installation angle required for a given wheel rise (r), the effective arm length (L) is
calculated.
The bushing installation angle feature is available for the following suspension templates in the acar_concept
database:
_central_link.tpl
_double_wishbone_advanced.tpl
_integral_link.tpl
_macpherson_advanced.tpl
_semi_trailing_arm_advanced.tpl
_trailing_arm_advanced.tpl
_twin_I_beam.tpl
_twist_beam_advanced.tpl
The following table shows which bushing models are supported in the installation angle calculation:
Note: The installation angle calculated due to wheel center rise will be overwritten, if Z angle
offset is specified in the subsystem.
Adams supports markers that follow the right-hand rule only. This means a bushing on the left side of the
vehicle cannot be truly mirrored to the right side. Two axes may be parallel, but one will always be pointed
in the opposite direction. For a bushing with asymmetric stiffness curves for all three axes, this presents a
problem.
In a TeimOrbit bushing property file (*.bus), you can insert a BUSHING_DATA section with a
BUSHING_TYPE property, as follows:
$-------------------------------------------------------------------
BUSHING_DATA
[BUSHING_DATA]
BUSHING_TYPE = 'left'
For XML bushing property file (*.xml), you can insert a "stiffness_curve" property within the
"ConnectorBushingProperties" tag, as follows:
<ConnectorBushingProperties active="true" userDefined="false" shape="cylindrical" stiffness_curve="left"
radius="20" height="40">
In either case, this triggers special processing in the bushing property reader. To take advantage of this feature:
1. Make sure the bushing orientation defined in the template matches your desired setup. Left and right
X and Z axes must be parallel. Y axes should be opposite.
2. Build a bushing property file with the lines above, with the non-symmetric curves representing the
left bushing.
3. In the subsystem, specify the new "left" bushing property file, and select "Symmetry=yes" so the same
file is used on both sides.
4. When the property file is read, the right side FY, TX, and TZ curves will automatically be flipped.
D
2
with m = rl
l=1
and r k = Hk ⋅ xk – Qk
where the Adams internal variables are:
Hk - Horizontal (displacement) scaling for the kth direction (disp_scale); can be used to perform unit
conversions
Qk - Displacement offset for the kth direction (disp_offset);can be used to specify an offset between the
modeled bushing and the physical bushing (perhaps caused by the rotational preload introduced by
the assembly process)
This formulation allows the elements of the displacement vector, x, to be scaled up by a user-specified factor,
H, and/or offset by a user-specified displacement offset, Qk, to determine the transformed displacement
vector, qk, which becomes the lookup point in the selected stiffness force characteristic (see next).
The Stiffness Force, f
rk
with w k = ------- .
m
Where the Adams internal variables are:
110 Adams Car
Attachments
fk - Stiffness component of the force in the kth direction, determined by accounting for preload,
scaling factors, and inter-axial coupling
yk - Force returned internally by the user-defined (positive-positive) bushing stiffness characteristic
for the kthdirection
wk - Weighting of the returned force for the kth direction (0 to 1, for coupled directions only)
See the following sections for the precise mathematical descriptions of the two alternative coupling
formulations.
Note about the scaling factors, V and H:
Notes: Regardless of the bushing formulation, a doubling of the scale factor, V, results in a doubling
of the restoring force provided by the bushing for a given displacement in that direction. In
contrast, doubling of H:
Results in a doubling of the restoring force for bushings whose force-displacement
characteristics are linear.
Results in a nonlinear change of the restoring force for bushings whose force-displacement
characteristics are nonlinear.
y i ( q i', v i ) = y i ( q i ) = ( k i ⋅ q i )
Piecewise Linear
The piecewise linear characteristic is defined as:
m–1
y ( q, v ) = y ( q ) = k 1 q +
( kl + 1 – kl ) ( q – bl ), q > bl
l=1
Working with Components 111
Attachments
where:
l+1 l
Note that b i > b i is a necessary condition for all n.
A typical characteristic from this formulation looks similar to the following:
m–1 0 βl ≤ 0
dy spw 2
------------- = k 1 +
dq ( kl + 1 – kl ) βl ( 3 – 2βl ) 0 < βl < 1
l=1 1 βl ≥ 1
with:
e
q – b l – ---
2
β l = ----------------------------
e
where (noting that for clarity, the subscript i, indicating direction, has been dropped):
This gradient is integrated analytically from zero displacement q, to find the force-displacement curve. The
constant of integration is set such that if there were no smoothing, the curve would pass through the origin.
As smoothing is introduced, this constant of integration (the vertical offset of the force-displacement curve)
is adjusted such that the smoothed curve continues to overlay the unsmoothed curve in regions where there
is no smoothing (such as those for high values of displacement). Note that this means that if the origin is
contained within a smoothing interval, then the smoothed force-displacement curve may not pass exactly
through the origin, but that you can safely vary the smoothing interval, knowing that as the displacement
moves from a smoothed into an unsmoothed region, the behavior will converge to that of the unsmoothed
piecewise curve.
l+1 l
Note that as with the piecewise formulation, b i > b i is a necessary condition for all n. Setting e to zero
collapses this formulation to the piecewise formulation.
A typical characteristic from this formulation will look similar to the following (where the plot shows the
effect of varying the smoothing interval from 0.3 mm to 10 mm):
Working with Components 113
Attachments
AKIMA Spline
The nonlinear, AKIMA spline characteristic is defined using a single Adams AKIMA spline. The restoring
force is than determined directly from this spline:
y i ( q i', v i ) = y i ( q i ) = AKISPL ( q i, 0, ID i )
Hysteretic (Dual-Spline)
The hysteretic definition of the stiffness characteristic also incorporates some damping (velocity-dependence)
of the force, according to the following:
y i ( q i', v i ) = AKISPL ( q i, v i, ID i )
where:
v i = STEP ( p i, – P, – 1, P, 1 )
with:
p i = A i ⋅ x· i – E i
114 Adams Car
Attachments
where:
Such that, for v < -v, the force_neg_vel_values only are used, and for v > vel_threshold, only the
force_pos_vel_values are used. When v is between these values, the two force characteristics are interpolated
according to the STEP function described above.
Note that for very large values of P, the hysteresis disappears, and the characteristic approaches a simple
displacement-dependent AKIMA spline:
y i ( q i', v i ) ≈ y i ( q i ) = AKISPL ( q i, 0, ID i )
The following is an example of the typical behavior of a hysteretic bushing, excited to increasing amplitude:
Working with Components 115
Attachments
Displacement Force
P i = A i ⋅ x· i – E i
where the Adams internal variables are:
This formulation allows the elements of the true velocity vector, , to be scaled up by a user-specified factor
H, and/or offset by a user-specified displacement d, to determine the transformed displacement vector q,
which is used as the lookup point in the definition of the stiffness force characteristic for the bushing.
For each direction, the damping force, c is given by:
None
This option simply deactivates damping for the given coordinate direction:
Linear
The linear characteristic is straightforward, and is defined using a damping constant, c:
For a linear characteristic, the parameter damping_value should be set equal to the required stiffness, c.
AKIMA Spline
The nonlinear, AKIMA spline characteristic is defined using a single Adams AKIMA spline. The damping-
force characteristic is then determined directly from this spline:
Working with Components 117
Attachments
Piecewise Linear
The piecewise linear characteristic is defined as:
where:
A typical characteristic from this formulation will look similar to the following:
118 Adams Car
Attachments
For an uncoupled linear bushing (D = 0 or 1, stiffness_type = 1), this reduces to a constant damping
coefficient and a typical viscous damping characteristic.
Learn how the stiffness damping characteristics are expressed in the .adm file.
The standard non-linear bushings are implemented using a FIE(ld)SUB. This FIESUB reads the bushing
specifications directly from the .adm deck, and returns the total (stiffness plus damping) force, fi + ci, for any
six-element bushing displacement and six-element bushing velocity vector.
Coupling Specification
The value of D for the bushing is specified directly as shape in the FIELD statement for the bushing:
FIELD/id, I=idi, J=idj, FUNCTION=USER(branch, shape, txa, tya, tza, rxa, rya, rza)
where the value of the integer shape may be:
0 - Rectangular (no coupling). The force in each direction is dependent only on the displacement
in that direction.
2 - Cylindrical (that is, x-y coupling). The forces in the x and y directions are each dependent on
the displacement of the bushing in both the x and y directions. The force in the z direction is
independent (that is, it depends only on the displacement in z).
3 - Spherical (that is, x-y-z coupling). The force in each direction depends on the displacements
in all translational directions, and the torque in each direction depends on the angular
displacements in all rotational directions.
Note that the selected shape factor (coupling) always applies to both the translational and rotational behavior
of the bushing.
The next six parameters in the FIELD statement, all of which are required, should contain the Adams array
IDs of the arrays containing the data, which expresses the stiffness and damping characteristic for the
direction:
FIELD/id, I=idi, J=idj, FUNCTION=USER(branch, shape, txa, tya, tza, rxa, rya, rza)
Each of the referenced arrays must be included in the .adm file, and should be in the following form:
All of those parameters are required, and are described in detail in the following sections.
Linear (stiffness_type = 1)
For a linear characteristic, the parameter stiffness_value should be set equal to the required stiffness, k.
120 Adams Car
Attachments
sid - The Adams ID of the 3D spline that specifies the hysteretic characteristic
P - The (positive) velocity threshold above which the bushing characteristic
becomes independent of the velocity
n - The number of slopes that define the stiffness characteristic. This number must be an
integer and greater than 1 (note that for bushings with a single slope defining the stiffness
characteristic, the linear stiffness type, stiffness_type = 1, should be used)
b(1) ... b(n) - The breakpoints. The values of displacement, or of angular displacement, at which the
slope changes. These values must be real and in ascending order, but may be negative.
b(m) - The breakpoint where the slope (stiffness) changes from k(m-1), for displacements
lower than b(m), and to k(m) for displacements greater than b(m).
k(0) ... k(n) - The slopes, all of which must be real and positive for a physical, passive bushing. Their
units are stiffness (force/displacement) or angular stiffness (torque/angular
displacement). Note that k(0) extends to minus infinity and k(n) to plus infinity.
Note that the set k(0), b(1), k(1), ... , b(n), k(n) must contain precisely 2n-1 values, so that the total number
of elements in the array must be 2n.
Working with Components 121
Attachments
s - The interval over which changes of slope are smoothed. This number must be a real
value greater than zero, in units of displacement.
n - The number of slopes that define the stiffness characteristic. This number must be an
integer and greater than 1 (note that for bushings with a single slope defining the
stiffness characteristic, the linear stiffness type, stiffness_type = 1, should be used).
b(1) ... b(n) - The breakpoints. The values of displacement, or of angular displacement, at which the
slope changes. These values must be real and in ascending order, but may be negative.
b(m) - The breakpoint where the slope (stiffness) changes from k(m-1), for displacements
lower than b(m), and to k(m) for displacements greater than b(m).
k(0) ... k(n) - The slopes, all of which must be real and positive for a physical, passive bushing. Their
units are stiffness (force/displacement) or angular stiffness (torque/angular
displacement). Note that k(0) extends to minus infinity and k(n) to plus infinity.
Note that the set k(0), b(1), k(1), ... , b(n), k(n) must contain precisely 2n-1 values, so that the total number
of elements in the array must be 2n+1.
None (damping_type = 0)
This setting of damping_type simply deactivates damping for the given coordinate direction:
Linear (damping_type = 1)
For a linear characteristic, the parameter damping_value should be set equal to the required stiffness, c.
Note the sign convention here. Within the spline definition, an increase in x (transformed velocity) should
generally yield an increase in the y value (damping force).
The same Adams AKIMA spline can be used for more than one direction of the same bushing (optionally,
with different scaling), and/or for more than one instance of a bushing within the same model.
n - The number of slopes that define the damping characteristic. This number must be an
integer, and greater than 1 (note that for bushings with a single slope defining the
damping characteristic, the linear damping type, damping_type = 1, should be used).
b(1) ... b(n) - The breakpoints. The values of velocity, or of angular velocity, at which the slope of the
damping characteristic changes. These values must be real and in ascending order, but
may be negative.
b(m) - The breakpoint where the slope (damping coefficient) changes from c(m-1), for
velocities lower than b(m), to c(m) for velocities greater than b(m)
c(0) ... c(n) - The slopes, all of which must be real and positive for a physical, passive bushing. Their
units are those of damping (that is, force/velocity) or rotational daming (that is,
torque/angular velocity). Note that c(0) extends to minus infinity and c(n) to plus
infinity.
Note that the set c(0), b(1), c(1), ... , b(n), c(n) must contain precisely 2n-1 values, so that the total number
of elements in the array must be 2n.
To create a connector:
1. From the Build menu, select Attachments, select Connector, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Connector Attachment.
3. Select OK.
About Connectors
A connector is a generic attachment. That is, the topology can be varied in the Standard Interface, and the
user's design intent will be saved at the subsystem level. The connector can model a joint, a bushing, both
joint and bushing, or neither (no attachment). The choice of joint or bushing can also be linked to the
subsystem's kinematic flag, so that if the subsystem is in kinematic mode, the joint will be active, and the
bushing will be inactive. The user also has the option to choose which type of joint to use: fixed, revolute,
spherical, or translational.
124 Adams Car
Forces
In the Standard Interface, the user can turn on joint friction. The friction will be named using the same name
as the connector. For example, if the friction toggle is turned on for cn[lr]_lca_balljoint, friction objects
named frl_lca_balljoint and frr_lca_balljoint will be created.
The connector object contains a joint, and refers to an existing bushing. When creating the connector in the
Template Builder, the user either references an existing bushing or creates a new one on the fly.
Forces
You can build the following types of forces in Template Builder:
Springs
Dampers
Bumpstops
Reboundstops
Aerodynamics
Contact Definitions
In Template Builder you can also modify air springs.
Nonlinear Springs
Linear Springs
If you are using a force versus deflection table, the force is calculated as follows:
Spring Force = AKISPL(OffsetCalc - DM(I, J), 0, Spline)
where:
AKISPL - Adams Solver function that interpolates data stored in a SPLINE.
OffsetCalc - Depends on the free length defined in the spring property file and in the spring install
methods.
DM - The instantaneous distance between the I and J coordinate references.
Spline - A reference to a SPLINE statement.
2. Press F1 and then follow the instructions in the dialog box help for Modify Spring.
3. Select OK.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Torsion Beam Spring.
3. Select OK.
Nonlinear Dampers
Linear Dampers
Struts
The damper property file defines the two-dimensional spline. The independent variable is the translational
velocity of the I and J markers, and the dependent variable is the force exerted between the two parts at the
I and J marker locations. The sign convention is typical in the automotive industry: positive displacement
refers to extension, and negative displacement refers to compression, as shown in the following figure:
Notice the force values are positive in extension. In the actual force function, this is actually inverted so that
the force acts to oppose the extension of the damper.
You can also specify gas preload force for nonlinear dampers using XML-format property files.
To specify gas preload:
1. Right-click a damper, point to its name, and then select Modify.
The Modify Damper dialog box appears.
2. Specify an XML property file.
• Nonlinear - Preload is calculated by interpolating a spline. The independent value of the spline is
the relative displacement between the I and J markers. A positive force acts to extend the damper.
About Struts
Struts are specialized dampers designed to take bending and damping loads in the suspension. See Strut
Modeling.
To create a bumpstop:
1. From the Build menu, point to Forces, point to Bumpstop, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Bumpstop.
3. Select OK.
Working with Components 133
Forces
In an XML bumpstop property file, you can also enable a damping characteristic. If you enable the damping
characteristic, the force is dependent on the deflection and velocity of the I and J markers.
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 I and J parts is equal to the sum of the elastic force specified above and the
following damping force:
Fdamping = STEP (MAX(0, impact_length - DM(i,j)), 0, 0, 0.1, -
dampingRate * VR (marker i, marker j))
nonlinear (spline based) - If you include in the property file a nonlinear damping value, then the
total force exerted between the I and J parts is equal to the sum of the elastic force specified above
and the following damping force:
Fdamping = STEP (MAX(0, impact_length - DM(i,j)), 0, 0, 0.1, -
AKISPL (VR (marker i, marker j), 0, dampingSpline ))
If you select the External bumpstop type, the above equations use the DZ() and VZ() functions in
place of the DM() and VR() functions respectively. The penetration is calculated as:
penetration = MAX(0, impact_length - DZ(marker i, marker j,
reference marker))
Working with Components 135
Forces
polynomial - The formulation of the force is based on a third-order polynomial whose equation can
be expressed as follows:
Felastic = POLY(penetration, 0, 0, LinearRate, QuadraticRate,
CubicRate)
nonlinear (spline based) - The formulation of the force is based on the Akima spline interpolation of
a nonlinear characteristic:
Felastic = AKISPL(penetration, 0, Spline)
If you select the External bumpstop type and use an XML property file, the bumper height specified
in the XML property file can be used to specify a metal-to-metal force. The metal-to-metal force is
activated when the distance between I and J markers is smaller than the bumper height:
Fmetal = STEP(penetration - bumperHeight, 0, 0, 1mm,
metalToMetalRate) * (penetration - bumperHeight)
Note: The metal-to-metal rate can only be set in an XML subsystem file.
Hammerstein Bumpstops
To replace a Bumpstops with Hammerstein Bumpstop in the Standard Interface:
See Replacing Instance Definition.
To create a reboundstop:
1. From the Build menu, point to Forces, point to Reboundstop, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Reboundstop
3. Select OK.
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(i,j) exceeds the impact length. You specify the
impact length directly or indirectly as the initial clearance in the 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 i and j markers
Further, the force in a rebound stop is the sum of an elastic force, a damping force, and a metal-to-metal force.
The TeimOrbit property file supports only the elastic force. The XML property file supports various options
for the three force components. 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:
Felastic = POLY(MAX(0,DM(i, j) - impact_length),0,0,- linearRate,-
quadraticRate,-cubicRate)
nonlinear (spline based) - The force is interpolated using Akima's method based on force vs.
deflection data.
Felastic = -1.0*(AKISPL(MAX(0,DM( i , j ) - impact_length),0,Spline))
138 Adams Car
Forces
The damping force always acts in opposition to the velocity. In an XML (XML File Format) reboundstop
property file, 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 continuous with displacement.
Fdamping = STEP (MAX(0, DM(I,J) - impact_length), 0, 0, 0.1, -dampingRate
* VR (marker i, marker j))
Working with Components 139
Forces
nonlinear (spline based) - The damping force is interpolated using Akima’s method from a table of
force vs. velocity. Again, a STEP function dependent on the displacement in the rebound stop
ensure that the damping force is continuous with displacement.
Fdamping = STEP (MAX(0, DM(I,J) - impact_length), 0, 0, 0.1, -AKISPL
VR (marker i, marker j), 0, dampingSpline))
The bumper height specified in the XML property file can be used to specify a metal-to-metal force.
The metal-to-metal force is activated when the distance between I and J markers exceeds the impact
length + bumper height:
Fmetal = STEP(penetration - bumperHeight, 0, 0, 1mm, -metalToMetalRate *
(penetration - bumperHeight))
The metal-to-metal rate can only be set in an XML subsystem file.
The user is provided an option of using two wind force points of application or only one. (In the property
file, this is referred to as "OnePoint" or "TwoPoint"). This option depends on the source and type of wind
tunnel data.
Wind velocity and angle defined in the Cross Wind Analysis by wind property file (.wnd in Adams Car), allow
the modeler to simulate wind fans, chaotic wind forces and so on. The wind properties can be dependent on
distance (useful for wind fan modeling) or on time (which allows to user to more easily investigate vehicle
sensitivity versus speed). The wind velocity and angle are with respect to ground. The routine calculates
relative wind speed and direction based on vehicle velocity and yaw angle.
The aerodynamics coefficients can be in 2D spline form or 3D spline form. For a 2D spline, the independent
variable is the wind angle. If a 3D spline is used, the coefficients are determined by spline lookup of wind
angle and vehicle pitch angle. The 2D and 3D coefficients are stored is separate property files. Therefore, to
switch from one method to other, users will have to specify appropriate property file.
The force application MARKER must be in vehicle SAE orientation. The origin of this MARKER must
coincide with the location at which the coefficients were measured (or be placed at the location to which the
coefficients were resolved). Learn more about aerodynamics modeling.
Learn about aerodynamics:
Creating and Modifying Aerodynamics
Calculation of Aerodynamic Force
About Aerodynamics Property Files
142 Adams Car
Forces
To create an aerodynamics:
1. From the Build menu, point to Forces, point to Aerodynamics, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Aerodynamics
3. Select OK.
Force Calculation
The aerodynamics force always acts on the part. Learn about implementation of aerodynamics modeling.
Force Calculation
See section CONTACT in the Solver Statements guide.
Loading
Loading is a term used to define a lumped mass to be attached to a part within the same template or in
another template. The loading object consists of a general part, a mount part, an input communicator of type
mount, and a fixed joint or one or more bushings. The loading object is a virtual object that allows you to
modify the general part and attachment(s) independently. It is created as a single entity.
There are two basic types of loading objects:
Cargo - general purpose loading object, such as luggage, with box graphics.
Occupant - allows you to specify h-point location, and includes representative graphics of human
occupants.
Working with Components 145
Loading
Both cargo and occupant can be attached to other parts using a single fixed joint or with one or more
bushings. In Template Builder mode, you can toggle the attachment type between joint and bushing, and add
or remove bushings using the Modify Loading dialog box. The inputs required for creating loading objects are
a combination of inputs required for part and attachment definition.
You can also create different sets of loading configurations using:
Loading Configuration
Loading Configuration
The main purpose of a loading configuration is to associate loading objects with particular vehicle loading
conditions. It helps you to organize different loading configurations of the vehicle. You can use loading
configurations as filters on the loading objects available in the model. You can use configurations to easily
toggle the activity a set of loading objects associated with it.
146 Adams Car
Leaf Springs
For example, loading configurations can be created for "Curb" and "Design" vehicle loading conditions, etc.
It can also be used for grouping sets of loading objects. For example, you may want to create a loading
configuration for all passengers, or all luggage and so on.
This eliminates the effort required in creating and maintaining templates/subsystems with different loading
conditions.
Notes: In the Standard Interface, you cannot modify loading configurations. In the
Template Builder, you cannot create a configuration with the name 'all'; it is created
by default when you create any loading object.
In the Template Builder, you should not deactivate a loading object's bushing/joint,
general part, or mount part associated with that loading object.
It is not recommended to copy loading objects or loading configurations, as it will
lose associativity with its contents.
Leaf Springs
A leaf spring is a suspension element that uses one or more leaves to support the sprung mass of the vehicle.
In your template-based product, this is modeled as a series of parts connected by beam elements. Contact
between the leaves is modeled with vector forces. You provide data on the leaf spring in unloaded
configuration, then a preprocessor performs a static analysis to load the leaf spring to a specified ride height.
For more information on the Preprocessor used to model leaf springs, see Leaf Spring Editor section.
In order to connect the leaf spring to the rest of the vehicle, two mount parts are created where the leaf spring
connects to the chassis. The body subsystem should contain output communicators with the following
names:
co[lr]_leaf_to_frame or co[lr]_leaf_front
co[lr]_shackle_to_frame or co[lr]_leaf_rear
To connect the leaf spring to the axle, two options are supported:
If the leaf spring is part of a suspension template (role=suspension), you are prompted for the axle
part. The preprocessor will automatically update the connection.
If the leaf spring is a standalone template (role=leaf_spring), you can either include or exclude axle
connection.
Working with Components 147
Wheels, Adjustable forces and Gears
• If you selects "Include Axle Connection" then a mount part ("mt[lr]_axle") and input
communicator (ci[lr]_axle) will be created. This mount part is connected to leafseat through a
bushing or fixed joint. You need to create an output communicator named co[lr]_axle of type
mount in the suspension template.
• If you toggle "Include Axle Connection" off then an output communicator
("co[lr]_leaf_to_axle") of type mount will be created in the template and you need to create an
input communicator named ci[lr]_leaf_to_axle in the suspension template. The connection will
be in the suspension template.
Wheels
A wheel is a specialized part you can use when creating tire models. In Adams Car, creating a wheel
corresponds to creating the metal rigid body part (the rim) and the rubber (tire) around it. You model the
rim with a general rigid part and the tire with a general force (GFORCE). For information on GFORCE, see
the Adams Solver online help.
Adjustable Forces
An adjustable force is a special Template Builder user-defined element (UDE). You can use adjustable forces
for a variety of conditions, to satisfy static parameters in your model. For example, if you want to set the
length of a rod to be a specific length during static analysis, the adjustable force will vary until the desired end
condition is satisfied.
148 Adams Car
Wheels, Adjustable forces and Gears
In Adams Car for example, a typical application is to use an adjustable force to set toe, camber and caster
values during a static suspension analysis. You might use two parts to define the tie rod and attach them by a
translational joint. You would then apply an adjustable force between the two parts to set toe values.
When the vehicle reaches static equilibrium without the use of adjustable forces, the toe, camber and caster
alignments might not be the ones that you want. You use adjustable forces to define toe, camber and caster
angles at static equilibrium position.
Adjustable forces act between two appropriate parts and perform a series of adjustments during static
equilibrium to minimize the error between the current computed toe/camber/caster angle and the desired
toe/camber/caster.
You might, for example, use two parts for the tie rod, constrain them using a translational joint, and then
apply an adjustable force between the two parts to set static toe angle. The current formulation creates a
single-component force that acts between the two parts. The force function uses stiffness and damping values
that you can set. The user-defined force uses a differential equation to minimize the error between desired
and computed angles.
The _double_wishbone_torsion template distributed in the shared car database contains an example of an
adjustable force.
If more than one adjustable force is defined in a model, you must use the pattern statement within the
adjustable force definition. The pattern statement defines the order in which adjustable forces are active. The
following table defines four adjustable forces.
In Pattern 1, three separate static analyses would be run. In the first analysis, the toe adjustable forces would
be active. During the second analysis, the camber adjustable forces would be active. During the third analysis,
the caster adjustable forces would be active.
Working with Components 149
Wheels, Adjustable forces and Gears
In Pattern 2, six separate static analyses would be run and the same order as in Pattern 1 would be repeated.
Because the camber is directly affected by the toe and caster change and vice versa so it is often desirable to
build up patterns such that you can find a static solution by running a number of separate static analysis.
Pattern 3 is an example of nine separate static analyses.
Once the static analysis has been run, one of two things will happen depending on whether the lock with
motion was set for the adjustable force. For example, in Adams Car an adjustable force might be created
between the tie rod inner and tie rod outer parts. If the adjustable force is locked with motion, then after the
statics is complete, Adams Car will create a fixed joint between the two tie rod parts, fixing the displacement
between these parts for subsequent dynamic analyses. But if the adjustable force is not locked, then the same
force between the tie rod parts at the end of the static analysis will be maintained during subsequent dynamic
analyses.
Gears
We provide two constraint-based gear options within the Template Builder:
Differential gear - The differential gear applies a reduction ratio between an input joint and the
symmetric output joint pair. The joint can be either revolute or cylindrical. The motion direction
can be inverted between the input and output joints and a toggle exists to switch between the two
different modes, allowing the reduction ratio to always be positive.
The reduction ratio is based on the following equation:
input motion = reduction ratio * (output motion1- output motion2)/2
You can define the differential gear to be kinematically active, allowing the element to be turned on
or off depending on the type of analysis you are running: compliant or kinematic.
Reduction gear - The reduction gear applies a reduction ratio between the input and output joint.
Either joint type can be translational, revolute, or cylindrical. Additionally, the motion direction can
be inverted between the input and output joints and a toggle exists to switch between the two
different modes, allowing the reduction ratio to always be positive.
When you enter a cylindrical joint in the input or output Joint text box, an additional text box
becomes active. Because either the rotational or translational degree of freedom of the cylindrical joint
can be used, you must specify if the rotational or translational motion will be the output for the gear.
150 Adams Car
Actuators
Actuators
We provide several actuator options with the Template Builder. An actuator lets you define an element that
can apply a force or motion function to a collection of modeling components. For example, you might want
to create a motion on a valvetrain system, or steer a vehicle around a corner. These components include joints
and parts but are not limited only to these.
Learn more about actuators:
About Actuators
Joint-Force Actuators
Joint-Motion Actuators
Point-Force Actuators
Point-Torque Actuators
Variable Actuators
Set Function
Set Activity
About Actuators
When used with appropriate feedback channels, actuators provide a very powerful method to control your
system.
Actuators differ from adjustable forces due to their behavior during dynamic analyses, with actuators
remaining active, whereas adjustable forces are either locked in place or replaced by a fixed joint.
If you create actuators as a symmetrical pair, then you can define separate left and right functions. You can
use the Function Builder to define functions.
Each actuator can have an application area and an identifier. The application area provides information about
the intended purpose of the actuator. The identifier should be used to describe the actuator instance for this
application area. A typical example would be:
Application area = steering
Identifier = steering_wheel_angle (e.g. for a motion type
actuator)
Working with Components 151
Actuators
These two additional parameters support a more dynamic use of actuators. For example, to allow de-
/activation and function assignment on the assembly level by adding additional means for browsing and
filtering. Note that they are currently not required by your template-based product.
You can define limits for each actuator in the same way that you would define limits in a test laboratory to
prevent damage caused by excessive actuator force or travel. Although you can define limits for force,
displacement, velocity, and acceleration, it is not required that you do so.
You can define the activity of the actuator as either active or not active. You can define the activity either from
the dialog box or from the menu option Set Activity located under the Actuators menu. Learn about defining
the activity.
Joint-Force Actuators
A joint-force actuator defines either a translational or rotational Single-Component Force acting between two
parts that a user-defined joint connects. You can select three types of joints:
Revolute joint: Selecting a revolute joint causes the Template Builder to automatically switch to
rotational and disable the Type of Freedom option. The single-component force will be a rotational
force acting between the two bodies that the revolute joint connects.
Translational joint: Selecting a translational joint causes the Template Builder to automatically
switch to translational and disable the Type of Freedom option. The single-component force will be
a translational force acting between the two bodies that the translation joint connects.
Cylindrical joint: Selecting a cylindrical joint makes an additional text box active. Because either the
rotational or translational degree of freedom of the cylindrical joint can be used, you must specify if
the rotational or translational force will be used. This allows you to decide between the creation of a
torque or a force, based on the selection of either the rotational or translational type of freedom.
Learn more about actuators, such as creating symmetrical pairs, using application area and identifier attributes,
and defining limits.
Point-Force Actuators
A point-force actuator defines a translational single-component force acting between the two parts that I Part
and J Part parameters specify. Three different types of force orientation are supported:
Line of Sight: The action-reaction force will act along the line of sight between the I and J markers.
You define the direction of the force by selecting the two points of force application, which can be
either hardpoint or construction frame locations.
152 Adams Car
Actuators
Moving with Body: The action-only force will act on the I part, and the orientation of the force will
depend on the motion of the J part. You may use the same body for both the I and J part. You define
the initial location and orientation of the force by selecting any of the standard Location Dependency
and Orientation Dependency options.
Space Fixed: The action-only force will act on the I part and the orientation will remain fixed. You
define the initial location and orientation of the force by selecting any of the standard Location
Dependency and Orientation Dependency options.
Learn more about actuators, such as creating symmetrical pairs, using application area and identifier attributes,
and defining limits.
Joint-Motion Actuators
A joint-motion actuator defines either a translational or rotational motion acting between two parts that a
user-defined joint connects. You can select three types of joints:
Revolute joint: Selecting a revolute joint causes the Template Builder to automatically switch to
rotational and disable the Type of Freedom option. The motion will be a rotational motion acting
between the two bodies that the revolute joint connects.
Translational joint: Selecting a translational joint causes the Template Builder to automatically
switch to translational and disable the Type of Freedom option. The motion will be a translational
motion acting between the two bodies that the translational joint connects.
Cylindrical joint: Selecting a cylindrical joint makes an additional text box active. Because either the
rotational or translational degree of freedom of the cylindrical joint can be used, you must specify if
the rotational or translational motion will be used. This allows you to decide between the creation of
a rotational or a translational motion based on selection of either the rotational or translational type
of freedom.
Learn more about actuators, such as creating symmetrical pairs, using application area and identifier attributes,
and defining limits.
Point-Torque Actuators
A point-torque actuator defines an action-reaction or action-only rotational single-component torque acting
between the two parts that the I Part and J Part parameters specify. You define the direction of the resulting
torque within the dialog box. Many of the parametric functions discussed in Construction Frames are available
to define the position and orientation of the resulting actuator.
If you define the actuator as action only, then the J Part text box is disabled and no reaction is exerted.
Learn more about actuators, such as creating symmetrical pairs, using application area and identifier attributes,
and defining limits.
Variable Actuators
A variable actuator is a user-defined element consisting of a data element variable and a series of additional
elements, such as strings and arrays. A variable actuator can be particularly useful where either parts or joints
cannot be referenced. An example of a variable actuator is the velocity of a vehicle: the function could define
a changing velocity which is then referenced by several other modeling components.
Learn more about actuators, such as creating symmetrical pairs, using application area and identifier attributes,
and defining limits.
Set Function
You can use the set function menu item to modify or replace the function that you defined.
You can use the Function Builder to define functions.
Set Activity
You can use the set activity menu option to set the actuator to be either active or not active. The not active
option is particularly useful when actuator elements are not required.
Anti-Roll Bar
Anti-Roll bars connect the left and right suspension systems and are used to increase the roll stiffness, which
reduces chassis roll angle.
Anti-Roll bars will be modeled using three different methods:
Simple - Two rigid parts are connected via a revolute joint and torsional spring. The simple method
is fast and efficient when the profile can be represented as a straight line.
Beam - Series of rigid bodies connected by beam forces. The beam element model is a realistic
representation of the physical system so the model does not need to be adjusted to get the correct roll
rate.
FE Part - FE part is used to create anti-roll bar. FE part of type single can be used to represent the
anti-roll bar.
The beam and FE Part methods are especially advantageous when modelling anti-roll bars with more complex
geometric shapes. Users may choose these options when greater fidelity is desired. The simple anti-roll bar
can be used when detailed geometry is not available or when trying to minimize CPU time.
Note: If continuous option is not selected during creation of the anti-roll bar, then in the case of
simple method no revolute joint or torsional spring is created. For beam method, the
central part will be split into left and right parts and there will be no beam force between
them. Use this method if you plan to connect your anti-roll bar parts with other
forces/constraints. For example, an active anti-roll bar design would need additional
forces/constraints acting on the left and right anti-roll bar parts.
Continuous option is not supported for FE Part method. Creating left/right symmetric FE
parts will create two separate FE Parts with no connection between them.
Single type anti-roll bar creates a continuous profile in case of beam and FE Part method.
Table/Location
A location table can be used to define the profile of the anti-roll bar. You can directly enter the locations into
the table, without the need to manually create hardpoints or construction frames to define the profile of anti-
156 Adams Car
Anti-Roll Bar
roll bar. If desired (for example, connection points), users can specify a new or existing hardpoint or
construction frame from table itself. Some of the key features of the table are demonstrated below.
Create Hardpoint: Hardpoint can be created two ways, as shown below.
The location from the corresponding row gets auto populated in the hardpoint creation dialog box. After
creation of a new hardpoint, it gets referenced in the coordinate reference column cell.
Insert rows: This will insert rows equal to the selected rows before the top selected row.
Append rows: This will insert rows equal to the selected rows after the bottom selected row.
Delete rows: This will delete the selected rows.
Use reference: You can refer to a hardpoint or construction frame by picking, guessing or browsing.
Working with Components 157
Condition Sensors
Modify (after a coordinated reference has been selected): Modify the referenced hardpoint or
construction frame.
Clear Reference (after a coordinated reference has been selected): Remove the reference to a
hardpoint or construction frame, without clearing the location values.
Outline
You can use an existing outline to specify the anti-roll bar centerline. For left/right symmetry type with
continuous option selected, the Y co-ordinate of the last point of the outline should be set to zero.
B-Spline
You can use an existing B-Spline to specify the anti-roll bar centerline. For left/right type with continuous
option selected, the Y co-ordinate of the last point of the B-Spline should be set to zero.
Condition Sensors
A condition sensor is a user-defined element that consists of a data element array and strings. It references an
existing variable class element (data element variable or measure solver computed), which is then tied to the
label and unit strings by the array. The array also encapsulates a request (for plotting convenience) and a units
conversion factor.
In essence, a condition sensor represents a relationship between a measurable solver quantity (the variable
class object) and a string label identifier that can be used in an event file (.xml) to define a condition for
Adams Car full-vehicle analyses.
Then, you could use this new condition sensor with the following line in your driver control file:
(END_CONDITIONS)
{measure test value allowed_error filter_time delay_time group}
'RADIUS' '|<' 20000.0 500.0 0.0 0.0
Feedback Channels
A feedback channel is a special user-defined element that contains a series of entities such as Adams Solver
measures and Adams View variables. Creating a feedback channel effectively corresponds to creating a
measure (Adams Solver variable). It is then possible to display the measure. For information on creating,
displaying, and managing strip charts based on measures, see the Adams View online help.
Feedback channels are used in the __MDI_SUSPENSION_TESTRIG for the controller. Your template-
based product creates two channels:
Raw_channel - Controls an absolute value.
Offset_channel - Controls desired inputs for a deviation.
You can create feedback channels either as a symmetrical pair or individually.
Each feedback channel has an application area and a unique identifier. The application area provides
information about the intended purpose of the feedback channel. For example, you may want to specify an
application area for engine velocity with the identifier specifying that the velocity will be at the crank. The
following are possible naming schemes:
Application area = engine_velocity
Identifier = engine_velocity_crank
If you create feedback channels as a symmetrical pair, then you can define separate left and right functions.
You can use the Function Builder to define functions.
You can offset the raw signal of the feedback channel by a desired real value. Entering a real number in this
text box causes the Template Builder to create an additional measure whose function is the same as the raw
channel, but it is offset by the specified value.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify User-Function Feedback
Channel.
Setting Function
You can use the set function menu to modify or replace the function that you defined. Note that you have
the option to specify a routine instead of a function.
Setting Offset
You can use the set offset menu to modify the offset applied to the raw measured channel. You can toggle the
activity of the offset on or off.
General Parameters
The general parameter is an Adams View variable whose real value is based on a value stored in a property file
data block. The property file must be in the neutral file format of your template-based product. When your
template-based product reads the property files, it updates the general parameter variable entity with the
appropriate real value stored in the property file. The data block and attribute names in the Create General
Parameter dialog box identify the data that is being accessed from the property file.
Adams Car uses a general parameter to model the piston area within a steering system. The steering system
includes a data block as follows:
$------------------------------------------------GENERAL_PARAMETER
[GENERAL_PARAMETER]
160 Adams Car
Data Elements, Requests and Variables
USAGE = 'rack_piston_area'
SYMMETRY = 'single'
PROPERTY_FILE =
'mdids://acar_shared/steering_assists.tbl/mdi_steer_assist.ste'
DATA_BLOCK = 'STEERING_ASSIST'
ATTRIBUTE_NAME = 'piston_area'
The parameter DATA_BLOCK refers to the sub-block (steering_assist) in which the parameter can be found.
The USAGE keyword describes the name of the attribute whose value must be located. The example below
shows the data for the piston_area referenced above:
$----------------------------------------------------STEERING_ASSIST
[STEERING_ASSIST]
piston_area <area> = 490.87
In this case, the general parameter variable (rack_piston_area) is set to 490.87.
If your template-based product does not find the specified data blocks in the selected property file, then it
issues a warning and the general parameter retains its default value (0.0).
General Splines
The general spline is a spline whose values are stored in a property file. The property file must be in the neutral
file format of your template-based product. This method of creating splines allows great flexibility: you can
define the splines in your model depending on the numerical content of the selected property files. When
your template-based product reads the property files, it updates the spline entities with the appropriate
referenced values stored in the property files. The data that is being accessed from the property file is
identified by the data block and data sub-block names in the Create General Spline dialog box. This allows
for a very quick and efficient way to modify your data, without manually modifying the data within an Adams
spline.
For example, you could store the boost curve characteristics of many different steering systems in separate
property files and then test different steering systems by referencing those property files. If your template-
based product does not find the specified data blocks in the selected property file, then it issues a warning
and the spline retains its default values.
You can also create a spline using the Build -> Data Element -> Spline menus.This spline differs from the
general spline in a couple of subtle different ways:
A data element spline stores its data within the template and does not reference an external data file
defined by the neutral file format (TeimOrbit). Therefore, simple changes in data require that you
manually manipulate this spline in the Template Builder.
Working with Components 161
Data Elements, Requests and Variables
Because you cannot make variations to the spline data within the standard user environment, you
cannot carry out what-if scenarios, which you can easily do with the general spline.
Adams Car uses a general spline to model steering characteristics. The steering subsystem includes a data
block as follows:
$----------------------------------------------------GENERAL_SPLINE
[GENERAL_SPLINE]
USAGE = 'steering_assist'
SYMMETRY = 'single'
TYPE = 'two_dimensional'
PROPERTY_FILE =
'mdids://acar_shared/steering_assists.tbl/mdi_steer_assist.ste'
CURVE_NAME = 'steering_assist'
(COMMENTS)
{comment_line}
'Example of a steering assist spline'
Adams The parameter steering_assist then refers to a sub-block of information within your property file.
When your product reads the property file, it populates the general spline with the data. The following shows
the data block for the steering_assist spline:
$----------------------------------------------------STEERING_ASSIST
[STEERING_ASSIST]
piston_area <area> = 490.87
(XY_DATA)
{tbar_deflection <angle> delta_pressure <MPa>}
-3.00 -4.00
-2.20 -4.00
-1.80 -3.60
-1.50 -3.00
-1.00 -2.00
-0.50 -1.00
0.00 0.00
0.50 1.00
1.00 2.00
1.50 3.00
1.80 3.60
2.20 4.00
3.00 4.00
This mechanism lets you generate and use both 2D and 3D splines with data stored within your database
structure by simply selecting the property file that stores the data and defining the data block.
An example a 3D spline data block is shown below:
$--------------------------------------------------------------------
WHEEL_LOADS
[WHEEL_LOADS]
(Z_DATA)
{coord_ref}
1.0
2.0
3.0
4.0
5.0
162 Adams Car
Data Elements, Requests and Variables
6.0
(XY_DATA)
{ time <sec> fx <newton> fy <newton> fz <newton> tx <Nmm> ty <Nmm> tz <Nmm> }
0.0000 0.00 0.00 0.00 0.00 0.0 0.00
0.0050 0.10 0.00 0.00 0.00 5.1 0.00
0.0100 0.20 0.00 0.00 0.00 10.5 0.00
0.0150 0.30 0.00 0.00 0.00 26.1 0.00
0.0200 1.00 0.00 0.00 0.00 42.1 0.00
0.0250 2.00 0.00 0.00 0.00 62.3 0.00
0.0300 3.00 0.00 0.00 0.00 90.7 0.00
0.0350 4.00 0.00 0.00 0.00 131.5 0.00
0.0400 5.00 0.00 0.00 0.00 608.4 0.00
0.0450 6.00 0.00 0.00 0.00 235.7 0.00
General Variables
The general variable is an Adams Solver (data element) variable whose real value is stored in a property file
data block. The property file must be in the neutral file format of your template-based product. When your
template-based product reads the property files, it updates the general variable entity with the appropriate
real value stored in the property file. The data block and attribute names in the Create General Variable dialog
box identify the data that is being accessed from the property file.
The mechanism described for the general parameter is equally applicable to the general variable.
If your template-based product does not find the specified data blocks in the selected property file, then it
issues a warning and the general variable function retains its default value (0.0).
Parameter Variables
You can use parameter variables to parameterize various elements and entities in your template-based
product. There are three types of parameter variables:
String - Does not contain units information, only a string value.
Integer - Does not contain units information, only an integer value.
Working with Components 163
Data Elements, Requests and Variables
Refer to Automating Your Work Using Macros to learn more about Adams View macros.
Design Options
You can use Design Options to change various topological options at the subsystem level. In prior versions
of Adams Car, you could change various topology by changing activity of a group. With this new
functionality, the framework for displaying design options is now available in the subsystem (template). You
can explicitly do the following:
Specify verbose names for the choices associated with integer values
Associate available parameter variable to the design options (integer parameter variable of type
single) so that it gets displayed in the design options dialog box in the Standard Interface.
3. Select OK.
Requests
You can use the Create Request dialog box to create a request statement and auxiliary variables used by your
template-based product. A request statement indicates a set of data you want Adams Solver to output in the
request file (.req). You can explicitly do the following:
Output a set of displacements, velocities, accelerations, or forces with respect to existing markers in
your template. Learn about markers.
Define the generic request function
Use the user-written subroutine REQSUB to define nonstandard output. For information on user-
written subroutines, see Adams Solver Subroutines.
For information on creating requests, see the Adams View online help.
Data Elements
Data elements include arrays, curves, splines, matrices, and strings.
For information on data elements, see the Adams View online help
System Elements
System elements let you create general differential and/or algebraic equations.
For information on system elements, see the Adams View online help
Working with Templates
Template Basics
Your template-based product's library includes a variety of templates. Templates define the topology, major
role, and default parameters for subsystems. This tab includes template information that is specific to your
product.
For general template information, as well as information about the other files that make up model
architecture, see Building Models.
correctly define part connectivity and exchange of information, because you cannot modify them at the
subsystem level.
When building templates, keep in mind the assembly process. That is, make sure that your templates can
communicate to each other and can communicate to the test rigs you specify. In Adams Car, communicators
define how models communicate.
Template Updates
The 2005 Driving Machine employs vehicle controllers developed by MSC Software, commonly known as
Machine Control, which replaces DriverLite functionality, and Adams SmartDriver. You must update Adams
Car 2003 powertrain and body templates to make the compatible with the enhanced Driving Machine in
Adams Car.
To better control speed and path, the 2005 Driving Machine needs additional information about the vehicle.
In particular, the speed controller uses a feed-forward function to ensure quick and accurate response.
However, this requires information about the available engine brake torque, engine drive torque, brake
torque, and aerodynamic drag. You supply this information by creating new output communicators in your
templates powertrain and body/aerodynamic templates. In addition, you must also enter vehicle parameter
data, such as overall steering ratio that is stored in the assembly file.
AKISPL(MAX(0,VARVAL(engine_speed)/ucf_angle_to_radians),1,gss_en
gine_torque)
AKISPL(MAX(0,VARVAL(engine_speed)/ucf_angle_to_radians),0,gss_en
gine_torque)
These functions interpolate the 3D engine map spline at the current engine speed for at full throttle (max
engine driving torque) and closed (0) throttle position (max engine braking torque).
The output communicators you create to output these Adams Solver VARIABLE are:
Name: engine_driving_torque
Matching Name: engine_maximum_driving_torque
Entity Type: solver_variable
Minor Role: inherit
Entity: engine_driving_torque
Name: engine_braking_torque
Matching Name: engine_maximum_braking_torque
Entity Type: solver_variable
Minor Role: inherit
Entity: engine_braking_torque
Engine Map
If your powertrain contains an engine map spline (torque vs. engine speed and throttle position), you can
output the spline to the Driving Machine via an output communicator to achieve better control of speed and
longitudinal acceleration. However, the engine map is optional. Define the engine_map output
communicator as:
Name: engine_map
Matching Name: engine_map
Entity Type: spline
Minor Role: inherit
Entity: gss_engine_torque
In the templates powertrain.tpl and powertrain_lt.tpl distributed in the shared car database, the engine_map
output communicators reference the gss_engine_torque spline entity. In your own templates, choose the
appropriate spline.
The engine speed is a solver variable outputting the engine speed in radians/s.
Engine speed
In the case of a closed-loop controller on the vehicle forward velocity, you must define an output
communicator in your powertrain template, as follows:
Name: engine_speed
166 Adams Car
Template Updates
In the resulting dialog box, you can set the following ratios that affect the lateral dynamics of the vehicle,
providing Adams SmartDriver information about the characteristics of the steering system. Bad values almost
certainly guarantee solver failure in closed-loop events or, if successful, the vehicle will most certainly be off
course.
Steering Ratio - Dimensionless ratio between the steering wheel angle and the road wheel angle. You
can obtain this value by running a steering analysis on the front suspension and steering assembly.
Steering Rack Ratio - Ratio (angle/length) between the steering hand wheel and the rack
displacement expressed in S.I. units. This parameter influences the response of the controller only
when driving by force/displacement.
The following parameters help Adams SmartDriver in predicting and calculating the brake signal:
Max. Front/Rear Brake Torque - Maximum torque, expressed in model units, representing the
torque generated for each front/rear brake in condition of maximum brake demand, also expressed
in model units.
• N.B. - Currently these torques are interpreted assuming the vehicle has 2 brakes (left and right)
in the front, and 2 more in the rear. As a workaround for vehicles with a different number of
brakes (for example, trucks with multiple braked axles) these torques can be scaled to compensate.
For example, for a tractor unit driven bobtail with two braked rear axles and load sensitive
metering of the rear brake pressure, if the four individual brakes on the rear axles would produce
torques of 1.6e7 Nmm each given full brake pressure and the load sensitive metering is expected
to reduce the brake pressure to an average of 45% of the available value during the bobtail
simulation, then the Max. Rear Brake Torque should be specified as 1.6e7*(4/2)*0.45 = 1.44e7.
Similarly, for a tractor trailer combination with a total of 8 brakes in the rear (4 on the 2 rear axles
of the tractor and 4 on two axles on the trailer), the Max. Rear Brake Torque should be increased
to four (8/2) times the nominal value.
Brake Bias - Front to rear dimensionless ratio. It can be computed as max_front_brake_torque /
(max_front_brake_torque + max_rear_brake_torque).
These parameters are saved to the assembly file, as well as to the test rig in session.
Creating attachments - Finally, you create the attachments, such as joints and bushings, and
parameters which tell Adams Car how the parts react in relation to one another. You can define
attachments for the compliant and kinematic analysis modes. The compliant mode uses bushings,
while the kinematic mode uses joints.
Before you begin to build a template, you must decide what elements are most appropriate for your model.
You must also decide which geometries seem most applicable to each part or whether you want any geometry
at all. Once you’ve decided, you create a template and create the basic topology for it.
acar_shared database
Disc-Brake System
Overview
The disc-brake system template represents a device that applies resistance to the motion of a vehicle.
Template name
_brake_system_4Wdisk
Working with Templates 169
Disc-Brake System
Major role
brake_system
Application
Full-vehicle Analysis to simulate the effect of braking on the dynamics of the vehicle.
Description
The disc-brake system template represents a simple model of a brake system. It applies a rotational torque
between the caliper and the rotor.
Files referenced
None.
Topology
The caliper part is mounted to the suspension upright, while the rotor is mounted to the wheel. A rotational
SFORCE is applied between the two parts.
Parameters
The toe and camber values that the suspension subsystem publishes define the spin axis orientation. In
addition, the braking torque is expressed as a function of a number of parameters.
The following table lists the parameters in the template.
Limitations
The disc-brake template is a simple model of a brake system. It does not model the complex interaction
between the rotor and caliper.
Communicators
Mount parts provide the connectivity between the template and suspension subsystems. Input Communicators
receive information about the toe and camber suspension orientation and the wheel-center location. Input to
the brake system is brake demand.
The following table lists the communicators in the template.
Notes: The torque on the rotor depends on a number of parameters. The front right torque function
is:
T = 2 x PistonArea x BrakeLinePressure x µ x
EffectivePistonRadius x STEP
where:
• BrakeBias defines the front and rear proportioning of the brake line pressure. Note
that although the term is constant, in reality, simple hydraulic systems allow
dynamic front and rear proportioning of the brake pressure depending on a
number of factors, including longitudinal slip angle of the tires and dynamic load
transfer.
• BrakeDemand is the force on the pedal (N) as it is output from the analysis.
• 0.1 is a conversion factor that converts into pressure the force applied on the pedal.
STEP is the function of the rotation of the rotor to wheel and suspension upright
markers. The function prevents backward spinning of the wheels. STEP is a simple
function that measures the WZ rotation of the marker on the rotor with respect to the
marker on the upright and reverses the sign of the applied torque if the wheel is
spinning backward.
172 Adams Car
Double-Wishbone Suspension
Double-Wishbone Suspension
Overview
A double-wishbone suspension is one of the most common suspension designs. It uses two lateral control
arms to hold the wheel carrier and control its movements.
Template name
_double_wishbone
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 173
Double-Wishbone Suspension
Description
The double-wishbone template represents the most common design for doublewishbone suspensions. You
can use the template as a front steerable suspension or as a rear non-steerable suspension.
You can set subsystems based on this template to kinematic or compliant mode. In kinematic mode, Adams
Car replaces the bushings that connect the control arms to the body mount part with a corresponding purely
kinematic constraint. Adams Car also does this for the top mount and lower strut mount.
You can deactivate the subframe part, as well as the halfshafts. A spring acts between the upper mount part
and the lower strut. A bumpstop acts between the upper and lower strut parts.
The tierod parts are split to support toe adjusters; the lower control arms have a lateral sliding extension to
support camber adjusters.
Files referenced
Bushings, springs, dampers, and bumpstops property files
Topology
The lower wishbone connects to a subframe or to the mount if you've deactivated the subframe. The upper
wishbone connects to the body mount part. A spherical joint constrains the upright part to the upper and
lower arms.
A spherical joint also connects the tie rods to the uprights. Tie rods attach to mount parts through convel
joints. Convel joints also connect the tripots to the drive shafts. A static rotation control actuator locks the
rotational degree of freedom of the hub during quasi-static analyses.
Parameters
Toe and camber variables define wheel spin axis, spindle part, and spindle geometry. The following table lists
the parameters in the template.
Communicators
Mount parts provide connectivity from the template to body subsystems and the differential. Output
Communicators publish toe, camber, steer axis, and wheel-center location information to the appropriate
subsystems and the test rig. The following table lists the input and output communicators.
Note: The integer parameter variables allow you to activate and deactivate the subframe part, the
driveshafts and the Hub Compliance. The kinematic flag variable toggles between kinematic
and compliant mode.
Template name
_double_wishbone_flex
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Description
Flexible bodies replace the left and right rigid lower control arms.
Topology
In addition to the general topology described for the Double-Wishbone Suspension, this template uses interface
parts to connect the flexible bodies to the rest of the suspension. Node IDs define the location of interface
parts.
Template name
_ISO_road_course
Major role
Environment
Application
With the optional Adams Driver module
Description
The ISO road course template consists of shell elements and frustums, and represents a closed circuit with an
ISO lane-change section.
Working with Templates 179
ISO Road Course
Files referenced
Geometry elements (shells) reference shell files stored in the Adams Car shared database in the
shell_graphics.tbl directory. The shell files are Iso_road_inr.shl, Iso_road_otr.shl, and Iso_road_c.shl.
Topology
All the graphic elements are created on the ground part.
Parameters
Contains no parametric information.
Communicators
Contains no communicators.
Note: The corresponding Adams Driver representation of this course is available as a trace on the x-
y plane and lane width in the driver_roads.tbl directory. The file is called
ISO_road_course.drd. You can use the file to run full-vehicle analyses with Adams Driver.
Including the ISO road course template in your full-vehicle assembly adds a graphical
representation of the circuit.
180 Adams Car
Track System
Track System
Overview
The track template represents a closed-course racing circuit.
Template name
_mdi_track
Major role
Environment
Application
Adams SmartDriver analysis.
Description
The track template consists of geometry elements representing a closed circuit.
Working with Templates 181
Track System
Files referenced
The road geometry references a shell file stored in the Adams Car shared database in the shell_graphics.tbl
directory. The shell file is mdi_track.shl.
Topology
All the graphic elements are created on the ground part.
Parameters
Contains no parametric information.
Communicators
Contains no communicators.
Note: The corresponding Adams SmartDriver representation of this course is available as a trace on
the x-y plane and lane width in the driver_roads.tbl directory. The file is called
MDI_track.drd. You can use the file to run full-vehicle analyses with Adams SmartDriver.
Including the track template in your full-vehicle assembly adds a graphical representation of
the circuit.
182 Adams Car
Leaf Spring
Leaf Spring
Overview
The leaf spring template consists only of the springs themselves, without any suspension members. The leaf
spring design provides advantages in packaging, and it is generally used for light trucks and heavy-duty
vehicles.
Template name
_example_leaf_spring
Major role
Leaf_spring
Application
Suspension and full-vehicle assemblies
Working with Templates 183
Leaf Spring
Description
The leaf spring template represents the most common spring design for solid axle suspensions. You can use
the template in conjunction with a front steerable suspension or with a rear non-steerable suspension.
Files referenced
Bushing property files and a leaf spring property file.
Topology
The leaf springs are modeled as a series of rigid bodies connected by beam elements. The leaf spring assembly
may consist of several individual leaves of unique profiles and thicknesses, with contact and friction between
leaves. Bushings connect the leaf springs and shackles to the body mount parts. The leaf spring seat is
connected to the axle during assembly by an output communicator.
The following table lists the topological information of the leaf spring system.
Communicators
Mount parts provide the connectivity from the template to the body subsystem. Output communicators
publish the leaf spring seat part to the appropriate suspension subsystem. The following table lists the input
and output communicators in the template.
Leafspring Suspension
Overview
The leaf spring suspension template consists of the leaf springs documented above, in addition to a steerable
solid axle suspension. The leaf spring design provides advantages in packaging, and it is generally used for
light trucks and heavy-duty vehicles.
Template name
_example_susp_leaf
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 185
Leafspring Suspension
Description
The leaf spring suspension template represents the most common spring design for solid axle suspensions.
This template includes steerable uprights, so you can use the template as a steerable front suspension. To
model a non-steerable suspension, you may turn off the steering components by setting the parameter
variable pvs_steerable_axle to 0.
Files referenced
Bushing, damper, and leaf spring property files.
Topology
The leaf springs are modeled as a series of rigid bodies connected by beam elements. The leaf spring assembly
may consist of several individual leaves of unique profiles and thicknesses, with contact and friction between
leaves. Bushings connect the leaf springs and shackles to the body mount parts. The leaf spring seat is
connected to the axle through a bushing or fixed joint (the option is set in the leaf spring property file).
The following table lists the topological information of the leaf spring suspension system.
Parameters
Toe and camber variables in the template define the wheel spin axis, spindle part, and spindle geometry. The
following table lists the parameters in the templates.
186 Adams Car
Leafspring Suspension
Communicators
Mount parts provide the connectivity from the template to the body subsystem. Output communicators
publish the suspension upright part and toe, camber, steering input, and wheel-center location information
to the appropriate subsystems and test rig.
The following table lists the input and output communicators in the template.
Note: The integer parameter variables allow you to activate and deactivate the Hub Compliance. The
kinematic flag variable toggles between kinematic and compliant mode.
Working with Templates 187
Loading System
Loading System
Overview
The loading system template provides an example model of loading objects for a passenger car.
Template name
_loading
Major role
loading
188 Adams Car
Loading System
Application
full-vehicle assemblies
Description
The loading template consists of
Loading Objects
Loading Configuration
Loading Objects
The loading object consists of a general part, a mount part, input communicator of type mount, and joint or
bushing(s). The loading objects are divided into two categories:
Cargo - general purpose loading object, such as luggage, with box graphics.
Occupant - allows you to specify h-point location, and includes representative graphics of human
occupants.
Loading Configuration
You can also create different sets of loading configurations using:
Loading Configuration
Files referenced
Bushing property files
Topology
All Cargo and Occupant loading parts connected to respective mount part through either fixed joint or
bushing.
Parameters
Contains no parametric information.
Communicators
Mount parts provide the connectivity from the loading object to parts in other templates. This template does
not contain any output communicators.
The following table lists the communicators in the template.
From minor
The communicator: Entity class: role: Matching names:
cis_loa_dressed_power_plant mount inherit loa_dressed_power_plant, body
cis_loa_driver mount inherit loa_driver, body
cis_loa_front_bumper_attachment mount inherit loa_front_bumper_attachment, body
Working with Templates 189
Loading System
From minor
The communicator: Entity class: role: Matching names:
cis_loa_front_passenger mount inherit loa_front_passenger, body
cis_loa_fuel_tank_full mount inherit loa_fuel_tank_full, body
cis_loa_fuel_tank_half mount inherit loa_fuel_tank_half, body
cis_loa_luggage_driver mount inherit loa_luggage_driver, body
cis_loa_luggage_front_passenger mount inherit loa_luggage_front_passenger, body
cis_loa_luggage_rear_passenger_left mount inherit loa_luggage_rear_passenger_left, body
cis_loa_luggage_rear_passenger_right mount inherit loa_luggage_rear_passenger_right, body
cis_loa_panoramic_roof mount inherit loa_panoramic_roof, body
cis_loa_rear_bumper_attachment mount inherit loa_rear_bumper_attachment, body
cis_loa_rear_passenger_left mount inherit loa_rear_passenger_left, body
cis_loa_rear_passenger_right mount inherit loa_rear_passenger_right, body
cis_loa_spare_wheel mount inherit loa_spare_wheel, body
190 Adams Car
MacPherson Suspension
MacPherson Suspension
Overview
The MacPherson suspension design in this template is similar to the SLA geometry, and is probably the most
often used suspension for passenger cars in the world. It uses a telescopic strut incorporating a damper
element. The upper end is fixed to the body and the lower end is located by linkages. The MacPherson design
provides advantages in packaging, and it is generally used for front-wheel-drive cars.
Template name
_macpherson
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 191
MacPherson Suspension
Description
The MacPherson suspension template represents the most common design for MacPherson suspensions. You
can use the template as a front steerable suspension or as a rear non-steerable suspension.
You can set the subsystems based on this template to kinematic or compliant mode. In kinematic mode,
Adams Car replaces the bushings with the corresponding kinematic constraints. The bushings connect the
control arm and the damper strut to the body mount parts. You can also activate or deactivate driveshafts.
A spring acts between the upper strut part and the lower strut. Bumpstops and reboundstops are also present.
Files referenced
Bushings, springs, dampers, bumpstops, and reboundstops property files
Topology
The MacPherson suspension template represents a standard design employing a one-piece lower control arm
(also known as A-arm) and a subframe. The upright to which the wheel mounts is located by the lower
control arm, the tie rod, and the strut. The lower control arm regulates the fore-aft and lateral motions of the
upright. The tie rod controls steering rotation of the upright, and the strut controls the vertical motion of the
upright and the side and front view rotations, as well. A static rotation control actuator locks the rotational
degree of freedom of the hub during quasi-static analyses.
The following table lists the topological information of the left side of the MacPherson suspension.
Parameters
Toe and camber variables in the template define the wheel spin axis, spindle part, and spindle geometry. The
following table lists the parameters in the templates.
Communicators
Mount parts provide the connectivity from the template to the body subsystems and differential. Output
communicators publish toe, camber, steer axis, and wheel-center location information to the appropriate
subsystems and test rig. The following table lists the input and output communicators in the template.
Note: The integer parameter variables let you activate and deactivate the driveshafts and the Hub
Compliance. The kinematic flag variable toggles between kinematic and compliant mode
replacing the joints with the corresponding elastic elements. For example, Adams Car replaces
the revolute joints that connect the lower control arms to the subframe with bushings
Multi-Link Suspension
Overview
The multi-link suspension represents an independent suspension model for use as a rear suspension.
Template name
_multi_link
194 Adams Car
Multi-Link Suspension
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Description
The multi-link suspension template represents a common rear independent suspension design. It includes a
subframe (represented by the outline graphics) that is connected to the upper arm, to the lateral links, and to
the track rod. The suspension is nonsteerable and intended to be used as a rear suspension only.
Files referenced
Springs, dampers, and bushings property files
Topology
Spherical joints, which are active in kinematic mode, connect the uprights to links. Bushings connect the
trailing links to the mount parts. Springs and dampers act between the trailing links and the body. A static
rotation control actuator locks the rotational degree of freedom of the hub during quasi-static analyses.
The following table provides a topological map of the template.
Parameters
Toe and camber variables in the template define the wheel spin axis, spindle part, and spindle geometry. The
following table lists the parameters in the templates.
Communicators
The following table lists the communicators in the template.
Note: The integer parameter variables let you activate and deactivate the subframe part, the
driveshafts and the Hub Compliance. The kinematic flag variable toggles between kinematic and
compliant mode.
Template name
_parallel_link_steering
Working with Templates 197
Parallel-Link Steering System
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
A recirculating ball steering gear transmits motion from the steering wheel to the pitman arm. The pitman
arm rotates to impart motion to the center link and idler arm. The translation of the center link pulls and
pushes the tie rods to steer the wheels.
Files referenced
Steering assist and torsion bar deflection property file. The default property file is mdi_steer_assis.ste, stored
in the steer_assist.tbl directory of the shared Adams Car database.
Topology
The recirculating ball steering gear consists of three major parts:
Ball screw
Rack
Sector
The steering wheel rotates the steering input shaft. A torsion bar attaches the steering input shaft to a ball
screw. The ball screw imparts translational motion to the steering gear through a coupler. The steering gear,
in turns, rotates the sector through a coupler, which is connected directly to the pitman arm shaft.
The following table maps the topology of the template.
Parameters
A parameter variable switches between kinematic and compliant mode, effectively defining the status of the
ball screw input shaft lock reduction gear.
Communicators
The following table lists the communicators in the template.
Note: The parallel-link steering template contains general spline elements. The general spline
element gss_torsion_bar spline provides torque as a function of the angular deflection of the
input shaft relative to the ball screw. A switch part is also present. It allows you to explore two
different topological solutions. You can rigidly connect the steering gear to the body or to the
suspension_subframe part.
Template name
_pitman_arm
Major role
Steering
200 Adams Car
Pitman Arm Steering System
Application
Suspension and full-vehicle assemblies
Description
A recirculating ball steering gear transmits motion from the steering wheel to the pitman arm. The pitman
arm rotates to impart motion to the draglink. The draglink pulls and pushes the tie rod and steers the wheels.
Files referenced
The point torque actuator references the torsion_bar datablock in the mdi_steering.ste property file, stored
in the Adams Car shared database, under the steer_assists.tbl table or directory.
Topology
The recirculating ball steering gear consists of three major parts:
Ball screw
Rack
Sector
The steering wheel rotates the steering input shaft. The steering input shaft attaches to the ball screw through
a torsion bar, currently locked by a coupler. The ball screw imparts translational motion to the rack, through
a coupler. The rack, in turns, rotates the sector through a coupler.
The sector is connected directly to the pitman arm shaft. The pitman arm drags the draglink, which is directly
connected to the right wheel, and pulls the tie rod, connected to the left wheel. Spherical joints connect the
draglink and tie rod.
The following table maps the topology of the template.
Parameters
A parameter variable switches between kinematic and compliant mode, effectively defining the status of the
ball screw input shaft lock reduction gear.
Communicators
The following table lists the Communicators in the template.
Note: The pitman arm steering system template does not interface with any of the Adams Car shared
database suspension templates because those suspension templates have tie rods. To correctly
assemble the pitman arm steering to a suspension subsystem, you must remove the tie rods
from the suspension. The draglink and the tie rod have to be mounted to the left and right
upright parts.
202 Adams Car
Powertrain System
Powertrain System
Overview
The Adams Car shared database includes a powertrain template, powertrain.tpl. The template models an
engine, transmission, and a limited-slip differential that may be used for a front engine, front-wheel-drive
vehicle, or a rear engine, rear-wheel-drive vehicle. Supplementary the differential can be used as central
differential in a 4-wheel-drive vehicle, providing the torque at the differential outputs of the powertrain
template as input to the front and rear differentials in the all wheel drive model.
Currently the template provides 4 different powertrain models which the user can switch between after the
assembly is loaded using the menu “Simulate, Full-Vehicle Analysis, Vehicle Set-Up, Set Powertrain
Parameters”. Alternatively the powertrain type can be switched through the design variable
phs_powertrain_type:
Manual: default powertrain type with engine, clutch, manual transmission, differential
Simple: simplified engine model, no transmission model, differential
Automatic: engine, torque converter, automatic transmission, differential
Robotized: simplified engine model, simplified robotized clutch, transmission, differential
Figure 13 Powertrain
Working with Templates 203
Powertrain System
Template name
_powertrain
Major role
Powertrain
Application
Full-vehicle assemblies
Description – Manual
In this configuration, the powertrain system template represents an engine, clutch, manual transmission, and
differential:
Engine model - Consists of a single part (ges_engine) representing the total mass and inertia of the
engine block, clutch housing, and transmission. A general spline element (gss_engine_torque)
represents the engine's steady-state torque versus engine speed and throttle position. Before any
analysis, gss_engine_torque is updated by reading the engine torque versus engine speed and throttle
from a powertrain property file. For example, mdids://acar_shared/powertrains.tbl/V8_240HP_400Nm.pwr.
See Torque versus Engine Speed and Throttle Position for this property file.
To allow for larger integration time steps during simulation, the engine crankshaft is not included as
a part in the templates. Instead of a rotating crankshaft part, a differential equation (engine_omega)
integrates the engine crankshaft's rotational acceleration (Adams Solver requires one integration time
step for each 60 degrees of part rotation). The engine crankshaft's rotational acceleration is the
difference between the engine torque and the clutch torque divided by the engine rotational inertia.
Clutch model - The clutch torque is modulated by the clutch demand, which ranges in value from
zero (0) to one (1):
• A clutch demand of zero means that the driver's foot is off the clutch pedal and the clutch is
closed.
• A clutch demand of one means that the driver has pushed the clutch pedal completely to the floor
and the clutch is open.
You can set the values of clutch demand, for which the clutch is completely closed or open, using the
parameter variables pvs_clutch_closed and pvs_clutch_open.
The clutch develops torque only when it is at least partially closed and there is some slip
displacement or slip speed between the engine crankshaft and the transmission input shaft. When
the clutch is closed, it acts like a torsional spring-damper, except that the maximum clutch torque
developed is limited by the clutch capacity, which you can modify (pvs_clutch_capacity).
You also set the clutch's torsional stiffness and damping. When the clutch is partially closed, the
clutch stiffness and damping, as well as the clutch capacity (torque), are scaled by the clutch
demand.
204 Adams Car
Powertrain System
The clutch slip speed is the difference between the engine crankshaft and the transmission input
shaft rotational speeds. When the clutch is closed, the clutch slip displacement is the integral of the
clutch slip speed. When the clutch is open, the clutch slip displacement decays to zero with a time
constant given by pvs_clutch_tau.
Transmission model - The transmission model is simple: it applies the gear ratio selected by the gear
demand, and has no rotating inertia. The clutch torque is multiplied by the selected gear ratio and
applied to the differential input shaft. The differential input shaft speed is likewise multiplied by the
same ratio to determine the transmission input shaft speed. You can set the number of gears and the
ratio for each gear:
• A gear number of zero (0) represents neutral.
• A gear number of minus one (-1) represents reverse.
Differential model - The differential model has rotating left and right output shaft parts that
connect to half-shafts in suspension subsystems. The differential input shaft speed is the average of
the left and right output shaft speeds multiplied by the final drive ratio you enter. Likewise, the
transmission output torque is multiplied by the final drive ratio and then split equally between the
two output shafts. A reaction torque is applied about the longitudinal axis to the ges_engine part.
The differential model includes a limited slip torque that acts between the left and right differential
output shafts. The torque depends on the difference between the output shaft speeds. The limited
slip torque-speed characteristic is read from a property file in the differentials.tbl.
Description – Simple
In this configuration, the powertrain system template has a simple engine model and differential:
Engine model - The engine model is mathematically defined as first order lag delay with specified
time constant applied over a simplified torque/speed characteristic. The torque provided is
proportional to the throttle command between Tmin and Tmax according to the following plot:
Working with Templates 205
Powertrain System
The user needs to provide the value of Tmax, Tmin and Pmax. This model approximates the ideal case
of a CVT powertrain with continuous variable transmission ratio. A transmission model is not
necessary in this powertrain configuration. The engine speed is the same as the differential input
speed.
Differential model - The differential model is the same model as the Manual powertrain.
Description – Automatic
In this configuration, the powertrain system template represents an engine, torque converter, automatic
transmission, and differential:
Engine model - The engine model is the same model as the Manual powertrain.
Torque converter - Note that the torque converter property file uses the same conventions for the
capacity factor and torque ratio curves that are used for Adams Driveline. It is possible to use the
same torque converter property file with the simplified model and with Driveline (refer example
property file). The simplified model uses only the capacity factor and torque ratio curves from the
property file, other data is not used.
The simplified model does mimic a "lock-up" condition only during "straight" or "skidpad"
equilibrium solutions for stability reasons (and an ensuing dynamic solution will show a transient
response as the torque converter begins to slip) and does not use any of the lock-up clutch data from
the property file.
Transmission model - The transmission model is similar to the Manual case with no rotating
inertia. A built-in controller is provided to select the proper gear depending on the input speed and
the shift points table specified in the interface. The model shifts from the old to the new gear ratio
when the input speed reaches the corresponding shift point. The transition is obtained using a step
function over the specified shift cycle time. The torque output from the transmission therefore is
continuous and simulates the engagement/disengagement of clutches in a real automatic gearbox.
The controller has intelligent shift logic depending on the throttle position from the driver. The
actual up shift point is interpolated between “Shift-Up” and “Shift-Up Sport” thresholds. Therefore
the actual shift points constantly vary depending on the driver demand, allowing for an economy
mode at lower throttle and sport mode at higher one.
Differential model - The differential model is the same model as the Manual powertrain.
Description – Robotized
In this configuration, the powertrain system template represents an engine, simplified robotized clutch,
automatic transmission, and differential:
Engine model - The engine model is a simplified version of the Manual powertrain. It uses a general
spline element (gss_engine_torque) to represent the engine's steady-state torque versus engine speed
and throttle position, but does not have rotating inertia for torque response. A first order lag delay is
applied over the nominal value of torque in the same fashion as Simple powertrain, however
Robotized model allows for a more detailed torque definition through the gss_engine_torque spline.
206 Adams Car
Powertrain System
Robotized clutch - Step functions are used to transition between gear ratios. This models works in
conjunction with the same intelligent controller of Automatic, providing the modulation of torque
and the engine speed control. The user can specify the cycle shift time in the interface. This model
provides a smoother shift than the manual transmission where the driver interrupts the torque
transmitted by completely disengaging the clutch. The controller works in Automatic mode, while
Manumatic mode will be supported in further releases.
Transmission model - The transmission model is the same as the Manual powertrain.
Differential model - The differential model is the same model as the Manual powertrain.
Files referenced
The file, V12_engine_map.pwr, stored in the powertrains.tbl directory, defines the engine map. The
differential references the MDI_viscous.dif property file, stored in the differentials.tbl directory. The torque
converter properties reference the mdi_0001.tcf property file, stored in the torque_converters.tbl directory.
The MDI_viscous.dif property file defines the slip torque-speed relationship as a two-dimensional spline.
Topology
The powertrain template contains very simple topological information because it is a functional
representation of the powertrain. The only general rigid parts, besides the engine body, are the diff outputs
and the revolute joints that connect the rigid bodies to the engine body.
Parameters
The following table lists the powertrain system template parameters.
The above list of parameters has been collected in dialog boxes for a better selection depending on the
powertrain type.
1. Manual Gear Shifting
• Engine model parameters:
4. Robotized Dual-Clutch
• Dual-Clutch model parameters:
216 Adams Car
Powertrain System
After setting up the transmission parameters in the Manual, Automatic and Robotized powertrain
types, you can optimize the selection of shift points for given engine map, final drive, tire radius by
reviewing the available transmission output power ("Power/Velocity Plot"):
218 Adams Car
Powertrain System
Communicators
Mount parts provide the connectivity from the template to the body subsystems. Output communicators
publish information, such as engine RPM and transmission spline. The following tables list the input and
output communicators in the powertrain system template.
Input Communicators
Output Communicators
Note: The solver_variable "analysis_type" indicates whether the analysis is steady-state or dynamic.
When the analysis_type is steady-state the engine torque map and transmission gear ratios are
ignored.
220 Adams Car
Quad-Link Axle Suspension
Template name
_quad_link_axle
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 221
Quad-Link Axle Suspension
Description
The quad-link axle suspension template represents a common design for solid axles suspensions. You can use
the template as a front steerable suspension or as rear nonsteerable suspension.
You can set subsystems based on this template to kinematic or compliant mode. In kinematic mode, Adams
Car replaces the bushings that connect the lower and upper links to the body mount part with the
corresponding purely kinematic constraints.
Files referenced
Bushing, spring, and damper property files
Topology
Spherical joints connect the upper and lower links to the solid axle. The draglink is attached to the bell crank.
The bell crank moves the tie rod, which steers the wheels. Revolute joints connect the uprights to the solid
axle. A joint force actuator locks the hub to the wheel carrier. The following table maps the topology of the
template.
Parameters
Toe and camber variables define wheel spin axis, spindle part, and spindle geometry. The following table lists
the parameters in the template.
222 Adams Car
Rack and Pinion Steering System
Communicators
Mount parts provide the connectivity from the template to body subsystems and steering. Output
communicators publish toe, camber, steer axis, and wheel center location information to the appropriate
subsystems and the test rig. The following table lists the input and output communicators.
Note: The integer parameter variables let you activate and deactivate the Hub Compliance. The
kinematic flag variable toggles between kinematic and compliant mode.
Template name
Template Description
_rack_pinion_steering basic model
_rack_pinion_steering_MachineryGear AMachinery rack & pinion with simplified gear force
_rack_pinion_steering_MachineryGear_3D AMachinery rack & pinion with 3D gear force
_rack_pinion_steering_MachineryMotor AMachinery motor supplies additional assist torque
Major role
Steering
Application
Suspension and full-vehicle assemblies
224 Adams Car
Rack and Pinion Steering System
Description
A series of hooke joints, which connect the three steering column shafts, transmit motion from the steering
wheel to the pinion. A revolute joint connects the lower column shaft to the rack housing. A bushing (torsion
bar) connects the shaft to the pinion. A revolute joint connects the pinion to the rack housing.
In kinematic mode, a reduction gear is active and connects the steering input shaft revolute joint to the pinion
revolute joint. The underlying Adams View entity (a coupler) is active only in kinematic mode. The
reduction gear (pinion to rack) converts pinion rotational motion to the rack translational motion. A
translational joint constrains the rack to the rack housing. An additional VFORCE provides the steering assist
force.
Files referenced
Property files, hydraulic_steering_assist.ste or electric_steering_assist.ste or torsion_bar.ste and
steering_compliance.ste are stored in the steer_assist.tbl of the acar_concept database. These defines the
steering hydraulic assist force, electric steering assist, torsion bar and steering compliance respectively.
Topology
The following table maps the topology of the template.
Parameters
A parameter variable switches between kinematic and compliant mode. You can set the activity of the steering
assist force through the hidden parameter variable, steering_assist_active. A series of parameters define the
maximum values of angle, rack displacement, rack force, and steering-wheel torque.
Communicators
The following table lists the input and output communicators.
Note: The rack and pinion steering system template contains a general spline element to define the
assist pressure vs. torsion bar deflections.
The template also contains a switch part, which lets you explore two different topological
solutions: you can connect the steering rack housing to the body or to the suspension
subframe.
Template name
_driveline_fwd
Major role
Driveline
Application
Full-vehicle assemblies
Description
An actuator drives the front diff input, which acts through the differential to drive the diff outputs. Diff
outputs should be connected to the front wheels.
Files referenced
None.
Working with Templates 227
Rear Driveline System
Topology
The front driveline template consists of a differential housing which mounts to the powertrain, and diff
input/ouputs which mount to the housing via revolute joints. The differential is an open design rather than
a limited slip. The following table maps the topology of the template.
Parameters
The parameter variable drive_torque_bias_front is communicated to the driver testrig via output
communicator cos_drive_torque_bias_front.
Limitations
The front driveline template uses a number of rotating parts. If the driveline dynamics are not of interest to
you, then it is more efficient to apply direct drive torque to the wheels, because the rotating parts in the
template might slow the numerical integration during the Analysis.
Communicators
Output communicators of the type mount publish the left and right differential outputs to the suspension
templates and subsystems. The following table lists the input and output communicators.
Template name
_driveline_rwd
Major role
Driveline
Application
Full-vehicle assemblies
Description
The rotational motion of the front propshaft is transmitted to the rear shaft and from there to the diff
outputs. Diff outputs should be connected to the driving wheels.
Files referenced
Bushing property files
Working with Templates 229
Rear Driveline System
Topology
The rear driveline template consists of a two-piece propshaft, a slip yoke, and a differential. For convenience,
the template includes the propshaft input part for applying motion or torque. The propshaft input part
attaches to the powertrain through a revolute joint. A bearing supports it at its aft.
The front propshaft attaches to the support bearing through an inline joint primitive that prevents translation
of the front propshaft perpendicular to the propshaft's spin axis.
Hooke joints transmit the motion to the slip yoke part. The slip yoke supports and transmits torque to the
rear propshaft through a translational joint. The differential input shaft receives torque from the rear
propshaft through a hooke joint.
The differential is an open design rather than a limited slip. Four bushings mount it to the body. Setting
kinematic mode fixes the differential housing to the body and deactivates the bushings. The following table
maps the topology of the template.
Parameters
The parameter variable final_drive_ratio defines the pinion to ring ratio.
230 Adams Car
Rigid Chassis
Limitations
The rear driveline template uses a number of rotating parts. If the driveline dynamics are not of interest to
you, then it is more efficient to apply direct drive torque to the wheels, because the rotating parts in the
template might slow the numerical integration during the Analysis.
Communicators
Output communicators of the type mount publish the left and right differential output shafts to the suspension
templates and subsystems. The following table lists the input and output communicators.
Rigid Chassis
Overview
The rigid chassis template represents the base frame of a vehicle.
Template name
_rigid_chassis
Major role
body
Application
Suspensions, tires, and steering systems in full-vehicle assemblies
Description
A single rigid body part models the chassis, and a trim part mass is used to adjust the weight distribution.
Files referenced
Shell elements create the chassis graphic. All the shell files are stored in the Adams Car shared database, in the
shell_graphics.tbl directory.
Topology
The ges_chassis part is unconstrained, and the ges_trim_mass part fixed to ges_chassis.
Parameters
The rigid chassis template defines a series of parameter variables, most of which are used to compute the
aerodynamic forces acting on the body. The following table lists the parameters in the template. For a detailed
description of the force function, see Force Function Description.
The pitching moment acts to transfer weight between the front and rear axles. It arises because the drag does
not act at the ground plane. Therefore, it accounts for the elevation of the drag force.
Limitations
The rigid body modeling of the chassis does not account for torsional stiffnesses and other effects. You could
create a more accurate representation of a chassis frame by connecting the multiple rigid bodies though spring
dampers to take into account torsional stiffnesses and using modal flexibility.
Communicators
The rigid chassis template defines a series of mount part communicators. The assembly process matches them
with the corresponding output communicators created in suspensions, steering, and other subsystems. The
following table lists the communicators. Note that the output communicator tierod_to_steering (rear) allows
the tierod_to_steering mount parts in the rear suspension to connect to the chassis body.
Note: The rigid chassis light template (_rigid_chassis_lt) is exactly the same as the rigid chassis
template (_rigid_chassis), but without the shell graphic geometry.
234 Adams Car
Simple Anti-Roll Bar System
Template name
_antiroll_simple
Major role
Antiroll
Application
Suspension and full-vehicle analyses
Working with Templates 235
Simple Anti-Roll Bar System
Description
The anti-roll bar system template provides a simple model of anti-roll bar (also known as stabilizer bar). It
consists of two bar halves connected by a torsional spring-damper component.
Files referenced
Bushing property files
Topology
A revolute joint connects the two bar halves of the anti-roll bar system. Bushings then attach the bar halves
to the body or to the suspension subframe. Drop links transmit the suspension motion to the bar ends. The
drop links attach to the suspension with spherical joints and to the bar ends with convel joints.
The following table maps the topology of the anti-roll bar system template.
Parameters
A parameter variable (pvs_torsional_stiffness) defines the torsional stiffness of the spring-damper component.
The following table lists the parameter, its value, and units.
Limitations
The anti-roll bar system template represents a simple approximation of a stabilizer bar. For more complex
solutions, you would need to create a more accurate representation of the bar through the discretization of
rigid bodies, nonlinear rods, or flexible bodies.
Communicators
Mount parts provide the connectivity to the suspension subsystems. An output communicator exports
information about the location of the ARB pick-up point.
The following table lists the communicators that the template uses.
236 Adams Car
Simple Anti-Roll Bar System
Notes: The spring-damper component applies a rotational action-reaction force between the two bar
halves. The following linear equation describes the torque applied at the i marker:
Ta = -C(da/dt) - Kt (a - ANGLE) + TORQUE
where:
C is the damping term (defaults to 0 in the template).
Kt is the torsional stiffness.
a is the angle between the bar halves.
ANGLE is the initial angular displacement.
TORQUE is the torsional preload. Torque applied on the j marker is equal and opposite to
the torque on the i marker.
Working with Templates 237
FE Part Anti-Roll Bar System
Template name
_antirollbar_FE_part
Major role
Antiroll
Application
Suspension and full-vehicle analyses
238 Adams Car
FE Part Anti-Roll Bar System
Description
This anti-roll bar system template provides a more advanced model of anti-roll bar (also known as stabilizer
bar). It consists of a single FE Part representing the bar itself, and rigid links that connect to the suspension.
The stiffness of the bar is calculated automatically based on the profile and the cross-section. The profile of
the bar can be modified by moving the hardpoints. The cross-section can be modified by editing the existing
section object (arb_solid) or creating a new one.
Files referenced
Bushing property files
Topology
Bushings attach the bar to the body or to the axle housing. Drop links transmit the suspension motion to the
bar ends. The drop links attach to the suspension with spherical joints and to the bar ends with convel joints.
The following table maps the topology of the anti-roll bar system template.
Communicators
Mount parts provide the connectivity to the suspension subsystems. An output communicator exports
information about the location of the ARB pick-up point.
The following table lists the communicators that the template uses.
Tire System
Overview
The tire system template provides three basic functions:
Supports vertical load.
Develops longitudinal forces for acceleration and braking.
Develops lateral forces for cornering.
Template name
_handling_tire
Major role
Wheel
Application
Full-vehicle analyses
240 Adams Car
Tire System
Description
The tire system template consists of wheel parts rigidly connected to mount parts. The tire contact patch
forces are transformed in forces and torques applied at the hub. A series of user-written subroutines perform
the force calculation depending on the tire property file that you selected. The contact type (string element)
and the road property file determine the road model. For additional information about using Adams Tire in
Adams Car, see the Adams Tire online help.
Files referenced
The tire system template references a tire property file for each wheel part. The default tire property file is
mdi_tire01.tir, stored the tires.tbl directory of the Adams Car shared database.
Topology
A fixed joint connects the wheel part to the spindle mount part.
Communicators
Mount parts provide connectivity to the suspension subsystems, and output communicators publish
information about tire forces and wheel orientation.
The following table lists the communicators in the tire system template.
Note: The _handling_tire template provides custom menu for making a selection out of the standard
tire output requests. The tire output request dialog box window called by Tools → Dialog box
→ Display, Acar → Custom → dbox_tir_req.
Working with Templates 241
Tire System
Note: When the template contains a group of tire geometry elements for the tire belt (naming:
wh[lr]_belt_graphics), this belt geometry will be visualized and attached to the belt part in case
a PAC2002 tire property file is used that is using the BELT_DYNAMICS option.
242 Adams Car
Torsion Bar Double-Wishbone Suspension
Template name
_double_wishbone_torsion
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Description
In the torsion bar double-wishbone suspension template, a torsion bar spring replaces the coil spring used in
the standard Double-Wishbone Suspension. The torsion bar consists of two bar halves connected by a rotational
SFORCE (joint torque actuator). The rotational SFORCE exerted between the two bar halves is a function
of a torsional stiffness and of the relative rotation along the torsion bar longitudinal axis.
Files referenced
Refer to the Double-Wishbone Suspension.
244 Adams Car
Torsion Bar Double-Wishbone Suspension
Topology
The torsion bar consists of two bar halves connected by a cylindrical joint and a joint torque actuator. The
first half is rigidly connected to the lower control arm, and the second half is fixed to the mount part and gets
rigidly connected to the chassis if you use the suspension in full-vehicle assemblies.
Parameters
The torsion bar double-wishbone suspension template includes additional parameter variables besides those
described in the Double-Wishbone Suspension. The variable defining the torsional stiffness defines the torsion
bar stiffness. Also, another parameter variable defines the torsional preload applied between the lower control
arm and the torsion bar.
The following table lists the additional parameters.
Communicators
Refer to the Double-Wishbone Suspension.
Note: The torsion bar double-wishbone suspension template includes a toe adjustment. It uses an
adjustable force Adams Car element to reach a desired toe angle at static equilibrium.
Working with Templates 245
Trailing Arm Suspension
Template name
_trailing_arm
Major role
Suspension
Application
Suspension and full-vehicle assemblies
246 Adams Car
Trailing Arm Suspension
Description
The trailing arm suspension template is a simple non-steerable suspension design. You can deactivate the
driveline simply by selecting inactive in the Toggle Driveline Activity dialog box. Note that it is possible to
define the spring concentric to the damper just by moving the spring upper- and lower-seat hardpoints.
Files referenced
Bushing, spring, damper, bumpstop, and reboundstop property files
Topology
Trailing arms to the left and right sides mount to a rigid subframe that in turns connects to the body mount
part through bushings. The arms alone locate the wheel centers. Springs and dampers act between the arms
and the body mount parts. A static rotation control actuator locks the rotational degree of freedom of the hub
during quasi-static analyses.
You can set the suspension to kinematic or compliant mode. Kinematic mode allows purely kinematic
connections between the upper strut parts, arms, subframe, and mount parts, while compliant mode replaces
the kinematic joints with their corresponding elastic elements.
The following table maps the topology of the template.
Parameters
The driveline offset variable defines the driveline geometry. Toe and camber variables define wheel spin axis,
spindle part, and spindle geometry.
Working with Templates 247
Trailing Arm Suspension
Communicators
Mount parts provide the connectivity from the template to the body subsystems. Output communicators
publish toe, camber, steer axis, and wheel-center location information to the appropriate subsystems and the
test rig. The following table lists the input and output communicators.
Note: The integer parameter variables let you activate and deactivate the Hub Compliance. The
kinematic flag variable toggles between kinematic and compliant mode.
248 Adams Car
Twist Beam Suspension
Template name
_twist_beam
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 249
Twist Beam Suspension
Description
The twist beam suspension template represents a common rear dependent suspension design. It does not
include a subframe. The suspension is non-steerable and intended to be used as a rear suspension only.
The twist beam is a flexible body generated using shell elements. Interface parts connect the flexible body to
the rest of the suspension.
You can toggle the suspension between kinematic and compliant modes. In addition, you can deactivate
driveshafts.
Files referenced
Springs, dampers, and bushings property files. Also, the flexible body references the file PonteV.mnf, stored
in the flex_bodies.tbl directory of the Adams Car shared database.
Topology
A static rotation control actuator locks the rotational degree of freedom of the hub during quasi-static
analyses.
The following table maps the topology of the twist beam suspension.
Parameters
In the twist beam suspension, toe and camber variables parameterize wheel spin axis, spindle part, and spindle
geometry. The following table lists the parameters in the template.
250 Adams Car
Twist Beam Suspension
Communicators
The following table lists the communicators in the template.
Note: The integer parameter variables let you activate and deactivate the driveshafts and the Hub
Compliance. The kinematic flag variable toggles between kinematic and compliant mode.
Working with Templates 251
Wheel Forces
Wheel Forces
Overview
The wheel forces template is intended to be used with a General Actuation Analysis. The wheel forces template
provides three forces and three moments to four wheel parts that you assemble with your full-vehicle model.
Template name
_wheel_forces
Major role
Wheel
Application
General Actuation analyses
Description
The wheel forces template consists of wheel parts that are actuated by user input functions. For additional
information about using this template, see the General Actuation Analysis feature examples.
252 Adams Car
Wheel Forces
Topology
Six wheel forces are applied to each wheel part. Fixed joints connect the wheel parts to each spindle mount
part. The vehicle body may be fixed or free depending on which communicators match during assembly.
Steering motion is applied to the steering wheel joint.
Communicators
Mount parts provide connectivity to the suspension, body, and steering subsystems.
The following table lists the communicators in the tire system template.
acar_concept database
Aarm_3link Suspension
Overview
Aarm_3link suspension template is a solid axle suspension with a single aarm link and the two longitudinal
links. This suspension can be used as a steerable suspension.
Template name
_aarm_3link
Major role
Suspension
Application
Suspension and full-vehicle assemblies
254 Adams Car
Aarm_3link Suspension
Description
The Aarm _3link suspension template has steerable solid axle with a single aarm link and two longitudinal
links. You can use the template as a steerable suspension.
This template has the following design options of driveline activity, hub compliance, panhard rod, steerable
axle, bump stopper and rebound stopper.
All bushes are modeled as connectors, this helps in changing connector from bush to joints and vice versa.
Files referenced
Bushings, springs, dampers, bumpstop and reboundstop property files.
Topology
The following tables maps the topology of the 3link suspension.
Parameters
The integer parameter variables allow you to activate and deactivate the various configuration options.
Working with Templates 255
Aarm_3link Suspension
1 = Yes
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
pvs_steerable_axle Integer No units 0 = Inactive,
1 = Active
pvs_number_of_bumpstops Integer No units 0 = None,
1 = One
pvs_number_of_reboundstops Integer No units 0 = None,
1 = One
pv[lr]_toe_angle Real Degree
pv[lr]_drive_shaft_offset Real mm
pv[lr]_camber_angle Real Degree
pvs_hub_compliance_offset Real mm
Communicators
Mount parts provide the connectivity from the template to the body subsystems. Output Communicators
publish toe, camber, steer axis, and wheel-center location information to the appropriate subsystems and the
test rig. The following table lists the input and output communicators.
Template name
_driveline_awd
Major role
Driveline
Application
Full-vehicle assemblies
258 Adams Car
All-Wheel Drive Driveline System
Description
The AWD driveline template is based on the Four-Wheel Drive Driveline System. The only difference is an open
center differential that replaces the transfer case, and the addition of rear drive shafts.
Files referenced
Bushing and differential property files
Topology
The AWD driveline template consists of a two-piece prop shaft, a slip yoke, and three differentials.
Transmission output torque is applied to the center differential, which splits torque to the front and rear prop
shafts, and from there to the front and rear differentials. The prop shaft input part attaches to the powertrain
through a revolute joint.
A bearing supports the front prop shaft at its aft end via an inline joint primitive that prevents translation of
the front prop shaft perpendicular to the prop shaft's spin axis.
A convel joint transmit the motion to the slip yoke part. The slip yoke supports and transmits torque to the
rear prop shaft through a translational joint. The differential input shaft receives torque from the rear prop
shaft through a hooke joint.
The differentials includes a limited slip torque based on a viscous clutch operating principal. The differential
cases are mounted to switch parts, allowing the user to attach the diff to the powertrain, body, or subframe.
The following table maps the topology of the template, where differences exist relative to the Four-Wheel Drive
Driveline System.
Template name
_driveline_awd_viscous_coupling
Major role
Driveline
Application
Full-vehicle assemblies
260 Adams Car
All-Wheel Drive (Viscous Coupling) Driveline System
Description
The AWD Viscous Coupling driveline template is based on the All-Wheel Drive Driveline System. The only
difference is a viscous coupling that replaces the center differential.
Files referenced
Bushing and differential property files
Topology
The AWD Viscous Coupling driveline template consists of a two-piece prop shaft, a slip yoke, a viscous
coupling, and two differentials. Transmission output torque is applied to the front prop shaft input, which is
coupled to the front diff input through a viscous coupling, and from there to the front and rear differentials.
The prop shaft input part attaches to the powertrain through a revolute joint.
A bearing supports the front prop shaft at its aft end via an inline joint primitive that prevents translation of
the front prop shaft perpendicular to the prop shaft's spin axis.
A convel joint transmit the motion to the slip yoke part. The slip yoke supports and transmits torque to the
rear prop shaft through a translational joint. The differential input shaft receives torque from the rear prop
shaft through a hooke joint.
The differentials includes a limited slip torque based on a viscous clutch operating principal. The differential
cases are mounted to switch parts, allowing the user to attach the diff to the powertrain, body, or subframe.
Working with Templates 261
Anti-roll bar system (discrete flexible links)
Template name
_arb_discrete_flexible_links
Major role
antirollbar
262 Adams Car
Anti-roll bar system (discrete flexible links)
Application
Suspension and full-vehicle analyses
Description
This anti-roll bar template provides a beam element model of anti-roll bar (also known as stabilizer bar). It
consists of several rigid body parts connected by beam forces. The outer radius and inner radius are
parameterized, allowing you to model a solid or hollow cross-section.
Files referenced
Bushing property files
Topology
Left and right bushings attach the bar to the body or to the suspension subframe. Drop links transmit the
suspension motion to the bar ends. The drop links attach to the suspension with spherical joints and to the
bar ends with convel joints.
The following table maps the topology of the anti-roll bar system template.
Limitations
The anti-roll bar system template represents an approximation of a stabilizer bar. For more complex solutions
(for example, complex ARB geometry or large deflections), you would need to create a more accurate
representation of the bar using flexible bodies or FE parts.
Communicators
Mount parts provide the connectivity to the suspension subsystems. An output Communicators exports
information about the location of the ARB pick-up point.
The following table lists the communicators that the template uses.
Central_link Suspension
Overview
A Central link suspension uses two lateral and one longitudinal links to hold the wheel carrier and control its
movements. A central link is a type of trailing link that is rigidly attached to the wheel carrier and connected
to frame with a bush.
Template name
_central_link
Major role
Suspension
Application
Suspension and full-vehicle assemblies
264 Adams Car
Central_link Suspension
Description
The Central link suspension template represents the most common design for central link suspension. You
can use the template as a rear non-steerable suspension. This template has the following design options of
driveline activity, subframe, hub compliance, bumpstopper, rebound stopper and springs. All bushes, expect
the subframe bushes are modeled as connectors, this helps in switching between bushing and joints.
Files referenced
Bushings, springs, dampers, bumpstop property files.
Topology
The following tables maps the topology of the central link suspension.
Parameters
The integer parameter variables allow you to activate and deactivate the various configuration options.
Working with Templates 265
Central_link Suspension
1 = Yes
phs_subframe Integer No units 0 = None,
1 = Compliant,
2 = Kinematic
pvs_subframe_midmounts Integer No units 0 = None,
1 = Front Only,
2 = Rear Only,
3 = Both
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
pvs_number_of_bumpstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_number_of_reboundstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_number_of_springs Integer No units 1 = One,
2 = Two
pv[lr]_toe_angle Real Degree
pv[lr]_drive_shaft_offset Real mm
pv[lr]_camber_angle Real Degree
pvs_hub_compliance_offset Real mm
Communicators
Mount parts provide the connectivity from the template to the body subsystems. Output communicators
publish toe, camber, steer axis, and wheel-center location information to the appropriate subsystems and the
test rig. The following table lists the input and output communicators.
266 Adams Car
Disc-Brake System
Disc-Brake System
Overview
This disc-brake system is a more advanced version of the template in the acar_shared database.
Working with Templates 267
Disc-Brake System
Template name
_brake_system_4Wdisk_calipers
Major role
brake_system
Application
Full-vehicle Analysis to simulate the effect of braking on the dynamics of the vehicle.
Description
This disc-brake system represents a more advanced model of a brake system than the template in the
acar_shared database. Instead of a rotational torque between the caliper and the rotor, this model uses joint
friction. This approach has the advantage of providing braking torque at zero speed. Other advantages of this
model include:
Rotor and caliper mass can be specified
268 Adams Car
Disc-Brake System
Files referenced
Brake pressure property file
Topology
The caliper part is mounted to the suspension upright, while the rotor is mounted to the wheel. A revolute
joint with friction connects the two parts. A VFORCE between caliper and rotor provides the brake force,
which is used to generate friction in the revolute joint.
Parameters
The toe and camber values that the suspension subsystem publishes define the spin axis orientation. The
braking force is expressed as a function of a number of parameters.
The following table lists the parameters in the template.
1=Floating caliper
front_caliper_mounting_angle Real angle Clockwise angle from vertical
when viewed from the left
front_piston_area Real area
front_rotor_hub_wheel_offset Real length
front_rotor_hub_width Real length
front_rotor_width Real length
max_brake_value Real No units
number_of_pistons_front Integer No units
Working with Templates 269
Disc-Brake System
1=Floating caliper
rear_caliper_mounting_angle Real angle Clockwise angle from vertical
when viewed from the left
rear_piston_area Real area
rear_rotor_hub_wheel_offset Real length
rear_rotor_hub_width Real length
rear_rotor_width Real length
Many of these properties can be set in a single dialog box included in this template:
Limitations
If you set the caliper mass to a value greater than zero, any roll angle or lateral acceleration will produce a
small braking torque as the caliper is being pulled away from the rotor.
270 Adams Car
Disc-Brake System
Communicators
Mount parts provide the connectivity between the template and suspension subsystems. Input Communicators
receive information about the toe and camber suspension orientation and the wheel-center location. The
input to the brake system is through a brake demand input communicator.
The following table lists the communicators in the template.
The following table lists the communicators in the template.
Notes: The torque on the rotor depends on a number of parameters. The right front brake force
function is:
F = IF(pvs_front_caliper_floating:1,1,2) * -pvs_front_piston_area *
pvs_number_of_pistons_front * right_front_brake_line_pressure
IF(pvs_brake_pressure_input_type - 2: right_front_brake_line_pressure_Spline,
right_front_brake_line_pressure_PINPUT, 0)
AKISPL(brake_demand, 0, gss_master_cylinder_pressure)
This braking force is applied between the caliper and rotor, providing the reaction load to
the joint friction. The friction torque is then calculated as follows:
T = F * pvs_front_brake_friction_coefficient * pvs_front_brake_effective_radius
Detailed Brake
Overview
This template is an enhanced version of Disc-Brake System template available in acar shared data base.
Template name
_detailed_brake
Major role
brake_system
Application
Full-vehicle Analysis to simulate the effect of braking on the dynamics of the vehicle.
Description
This template is an enhanced version of Disc-Brake System template available in acar shared data base, with the
addition of below design Options:
1. Valve Gain Type
Working with Templates 273
Detailed Brake
Note: For each of these valves you can relate the input pressure to the output pressure with
either a spline or a bilinear function.
For the spline method, you will need to modify general splines and specify the spline in property file
(example: mdids://acar_concept/gen_splines.tbl/detailed_brake_data.spl).
The following splines are used for this method:
gss_vacuum_booster_spline, gss_proportioning_valve_spline
For the bilinear method, you need to specify initial gain, final gain, and pressure break point. The following
parameters are used for this method:
Vacuum Booster Initial Gain, Vacuum Booster Pressure Break Point,
Vacuum Booster Final Gain, Proportioning Valve Initial Gain,
Proportioning Valve Pressure Break Point and Proportioning Valve
Final Gain
Files referenced
None
Topology
Refer brake_system_4Wdisk template online document.
Parameters
The following table lists the additional parameters to Disc-Brake System template available in acar shared data
base.
1 = XYZ location
pvs_front_pad_location_method Integer No units 0 = radius
1 = XYZ location
pvs_brake_proportioning_meth Integer No units 0 = Constant
od
1 = Spline
Pv[lr]_front_pad_radius Real Length Pad radius
Pv[lr]_rear_pad_radius Real Length Pad radius
pvs_master_cyl_diameter Real Length Diameter of master cylinder
Pv[lr]_front_cyl_diameter Real Length Diameter of front cylinder
Pv[lr]_rear_cyl_diameter Real Length Diameter of rear cylinder
pvs_pedal_ratio Real No units Pedal Lever Force Ratio
pvs_master_cyl_efficiency Real No units Pedal Force to Master Cylinder
efficiency
pvs_master_to_front_cyl_efficie Real No units Master Cylinder to Front Wheel
ncy efficiency
pvs_prop_valve_efficiency Real No units Proportioning Valve efficiency
Working with Templates 275
Detailed Brake
Communicators
Refer Disc-Brake System template online document.
276 Adams Car
Detailed Engine
Detailed Engine
Overview
The detailed engine template is an engine-only powertrain template (that is, the transmission is not
included). It models an inline four cylinder engine with a rotating crankshaft, connecting rods, pistons, and
cylinder combustion pressure to produce power.
Template name
_detailed_engine
Major role
Powertrain
Application
Full-vehicle assemblies
Working with Templates 277
Detailed Engine
Description
This template includes a rotating crankshaft with reciprocating pistons to model an inline four-cylinder
engine. A 3D curve of cylinder pressure vs. crank angle and RPM is scaled by throttle demand to produce
power. A drag torque as function of RPM and throttle demand acts on the crankshaft. For quasi-static
analyses (where the crankshaft speed is zero), the model includes a conventional engine torque curve as
function of RPM and throttle demand.
Files referenced
<acar_shared>/bushings.tbl/MDI_engine_mount.bus
<acar_concept>/powertrains.tbl/I4_118HP_150Nm.pwr
<acar_concept>/powertrains.tbl/gas_force_sample.gpf
<acar_concept>/powertrains.tbl/engine_drag.pwr
Topology
The engine block is attached to the vehicle chassis through four bushings. The crankshaft attaches to the
engine block via a revolute joint. The connecting rods attach to the crankshaft via revolute joints. Piston pins
attach to the connecting rods via cylindrical joints, and to the pistons via fixed joints. Pistons are constrained
to the cylinder axis using primitive joints.
Parameters
The following table lists the parameters in the template.
Limitations
The detailed engine template uses a number of rotating parts. If the engine dynamics are not of interest to
you, then it is more efficient to use a simpler powertrain template, because the rotating parts might slow the
numerical integration during the Analysis.
The combustion pressure is scaled linearly by throttle demand, assuming the pressure defined in the property
file is at wide open throttle. Users may wish to define a non-linear relationship to scale combustion pressure
with respect to throttle demand.
No counter-balances or balance shafts are included in this template.
Communicators
The following table lists the input and output communicators.
Belongs to the
The communicator: class: Has the role: Matching names:
cis_initial_engine_rpm parameter_real any initial_engine_rpm
cis_powertrain_to_body mount inherit powertrain_to_body
cis_throttle_demand solver_variable any throttle_demand
Working with Templates 279
Detailed Engine
Belongs to the
The communicator: class: Has the role: Matching names:
cis_transmission_input_omeg solver_variable any transmission_input_omega
a
cos_crankshaft_reference location any crankshaft_reference
cos_crankshaft_torque solver_variable inherit crankshaft_torque
cos_downshift_RPM parameter_real inherit downshift_RPM
cos_engine_block mount any engine, engine_block, powertrain
cos_engine_idle_speed parameter_real any engine_idle_rpm
cos_engine_map spline any engine_map
cos_engine_maximum_braki solver_variable inherit engine_maximum_braking_torq
ng_torque ue
cos_engine_maximum_drivin solver_variable inherit engine_maximum_driving_torqu
g_torque e
cos_engine_rpm solver_variable any engine_rpm
cos_engine_speed solver_variable any engine_speed
cos_engine_speed_limit parameter_real any engine_speed_limit,
engine_revlimit_rpm
cos_engine_stall_speed parameter_real any engine_stall_speed
cos_flywheel mount any flywheel
cos_max_throttle parameter_real any max_throttle
cos_upshift_RPM parameter_real inherit upshift_RPM
280 Adams Car
Double Wishbone Advanced Suspension
Template name
_double_wishbone_advanced
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 281
Double Wishbone Advanced Suspension
Description
This template is identical to the double wishbone template except for the addition of design options like
lower control arm (LCA) configuration options, upper control arm (UCA) configuration options, upper
control arm attachment options, Perch - LSMB (Lower Shock Mounting Bracket), torsion bar and subframe.
The LCA is modeled with four configuration options: single ball joint, dual ball joint, dual link with
compression and dual link with tension strut. These configurations can be changed using the design options
Lower Control Arm Configuration.
The UCA are modeled with two configuration options: single ball joint and dual ball join. These
configurations can be changed using the design options Upper Control Arm Configuration.
The UCA has two attachment options: subframe and frame, which is controlled using a switch part. At the
subsystem level, modify the switch part to switch between subframe and frame.
Torsion bar design option activates torsion beam spring and deactivates coil spring. Lower attachment of
torsion beam spring is controlled by using a switch part. Upper attachment is always connected to the cross
member.
You can activate or deactivate the effect of Hub Compliance using the pvs_hub_compliance parameter variable.
You can change current mode of Subframe activity to None, Compliant or Kinematic. You can change number
of Subframe MidMounts to none, front only, rear only or both.
You can toggle Perch - LSMB (Lower Shock Mounting Bracket).
Files referenced
Bushings, springs, dampers, and bumpstop property files.
Topology
The topology is identical to the Double-Wishbone Suspension template except UCA attachment options, LCA
and UCA configurations.
The following table details the topologies for LCA and UCA configuration options.
282 Adams Car
Double Wishbone Advanced Suspension
Parameters
These integer parameter variables allow you to activate and deactivate the various configuration options. Only
those parameters additional to the Double-Wishbone Suspension template are listed below.
1 = Compliant ,
2 = Kinematic
Working with Templates 285
Double Wishbone Advanced Suspension
1 = Front Only,
2 = Rear Only,
3 = Both
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
pvs_perch Integer No units 0 = Inactive,
1 = Active
pvs_number_of_bumpstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_number_of_reboundstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_torsionbar Integer No units 0 = Inactive,
1 = Active
Communicators
Refer to the Double-Wishbone Suspension.
286 Adams Car
Draglink Steering System
Template name
_draglink_steering
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
A recirculating ball steering gear transmits motion from the steering wheel to the pitman arm. The pitman
arm rotates to impart motion to the draglink. The draglink pulls and pushes the tie rod and steers the wheels.
Working with Templates 287
Draglink Steering System
Files referenced
The point torque actuator references the torsion_bar and steering_assist datablocks in the mdi_steering.ste
property file, stored in the Adams Car shared database, under the steer_assists.tbl table or directory.
Topology
The topology is identical to the standard Pitman Arm Steering System, except for the addition of a hydraulic
boost force.
Communicators
The following table lists the Communicators in the template.
Note: The draglink steering template does not interface with any of the Adams Car shared
database suspension templates because those suspension templates have tie rods. It
does interface with the Twin I-Beam Suspension System in the acar_concept database. To
correctly assemble the draglink steering to a suspension subsystem from the shared
database, you must remove the tie rods from the suspension. The draglink and the tie
rod have to be mounted to the left and right upright parts.
288 Adams Car
Torsion Bar Double-Wishbone Suspension
Template name
_double_wishbone_torsion
Major role
Suspension
Working with Templates 289
Torsion Bar Double-Wishbone Suspension
Application
Suspension and full-vehicle assemblies
Description
Refer to the standard Torsion Bar Double-Wishbone Suspension.
290 Adams Car
Four-Wheel Drive Driveline System
Template name
_driveline_4wd
Major role
Driveline
Application
Full-vehicle assemblies
Working with Templates 291
Four-Wheel Drive Driveline System
Description
The transmission output torque is transmitted to the prop shaft, through the transfer case, and from there to
the differentials. Front drive shafts are included, and should be connected to the spindles in the front
suspension. Rear diff outputs should be connected to the rear axle shafts.
Files referenced
Bushing and differential property files
Topology
The 4WD driveline template consists of a two-piece prop shaft, a slip yoke, and two differentials.
Transmission output torque is applied to the prop shaft input part, which feeds into the transfer case, which
effectively locks the front and rear prop shaft speeds, and from there to the differentials. The prop shaft input
part attaches to the powertrain through a revolute joint.
A bearing supports the front prop shaft at its aft end via an inline joint primitive that prevents translation of
the front prop shaft perpendicular to the prop shaft's spin axis.
A convel joint transmit the motion to the slip yoke part. The slip yoke supports and transmits torque to the
rear prop shaft through a translational joint. The differential input shaft receives torque from the rear prop
shaft through a hooke joint.
The differentials includes a limited slip torque based on a viscous clutch operating principal. The differential
cases are mounted to switch parts, allowing the user to attach the diff to the powertrain, body, subframe, or
rear axle.
The following table maps the topology of the template.
Parameters
The hidden parameter phs_driveline_active has a slightly different usage here than in the acar_shared
database. In this case, neither front nor rear suspensions contain drive shafts, so the parameter has been moved
here to the driveline template. Both the front and rear suspensions are driven axles, so the variable is a string
value instead of an integer value. It contains a list of every driven suspension minor role. In this case,
“front,rear”.
The following table lists the parameters in the template.
Limitations
The driveline template uses a number of rotating parts. If the driveline dynamics are not of interest to you,
then it is more efficient to apply direct drive torque to the wheels, because the rotating parts in the template
might slow the numerical integration during the Analysis.
Communicators
Output communicators of the type mount publish the left and right output shafts to the suspension templates
and subsystems. The following table lists the input and output communicators.
Template name
_driveline_fwd_LSD
Major role
Driveline
Working with Templates 295
Front Driveline System
Application
Full-vehicle assemblies
Description
An actuator drives the front diff input, which acts through the differential to drive the diff outputs, which
are connected to jack shafts and drive shafts, which should be connected to the spindles in the front
suspension.
Files referenced
Differential property file
Topology
The front driveline template consists of a differential housing which mounts to a switch part, and diff
input/outputs which mount to the housing via revolute joints. The differential includes a viscous limited slip
torque. The following table maps the topology of the template.
Parameters
he hidden parameter phs_driveline_active has a slightly different usage here than in the acar_shared database.
In this case, the front suspension will not contain drive shafts, so the parameter has been moved here to the
driveline template. The variable is a string value instead of an integer value. It contains a list of every driven
suspension minor role. In this case, "front".
The following table lists the parameters in the template.
296 Adams Car
Front Driveline System
Limitations
The front driveline template uses a number of rotating parts. If the driveline dynamics are not of interest to
you, then it is more efficient to apply direct drive torque to the wheels, because the rotating parts in the
template might slow the numerical integration during the Analysis.
Communicators
The following table lists the input and output communicators.
Template name
_driveline_fwd_LSD_for_separate_transmission
Major role
Driveline
Application
Full-vehicle assemblies
Description
During assembly, the transmission output is mounted to the differential input, which acts through the
differential to drive the diff outputs, which are connected to jack shafts and drive shafts, which should be
connected to the spindles in the front suspension.
Files referenced
Differential property file
298 Adams Car
Front Driveline for Separate Transmission
Topology
The front driveline template consists of a differential housing which mounts to a switch part, and diff
input/outputs which mount to the housing via revolute joints. The differential includes a viscous limited slip
torque. The following table maps the topology of the template.
Parameters
The hidden parameter phs_driveline_active has a slightly different usage here than in the acar_shared
database. In this case, the front suspension will not contain drive shafts, so the parameter has been moved
here to the driveline template. The variable is a string value instead of an integer value. It contains a list of
every driven suspension minor role. In this case, "front".
The following table lists the parameters in the template.
Limitations
The front driveline template uses a number of rotating parts. If the driveline dynamics are not of interest to
you, then it is more efficient to apply direct drive torque to the wheels, because the rotating parts in the
template might slow the numerical integration during the Analysis.
Communicators
The following table lists the input and output communicators.
Working with Templates 299
Front Driveline for Separate Transmission
Template name
_driveline_rwd_LSD
Major role
Driveline
Application
Full-vehicle assemblies
Working with Templates 301
Rear Driveline System
Description
An actuator drives the prop shaft, which acts through the differential to drive the diff outputs, which are
connected to optional half shafts, which should be connected to the spindles in the rear suspension.
Files referenced
Bushing and differential property files.
Topology
The RWD system consists of a two-piece prop shaft, a slip yoke, and a viscous limited-slip differential.
Transmission output torque is applied to the front prop shaft input. The prop shaft input part attaches to the
powertrain through a revolute joint. A bearing supports the front prop shaft at its aft end via an inline joint
primitive that prevents translation of the front prop shaft perpendicular to the prop shaft's spin axis.
A convel joint transmit the motion to the slip yoke part. The slip yoke supports and transmits torque to the
rear prop shaft through a translational joint. The differential input shaft receives torque from the rear prop
shaft through a hooke joint. The differential outputs can be connected to axle half shafts in this template,
which then connect to spindles in the suspension, or to axle shafts in the suspension template.
The differential includes a limited slip torque based on a viscous clutch operating principal. The differential
case is mounted to a switch part, allowing the user to attach the diff to the powertrain, body, or subframe.
The following table maps the topology of the template.
Parameters
The hidden parameter phs_driveline_active has a slightly different usage here than in the acar_shared
database. In this case, the rear suspension will not contain drive shafts, so the parameter has been moved here
to the driveline template. The variable is a string value instead of an integer value. It contains a list of every
driven suspension minor role. In this case, "rear". The pvs_halfshafts_active variable controls the activity of
the axle half shafts. If your suspension template does not contain axle shafts, set pvs_halfshafts_active = 1. If
you're assembling with a suspension such as the Solid Axle Suspension, set pvs_halfshafts_active = 0.
The following table lists the parameters in the template.
Limitations
The RWD driveline template uses a number of rotating parts. If the driveline dynamics are not of interest to
you, then it is more efficient to apply direct drive torque to the wheels, because the rotating parts in the
template might slow the numerical integration during the Analysis.
Communicators
Output communicators of the type mount publish the left and right differential outputs to the suspension
templates and subsystems. The following table lists the input and output communicators.
Template name
_engine_transmission
Major role
Powertrain
Application
Full-vehicle assemblies
Description
Refer to the Powertrain System in the Adams Car shared database. The only difference is the removal of the
differential. When assembled with a driveline template, the transmission output torque will be reacted against
the powertrain part.
Working with Templates 305
Engine and Transmission System
Parameters
The parameters are identical to the Powertrain System in the Adams Car shared database, with the addition of
pvs_longitudinal. When set to 0, the engine and transmission are oriented in a transverse layout. When set
to 1, the engine and transmission are oriented in a longitudinal layout.
306 Adams Car
Flexible Chassis System
Template name
_flex_chassis
Major role
body
Application
Full-vehicle assemblies.
Working with Templates 307
Flexible Chassis System
Description
A single flexible body part models the chassis. The Modal Neutral File file may be replaced with the user’s file.
Files referenced
<acar_concept>/flex_bodys.tbl/BIW_v3_single_precision.mnf
Topology
A small rigid body (ges_stake_body) is fixed to the chassis part to facilitate quasi-static simulations where the
chassis is constrained to ground. A non-linear beam representing the instrument panel stiffness connects the
left and right sides of the chassis.
Limitations
No aerodynamic forces are modeled in this template.
Communicators
The flexible chassis template defines a series of mount part communicators. The assembly process matches them
with the corresponding output communicators created in suspensions, steering, and other subsystems. The
following table lists the communicators. Note that the output communicator steering_column_to_body
allows the steering column mount part in the steering system to connect to the non-linear beam representing
the instrument panel.
Hotchkiss Suspension
Overview
The Hotchkiss suspension template is an enhanced version of the standard Leafspring Suspension.
Template name
_hotchkiss_suspension
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Description
The hotchkiss suspension template represents the most common spring design for solid axle suspensions.
This template includes steerable uprights, so you can use the template as a steerable front suspension.
Also, there are two configurations for steerable axle which are 'Single Tierod' and 'Split Tierod'. This
configuration can be switched as per the design.
To model 'Single Tierod' Configuration set pvs_steerable_axle to 1 and to model 'Split Tierod' Configuration
set pvs_steerable_axle to 2.
Working with Templates 309
Hotchkiss Suspension
To model a non-steerable suspension, you may turn off the steering components by setting the parameter
variable pvs_steerable_axle to 0.
Apart from above configuration user can even switch the leafspring type. To model simple type of leaf spring,
which will turn off the beam elements and turn on the 3-beam configuration by setting the parameter variable
pvs_leafspring_type to 0.
Files referenced
Bushings, springs, dampers, bumpstop, and reboundstop property files.
Topology
The topology is identical to the Leafspring Suspension template except leafspring type, Panhard Rod and
Trailing Arm configurations.
The following table details the topologies for Leafspring Type, Panhard Rod and Trailing Arm configuration
options.
Parameters
Toe and camber variables define the wheel spin axis, spindle part, and spindle geometry. The following table
lists the parameters in the template.
1 = Active
pvs_trailing_arm_active Integer No units 0 = Inactive,
1 = Active
pvs_steerable_axle Integer No units 0 = Inactive,
1 = Active
pvs_number_of_bumpstops Integer No units 0 = Inactive,
1 = Beam
pvs_wheel_force_transducer Integer No units 0 = Inactive,
1 = Active
pvs_halfshaft_compliance Integer No units 0 = Inactive,
1 = Active
pv[lr]_drive_shaft_offset Real Length
pvs_second_stage_length Real Length
pvs_second_stage_rate Real Stiffness
pvs_outer_wheel_center_offset Real Length
Working with Templates 311
Hotchkiss Suspension
Communicators
Mount parts provide connectivity from the template to body subsystems and the differential. Output
Communicators publish toe, camber, steer axis, and wheel-center location information to the appropriate
subsystems and the test rig. The following table lists the input and output communicators.
Template name
_halt_advanced_steering
Working with Templates 313
Haltenburger Advanced Steering System
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is an extend version of the relay pitman advanced steering template. It has an additional tierod
part that connects drag link to steering arm. In this template, draglink to pitman arm, draglink outer, tierod
inner and tierod outer locations are defined using the input communicators. These input communicators
should have corresponding output communicators in suspension templates.
Files referenced
Property files, hydraulic_steering_assist.ste or torsion_bar.ste and steering_compliance.ste are stored in the
steer_assist.tbl of the acar_concept database. These defines the steering hydraulic assist force, torsion bar and
steering compliance respectively.
Topology
The topology for Haltenburger steering mechanism is identical to the relay pitman advanced steering
template except for the joint added between tierod and the draglink.
Parameters
Refer to Relay and Pitman Advanced Steering System.
Communicators
Refer to Relay and Pitman Advanced Steering System.
In addition to above input communicators this template have:
cis_drag_link_to_pitman, cis_drag_link_outer, cis_tierod_inner and cis_tierod_outer.
314 Adams Car
Haltenburger Simple Steering System
Template name
_halt_simple_steering
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is an extend version of the relay pitman simple steering template. It has an additional tierod
part that connects drag link to steering arm. In this template, draglink to pitman arm, draglink outer, tierod
inner and tierod outer locations are defined using the input communicators. These input communicators
should have corresponding output communicators in the suspension templates.
Working with Templates 315
Haltenburger Simple Steering System
Files referenced
Property files, hydraulic_steering_assist.ste or torsion_bar.ste and steering_compliance.ste are stored in the
steer_assist.tbl of the acar_concept database. These defines the steering hydraulic assist force, torsion bar and
steering compliance respectively.
Topology
The topology for Haltenburger steering mechanism is identical to the relay pitman simple steering template
except for the joint added between tierod and the draglink.
Parameters
Refer to Relay and Pitman Simple Steering System.
Communicators
Refer to Relay and Pitman Simple Steering System.
In addition to above input communicators this template have:
cis_drag_link_to_pitman, cis_drag_link_outer, cis_tierod_inner and cis_tierod_outer.
316 Adams Car
Integral Link Suspension
Template name
_integral_link
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 317
Integral Link Suspension
Description
The integral link suspension template represents a common independent rear suspension design.
It includes a lower control arm (LCA), upper control arm (UCA), subframe, integral link and tie rod.
You can select different topological options for the integral link. At the subsystem level, you can attach the
integral link's upper point to the upright (wheel carrier), tie rod (toe link) or UCA (camber link) using a
switch part. The UCA has two attachment options: subframe and frame, which is controlled using a switch
part.
You can activate or deactivate the effect of Hub Compliance using the pvs_hub_compliance parameter variable.
You can change current mode of Subframe activity to None, Compliant or Kinematic. You can change number
of Subframe MidMounts to none, Front Only, Rear Only or both.
You can toggle Perch - LSMB (Lower Shock Mounting Bracket).
Files referenced
Bushings, springs, dampers, bumpstop, and reboundstop property files.
Topology
The suspension includes a LCA, which connects to the subframe at two pivot points using bushings. At the
outer ball joint, the LCA connects to a wheel carrier (upright). The integral link is positioned in front of the
wheel spin axis. The integral link attaches the LCA and to the wheel carrier (upright), tierod (toe link) or
UCA. The UCA and tierod connect the wheel carrier (upright) to the subframe or frame.
A spring acts between the LCA and frame. Bumpstops and reboundstops are used to limit wheel travel.
Parameters
Toe and camber variables define the wheel spin axis, spindle part, and spindle geometry. The following table
lists the parameters in the template.
1 = Active
phs_kinematic_flag Integer No units 0 = Inactive,
1 = Active
pvs_subframe Integer No units 0 = None,
1 = Compliant ,
2 = Kinematic
pvs_adjuster Integer No units 0 = Inactive,
1 = Active
ph[lr]_toe_adjuster Real mm
ph[lr]_camber_adjuster Real mm
pv[lr]_toe_angle Real Degrees
pv[lr]_camber_angle Real Degrees
pv[lr]_drive_shaft_offset Real mm
pvs_perch Integer No units 0 = Inactive,
1 = Active
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
Working with Templates 319
Integral Link Suspension
1 = One,
2 = Two
pvs_number_of_reboundstops Integer No units 0 = None,
1 = One,
2 = Two
Communicators
Mount parts provide connectivity from the template to body subsystems and the differential. Output
Communicators publish toe, camber, steer axis, and wheel-center location information to the appropriate
subsystems and the test rig. The following table lists the input and output communicators.
MacPherson Suspension
Overview
This MacPherson suspension template is a modified version of the standard MacPherson Suspension. In this
template, the drive shafts are not modeled. If this suspension is intended to be used as a driven axle, you'll
need to include in your full-vehicle assembly a template of major role "driveline".
Template name
_macpherson
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 321
MacPherson Suspension
Description
Refer to the standard MacPherson Suspension.
322 Adams Car
MacPherson Advanced Suspension
Template name
_macpherson_advanced
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 323
MacPherson Advanced Suspension
Description
This template is identical to the standard MacPherson Suspension template expect with the additions of lower
control arm (LCA) configuration design option, top dual path mount design option and switch part options
for spring, and bumpstop upper.
The LCA is modeled with four configuration options: single ball joint, dual ball joint, dual link with
compression and dual link with tension strut. These configurations can be changed using the design options
Lower Control Arm Configuration.
The top dual path mount option can be activated using the design option Top Dualpath Mount. You can also
change spring, and bumpstop top attachment parts using their respective switch part options.
You can change current mode of Subframe activity to None, Compliant or Kinematic. You can change number
of Subframe MidMounts to None, Front Only, Rear Only or Both.
Files referenced
Bushings, springs, dampers, bumpstop, and reboundstop property files.
Topology
The topology is identical to the MacPherson Suspension template except for the LCA configuration and Top
Dualpath Mount design options.
The following table details the topologies for LCA configuration options.
324 Adams Car
MacPherson Advanced Suspension
Parameters
The parameter below is additional to the MacPherson Suspension template.
326 Adams Car
MacPherson Advanced Suspension
1 = Compliant ,
2 = Kinematic
pvs_subframe_midmounts Integer No units 0 = None,
1 = Front Only,
2 = Rear Only,
3 = Both
pvs_number_of_reboundstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_number_of_bumpstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
pvs_top_dualpath_mount Integer No units 0 = Inactive,
1 = Active
Communicators
Refer to the standard MacPherson Suspension.
Working with Templates 327
Multi-Link Suspension
Multi-Link Suspension
Overview
This multi-link suspension template is a modified version of the standard Multi-Link Suspension. In this
template, the drive shafts are not modeled. If this suspension is intended to be used as a driven axle, you'll
need to include in your full-vehicle assembly a template of major role "driveline".
Template name
_multi_link
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Description
Refer to the standard Multi-Link Suspension.
328 Adams Car
Parallel-Link Steering System
Template name
_parallel_link_steering
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
A recirculating ball steering gear transmits motion from the steering wheel to the pitman arm. The pitman
arm rotates to impart motion to the center link and idler arm. The translation of the center link pulls and
pushes the tie rods to steer the wheels.
Working with Templates 329
Parallel-Link Steering System
Files referenced
Steering assist property file. The default property file is mdi_steer_assis.ste, stored in the steer_assist.tbl
directory of the shared Adams Car database.
Topology
The recirculating ball steering gear consists of three major parts:
Ball screw
Rack
Sector
The steering wheel rotates the steering input shaft. A torsion bar attaches the steering input shaft to a ball
screw. The ball screw imparts translational motion to the steering gear through a coupler. The steering gear,
in turns, rotates the sector through a coupler, which is connected directly to the pitman arm shaft.
The following table maps the topology of the template.
Parameters
A parameter variable switches between kinematic and compliant mode, effectively locking out the torsion bar
deflection.
Communicators
The following table lists the communicators in the template.
Note: The parallel-link steering template contains a general spline, gss_steering_assist, which
provides assist force as a function of the angular deflection of the input shaft relative to the
ball screw. A switch part is also present. It allows you to explore two different topological
solutions. You can rigidly connect the steering gear to the body or to the front suspension
subframe.
Working with Templates 331
Powertrain Advanced
Powertrain Advanced
Overview
This Powertrain Advanced system is a modification of the Powertrain System in the Adams Car shared database.
This system has also been included with two roll restrictors with option to connect roll restrictor to subframe
or body and additional engine mount option.
Template name
_powertrain_advanced
Major role
Powertrain
Application
Full-vehicle assemblies
Description
Refer to the Powertrain System in the Adams Car shared database. The only difference is the addition of roll
restrictor, additional engine mounts and engine orientation.
332 Adams Car
Powertrain Advanced
Using pvs_engine_orientation you can change orientation of engine graphics. You can set engine graphics
orientation along transverse or longitudinal direction.
Parameters
The parameters are identical to the Powertrain System in the Adams Car shared database, with the additions as
following:
Template name
_powertrain_simple_traction
Major role
Powertrain
Application
Full-vehicle assemblies
Description
The powertrain simple traction system template represents a simple model of traction system. It applies a
rotational torque directly to the wheels.
Files referenced
None.
334 Adams Car
Powertrain Simple Traction
Topology
The simple traction powertrain template contains very simple topological information because it is a
functional representation of the powertrain. A rotational SFORCE is applied between suspension upright
and wheel.
Parameters
The toe and camber values that the suspension subsystem publishes define the spin axis orientation. If
adjustable forces are present in the model, spin axis orientation will be defined during runtime based on the
specified alignment values. In addition, the driving torque is expressed as a function of a number of
parameters. The drive ratio is set by pvs_drive_torque_bias_front, when set to 0.5, it apply torque to front
and rear wheels. When set to 0, it drives rear wheels. When set to 1, it drives front wheels.
The following table lists the parameters in the template.
Limitations
The powertrain simple traction template is a simple model of a traction powertrain system. It does not model
the complex interaction between engine and wheels.
Communicators
Mount parts provide the connectivity between the template and suspension subsystems. Input Communicators
receive information about the toe and camber suspension orientation and the wheel-center location. Input to
the powertrain system is throttle demand.
The following table lists the communicators in the template.
Belongs to the
The communicator: class: Has the role: Matching name:
ci[lr]_front_traction_to_wheel Mount front rotor_to_wheel
ci[lr]_rear_traction_to_wheel Mount rear rotor_to_wheel
ci[lr]_front_suspension_upright Mount front suspension_upright
ci[lr]_rear_suspension_upright Mount rear suspension_upright
ci[lr]_front_tire_force Force front tire_force
Working with Templates 335
Powertrain Simple Traction
Belongs to the
The communicator: class: Has the role: Matching name:
ci[lr]_rear_tire_force Force rear tire_force
ci[lr]_front_camber_angle Parameter Real front camber_angle
ci[lr]_rear_camber_angle Parameter Real rear camber_angle
ci[lr]_front_toe_angle Parameter Real front toe_angle
ci[lr]_rear_toe_angle Parameter Real rear toe_angle
ci[lr]_front_wheel_center Location front wheel_center
ci[lr]_rear_wheel_center Location rear wheel_center
cis_throttle_demand Solver Variable inherit throttle_demand
cis_sse_diff1 Differential inherit sse_diff1
Equation
cis_desired_velocity Solver Variable inherit desired_velocity
cis_driver_reference Marker inherit driver_reference
cos_drive_torque_bias_front Parameter Real any drive_torque_bias_front
cos_transmission_input_omega Solver Variable inherit transmission_input_omega
cos_engine_speed Solver Variable inherit engine_speed
cos_max_engine_driving_torque Solver Variable inherit engine_maximum_driving_
torque
336 Adams Car
Quad-Link Axle Advanced Suspension
Template name
_quad_link_advanced
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Working with Templates 337
Quad-Link Axle Advanced Suspension
Description
This quad-link axle advanced suspension template is identical to the quad-link template except for the
addition of configurations (design options) for four link control arm and four link type.
The control arms are modeled with five options: UCA Inactive, UCA Left and Right, UCA Left only, UCA
Right only and LCA Single piece. These configurations can be changed using the design options Four Link
Control Arm Configurations.
The four link type has provided with four options: Basic, Panhard rod, Watts Link and Multi-Link
configurations. These configurations can be changed using the design options Four Link Type.
Files referenced
Bushing, spring, and damper property files
Topology
The topology is identical to the Quad-Link Axle Suspension template, except for the addition of four link control
arm configuration and four link type.
You can set subsystems based on this template to Steerable axle or Non-Steerable axle using design option
Steerable Axle.
The following table maps the additional and modified topology of this template:
Parameters
The quad-link axle advanced suspension template includes additional parameter variables beside those
described in the Quad-Link Axle Suspension template.
Communicators
The following table lists the additional input and output communicators beside those described in the Quad-
Link Axle Suspension template.
Template name
_rack_pinion_steering
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
Refer to the standard Rack and Pinion Steering System. The main difference is that the Hooke joints have been
replaced with constant velocity joints.
340 Adams Car
Rack and Pinion Advanced Steering System
Template name
_rack_pinion_steering_advanced
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is identical to the Rack and Pinion Steering System except for the following:
Various steering compliances
New Torsional bar methods.
Friction on steering wheel and universal joints
Rack housing mid mounts
Hook joints are replaced by universal joints
Tilt universal joint to support tilt adjustment of upper steering column shafts
In this template, 'steering column to body', 'steering column', 'intermediate-shaft' or 'lash', and 'column'
compliances are added into the template. These compliances can be activated or deactivated individually
using respective design options. For more information, see Advanced Steering Design Options.
The torsion bar method can be changed using design options Torsion Bar Method. The steering assist
method can be changed using design options Steering Assist and Boost Type.
The friction is modeled for joints like revolute joint between steering wheel and body, upper and lower
universal joints. These frictions can be activated or deactivated using respective design options.
The optional two mounts has been added for rack house mountings, it can be activated by using design
options Rack Housing Midmount.
Files referenced
Property files, hydraulic_steering_assist.ste or electric_steering_assist.ste or torsion_bar.ste and
steering_compliance.ste are stored in the steer_assist.tbl of the acar_concept database. These defines the
steering hydraulic assist force, electric steering assist, torsion bar and steering compliance respectively.
Topology
The topology is identical to the Rack and Pinion Steering System except for the hook's joints are replaced by
universal joints, and addition of tilt universal joint, rack housing mid mounts, various steering compliances,
frictions and torsional bar methods.
Working with Templates 343
Rack and Pinion Advanced Steering System
Parameters
These integer parameter variables allow you to activate and deactivate the various Advanced Steering Design
Options. Only those parameters additional to the Rack and Pinion Steering System template are listed below.
Its units
The parameter: Takes the value: are: Description
pvs_column_compliance Integer No units 0= None, 1=Linear, 2=Nonlinear
Its units
The parameter: Takes the value: are: Description
pvs_rack_housing_mid_mount Integer No units 0 = None
1 = Mid-Mount One,
2 = Mid-Mount Both
pvs_steering_assist Integer No units 0 = None, 1 = Hydraulic, 2 =
EPAS Column, 3 = EPAS Rack
Simple, 4 = EPAS Rack Comples,
5 = EPAS Pinion, 6 = EPAS
Second Pinion
pvs_steering_column_body_complia Integer No units 0 = Inactive, 1 = Active
nce
pvs_steering_column_compliance Integer No units 0= None, 1=Linear, 2=Nonlinear
Communicators
Refer to the Rack and Pinion Steering System.
Working with Templates 345
Rack and Pinion Tilt 3 Universal Joint Steering System
Template name
_rack_pinion_tilt_3ujoint_steering
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template have additional universal joint and different design options than that of Rack and Pinion Advanced
Steering System.
The compliance for intermediate shaft is split into upper and lower intermediate shaft compliance. Also,
upper and lower isolators are provided.
The dash seal compliance option is provided in this template. It can be attached to upper, lower or steering
shaft using "dash_seal_attach" switch part.
The value of each of this design options can be set using respective parameter variables.
For more information, see Advanced Steering Design Options.
Files referenced
Property files, hydraulic_steering_assist.ste or electric_steering_assist.ste or torsion_bar.ste and
steering_compliance.ste are stored in the steer_assist.tbl of the acar_concept database. These defines the
steering hydraulic assist force, electric steering assist, torsion bar and steering compliance respectively.
Topology
The steering tilt inner shaft connects with steering column inner shaft either with constant velocity joint or
universal joint as per choice set for the design options Steering Column Tilt Joint Type. Also, bushings are activated
if the design options upper isolator or lower isolator are active, otherwise fixed joint is used to represent single
link.
The dash seal dummy is connected with switch part which allows you to switch the connected part to either
intermediate shaft upper, intermediate shaft lower or steering shaft. In this template, the order of the parts
list given to the switch part (sws_dash_seal_attach) is important.
The detailed topology is defined in following table:
348 Adams Car
Rack and Pinion Tilt 3 Universal Joint Steering System
Parameters
These integer parameter variables allow you to activate and deactivate the various Advanced Steering Design
Options. Only those parameters additional to the Rack and Pinion Steering System and Rack and Pinion Advanced
Steering System template are listed below.
Working with Templates 349
Rack and Pinion Tilt 3 Universal Joint Steering System
Communicators
Refer to the Rack and Pinion Steering System.
350 Adams Car
Rack and Pinion Tilt Bracket Steering System
Template name
_rack_pinion_tilt_bracket_steering
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is identical to the Rack and Pinion Advanced Steering System template except for the following:
Tilt bracket part with revolute joint and its motion
Additional cylindrical joint between steering wheel and auxiliary steering column
Additional cylindrical joint between intermediate shaft lower and intermediate shaft upper
Additional design options like "Tilt Bracket Slider Location" and "Tilt Bracket Angle"
Activity of Additional cylindrical joints depends on choice of the parameter variable
pvs_tilt_bracket_slider_location.
The design options Tilt Bracket Slider Location is used to set slider location either at the intermediate or upper
steering column shaft to allow articulation of the column during tilt adjustment.
The parameter variable 'pvs_tilt_bracket_angle' is used to set angle of Tilt Bracket to Body Adjustment Angle
during runtime.
This template contains compliances as per template Rack and Pinion Advanced Steering System like 'steering
column to body', 'steering column', 'intermediate shaft' or 'lash' and 'column' compliances. These
compliances can be activated or deactivated individually using respective design options. For more
information, see Advanced Steering Design Options.
Files referenced
Property files, hydraulic_steering_assist.ste or electric_steering_assist.ste or torsion_bar.ste and
steering_compliance.ste are stored in the steer_assist.tbl of the acar_concept database. These defines the
steering hydraulic assist force, electric steering assist, torsion bar and steering compliance respectively.
Topology
The topology is identical to the Rack and Pinion Advanced Steering System template except for additional
cylindrical joints
Working with Templates 353
Rack and Pinion Simple four Wheel Steering System
Parameters
These integer parameter variables allow you to activate and deactivate the various Advanced Steering Design
Options. Only those parameters additional to the Rack and Pinion Advanced Steering System template are listed
below.
Takes the
The parameter: value: Its units are: Description
pvs_tilt_bracket_angle Real Angle Tilt Bracket to Body Adjustment Angle
phs_tilt_bracket_slider_lo Integer No units 1= Upper Shaft, 2= Intermediate Shaft
cation
Communicators
Refer to the Rack and Pinion Advanced Steering System.
Template name
_rack_pinion_steering_simple_four_steer
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is modified version of the Rack and Pinion Advanced Steering System template. In this template,
steering column is simplified. There is no geometry and hardpoints to define the steering column profile. It
has steering wheel, auxiliary steering column and intermediate shaft part defined at a single location. Also
there is rear steering mechanism added.
To model only a front-steerable steering, you may turn off the rear steering components by setting the
parameter variable pvs_rear_steer to 0.
Working with Templates 355
Rack and Pinion Simple four Wheel Steering System
Files referenced
Property files, hydraulic_steering_assist.ste or torsion_bar.ste and steering_compliance.ste are stored in the
steer_assist.tbl of the acar_concept database. These defines the steering hydraulic assist force, torsion bar and
steering compliance respectively.
Topology
The topology for rack and pinion simple four wheel steering mechanism is identical to the Rack and Pinion
Advanced Steering System template except, rear steering mechanism.
Parameters
Only those parameters additional to the Rack and Pinion Advanced Steering System template are listed below.
Takes the
The parameter: value: Its units are: Description
pvs_rear_steer_method Integer No units 1 = In-Phase,
2 = Out-Phase,
3 = Spline Input
pvs_rear_steer Integer No units 0 = Inactive,
1 = Active
pvs_re_fr_style Integer No units
pvs_re_fr_ang Integer No units
pvs_re_fr_rat_1 Integer No units
pvs_frt_rear_coupler_ratio Real No units
pvs_steer_delta Real No units
pvs_max_speed_1 Real Velocity
pvs_min_speed_1 Real Velocity
pvs_active_1 Real No units
pvs_rear_central_spring_damping_ct Real Damping
356 Adams Car
Relay and Pitman Advanced Steering System
Takes the
The parameter: value: Its units are: Description
pvs_rear_central_spring_stiffness_kt Real Stiffness
pvs_steering_accuarcy Real No units
pvs_rear_central_spring_preload Real Force
Communicators
Only those Communicators additional to the Rack and Pinion Advanced Steering System template are listed
below.
Template name
_relay_pitman_advanced
Working with Templates 361
Relay and Pitman Advanced Steering System
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is modified version of the Rack and Pinion Advanced Steering System template. In this template, the
rack and pinion mechanism is replaced by the relay rod mechanism and pitman arm mechanism is added
which user can switch by using design option. There is no EPAS assist modeled in this template.
In this template, additional friction like "gear input friction", "piston friction", "sector shaft friction" for relay
rod and "idler arm friction" for pitman arm configuration has been included. These frictional forces can be
activated or deactivated using respective parameter variable.
The hydraulic steering assist has been added with two more option "velocity dependent" and "velocity and
electric dependent".
Files referenced
Property files, hydraulic_steering_assist.ste or torsion_bar.ste and steering_compliance.ste are stored in the
steer_assist.tbl of the acar_concept database. These defines the steering hydraulic assist force, torsion bar and
steering compliance respectively.
Topology
The topology is identical to the Rack and Pinion Advanced Steering System template except for the joints added
for the relay rod and pitman arm mechanism.
Parameters
These integer parameter variables allow you to activate and deactivate the various Advanced Steering Design
Options. Only those parameters additional to the Rack and Pinion Advanced Steering System template are listed
below.
Takes the
The parameter: value: Its units are: Description
pvs_gear_input_friction Integer No units 0= Inactive, 1=Active
Takes the
The parameter: value: Its units are: Description
pvs_idler_arm_friction Integer No units 0= Inactive, 1=Active
Communicators
Communicators additional to the Rack and Pinion Advanced Steering System template are listed below:
Template name
_relay_pitman_simple
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is modified version of the Relay and Pitman Advanced Steering System template. In this template,
steering column is simplified. There is no geometry and hardpoints to define the steering column profile. It
has steering wheel, auxiliary steering column and intermediate shaft part defined at a single location.
Files referenced
Property files, hydraulic_steering_assist.ste or torsion_bar.ste and steering_compliance.ste are stored in the
steer_assist.tbl of the acar_concept database. These defines the steering hydraulic assist force, torsion bar and
steering compliance respectively.
Topology
The topology for relay and pitman mechanism is identical to the Relay and Pitman Advanced Steering System
template.
Parameters
Refer to Relay and Pitman Advanced Steering System.
Communicators
Refer to Relay and Pitman Advanced Steering System.
Template name
_relay_pitman_tilt_3ujoint_steering
Major role
Steering
Application
Suspension and full-vehicle assemblies
Description
This template is a combination of Rack and Pinion Tilt 3 Universal Joint Steering System and Relay and Pitman Simple
Steering System templates available in acar concept database. Steering column is similar to Rack and Pinion Tilt 3
Universal Joint Steering System and steering gear is similar to that of Relay and Pitman Simple Steering System
templates.
In pitman steering gear type, tierod is part of steering system.
The compliance for intermediate shaft is split into upper and lower intermediate shaft compliance. Also,
upper and lower isolators are provided.
The dash seal compliance option is provided in this template. It can be attached to upper, lower or steering
shaft using "dash_seal_attach" switch part.
The value of each of this design options can be set using respective parameter variables.
For more information, see Advanced Steering Design Options.
Files referenced
Property files, hydraulic_steering_assist.ste or electric_steering_assist.ste or torsion_bar.ste and
steering_compliance.ste are stored in the steer_assist.tbl of the acar_concept database. These defines the
steering hydraulic assist force, electric steering assist, torsion bar and steering compliance respectively.
Topology
Refer Rack and Pinion Tilt 3 Universal Joint Steering System for steering column topology
and relay and pitman advanced steering for steering gear topology.
Parameters
These integer parameter variables allow you to activate and deactivate the various Advanced Steering Design
Options.
Refer Rack and Pinion Tilt 3 Universal Joint Steering System for steering column related parameter variables, Relay
and Pitman Simple Steering System for steering gear related parameter variables.
Working with Templates 371
Rigid Chassis Body on Frame
Communicators
Refer Rack and Pinion Tilt 3 Universal Joint Steering System for steering column related, Relay and Pitman Simple
Steering System gear related.
Template name
_rigid_chassis_bof
Major role
Body
Application
Full-vehicle assemblies
Description
The vehicle body is modeled as two separate parts named as frame and body. The two parts are connected by
up to nine bushings pairs.
Number of active bushings between frame and body can be set using design options Number of Body Mounts.
372 Adams Car
Rigid Chassis Body and Bed on Frame
Files referenced
Bushings property files and graphics files in the Adams Car acar_concept database, in the shell_graphics.tbl
directory.
Topology
The topology is identical to the Rigid Chassis template except body mounts options
The following table maps the topology of the template:
Parameters
The integer parameter variable pvs_body_mounts allows you to activate and configure the body to frame
mount bushings.
Additional parameters to the Rigid Chassis template are listed below:
Communicators
Additional communicators to the Rigid Chassis template are listed below
Template name
_rigid_chassis_bed_bof
Major role
Body
Application
Full-vehicle assemblies
Description
In rigid chassis body and bed on frame template body is divided into two parts body and bed. The body and
bed both are connected to frame by up to nine bushings pairs each.
Additionally, Number of active bushings between frame and body can be set using design options Number of
Body Mounts. Number of active bushings between bed and frame can be set using design options Number of Bed
Mounts.
Files referenced
Bushing property files and graphics files in the Adams Car acar_concept database, in the shell_graphics.tbl
directory.
374 Adams Car
Rigid Chassis Body and Bed on Frame
Topology
The topology is identical to the Rigid Chassis Body on Frame template except bed mounts options
The following table maps the topology of the template:
Parameters
The integer parameter variables allow you to activate and configure the body and bed to frame mount
bushings.
Additional parameters to the Rigid Chassis Body on Frame template are listed below
Communicators
Refer to the Rigid Chassis Body on Frame.
Working with Templates 375
Rigid Chassis Convertible
Template name
_rigid_chassis_convertible
Major role
Body
Application
Full-vehicle assemblies
376 Adams Car
Rigid Chassis Convertible
Description
This body system is identical to the Rigid Chassis template except for the graphics.
Files referenced
Graphics files in the Adams Car acar_concept database, in the shell_graphics.tbl directory.
Working with Templates 377
Rigid Chassis Crossover
Template name
_rigid_chassis_crossover
Major role
Body
Application
Full-vehicle assemblies
378 Adams Car
Rigid Chassis Crossover
Description
This body system is identical to the Rigid Chassis template except for the graphics.
Files referenced
Graphics files in the Adams Car acar_concept database, in the shell_graphics.tbl directory.
Working with Templates 379
Rigid Chassis Pickup
Template name
_rigid_chassis_pickup
Major role
Body
Application
Full-vehicle assemblies
Description
The pickup chassis is almost identical to the Rigid Chassis, except for graphics and the addition of a payload
part.
Files referenced
Graphics files in the Adams Car acar_concept database, in the shell_graphics.tbl directory.
380 Adams Car
Rigid Chassis Pickup
Topology
The topology is identical to the Rigid Chassis template except for the addition of a payload part.
The following table maps the topology of the template:
Parameters
Refer to the Rigid Chassis template.
Communicators
Additional communicators to the Rigid Chassis template are listed below:
Template name
_rigid_chassis_two_body
Major role
Body
Application
Full-vehicle assemblies
Description
The vehicle body is modeled as two separate rigid parts named as body front and body rear. The two parts
are connected at the CG location of the body by a joint and a bushing.
The compliance between front and rear body are modelled with three configurations: "Torsion", "Torsion
and Lateral Bending" and "Torsion, Vertical and Lateral Bending".
These configurations can be set by using the design options Body Compliance.
Working with Templates 383
Rigid Chassis Two Body
Files referenced
Bushing property files
Topology
The topology is identical to the Rigid Chassis template except front to rear body compliance options
The following table details the possible topologies for front to rear body compliance options:
Parameters
The integer parameter variable pvs_body_compliance allows you to configure the compliance between front
and rear body parts.
Additional parameters to the Rigid Chassis template are listed below
Communicators
Refer to the Rigid Chassis.
384 Adams Car
Rigid Chassis Sedan
Template name
_rigid_chassis_sedan
Major role
Body
Application
Full-vehicle assemblies
Working with Templates 385
Rigid Chassis Sedan
Description
This body system is identical to the Rigid Chassis template except for the graphics.
Files referenced
Graphics files in the Adams Car acar_concept database, in the shell_graphics.tbl directory.
386 Adams Car
Rigid Chassis Subcompact
Template name
_rigid_chassis_subcompact
Major role
Body
Application
Full-vehicle assemblies
Working with Templates 387
SAE 3-Link Leaf Spring
Description
This body system is identical to the Rigid Chassis template except for the graphics.
Files referenced
Graphics files in the Adams Car acar_concept database, in the shell_graphics.tbl directory.
Template name
_sae_3_link
Major role
Leaf_spring
Application
Suspension and full-vehicle assemblies
Description
The leaf spring template represents the most common spring design for solid axle suspensions. You can use
the template in conjunction with a front or rear suspension.
388 Adams Car
SAE 3-Link Leaf Spring
This leaf spring is modelled using 3 rigid links connected using two torsional joint attachments. Leaf spring
stiffness depends on the rotational stiffness of torsional joint attachments.
Second stage stiffness is set using the pvs_second_stage_rate and pvs_second_stage_length variables.
Files referenced
Bushing property files.
Topology
The SAE 3-link leaf springs are modelled as a series of 3 rigid bodies connected by two torsional joint
attachments. Bushings connect the leaf spring and shackle to the body mount parts. The leaf spring seat is
connected to the axle during assembly by an output communicator.
The following table lists the topological information of the leaf spring system.
Communicators
Mount parts provide the connectivity from the template to the body subsystem. Output communicators
publish the leaf spring seat part to the appropriate suspension subsystem. The following table lists the input
and output communicators in the template.
Template name
_semi_trailing_arm_advanced
Major role
Suspension
390 Adams Car
Semi-Trailing Arm Advanced Suspension
Application
Suspension and full-vehicle assemblies
Description
This template is identical to the trailing arm suspension template available in acar shared database with the
additional features of design options, toe adjuster and camber adjuster.
These design options can be useful when you want to make changes to groups of entities in the standard
interface. Toe and camber adjuster lets you to adjust the toe and camber desired values at static position.
Files referenced
Bushings, springs, dampers, and bumpstop property files.
Topology
The following tables maps the topology of the trailing arm suspension.
Parameters
These integer parameter variables allow you to activate and deactivate the various configuration options. Only
those parameters additional to the trailing arm suspension template are listed below.
Working with Templates 391
Semi-Trailing Arm Advanced Suspension
1 = Compliant,
2 = Kinematic
pvs_rear_subframe_mounts Integer No units 1 = One,
2 = Two
pvs_subframe_midmounts Integer No units 0 = None,
1 = Front Only,
2 = Rear Only,
3 = Both
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
pvs_perch Integer No units 0 = Inactive,
1 = Active
pvs_number_of_bumpstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_number_of_reboundstops Integer No units 0 = None,
1 = One,
2 = Two
pvs_number_of_springs Integer No units 1 = One,
2 = Two
pvs_toe_adjuster integer No units 1=STA
pvs_camber_adjuster integer No units 1=STA
Communicators
For Communicators details refer to the Trailing Arm Suspension template.
392 Adams Car
Simple Gearbox
Simple Gearbox
Overview
The simple gearbox models a five-speed manual transmission with as few degrees of freedom as possible.
Template name
_simple_gearbox
Major role
Environment
Application
Full-vehicle assemblies
Description
The simple gearbox template models a five-speed manual transmission with only one degree of freedom.
Topology
The model consists of two action-only torque actuators. One applies reaction torque to the flywheel, while
the other applies output torque to the transmission output shaft. The torque is based on a linear stiffness and
damping multiplied by the angular difference between crankshaft and transmission output, scaled by the
current gear ratio.
Parameters
The following table lists the parameters in the template.
Limitations
This template is as simple as possible, so there are many limitations. Use the standard powertrain template or
a Driveline gearbox template if you need more fidelity.
Working with Templates 393
Simple Gearbox
Communicators
The following table lists the communicators in the template.
The communicator: Belongs to the class: Has the role: Matching name:
cis_clutch_demand solver_variable inherit clutch_demand
cis_crankshaft_torque solver_variable inherit crankshaft_torque
cis_engine mount any engine
cis_flywheel mount any flywheel, engine_out
cis_initial_engine_rpm parameter_real any initial_engine_rpm
cis_sse_diff1 differential_equation any sse_diff1
cis_transmission_demand solver_variable inherit transmission_demand
cis_transmission_output mount front transmission_output
cis_transmission_output_omega solver_variable any transmission_output_omeg
a
cos_gear_ratio parameter_variable inherit gear_ratio
cos_max_gears parameter_integer inherit max_gears
cos_output_shaft_location location any transmission_output_shaft_
location,
diff_input_location
cos_powertrain_type parameter_integer any powertrain_type,
gse_powertrain_type
cos_transmission_efficiency parameter_real inherit transmission_efficiency
cos_transmission_input_omega solver_variable inherit transmission_input_omega
cos_transmission_output_orienta orientation any transmission_output_orient
tion ation
cos_transmission_spline spline inherit transmission_spline
394 Adams Car
Solid Axle Suspension
Template name
_solid_axle
Major role
Suspension
Working with Templates 395
Solid Axle Suspension
Application
Suspension and full-vehicle assemblies
Description
The solid axle suspension template represents a common rear dependent suspension design. It does not
include any locating links such as trailing arms or a panhard rod. The suspension is non-steerable and
intended to be used as a rear suspension only. The model does include axle shafts that connect to the rear
differential outputs.
Files referenced
Spring, damper, and bushing property files.
Topology
The axle housing attaches to leaf springs through the use of mount parts. Axle shafts attach to rear differential
outputs. The axle shafts are intended to attach to the wheels.
The following table maps the topology of the solid axle suspension.
Parameters
The only parameter is the kinematic flag, which controls the activity of the bushings and joints that connect
the dampers to the axle and chassis.
Communicators
The following table lists the Communicators in the template.
396 Adams Car
Solid Axle Suspension
Template name
_solid_axle_trailing_arm
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Description
The Solid axle trailing arm suspension is a dependent suspension model intended for use only as a rear
suspension. Trailing arm link is modelled using beam elements. It can be used with Coil or Air spring.
This template has design options to set pan hard rod and hub compliance active or inactive.
398 Adams Car
Solid Axle Trailing Arm Suspension
This model does not include axle shafts that connect to the rear differential outputs.
Files referenced
Spring, damper, and bushing property files.
Topology
The following table maps the topology of the Solid Axle trailing arm suspension.
Parameters
The following table lists the parameters in the template. These integer parameter variables allow you to
activate and deactivate the various configuration options.
Communicators
The following table lists the Communicators in the template.
Template name
_stabilizer_bar
Major role
antirollbar
Application
Suspension and full-vehicle analyses
Description
This stabilizer bar template provides a beam element model of stabilizer bar (also known as anti-roll bar). It
consists of several rigid body parts connected by beam forces. The outer radius and inner radius are
parameterized, allowing you to model a solid or hollow cross-section.
Additionally, user can switch the droplink to spring damper configuration by setting parameter variable
pvs_droplink_active to 0.
Working with Templates 401
Stabilizer Bar system
Files referenced
Bushing property files
Topology
Left and right bushings attach the bar to the body or to the suspension subframe. Drop links transmit the
suspension motion to the bar ends. The drop links attach to the suspension with spherical joints connector
and to the bar ends with convel joints connector.
The following table maps the topology of the stabilizer bar system template.
Limitations
The anti-roll bar system template represents an approximation of a stabilizer bar. For more complex solutions
(for example, complex ARB geometry or large deflections), you would need to create a more accurate
representation of the bar using flexible bodies or FE parts.
Parameters
When you turn on the spring damper configuration you can specify the stiffness and damping using
parameter variables.
1 = Rigid link
pvl_link_spring_rate Real Stiffness
pvl_link_damping_rate Real Damping
Communicators
Refer to Anti-roll bar system (discrete flexible links).
Additional output communicators are listed below:
Trailer
Overview
This template represents a solid axle suspension typically used on trailers along with design options to
configure it with different trailer body, hitch configurations, number of trailer cargo parts, load equalizer,
number of trailer axles and hub compliance.
Template name
_trailer
Major role
Suspension
Application
Suspension and Full-vehicle analysis
Description
This template represents few of the below trailer suspension configurations…
a. simple rigid axle suspension with springs.
b. simple independent trailing arm suspension with torsional springs
c. simple independent trailing arm suspension with spherical joint and bushing
Working with Templates 403
Trailer
Additionally, below design options are available to configure this trailer suspension.
The trailer body is modeled with two configuration options: Simple and Advanced. These configurations can
be changed using the design options Trailer Body Configuration.
The number of trailer axles can be set using design option "Number of Trailer Axles".
The axle is modeled with three options: Solid Axle, Trailing Arm with Torsion Spring and Trailing Arm with
Bushing. These configurations can be changed using the design options Trailer Axle Configuration. This defines
trailing arm attachment with the trailer body.
The Hitch Joint Method options will determine whether hitch configurations modelling is Kinematic or
Compliant or Lock (fix Joint).
The hitch is modeled with three options: Standard, Goose Neck and Fifth Wheel. These configurations can
be changed using the design options Hitch Configuration. This defines trailer body attachment with the truck or
body.
In Fifth Wheel Hitch Configuration, joint between fifth wheel head support and vehicle body is modeled as
either a revolute/bushing (x axis motion) or a fixed joint (no x axis motion) this can be changed using design
option Fifth Wheel Motion.
Load Equalizer design option used to activate or deactivate spring bar and associated forces and constraints
which are used for load levelling or weight distribution
The number of trailer cargo parts can be set using design option "Number of Trailer Cargo Parts". You can add
four trailer cargo parts.
You can activate or deactivate the effect of Hub Compliance using the pvs_hub_compliance parameter variable
or using design option Hub Compliance.
Files referenced
Bushings, springs, damper files
Topology
Hub parts are connected to the solid axle via rotational joints. The trailer wheel template
(trailer_wheels_dual.tpl) mounts to the hubs. The suspension is connected to the truck (body) subsystem via
mount parts at the hitch joint.
The following table details the topologies for different configuration options.
404 Adams Car
Trailer
Parameters
These integer parameter variables allow you to activate and deactivate the various configuration options.
2 = Two
pvs_trailer_body_configuration Integer No units 1 = Simple
2 = Advanced
pvs_trailer_axle_configurations Integer No units 0 = Solid Axle
1 = Kinematic
2 = Compliance
pvs_hitch_configuration Integer No units 1 = Standard
2 = Goose Neck
3 = Fifth Wheel
Working with Templates 407
Trailer
2= Allow X Rotation
pvs_load_equalizer Integer No units 0 = Inactive, 1 = Active
pvs_number_of_trailer_cargo_parts Integer No units 0 = None
1 = One
2 = Two
3 = Three
4 = Four
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
pvs_damper Integer No units 0 = Inactive,
1 = Active
Communicators
Mount parts provide the connectivity to the trailer and wheel subsystems. Input communicators receive
information about the toe and camber suspension orientation and the wheel-center location.
The following table lists the communicators in the template:
Template name
_trailer_wheels_dual
Major role
Wheel
Working with Templates 409
Trailer Wheels Dual
Application
Full-vehicle analyses
Description
The dual wheel system template consists of wheel parts rigidly connected to mount parts. The tire contact
patch forces are transformed in forces and torques applied at the hub. A series of user-written subroutines
perform the force calculation depending on the tire property file that you selected. The road property file
determines the road contact model. For additional information about using tire and road models, see the
Adams Tire online help.
Dual Wheel Axle1 and Dual Wheel Axle2 design options will help to activate and deactivate dual wheels on
axle1 and axle2 respectively.
The number_of_trailer_axles input communicator used to activate and deactivate rear axle wheels which gets
parameter integer value from number_of_trailer_axles output communicator from trailer template.
Files referenced
The wheel system template references a tire property file for each wheel part. The default tire property file is
pac2002_315_80R22_5.tir, stored in the tires.tbl directory of the Adams Car shared database.
Topology
The outside and inside wheel are rigidly connected by fixed joint, and the inside wheel in turn is connected
to spindle.
Communicators
Mount parts provide connectivity to the suspension subsystems, and output communicators publish
information about tire forces and wheel orientation. Tire force output communicator is used by the drive axle
template in order to evaluate the halfshaft angular velocity during a quasi-static analysis. The halfshaft
velocity contributes to the calculation of the engine speed during quasi-static analysis.
The following table lists the communicators in the wheel system template.
Template name
_trailing_arm_advanced
Major role
Suspension
Application
Suspension and full-vehicle assemblies
412 Adams Car
Trailing Arm Advanced Suspension
Description
This template is identical to the double wishbone advanced template for configuration like double ball joint
lower control arm option and single link upper control arm. The tierod is not included, as it is used for rear
suspension.
There are four trailing arm configuration options: 3 beam, torsional spring, upper-lower spindle, upper-lower
control arms. These configurations can be changed using the design option Trailing Arm Suspension.
Files referenced
Bushings, springs, dampers, and bumpstop property files.
Topology
The following tables maps the topology of the trailing arm suspension.
Parameters
These integer parameter variables allow you to activate and deactivate the various configuration options. Only
those parameters additional to the Double Wishbone Advanced Suspension template are listed below.
Takes the
The parameter: value: Its units are: Description
pvs_trailing_arm_configuration Integer No units 1 = 3 Beam,
2 = Torsion Spring,
3 = Upper-Lower Upright,
Communicators
Communicators additional to the Double-Wishbone Suspension template are listed below
Template name
_twist_beam
Major role
Suspension
416 Adams Car
Twist Beam Suspension
Application
Suspension and full-vehicle assemblies
Description
This twist beam suspension template is an enhancement of the standard Twist Beam Suspension. It does not
include a subframe. The suspension is non-steerable and intended to be used as a rear suspension only.
The center section of the twist beam is a flexible body generated using ViewFlex. The flexible body is attached
to the trailing arms, which are modeled using non-linear beams (discrete flexible links).
Files referenced
Spring, damper, and bushing property files. The flexible body references the file
<acar_concept>/flex_bodys.tbl/fbs_main_beam.mnf. If you wish to change the flex body geometry, use
ViewFlex and load the file <acar_concept>/flex_bodys.tbl/fbs_main_beam.afi.
Topology
The following table maps the topology of the twist beam suspension.
Parameters
In the twist beam suspension, toe and camber variables parameterize wheel spin axis, spindle part, and spindle
geometry. The following table lists the parameters in the template.
Communicators
The following table lists the communicators in the template.
Template name
_twist_beam_advanced
Major role
Suspension
Application
Suspension and full-vehicle assemblies
Description
This twist beam suspension template is an enhanced version of the standard Twist Beam Suspension. It does not
include a subframe. The suspension is non-steerable and intended to be used as a rear suspension only.
Apart from standard Flexible body using modal neutral file, there are other nine configuration modelled into
this template.
This template has options to model different twist beam configuration such as "2-piece twist with 1 beam
trailing arm", "3-piece twist with 1 beam trailing arm", "Beam twist with 1 beam trailing arm", "Arm and
half axle", "Curved beam twist with 1 beam trailing arm", "2-piece twist with 2 beam trailing arm", "3-piece
twist with 2 beam trailing arm", "Beam twist with 2 beam trailing arm", "Curved beam twist with 2 beam
trailing arm" and "Flexible body".
These configurations can be changed using the design options Twist Beam Configuration.
Files referenced
Bushings, springs, dampers, and bumpstop property files. The flexible body references the file < acar_shared
>/flex_bodys.tbl/ PonteV.mnf.
Topology
The following tables maps the topology of the twist beam advanced suspension.
Parameters
These integer parameter variables allow you to activate and deactivate the various configuration options. Only
those parameters additional to the Twist Beam Suspension template are listed below.
424 Adams Car
Twist Beam Advanced Suspension
10 = Flexible body
pvs_spindle_compliance Integer No units 0 = Inactive
1 = Active
pvs_panhard_rod_active Integer No units 0 = Inactive
1 = Active
pvs_bush_angle Real Angle Bush angle for trailing arm to body bush
Communicators
Refer to standard Twist Beam Suspension.
Working with Templates 425
Twin I-Beam Suspension System
Template name
_twin_I_beam
Major role
Suspension
Application
Suspension and full-vehicle assemblies
426 Adams Car
Twin I-Beam Suspension System
Description
This template models a simple and robust swing axle design that has been used on millions of pickup trucks
since the 1960s. It is meant to be used as a front suspension, paired with a steering template such as the
Draglink Steering System.
Files referenced
Bushing, spring, damper, bumpstop and reboundstop property files.
Topology
Bushings attach the radius arms and axles to the chassis. Springs, dampers, bumpstops and reboundstops act
on either the radius arms or axles. The following table maps the topology of the template.
Parameters
Toe and camber variables define the static wheel spin axis geometry. There are also alignment adjusters that
can be used to set the alignment at the desired load and/or wheel travel. The following table lists the
parameters in the template.
Working with Templates 427
Twin I-Beam Suspension System
Communicators
Mount parts provide the connectivity from the template to body subsystems and steering. Output
Communicators publish toe, camber, steer axis, and wheel center location information to the appropriate
subsystems and the test rig. The following table lists the input and output communicators.
Note: The integer parameter variable pvs_hub_compliance lets you activate and deactivate
the Hub Compliance.
Reviewing Results
Requests
Requests contain standard displacement, velocity, acceleration, or force information that can help you
investigate the results of simulations. You can also define other quantities (such as pressure, work, energy,
momentum, and more) that you want output during a simulation.
Adams stores the requests in request files (.req) and/or results files (.res).
For more examples, investigate templates in the shared database that have the group kinematic_mode_active,
which is used for the Kinematic Mode option.
Request 907
Request 907 (req907) outputs displacement, velocity, accelerations, and body side-slip angle depending on
the value of par(2) in the parameter list. Req907 is compatible with both dynamic and steady-state type
analyses.
Input:
REQ/id, FUNCTION = USER(routing_code,type,imarker,jmarker,rmarker,scale,
int_branch, zerolim)
Routine= abgVDM::req907
where:
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
type = request type
If set to zero, translational velocity outputs are converted to MPH, for other
values they are converted to KPH.
int_branch = Used only for the lateral acceleration reported during "straight" and "skidpad"
analysis
zerolim = Result values smaller than zerolim (default is 1e-7) are returned as zero
2. During dynamics and non steady-state statics ("none", "settle"...) req907 calls sysfnc and sysary
directly, but during steady-state static analyses ("straight" and "skidpad"), also leverages req1090 and
direct access to the consub performing the analysis to get values consistent with the steady-state
conditions imposed for those solutions. Specifically, during "straight" and "skidpad" solutions:
• for displacements: "longitudinal", "lateral", "vertical" and "yaw" are obtained directly from
SYSARY and SYSFNC, but roll" and "pitch") are obtained from req1090;
• for velocities: "longitudinal" and "yaw" are obtained from req1090 and all other components
are always zero;
• for accelerations: "longitudinal" is obtained directly from the consub performing the analysis,
"lateral" is obtained from req1090 and all other components are always zero;
• for body sideslip: side_slip_angle" is obtained from req1090 and the other components are
always zero.
Plot configuration files are TeimOrbit files and are stored in your database in the plot_configs.tbl directory.
See TeimOrbit File Format.
You can access the plot configuration file functionality in Adams PostProcessor. Learn about creating a plot
configuration file through the interface. Learn about using plot configuration files.
Note: To modify plots and curves, you can use the command statement in each block to invoke
macros, which must contain the modification commands. The macros must be contained in
your current binary file, which can be either private or site.
2. From the File menu, point to Import, and then select Plot Config File.
The File Import dialog box appears.
3. In the Analyses text box, enter the analysis or analyses from which you want to view results.
4. In the Plot Configuration File text box, enter the name of the plot configuration file defining the
plots that you want to view.
5. In the Plot Title text box, enter the title to appear at the top of the plots.
6. Select Cross Plotting to plot analysis data on existing plots containing data from other analyses.
If you selected multiple analyses in the Analyses text box, your template-based product automatically
plots the data from the different analyses on the same plots.
7. If you have customization command keywords in the plot configuration file you selected in Step 4,
then select Execute Custom Macro.
Your template-based product invokes the macro which executes any commands that customize the
plots.
8. Select OK.
6. Specify the text or images for the header/footer of the pages. To do this, select the required page and
point to Header or Footer tabs shown at the bottom left area. Each of these tabs have subtabs like
Left, Center and Right. You can specify the text/image for them. To specify image for the
header/footer. Select any of these subtabs and set the Source to Image. This displays the Image field
below the Source field. You can double-click in this field and browse to the required image for the
header/footer in any location - Left, Center or Right.
7. Customize the appearance of legend, axes, curve, date and analysis stamp as per your requirement. To
do this, you can select these entities from the plot or select their entries from the tree view. Depending
on the type of entity, various options/tabs are available in the lower left corner to modify associated
properties.
8. From the File menu, point to Export, and then select Plot Configuration File.
The Save Plot Configuration File dialog box appears.
9. In the Configuration File Name text box, enter the name for the plot configuration.
10. If you want to include all pages currently in the Plotting window, select All Pages.
11. If you did not select All Pages, in the Page Name(s) text box, enter the names of the pages that you
want to include in the plot configuration file.
12. In the Plots and Curves text boxes, enter command keyword to invoke the macro that customizes
the plots and curves.
Your template-based product saves the command keyword with your plotting configuration file. After
it creates the plots and curves, your plotting configuration file invokes the macro which contains the
commands.
13. Select OK.
14. This exports the plot configuration file with the specified name. If you specify images for the
header/footer of any page, these image files are copied to the location where the plot configuration
file is saved.
Header/Footer data: This section will be present only if you have specified text/image for any section
(Left, Center or Right) of Header or Footer. The entries are present only for those sections for which the
text/image is specified.
command_keyword
After your template-based product creates each plot, it executes the following commands if you defined a
command keyword:
acar custom_plots <command_keyword> & plot_name=<plot_name>
The command acar custom_plots <command_keyword> must already be created in the current
session, either interactively or already present in the acar.bin, file.
LEGEND_TEXT
COLOR
red, blue, yellow, magenta, cyan, black, white, skyblue,
midnight_blue, blue_gray,dark_gray, silver, peach, maize
STYLE
solid, dash, dotdash, dot
SYMBOL
none, x, o, plus, star, at
LINE_WEIGHT
Real value from 1-4
COMMAND
command_keyword
HOTPOINT
INCREMENT_SYMBOL
After your template-based product creates each curve, it executes the following commands if you defined a
command keyword:
acar custom_plots <command_keyword> &
analysis=<analysis> &
plot_name=<plot_name> &
vertical_data=<y> &
horizontal_data=<x> &
curve_name=<curve_name>
The command acar custom_plots <command_keyword> must already be created in the current
session, either interactively or already present in the acar.bin, file.
$---------------------------------------------------------------PLOT_CURVE
[PLOT_CURVE]
NAME = 'new_curve_1'
PLOT = 'my_plot'
VERTICAL_AXIS = 'vaxis'
HORIZONTAL_AXIS = 'haxis'
HORIZONTAL_EXPRESSION = 'toe_angle.TIME'
HORIZONTAL_COMPONENT = 'toe_angle.TIME'
VERTICAL_EXPRESSION = 'toe_angle.left'
VERTICAL_COMPONENT = 'toe_angle.left'
Y_UNITS = 'no_units'
X_UNITS = 'time'
LEGEND_TEXT = '1029:Toe angle.left'
COLOR = 'red'
STYLE = 'solid'
SYMBOL = 'NONE'
LINE_WEIGHT = 2.0
HOTPOINT = 0.0
INCREMENT_SYMBOL = 1.0
$----------------------------------------------------------------PLOT_CURVE
[PLOT_CURVE]
NAME = 'new_curve_2'
PLOT = 'my_plot'
VERTICAL_AXIS = 'vaxis'
HORIZONTAL_AXIS = 'haxis'
HORIZONTAL_EXPRESSION = 'steer_angle.TIME'
HORIZONTAL_COMPONENT = 'steer_angle.TIME'
VERTICAL_EXPRESSION = 'steer_angle.right'
VERTICAL_COMPONENT = 'steer_angle.right'
Y_UNITS = 'no_units'
X_UNITS = 'time'
LEGEND_TEXT = '1031:Steer Angle.right'
COLOR = 'blue'
STYLE = 'dash'
SYMBOL = 'NONE'
LINE_WEIGHT = 2.0
HOTPOINT = 0.0
INCREMENT_SYMBOL = 1.0
Report Templates
Introduction
A report template is a text file with the .rtp extension which Adams uses to generate a report. The text
surrounded by double braces (for example, {{front_axle_load}}) will be replaced by the appropriate text when
generating a report. The contents of the double braces must be the name of a Channel or Metric, as described
below.
Report templates are stored in the report_templates.tbl table in each CDB.
360 Adams Car
Report Templates
Channels
Channels are the conduit between the results of an analysis and the reporting framework. They are defined
as follows:
For example, Channels representing normal tire forces could be defined as follows:
Metrics
Metrics allow you to process results data and customize how it will be formatted in a report.
There are several varieties of Metric which are explained below:
1. Metric
2. TableMetric
3. PolyMetric
4. CustomMetric
Reviewing Results 361
Report Templates
1. Metric
The basic Metric takes some number of Channels as inputs, performs some predefined processing on the
Channel data, and then outputs a single numerical value. They are defined as follows:
The Compute Function allows you to specify a Python command to execute which uses the data from a
Channel. The Compute Function should contain pairs of braces indicating where in the command the
Channel data should be used. Moving left to right, each pair of braces will be replaced with the data from the
corresponding Channel from the Input Channel list. Note that the data returned by the Channel will be of
type list.
The namespace in which the Compute Function is executed can be assumed to contain the standard built-in
Python functions, every name from the math module, and the numpy module.
The following examples reference the Channels defined above:
2. TableMetric
A TableMetric can be used to display a table in a report. You may specify a Channel as the independent data
for the table, and some number of Channels as the dependent data. Similar to a basic Metric, a TableMetric
is defined as follows:
362 Adams Car
Report Templates
3. PolyMetric
A PolyMetric computes a fitted polynomial approximating the relationship between a pair of data sets. They
are defined as follows:
When you define a PolyMetric, another set of Metrics called PolynomialCoefficients are automatically
created as well, representing the individual coefficients of the PolyMetric. A PolynomailCoefficient can be
referenced by adding a colon followed by the order of the desired coefficient. For example
ltoe_wheel_travel_polyfit:2 computes the order-two coefficient of ltoe_wheel_travel_polyfit.
When included in a report template, a PolyMetric will be displayed in the form
A + Bx^1 + Cx^2 + ...
The following examples define PolyMetrics that approximate toe angle as a function of wheel travel:
Y X
Type Name Description Channel Channel Order
PolyMetric ltoe_wheel_travel_poly Left toe vs. wheel travel (2nd ltoe liwtravel 2
order polynomial)
PolyMetric rtoe_wheel_travel_poly Right toe vs. wheel travel (2nd rtoe riwtravel 2
order polynomial)
4. CustomMetric
A CustomMetric allows for more advanced processing by allowing you to call code from an external Python
script that you have written. CustomMetrics are defined as follows:
A report generated from this report template would look like the following:
=====================================================================
= FULL VEHICLE ANALYSIS RESULTS =
=====================================================================
To set parameters:
1. From the Simulate menu, point to Suspension Analysis, and then select Set Suspension Parameters.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Setup
Parameters.
3. Select OK.
Compliance Analysis
The compliance event analysis used to evaluate suspension compliance under various loading conditions like
lateral (inboard/outboard), longitudinal (fore/aft), aligning torque and lateral force offset
Running Analyses 363
Running Suspension Analyses
External-File Analyses
You can perform two types of external-file analyses:
Loadcase Analysis
Wheel-Envelope Analysis
Loadcase Analysis
A loadcase analysis reads the analysis inputs (for example, vertical wheel travel, steering travel, and static
loads) from one or more existing loadcase files. When you supply more than one loadcase file, Adams Car
performs one analysis for each loadcase file. See an Example Suspension Loadcase File.
A loadcase analysis requires a suspension subsystem.
Each loadcase analysis produces a separate set of output files, such as .gra, .req, and .out.
Wheel-Envelope Analysis
A wheel-envelope analysis generates wheel-center positions and orientations for use in packaging the
wheel/tire within the wheel well (fender). The analysis sweeps the wheels through their vertical and steering
travel in fixed increments based on information stored in a wheel-envelope input file (.wen). The positions
and orientations for the left and right wheel centers are output to a wheel-envelope output file (.wev) for
import into computer-aided design (CAD) packages. See an Example Wheel-Envelope Input File and Example
Wheel-Envelope Output File.
A wheel-envelope analysis requires suspension and steering subsystems.
A wheel-envelope input file has the same format as a static loadcase file, however, Adams Car ignores columns
three through ten: left and right lateral force, aligning torque, brake force, and driving force.
You can create or modify wheel-envelope input files using the Curve Manager.
3. Press F1 and then follow the instructions in the dialog box help for External Files.
4. Select OK.
Steering Analysis
A steering analysis steers the wheels over the specified steering-wheel angle or rack travel displacement from
the upper to the lower bound. The application of steering motion results in a wheel displacement at the
specified wheel height.
A steering analysis requires a suspension and a steering subsystem.
Wheel-Travel Analyses
A wheel-travel analysis allows you to look at how the characteristics of a suspension change throughout the
vertical range of motion of the suspension.
You can perform three types of wheel-travel analyses. As a minimum, all wheel-travel analyses require a
suspension subsystem. These analyses can also include a steering subsystem.
Opposite Wheel-Travel Analysis
Parallel Wheel-Travel Analysis
Single Wheel-Travel Analysis
The force limits for the left/right_vertical jack force are implemented as real numbers and are defaulted to -
2.0E+04 and 4.0E+04 Newton.
You can modify the force limits in the Template Builder using the actuator modify dialog box (because
actuators in Adams Car are a topological element) or using the Command Navigator and modifying the
corresponding variables.
For example, to modify the left-side actuator force limits from the default values in the Standard Interface
after having an assembly already opened, you go to: Tools -> Command Navigator -> Variable -> Modify.
In the Variable Modify dialog box, select the desired limit variable
(.assembly.testrig.jfl_jack_force.force_limits, in this case) and modify the values to the new force limits.
3. Select OK.
ground as the suspension is articulated through its ride, roll, and steer motions. For example, the orientation
of the spindle axes is used to compute the toe and camber angles.
The suspension compliance matrix refers to incremental movements of the suspension due to the application
of incremental forces at the wheel centers. Adams Car computes the suspension compliance matrix at each
solution position as the suspension is articulated through its motion. Characteristics such as suspension ride
rate and aligning torque camber compliance are computed based on the compliance matrix.
The suspension and steering characteristics are based on:
Steer Axis Computation
Definition of Compliance Matrix
From this perspective, matrix element cij is the displacement of system degree of freedom i due to a unit force
at degree of freedom j.
Adams Car uses a 12 x 12 matrix relating the motion of the left and right wheel centers to units forces and
torques applied to the wheel centers. This matrix has the form shown next:
368 Adams Car
Running Suspension Analyses
For example, element C(3,3) is the vertical motion of the left wheel center due to a unit vertical force applied
at the left wheel center. Element C(3,9) is the vertical motion of the left wheel center due to a unit vertical
force applied at the right wheel center. For an independent suspension without a stabilizer bar, C(3,9) is zero
since a vertical force on the right wheel will not cause motion of the left wheel. The other elements of the
compliance matrix are defined similarly.
Geometric Method
Using the geometric method, Adams Car calculates the steer axis by passing a line through two non-
coincident points located on the steer axis. To use the geometric method, you must identify a part or parts
and two hardpoints that fix the steer axis.
For example, in a double wishbone suspension you might identify the wheel carrier part and Hardpoints located
at the upper and lower ball joints. For a MacPherson strut suspension, you might identify the wheel carrier
part and a hardpoint located at the lower ball joint for one point, and the strut rod and a hardpoint located
where the strut attaches to the body for the second point.
Dynamic Analysis
A dynamic analysis actuates the suspension at the contact patch via user defined runtime function expressions
or by referencing existing RPC3 files. You can drive the testrig's vertical actuators with forces, displacements,
velocities, or accelerations. You can also specify wheel forces (for example, cornering force, overturning
moment and so on.) as functions of time using function expressions or by referencing existing RPC3 files.
370 Adams Car
Running Suspension Analyses
For steerable assemblies, it is also possible to define a runtime function expression or by referencing existing
RPC3 files for the steering motion, thereby combining vertical excitation with steering sweeps.
If your subsystem(s) contain adjustable forces for performing automatic suspension alignment, and the
adjustable forces are currently active, a static analysis will be performed prior to the dynamic analysis. The
adjustable forces will perform the alignment during this static analysis, according to your selection of Vertical
Setup Mode. Vertical Setup Mode allows you to control whether the alignment is performed at wheel center
travel = 0 or contact patch travel = 0. After the static analysis, the adjustable forces will be locked in their
aligned position, and deactivated for the following dynamic analysis. After the dynamic analysis has
completed, any adjustable forces that were previously active will be returned to their active state.
Note that the Computation of Suspension and Steering Characteristics is available for dynamic suspension analyses
with the C++ Solver, but results are limited if you set the Jack Excitation Mode to a motion (displacement,
velocity, or acceleration).
Note: For wheel-envelope input files, Adams Car ignores columns three through ten: (left and
right) lateral force, aligining torque, brake force, and driving force.
$--------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'wen'
FILE_VERSION = 5.0
FILE_FORMAT = 'ascii'
$--------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
FORCE = 'newton'
ANGLE = 'deg'
MASS = 'kg'
TIME = 'sec'
$--------------------------------------------MODE
[MODE]
STEERING_MODE = 'angle'
VERTICAL_MODE = 'length'
$--------------------------------------------GRID
[GRID]
BOUNDARY_STEERING_GRID = 100.0
BOUNDARY_WHEEL_GRID = 20.0
INTERIOR_STEERING_GRID = 100.0
INTERIOR_WHEEL_GRID = 20.0
$--------------------------------------------DATA
372 Adams Car
Running Suspension Analyses
[DATA]
$COLUMN: input type: type of input data: side:
$ (c1) wheel z disp / force left
$ (c2) wheel z disp / force right
$ (c3) lateral force (y) left
$ (c4 lateral force (y) right
$ (c5) aligning torque (z-axis) left
$ (c6) aligning torque (z-axis) right
$ (c7) brake force (y) left
$ (c8 brake force (y) right
$ (c9) driving force (y) left
$ (c10) driving force (y) right
$ (c11) steering steer angle / rack travel
$ {whl_z_l whl_z_r lat_l lat_r align_l align_r brake_l brake_r
drive_l drive_r steer}
-120.0 -120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -500.0
80.0 80.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -500.0
90.0 90.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -300.0
120.0 120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -200.0
120.0 120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200.0
85.0 85.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 350.0
80.0 80.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
60.0 60.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
30.0 30.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 450.0
-30.0 -30.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 450.0
-75.0 -75.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
-120.0 -120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
1 -4.2702 -673.57 205.00 -348.83 -1611.7 170.29 7.0293 670.69 205.00 303.63 1620.7 107.88
2 -4.6463 -681.45 225.00 -344.63 -1621.7 206.15 6.7629 678.55 225.00 307.97 1628.3 139.91
3 -4.9532 -687.82 245.00 -340.16 -1630.0 239.60 6.5706 684.92 245.00 311.28 1634.4 170.26
4 -5.2433 -692.82 265.00 -334.67 -1637.0 271.40 6.3755 689.93 265.00 314.35 1639.0 198.89
5 -5.5240 -696.55 285.00 -328.07 -1643.0 301.70 6.1779 693.66 285.00 317.43 1642.1 225.76
6 -5.7905 -699.08 305.00 -320.38 -1648.0 330.44 5.9864 696.18 305.00 320.67 1643.8 250.76
7 -6.0372 -700.45 325.00 -311.59 -1652.1 357.51 5.8099 697.55 325.00 324.25 1644.1 273.76
8 -6.2583 -700.71 345.00 -301.72 -1655.3 382.78 5.6583 697.79 345.00 328.31 1643.0 294.55
9 -6.4469 -699.89 365.00 -290.74 -1657.8 406.03 5.5424 696.93 365.00 333.04 1640.3 312.88
10 -6.5953 -698.01 385.00 -278.64 -1659.4 426.98 5.4752 695.00 385.00 338.63 1636.2 328.39
... .......
Description The aligning torque steer compliance is the change in steer angle due to unit
aligning torque on the wheel. The aligning torque camber compliance is the
change in camber angle due to a unit aligning torque on the wheel.
A positive aligning torque acts to steer the wheel to the left. For a positive steer
angle, the wheel turns to the left. For a positive camber angle, the top of the
wheel tilts away from the body.
Units Angle/(Force*Length)
Running Analyses 375
Output of Suspension Analyses
Camber Angle
Description Camber angle is the angle the wheel plane makes with respect to the vehicle's vertical
axis. It is positive when the top of the wheel leans outward from the vehicle body.
Note that the inclination angle, a measurement available in full-vehicle analyses, is the
angle the wheel plane makes with respect to the road surface. The inclination angle is
used for tire calculations.
Units Angle
Request Names camber_angle.left
camber_angle.right
376 Adams Car
Output of Suspension Analyses
Inputs Wheel-center axis (spin axis) unit vectors, left and right
Method camber_angle = -arcsin ( Ŝ°Ẑ )
Caster Angle
Description Caster angle is the angle in the side elevation (vehicle XZ plane) between the
steering (kingpin) axis and the vehicle's vertical axis. It is positive when the steer
axis is inclined upward and rearward.
Adams computes the steer axis using the geometric or instant axis method.
Units Angle
Request Names caster_angle.left
caster_angle.right
Running Analyses 377
Output of Suspension Analyses
sx = steer_axis road_x_axis
sz = steer_axis road_z_axis
caster_angle = rtod * arctan(sx/sz)
Description Dive braking is the amount of front suspension compression per G of vehicle
braking. Included in dive is suspension compression due to weight transfer plus
suspension extension due to brake forces. Positive dive indicates that the front
suspension compresses in braking.
Lift braking is the amount of rear suspension extension per G of vehicle braking.
Included in lift is suspension extension due to weight transfer plus compression due
to brake forces. Positive lift indicates that the rear suspension extends in braking.
Units Length/g
Request Names dive.left
dive.right
378 Adams Car
Output of Suspension Analyses
These are forces at each wheel per unit total braking force.
Description The stiffness of the suspension in the fore-aft direction is relative to the body,
measured at the wheel center.
Units Force/Length
Request Names fore_aft_wheel_center_stiffness.left
fore_aft_wheel_center_stiffness.right
Inputs Compliance matrix
Method Adams applies equal unit forces acting longitudinally at the wheel centers. It
calculates the fore-aft wheel center stiffness as follows:
fore_aft_wheel_center_stiffness.left = 1 /
C(1,1)
fore_aft_wheel_center_stiffness.right = 1 /
C(7,7)
Description The swing arm is the imaginary arm extending from the wheel's front elevation
instant center of rotation to the wheel center. The swing arm has a positive length
when the instant center is inward of the wheel center. The angle of the swing arm
is the angle it makes to the horizontal. A positive angle is when the arm slopes
outward and upward from the center of rotation to the wheel center.
Method The change in vertical and lateral position and the front view rotation of the left
wheel center due to a unit vertical force at the left wheel center is:
ΔY left = C ( 2, 3 )
ΔZ left = C ( 3, 3 )
Δ∅ left = C ( 4, 3 )
The left front view swing arm length and angle are:
2 2 1⁄2
fr_view_swing_arm_length.left = – ( ΔY left + ΔZleft ) ⁄ Δ∅ left
–1
fr_view_swing_arm_angle.left = – tan ( ΔY ⁄ ΔZ left )
left
The change in vertical and lateral position and the front view rotation of the right
wheel center due to a unit vertical force at the right wheel center is:
ΔY right = C ( 8, 9 )
ΔZ right = C ( 9, 9 )
Δ∅ right = C ( 10, 9 )
Running Analyses 381
Output of Suspension Analyses
The right front view swing arm length and angle are:
2 2 1⁄2
fr_view_swing_arm_length.right = ( ΔY right + ΔZ right ) ⁄ Δ∅ right
–1
fr_view_swing_arm_angle.right = tan ( ( ΔY right ) ⁄ ( ΔZ right ) )
Description The kingpin inclination angle is the angle in the front elevation between the steer axis
(the kingpin axis) and the vehicle's vertical axis. It is positive when the steer axis is
inclined upward and inward.
Units Angle
Request Names kingpin_incl_angle.left
kingpin_incl_angle.right
382 Adams Car
Output of Suspension Analyses
Kingpin Location
Description The kingpin location is the location in global coordinates of a point on the wheel part
that does not translate when steered about the kingpin axis.
Units Length
Request Names kingpin_location.left_X
kingpin_location.left_Y
kingpin_location.left_Z
kingpin_location.right_X
kingpin_location.right_Y
kingpin_location.right_Z
Running Analyses 383
Output of Suspension Analyses
A point on the kingpin axis will not translate due to a steer input. To find this point
relative to the wheel center, compute a radius vector from the wheel center to the
kingpin axis such that:
0 = T + R X A
Solving this equation for R yields:
R = -T X A / (|A|*|A|)
To locate the Kingpin axis add R to the wheel center position:
kppos = wcpos + R
Alternatively, if the user selects the Steer Axis Calculation method Geometric, Adams
will use the I Coordinate Reference as the kingpin location. This method relies on the
user to select an appropriate location. Due to suspension compliance, the resulting
location may be slightly different than the input location.
Description The deflections at the wheel center due to unit lateral forces applied simultaneously at the
tire contact patches. The forces are oriented as if in a right turn. Adams reports the lateral
translational deflection, steer deflection (rotational deflection about the vertical axis), and
the camber deflection (rotational deflection about the longitudinal axis). Positive deflection
indicates a deflection to the right. Positive steer is a steer to the left. Positive camber
compliance is when the wheels lean outward at the top.
Units Deflection - length; Camber and steer - angle
Request lat_force_defl_compliance.left
Names lat_force_defl_compliance.right
lat_force_steer_compliance.left
lat_force_steer_compliance.right
lat_force_camber_compliance.left
lat_force_camber_compliance.right
Running Analyses 385
Output of Suspension Analyses
Figure 6 Lateral Force Loading for Deflection, Steer, and Camber Compliances
Lift/Squat Acceleration
Description Lift is the amount of front suspension extension (rebound) per G of vehicle
acceleration. Squat is the amount of rear suspension compression (jounce) per G of
vehicle acceleration. Lift and squat arise when the suspension reacts to longitudinal
tractive forces, weight transfer forces, and, in dependent suspensions, to the
differential input and output torques.
Units Length/g
386 Adams Car
Output of Suspension Analyses
lift.left
lift.right
Rear suspensions:
squat_acceleration.left
squat_acceleration.right
Inputs Compliance matrix
suspension_type (independent/dependent)
Vehicle parameters array:
sprung_mass
cg_height
wheelbase
loaded_tire_radius
tire_stiffness
axle_ratio (final drive ratio, pinion ring gear ratio)
drive_ratio (fraction of total drive torque directed to the suspension)
Suspension geometry:
Track
Acceleration due to gravity (Ag)
Running Analyses 387
Output of Suspension Analyses
Method The suspension lift or squat during acceleration arises due to the tractive forces,
weight transfer, and, in live axles, due to the differential input and output torques,
as well. The longitudinal tractive forces at the tire contact patches are:
Description Percent anti-dive braking for a front suspension and percent anti-lift braking for a
rear suspension are the ratio of vertical suspension deflections caused by braking
forces and torques to the deflections caused by weight transfer. During braking, the
vertical deflections in a suspension from weight transfer can, in part, be cancelled by
the vertical deflections caused by braking forces and torques in the suspension.
Suspensions that exhibit this characteristic are said to have anti-dive or anti-lift
geometry.
For front suspensions, percent anti-dive braking is positive when deflections caused
by braking forces and torques act to extend or rebound the suspension. For rear
suspensions, percent anti-lift braking is positive when the deflections caused by the
braking forces and torques act to compress or jounce the suspension.
Units %
Request Names Front suspensions:
anti_dive_braking.left
anti_dive_braking.right
Rear suspensions:
anti_lift.left
anti_lift.right
Running Analyses 389
Output of Suspension Analyses
sprung_mass
cg_height
wheelbase
loaded_tire_radius
tire_stiffness
brake_ratio (fraction of braking done by the suspension)
acceleration due to gravity (Ag)
Method The brake forces at the tire contact patch per G of longitudinal deceleration are:
Description Percent anti-lift for a front suspension and percent anti-squat for a rear
suspension are the ratio of vertical suspension deflections caused by tractive
forces and drive torques to the deflections caused by weight transfer. During
acceleration, the vertical deflections in a suspension from weight transfer can, in
part, be cancelled by the vertical deflections caused by tractive forces and drive
torques in the suspension. Suspensions that exhibit this characteristic are said to
have anti-lift or anti-dive geometry. Note that a suspension that does not
transmit tractive forces and drive torques (drive_ratio = 0.0) has zero anti-lift or
anti-squat.
anti_lift.left
anti_lift.right
Rear suspensions:
anti_squat.left
anti_squat.right
Running Analyses 391
Output of Suspension Analyses
suspension_type (independent/dependent)
Vehicle parameters array:
sprung_mass
cg_height
wheelbase
loaded_tire_radius
tire_stiffness
axle_ratio (final drive ratio, pinion ring gear ratio)
drive_ratio (fraction of total drive torque directed to the suspension)
Suspension geometry:
Track
Acceleration due to gravity (Ag)
392 Adams Car
Output of Suspension Analyses
Method The longitudinal tractive forces at the tire contact patches are:
Ride Rate
Description Ride rate is the spring rate of the suspension relative to the body, measured at the tire
contact patch.
Units Force/Length
Request Names ride_rate.left
ride_rate.right
Inputs Compliance matrix
Tire stiffness
Method Adams computes ride rate as the equivalent rate of the wheel rate and tire rate in
series.
Ride Steer
Description Ride steer is the slope of the steer angle versus the vertical wheel travel curve. Ride
steer is the change in steer angle per unit of wheel center vertical deflection due to
equal vertical forces at the wheel centers. Positive ride steer implies that the wheels
steer to the right, as the wheel centers move upward.
Units Angle/length
Request Names ride_steer.left
ride_steer.right
394 Adams Car
Output of Suspension Analyses
d(wcvl)/dF = Wl x wcvl
d(wcvr)/dF = Wr x wcvr
Change in Steer Angle
The change in steer angle due to a change in wheel-center vector orientation is also a
vector of partial derivatives given by:
ride_steer.left = d(steer_anglel)/dzl =
d(steer_anglel)/dF/(dF/dzl)
ride_steer.right = d(steer_angler)/dzr =
d(steer_angler)/dF/(dF/dzr)
Nomenclature Bold, uppercase text, such as Wl, are vectors.
Bold, lowercase text, such as wcvl, are unit vectors.
X is the vector cross product operator.
o is the vector dot product operator.
* is the scalar multiplication operator.
Description Roll camber coefficient is the rate of change of wheel inclination angle with respect to
vehicle roll angle. Positive roll camber coefficient indicates an increase in camber angle
per degree of vehicle roll.
Units Unitless
Request Names roll_camber_coefficient.left
roll_camber_coefficient.right
396 Adams Car
Output of Suspension Analyses
Av = DZ / track
Adams measures the wheel inclination with respect to the line through the tire contact
patches, which has two components. The first is from the vertical movement of the
tire contact patch and is the same as the vehicle roll angle. The second is from the
rotational compliance at the wheel center due to the vertical force:
Ai = Av - Ac
The roll camber is then:
Description Roll caster coefficient is the rate of change in side view steer axis angle with
respect to vehicle roll angle. A positive roll caster coefficient indicates an
increase in caster angle per degree of vehicle roll.
This calculation assumes that the steer axis (kingpin) is fixed in the suspension
upright as in a double-wishbone or MacPherson strut suspension. The
calculation, however, is not valid for suspensions where the steer axis is not
fixed in the suspension upright, for example, a five-link front suspension used
in Audi A4.
Units Unitless
Request Names roll_caster_coefficient.left
roll_caster_coefficient.right
Inputs Compliance matrix
Tire stiffness
Track width
Method Adams applies opposing unit forces acting vertically at the tire contact
patches. The height difference between the tire contact patches is the
following, where Kt is the vertical tire rate:
Av = DZ / track
The rotational compliance at the wheel center due to the vertical force is:
roll_caster_coefficient = Ac / Av
Description Roll center location is the point on the body where the moment of the lateral
and vertical forces exerted by the suspension links on the body vanishes.
Units Length
Request Names roll_center_location.lateral_from_half_track
roll_center_location.vertical
roll_center_location.lateral_to_left_patch
roll_center_location.lateral_to_right_patch
Running Analyses 399
Output of Suspension Analyses
Adams reports errors when the motions of the left and right patches are
parallel (just as it occurs with a fully trailing arm suspension). Therefore, the
projected lines have no intersection. Adams also reports an error when the
motion of the left and/or right patches is very small for a unit vertical force
(for example, the suspension is very stiff ).
Finally, Adams limits the distance from the roll center to the left and right
patches to +/- 1000 meters.
Roll Steer
Description Roll steer is the change in steer angle per unit change in roll angle, or the slope of the
steer-angle-verses-roll-angle curve. Roll steer is positive when for increasing roll angle
(left wheel moving up, right wheel moving down) the steer angle increases (wheels steer
toward the left).
Units Unitless
Request Names roll_steer.left
roll_steer.right
Inputs Wheel center spin axis unit vector (wcv) left and right
Track
Tire stiffness (Kt)
Compliance matrix
Running Analyses 401
Output of Suspension Analyses
Method Using the compliance matrix, Adams first calculates the change in roll angle and the
change in the wheel-center vector orientation due to a roll moment (the roll moment is
a unit vertical force upward at the left contact patch and a unit force downward at the
right contact patch). Then, Adams calculates the change in steer angle due to the change
in wheel-center vector orientation. Finally, Adams applies the chain rule to calculate the
roll steer.
d(wcvl)/d(roll_moment) = Wl x wcvl
d(wcvr)/d(roll_moment) = Wr x wcvr
The change in steer angle for a change in roll moment is computed using the chain rule:
d(steer_anglel)/d(roll_moment) = (
d(steer_anglel)/d(wcvl) ) o (
d(wcvl)/d(roll_moment) )
d(steer_angler)/d(roll_moment) = (
d(steer_angler)/d(wcvr) ) o (
d(wcvr)/d(roll_moment) )
Roll Steer
And applying the chain rule one last time, the roll steer is
roll_steer.left = ( d(steer_anglel)/d(roll_moment)
) / ( d(roll_angle)/d(roll_moment) )
roll_steer.right = ( d(steer_angler)/d(roll_moment)
) / ( d(roll_angle)/d(roll_moment) )
Request REQUST/id, FUNCTION=USER(900,17,characteristics_input_array_id)
Statements
Nomenclature Bold, uppercase text, such as Wl, are vectors.
Bold, lowercase text, such as wcvl, are unit vectors.
X is the vector cross product operator.
o is the vector dot product operator.
* is the scalar multiplication operator.
Side-View Angle
Description The side-view angle is the wheel carrier side-view rotation angle. It is positive
for a clockwise rotation, as seen from the left side of the vehicle.
Units Angle
Request Names side_view_angle.left
side_view_angle.right
Inputs Wheel bearing I marker and origo_y
Method side_view_angle = az, marker I, marker J
Description The swing arm is an imaginary arm extending from the wheel's side elevation
instant center of rotation to the wheel center. For front suspensions, the sign
convention is that when the instant center is behind the wheel center, the swing
arm has a positive length. For rear suspensions, the sign convention is the opposite:
when the instant center is ahead of the wheel center, the swing arm has a positive
length.
The angle of the swing arm is the angle it makes to the horizontal. A positive angle
for a positive length is when the arm slopes downward from the wheel center. A
positive angle for a negative length arm is when the arm slopes upward from the
wheel center.
DX left = C(1,3)
DZ left = C(3,3)
DØ left = C(5,3)
The left side view swing arm length and angle are:
The change in vertical and longitudinal position and the change in side view
rotation of the right wheel center due to a unit vertical force at the right wheel
center is:
DX right = C(7,9)
DZ right = C(9,9)
DØ right = C(11,9)
The right side view swing arm length and angle are:
Description Suspension roll rate is the torque, applied as vertical forces at the tire contact patches,
per degree of roll, measured through the wheel centers.
Units Force-Length/Angle
Request Names susp_roll_rate.left
susp_roll_rate.right
Inputs Compliance matrix
Track width
Method Adams uses opposing unit forces as the applied torque:
T = F x track = track
The resulting vertical distance between wheel centers is:
ΔZ = C ( 3, 3 ) – C ( 3 , 9 ) – C ( 9 , 3 ) + C ( 9 , 9 )
The rotation of the line through the wheel centers is:
∅ = ΔZ ⁄ track
The roll rate is:
2
susp_roll_rate = T / Ø = track ⁄ ΔZ
Toe Angle
Description Toe angle is the angle between the longitudinal axis of the vehicle and the line of
intersection of the wheel plane and the vehicle's XY plane.
Adams reports toe angle in radians. It is positive if the wheel front is rotated in
towards the vehicle body.
Units Angle
RequestNames toe_angle.left
toe_angle.right
Inputs Wheel center axis unit vectors - left and right
Method Adams uses the direction cosines in the x- and y-directions of the wheel center
axis relative to the road to calculate toe angle, such that:
Description Total roll rate is the torque, applied as vertical forces at the tire contact patches, per
degree of roll, measured at the tire contact patches.
Units Force-Length/Angle
Request Names total_roll_rate.left
total_roll_rate.right
Inputs Compliance matrix
Tire stiffness
Track width
Method Adams uses opposing unit forces as the applied torque:
T = F x track = track
The resulting vertical distance between wheel centers is the following, where Kt is
the tire stiffnesses:
ΔZ = C ( 3, 3 ) – C ( 3 , 9 ) – C ( 9 , 3 ) + C ( 9, 9 ) + 2 ⁄ K t
The rotation of the line through the tire contact patches is:
∅ = ΔZ ⁄ track
Total Track
Description Total track is the distance measured along the line passing through the left and
right tire contact points with the left and right road parts (pads) and then
projected onto the right road plane.
The first line is formed by the intersection of the wheel plane with the
road plane.
The second line is perpendicular to the first and passes through the
wheel center.
The wheel plane is perpendicular to the wheel spin axis and passes through the
wheel center.
The left and right road planes behave differently, depending on your coordinates:
Wheel Rate
Description Wheel rate is the vertical stiffness of the suspension relative to the body, measured at
the wheel center.
Units Force/Length
Request Names wheel_rate.left
wheel_rate.right
Inputs Compliance matrix
Method Adams computes suspension wheel rate as the inverse of the z-axis displacement at the
wheel center due to the vertical forces applied at both wheel centers simultaneously.
Ackerman
Description Ackerman is the difference between the left and right wheel steer angles. A positive
Ackerman indicates that the right wheel is being steered more to the right than to
the left.
Units Angle
410 Adams Car
Output of Suspension Analyses
Ackerman Angle
Description Ackerman angle is the angle whose tangent is the wheel base divided by the turn
radius. Ackerman angle is positive for right turns.
Units Angle
Request Names ackerman_angle.left
ackerman_angle.right
Running Analyses 411
Output of Suspension Analyses
Ackerman Error
Description Ackerman error is the difference between the steer angle and the ideal steer angle for
Ackerman geometry. Because Adams Car uses the inside wheel to compute the turn
center, the Ackerman error for the inside wheel is zero.
For a left turn, the left wheel is the inside wheel and the right wheel is the outside
wheel. Conversely, for a right turn, the right wheel is the inside wheel and the left
wheel is the outside wheel. Positive Ackerman error indicates the actual steer angle is
greater than the ideal steer angle or the actual is steered more to the right.
Units Angle
412 Adams Car
Output of Suspension Analyses
Description Caster moment arm is the distance from the intersection of the kingpin (steer) axis
and the road plane to the tire contact patch measured along the intersection of the
wheel plane and road plane. Caster moment arm is positive when the intersection
of the kingpin axis and road plane is forward of the tire contact patch.
Units Length
Request Names caster_moment_arm.left
caster_moment_arm.right
Running Analyses 413
Output of Suspension Analyses
Inputs Kingpin axis position, a point on the kingpin axis (Rs) - left and right
Kingpin (steer) axis unit vector (s) - left and right
Tire contact patch position (Rp) - left and right
Wheel center axis unit vector (w) - left and right
The road normal unit vector (k)
Methods Adams Car first finds the intersection of the kingpin axis and the road plane. Note
that by convention, the kingpin axis unit vector is directed upward, away from the
road, and the road plane has zero height. The intersection of the kingpin axis and
the road plane (Rkr) is:
l = k x w / | k x w | (left side)
l = k x -w / | k x -w | (right side)
The distance along l from the contact patch to the intersection of the kingpin axis
and the road plane is:
Description Ideal steer angle is the steer angle in radians that gives Ackerman steer geometry or
100% Ackerman. For Ackerman steer geometry, the wheel-center axes for all four
wheels pass through the turn center. Note that Adams Car uses the steer angle of
the inside wheel to determine the turn center for Ackerman geometry. Therefore,
the ideal steer angle and the steer angle are equal for the inside wheel. When making
a left turn, the left wheel is the inside wheel. Conversely, when making a right turn,
the right wheel is the inside wheel. A positive steer angle indicates a steer to the
right.
Units Angle
Request Names ideal_steer_angle.left
ideal_steer_angle.right
Inputs Turn radius (see Steer Angle)
Tire contact patch position (Rp) - left and right
Wheelbase
Method ideal_steer_angle.left = tan-1 [Wheel Base/(Turn Radius - Rp(left))]
Description Outside turn diameter is the diameter of the circle defined by a vehicle's outside front
tire when the vehicle turns at low speeds. Adams Car determines the circle by the
tire's contact patch for a given steer angle. For a left turn, the right front wheel is the
outside wheel. For a right turn, the left front wheel is the outside wheel.
Units Length
Request Names outside_turn_diameter.left
outside_turn_diameter.right
Running Analyses 415
Output of Suspension Analyses
Percent Ackerman
Description Percent Ackerman is the ratio of actual Ackerman to ideal Ackerman expressed as a
percentage. Percent Ackerman is limited to the range from -999% to 999%. Percent
Ackerman is positive when the inside wheel's steer angle is larger than the outside
wheel's steer angle.
Units %
Request Names percent_ackerman.left
percent_ackerman.right
Inputs Steer angle (see Steer Angle)
Ideal steer angle (see Ideal Steer Angle)
Ackerman (see Ackerman)
Method ackerman = Right steer angle - Left steer angle
Scrub Radius
Description Scrub radius is the distance from the intersection of the kingpin (steer) axis and the
road plane to the tire contact patch measured along the projection of the wheel-
center axis into the road plane. Scrub radius is positive when the intersection of the
kingpin axis and the road plane is inboard of the tire contact patch.
Units Length
416 Adams Car
Output of Suspension Analyses
M = (k x w) x k
m = M / | M |
The distance from the contact patch to the intersection of the kingpin axis and the
road plane along m is:
Steer Angle
Description Steer angle is the angle measured from the vehicle heading to the line formed by
the intersection of the wheel plane with the ground plane. Steer angle is positive
when a wheel is rotated to the right as if the vehicle were making a right turn.
Units Angle
Request Names steer_angle.left
steer_angle.right
Inputs Wheel-center axis unit vectors - left and right
Method Adams Car uses the direction cosines of the x-direction and the y-direction of the
wheel-center axis constructed from the wheel-center orientation to calculate steer
angle:
Description The steer axis offset is the shortest distance from the steer (kingpin) axis to the
wheel center. The steer axis offset is measured in the plane perpendicular to the
steer axis and passing through the wheel center. The steer axis offset is always
positive.
The steer axis offset-longitudinal is the component of the steer axis offset along
the intersection of the wheel plane with the plane perpendicular to the steer axis
and passing through the wheel center. The steer axis offset-longitudinal is
positive when the wheel center is aft of the steer axis.
The steer axis offset-lateral is the component of the steer axis offset along the
projection of the wheel-center axis into the plane perpendicular to the steer axis
and passing through the wheel center. The steer axis offset - lateral is positive
when the wheel center lies outboard of the steer axis.
Units Length
Request Names steer_axis_offset.off_left
steer_axis_offset.off_right
steer_axis_offset.lon_left
steer_axis_offset.lon_right
steer_axis_offset.lat_left
steer_axis_offset.lat_right
Inputs Wheel-center position (WCP) left and right
Wheel-center (spin) axis unit vector (wcv) left and right
Kingpin (steer) axis position (KPP) left and right
Kingpin (steer) axis unit vector (kpv) left and right
420 Adams Car
Output of Suspension Analyses
Method First, define longitudinal and lateral directions in a plane perpendicular to the steer
(kingpin) axis using the kingpin axis vector and the wheel-center (spin) vector.
The displacement vector (R) from a point on the kingpin (steer) axis to the wheel center is:
R = WCP - KPP
The steer axis offset-longitudinal is:
steer_axis_offset.lon_left = -R o u_lon
steer_axis_offset.lon_right = R o u_lon
The steer axis offset-lateral is:
steer_axis_offset.lat_left = R o u_lat
steer_axis_offset.lat_right = R o u_lat
Finally, the steer axis offset is:
Longitudinal offset:
REQUST/id, FUNCTION=USER(900,45,characteristics_input_array_id)\
Lateral offset:
REQUST/id, FUNCTION=USER(900,46,characteristics_input_array_id)\
Nomenclature Bold text in uppercase letters, such as R, shows vectors.
Bold text in lowercase letters, such as u_lon, shows unit vectors.
X is the vector cross product operator.
o is the vector dot product operator.
* is the scalar multiplication operator.
Turn Radius
Description The turn radius is the distance measured in the ground plane from the vehicle
center line to the turn center along the y-axis (see the figure for Ackerman Angle).
Turn radius is positive for right turns and negative for left turns.
Units Length
Request Names turn_radius.left
turn_radius.right
422 Adams Car
Working with the Suspension Test Rig
Left turn:
suspension through the vertical actuators are limited to reasonable values for passenger cars. For other
vehicles, you may need to update the limits. To learn how to update the limits, see Vertical Actuators.
To properly assemble with the test rig, your suspension template must include the following output
communicators (see Communicator Entity Class):
suspension_mount (communicator entity class: mount) - Points to the parts (typically the hub, also
known as the spindle) in your suspension template to which the test rig wheel tires mount.
wheel_center_location (communicator entity class: location) - Contains the wheel-center location
that Adams Car uses to locate the test rig relative to the suspension.
toe_angle and camber_angle (communicator entity class: parameter real) - Contain the static toe and
camber angles that Adams Car uses to orient the test-rig wheels.
suspension_upright (communicator entity class: mount) - Points to the suspension upright in your
suspension template. The suspension test rig creates a perpendicular joint primitive between the
suspension mount (that is, the hub) and the suspension upright to lock wheel rotation during
suspension analyses.
The following make up the suspension test rig:
Vertical Actuators
Suspension Test Rig Tire
Static Loads
Loadcase Files
Vertical Actuators
The left and right vertical actuators apply forces to drive the test-rig tables, and in turn, the suspension, up
and down. An integral controller computes the actuator force necessary to achieve the desired wheel center
or contact patch positions. However, the forces in the actuators are limited by default to -22,000 N in
rebound and 40,000 N in jounce.
The vertical actuators are standard joint force actuators (pairs of action-only translational forces). You can
modify the force limits using the Adams Car Template Builder through the menus Build -> Actuator -> Joint
Force -> Modify.
LIVE_TIRE - The tire only transmits compression force. Thus when the vertical force between the
tire and table goes to zero, the tire separates from the table. Therefore, when using a LIVE_TIRE,
the test rig cannot pull the suspension into rebound. However, the force of gravity and the
suspension spring will typically drive the suspension into rebound until the suspension hits the
rebound bumper.
For the equations for RIGID_WHEEL and LIVE_TIRE,
radius is the distance, measured in the plane of the wheel, from the wheel center to the contact patch
r is the unit vector directed from the contact patch to the wheel center
n is the unit vector normal to the table
RIGID_WHEEL
When you select RIGID_WHEEL, you enter the tire stiffness and unloaded radius. Adams Car sets the tire
property file string to ”RIGID_WHEEL” and passes the stiffness and radius you entered to Adams Tire
through an ARRAY statement. Adams Tire calculates the tire vertical force using the following equation:
force = tire_stiffness*(unloaded_radius - radius) (r o n)
LIVE_TIRE
When you select LIVE_TIRE, you must enter a tire property file. Adams Tire opens the property file and
reads the unloaded radius and vertical stiffness. These values are automatically converted to the proper units
for your suspension assembly. Other parameters in the tire property file are ignored. Adams Tire calculates
the tire vertical force using the following equation:
force = max(0.0, tire_stiffness*(unloaded_radius - radius) (r o n))
Static Loads
You can specify forces, torques, and displacements as inputs to your suspension analyses. These inputs are
stored in the loadcase spline. The loadcase spline contains a linear interpolation at discrete time intervals,
between the upper and lower values.
The following table shows how forces and torques are expressed in the reference frames :
Forces/Torques in Reference Frames
Reference frame:
Force/torque: TYDEX H ISO-W contact patch TYDEX-C axis system wheel center
Lateral force (cornering) x
Longitudinal force (braking) x
Longitudinal force (traction) x
Overturning moment x
Rolling resistance torque x
Aligning torque x
Running Analyses 427
Running Full-Vehicle Analyses
Loadcase Files
Adams Car supports old suspension loadcase files (version 5) as follows:
Vertical Mode = Length - Corresponds to wheel_center_height
Vertical Mode = Force - Corresponds to an open-loop vertical force
Assembling a Vehicle
Adams Car creates a full-vehicle assembly from a set of subsystems that you select. An assembly lets you
quickly put together full vehicles from previously tested and verified subsystems and switch between
subsystems depending on the analysis that you want to perform.
The associated component property files, such as springs and bushings, must also exist in your database.
If a suspension subsystem uses mount parts, such as the spring top mounting to a subframe, you must read
the subframe subsystem into the assembly. If you do not read in the required mount subsystems, Adams Car
connects any mount parts to the global ground part instead of the absent mount subsystem. Therefore, the
mount point cannot move with the full vehicle, which causes the Adams Car analysis to fail.
Checking a Vehicle
Before submitting your model for analysis, visually check its assembly. The Adams Car default view is front
isometric view. From the front view, you should be able to see obvious assembly problems. You should also
check your vehicle from the side because it provides a more useful view for positioning the subsystems.
As you view your assembly from different angles, check for obvious problems, such as:
Is the front suspension in the correct place?
Is the body graphic positioned correctly?
Are the wheels somewhere near the same height?
All the analyses currently available are based on the Driving Machine. Therefore, to perform open-loop,
closed-loop, and quasi-static analyses, you must select the .__MDI_SDI_TESTRIG in your assemblies.
Always check whether you selected the correct test rig for the analysis you want to perform. If you selected
an incorrect test rig, create another assembly using the correct test rig.
Performs a dynamic analysis by running each of the mini-maneuvers listed in the DcfMini classes in
the event file
You can view and modify the event file (.xml) using the Event Builder. The Event Builder allows you to modify
existing parameters for the entire maneuver, such as step size and hmax, to modify specific mini-maneuver
information, and add mini-maneuvers.
The following line calls the control subroutine EventInit:
control/ routine=abgVDM::EventInit, function=user(3,1,10,0,2,5,7,17)
The call to this subroutine passes 8 parameters, as described next. Note that each number in the array
(3,1,10,0,2,5,5,17) is listed after the description of that parameter.
par(1) 3: ID of STRING statement containing .XML event filename = 3
par(2) ID of ORIGO marker = 1
par(3) ID of ARRAY statement containing initial condition SDI parameters = 10
par(4) ID of ARRAY statement containing ids of parts for which initial
velocity are not set = 0
par(5) ID of ARRAY holding Vehicle Parameters. = 2
par(6) ID of main Driving Machine ARRAY. = 5
par(7) ID ISO EAS Marker = 7
par(8) ID of ARRAY containing the ids of extensible end condition sensor
elements = 17
If you look at the corresponding Adams Solver dataset (.adm), you will see that STRING/3 contains the name
of the event file:
! adams_view_name='testrig_dcf_filename'
STRING/3
, STRING =example_crc.xml
All standard Adams Car events generate an event file in XML format, similar to the one referenced in the
example above, but .dcf files in TeimOrbit format are still supported, both in the Event Builder and at the
solver level. This means that you can replace the above string and reference a .dcf file in TeimOrbit format.
The file will be automatically converted to XML format.
By modifying the .acf file, you can now execute all mini-maneuvers defined in the event file, or just run the
initialization and then execute one mini-maneuver at a time. Full-vehicle analysis .acf files by default call the
Driving Machine initialization routine, then call the RunAll method. You can, however, modify the .acf file
and use the following commands for more control over your analysis:
control/ routine=abgVDM::EventRunAll, function=user(0) - Runs all the active mini-maneuvers in
the list of events
control/ routine=abgVDM::EventRunNext, function=user(0) - Runs the following mini-maneuver
in the list of the events
control/ routine=abgVDM::EventRunFor, function=user(double time) - Runs the current mini-
maneuver for duration of time [s]
control/ routine=abgVDM::EventRunUntil, function=user(double time) - Runs the current mini-
maneuver until the desired absolute time [s]
Using this flexibility within the event control subroutine enables you to use the power of the acf language to
make changes and re-submit your solution to Adams Solver. The language parameters for the .acf file are
documented in the Adams Solver online help.
Running Analyses 431
Running Full-Vehicle Analyses
Reading Results
After you run the analysis, you can use Adams PostProcessor to animate and view the results.
Notes: To control the execution of the various mini-maneuvers defined in the XML event file you
need to issue the EventInit control subroutine command first. This instructs Adams Car to
build a list of quasi-static and transient events as they are defined in the event file.
To execute each mini-maneuver in the event file, you should issue a control/
routine=abgVDM::EventRunNext as described above.
432 Adams Car
Running Full-Vehicle Analyses
Durability Events
Dynamic Loadcase
A dynamic loadcase analysis actuates the assembly at the wheel center via user defined runtime function
expressions or by referencing channel number from RPC3 file. You can do two types of analysis, force based
and displacement based.
For Force based analysis (Jack Excitation mode = Force), the gforce at the wheel centres are used to actuate
wheel part (spindle) of the assembly.
For displacement-based analysis (jack excitation mode set to Displacement, Velocity and Acceleration), the
motions are used to actuate wheels of assembly through jack (dummy parts).
For steering input, it is also possible to define a runtime function expression or by referencing channel
number from RPC3 file for the steering motion, thereby combining vertical excitation with steering sweeps.
The controller gains (stiffness and damping) and feedback channel used as inputs to the feed-forward
controller system, which is used for force based input analysis.
The UDE also provides these methods specific to the event UDE interface:
Update - Given a list of attributes and values, update the event attributes accordingly. For example:
• Acar analysis instance event update instance=.EVENT_SETS.default.evs_test
attributes="velocity", "lateralAcceleration" values="100.0", "0.6"
Execute - Perform the event simulation with the given analysis mode
An event UDE is created whenever an event is executed from the event submission dialog boxes.
Event Set
An event set in Adams Car is a collection of event instances, which can be operated on together. This is
represented in the database by a library. The user defines an active event set, which is the event set that new
event instances are placed into. The event set can be written to a file, which can then be reloaded in new
sessions of Adams Car.
Event Browser
Event Browser represents a hierarchical overview of all event UDEs in the database. The event UDE is a
representation of an event in the database. The event browser provides functionality to:
Save event inputs for reuse later
Re-run events with the same or modified inputs
Copy/Delete/Rename specific events
Perform post-processing on event analyses
Perform operations on one or multiple events simultaneously
Save event settings to disk
434 Adams Car
Running Full-Vehicle Analyses
interface that is displayed after executing an event in "event only" mode or by clicking the icon:
The top level objects are the event sets, and the children of these items are the event instances. The active
event set is show in bold as shown above. There are unique icons to represent the current status of the event
instances:
Files on Disk - Event files are on disk but no analysis has been executed
Files Successful - Event files including analysis are on disk, and the analysis was successful
Files Failed - Event files including analysis are on disk, but the analysis was not successful
In Session Successful - Event was executed, analysis is in session and was successful
In Session Failed - Event was executed, analysis is in session but was not successful
Right-click Menus
When you click right mouse button, different shortcut menus appear depending on the entity selected in the
Model Browser. These menus are documented in detail in the Event Browser dialog box help.
Running Analyses 435
Running Full-Vehicle Analyses
Filter
Event instance objects displayed in the event browser can be filtered by entering search strings in the Filter
field:
Drift Analysis
In a drift analysis, the vehicle reaches a steady-state condition in the first ten seconds. A steady-state condition
is one in which the vehicle has the desired steer angle and initial velocity values. In seconds 1 through 5 of
the analysis, Adams Car ramps the steering angle/length from the initial value to the desired value using a
436 Adams Car
Running Full-Vehicle Analyses
STEP function. In seconds 5 through the desired end time, it linearly ramps the throttle at the desired ramp
rate.
Note: Adams Car creates an event file (.xml) that defines the analysis and the different parameters. It
uses the .xml file for the analysis and then leaves it in the working directory so you can refer
to it as needed.
Fish-Hook Analysis
You use a fish-hook analysis to evaluate dynamic roll-over vehicle stability.
A fish-hook analysis consists of two mini-maneuvers (see Creating Mini-Maneuvers):
A quasi-static phase sets up the vehicle at the desired initial conditions.
The mini-maneuver runs the actual fish-hook analysis in which Adams Car computes the steering
signal as a combination of step functions, and disengages the clutch. The maneuver provides a basis
for evaluating a vehicle's transitional response and dynamic roll-over stability. The most important
factors for this evaluation are: steering-wheel angle, lateral acceleration, yaw rate, and roll angle.
Adams Car conducts the analysis by driving at a constant speed, putting the vehicle in neutral, and
turning one direction in a preselected steering-wheel angle and then turning the opposite direction
in another preselected steering-wheel angle.
Yaw rate
Roll angle
Steering wheel torque
Steering wheel angle
Note: The frequency response analysis with input type as a swept sine would generate an excessive
amount of output and be quite time consuming. An alternative is the input type as a pulse
steer. A pulse steering input is applied, typically with a duration of 0.3 seconds and an
amplitude of 60 to 120 degrees. Pulse steering inputs have excellent frequency content in the
range of interest. If the vehicle response is kept within the linear handling range, the pulse
steer option is a very efficient method of evaluating a vehicle's frequency response.
Impulse-Steer Analysis
In an impulse-steer analysis, the steering demand is a force/torque, single-cycle, sine input. The steering input
ramps up from an initial steer value to the maximum steer value. You can run with or without cruise control.
The purpose of the test is to characterize the transient response behavior in the frequency domain.
Typical metrics are: lateral acceleration, and vehicle roll and yaw rate, both in time and frequency domain.
J-Turn Analysis
You use a J-Turrn analysis to evaluate the roll-over vehicle stability at limit handling condition..
A J-Turn analysis consists of two mini-maneuvers (see Creating Mini-Maneuvers):
A quasi-static phase sets up the vehicle at the desired initial conditions.
Running Analyses 439
Running Full-Vehicle Analyses
The mini-maneuver runs the actual J-Turn analysis by driving the vehicle at a constant speed, with
specified steering wheel angle and steer rate. The maneuver provides a basis for evaluating a vehicle's
transitional response and dynamic roll-over vehicle stability in the limit handing condition.
The most important factors for this evaluation are:
Steering-wheel angle
Lateral acceleration
Yaw rate
Side slip angle
Roll angle
On Center Analysis
The on center analysis is used as the primary method to measure steering feel properties. The on center
control subroutine is used to calculate steering wheel angle required to achieve specified lateral acceleration.
For additional information refer, On Center.
3. Select OK.
Ramp-Steer Analysis
In a ramp-steer analysis, you obtain time-domain transient response metrics. The most important quantities
to be measured are: steering-wheel angle, yaw angle speed, vehicle speed and lateral acceleration. During a
ramp-steer analysis, Adams Car ramps up the steering input from an initial value at a specified rate.
The maneuver provides a basis for evaluating a vehicle's transitional response and dynamic vehicle stability
in the limit handing condition.
To set up a sine with dwell analysis:
1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Sine with Dwell.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Sine with
Dwell.
3. Select OK.
Notes: The Sinusoidal Steering analysis can be simulated as a special case of Swept-Sine Steer
analysis.
In sinusoidal steering analysis, the vehicle is simulated at constant speed with harmonic
steering motion.
Steering-wheel angle
Peak Lateral acceleration
Peak Yaw rate
Peak Roll angle
Peak Side Slip Angle
During a sinusoidal steering analysis, Adams Car drive down a straight road at a constant
speed and steers with harmonic motion at user specified amplitude and frequency. To
simulate sinusoidal steering analysis, specify Maximum Frequency = Initial Frequency and
Frequency Rate =1.
Cornering Events
You use cornering analyses to evaluate your vehicle's handling and dynamic responses during various
cornering-type maneuvers. Cornering analyses use both open- and closed-loop controllers of the steering,
throttle, brake, gear, and clutch signals to investigate various vehicle behaviors. You can investigate both
steady-state and limit cornering to characterize responses such as understeer/oversteer gradients, weight
transfer, and so on.
444 Adams Car
Running Full-Vehicle Analyses
Note: Adams Car creates an event file (.xml) that defines the analysis. The Driving Machine uses the
event file to control the vehicle. Adams Car stores the event file in the working directory so
you can refer to it as needed and examine it using the Event Builder.
Braking-In-Turn Analysis
The braking-in-turn analysis is one of the most critical analyses encountered in everyday driving. This
analysis examines path and directional deviations caused by sudden braking during cornering. Typical results
collected from the braking-in-turn analysis include lateral acceleration, variations in turn radius, and yaw
angle as a function of longitudinal deceleration.
In a braking-in-turn analysis, you can set the Driving Machine to drive your full vehicle, as follows:
Drive down a straight road, turn onto a skidpad, and then accelerate to achieve a desired lateral
acceleration
Run a quasi-static skidpad setup, which places the vehicle on a skidpad with predefined lateral
acceleration
The Driving Machine holds the longitudinal speed and radius constant for a time to let any transients settle.
It then applies a brake signal to the vehicle to control the vehicle deceleration at a constant rate (units in g).
Depending on the controller type, the Driving Machine does either of the following:
Open-loop - Locks the steering wheel
Closed-loop - Maintains the skidpad radius
The Driving Machine maintains the braking for the given duration of the maneuver or until the vehicle speed
drops below 2.5 meters/second.
You can use the plot configuration file, mdi_fva_bit.plt, in the shared Adams Car database to generate the
plots that are typically of interest for this type of analysis.
3. Select OK.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Lift-Off Turn-
In.
3. Select OK.
Throttle-On-In-Turn Analysis
The throttle-on-in-turn analysis is one of the most critical analyses encountered in everyday driving. This
analysis examines path and directional deviations caused by sudden throttle during cornering.
The most important factors for this evaluation are:
Lateral acceleration
Variations in turn radius
Yaw angle as a function of longitudinal deceleration
In a throttle-on-in-turn analysis, you can set the Driving Machine to drive your full vehicle, as follows:
Drive down a straight road, turn onto a skidpad, and then accelerate to achieve a desired lateral
acceleration
Run a quasi-static skidpad setup, which places the vehicle on a skidpad with predefined lateral
acceleration
The Driving Machine holds the longitudinal speed and radius constant for a time to let any transients settle.
It then applies a throttle signal to the vehicle to control the vehicle acceleration at a constant rate (units in g).
Running Analyses 447
Running Full-Vehicle Analyses
Depending on the controller type, the Driving Machine does either of the following:
Open-loop - Locks the steering wheel
Closed-loop - Maintains the skidpad radius
The Driving Machine maintains the throttle for the given duration of the maneuver.
You can use the plot configuration file, mdi_fva_tit.plt , in the shared Adams Car database to generate
the plots that are typically of interest for this type of analysis.
Straight-Line Events
The analyses based on the Driving Machine focus on the longitudinal dynamics of the vehicle. Adams Car
uses open- and closed-loop longitudinal controllers to drive your vehicle model.
Note: Adams Car creates an event file (.xml) that defines the analysis and the different parameters. It
uses the .xml file for the analysis and then leaves it in the working directory so you can refer
to it as needed.
Acceleration Analysis
During an acceleration analysis, the Driving Machine ramps the throttle demand from zero at your input rate
(open loop) or you can specify a desired longitudinal acceleration (closed loop). You can specify either free,
locked, or straight-line steering. An acceleration analysis helps you study the anti-lift and anti-squat
properties of a vehicle.
448 Adams Car
Running Full-Vehicle Analyses
Braking Analysis
During a braking analysis, the Driving Machine ramps the brake input from zero at your input rate or lets
you specify a longitudinal deceleration (closed loop). You can also specify either free or locked steering. The
braking test analysis helps you study the brake-pull anti-lift and anti-dive properties of a vehicle.
Maintain Analysis
During a maintain analysis, the Driving Machine either controls the throttle signal to maintain a constant
longitudinal velocity, or holds the throttle demand constant (open loop). You can specify either free, locked,
or straight-line steering. A maintain analysis helps you study the drive controller behavior for the properties
of your vehicle model, and identify transient effects not active during static vehicle set-up pre-phase.
controller behavior for the properties of your vehicle model, and identify transient effects not active during
static vehicle set-up pre-phase.
Course Events
Course analyses are based on the Driving Machine and are of a course-following type, such as ISO lane
change.
In an ISO lane change analysis, the Driving Machine drives your full vehicle through a lane change course as
specified in ISO-3888: Double Lane Change. You specify the gear position and speed at which to perform
the lane change. The analysis stops after the vehicle travels 250 meters; therefore, the time to complete the
lane change depends on the speed you specify.
The course analyses include:
Double Lane Change
3D Road
Note: Adams Car creates an event file (.xml) that defines the analysis and the different parameters. It
uses the .xml file for the analysis and then leaves it in the working directory so you can refer
to it as needed. The file that defines the path is stored in the shared_car_database, in the
driver_data table, and is called iso_lane_change.dcd.
3D Road
A 3D road analysis simulates your vehicle assembly traversing a three-dimensional road representation and
the obstacles or characteristics contained in that 3D road. The road file (.rdf/.xml) is used by both the tire
subsystems to compute contact patch forces/moments, and by the lateral controller. The Driving Machine
uses path information contained in the 3D road file to drive the vehicle along the specified course centerline.
Example 3D road files are distributed in the shared Adams Car database (3d_road_*).
For more information about the 3D road, see Using the Road Builder.
Embankment
During an embankment analysis, the vehicle is driven over a small ramp then down an embankment until it
reaches the ground surface. The vehicle starts with an initial velocity and after the trigger point is passed and
a specified delay is reached a constant ramp steer is applied. The steering stops at the final steering angle. The
simulation ends when the end time is reached or the maximum roll angle is achieved (89 Deg.). The road can
be used with or without rollover bar. The user can change the position and height of the rollover bar to meet
his requirements. An embankment analysis helps you study the vehicle reactions to sliding down the road and
rolling over. The embankment road type can be rigid or soft soil. The rollover bar is always rigid.
Ramp (Corkscrew)
During a corkscrew analysis, the vehicle starts with an initial velocity and is driven over a ramp. The corkscrew
dcp is similar to straight line maintain analysis. The simulation has three phases, ramp phase, airborne phase
and ground sliding phase. The simulation ends when the end time is reached or the maximum roll angle is
achieved. Corkscrew analysis helps you study the vehicle reactions to moving up and rolling over.
3. Select OK.
File-Driven Events
The file-driven analysis lets you run an analysis described in an existing event file (.xml).
Having direct access to event files lets you perform non-standard analyses on your full-vehicle assembly
because all you have to do is generate a new event file describing the analysis.
Learn about the Driving Machine.
Learn about Event Files.
Event files organize complex maneuvers into a set of smaller, simpler steps called mini-maneuvers. An event
file defines the static-setup and a list of mini-maneuvers. For each mini-maneuver, the event file specifies how
the Driving Machine is to control the steering, throttle, brake, gear, and clutch.
Learn about event files:
Creating Event Files
Structure of Event Files
Creating Mini-Maneuvers
Referencing .dcd Files
Example Event Files
9. Click the Conditions tab and enter the parameters required to end the mini-maneuver (for more
information, see Specifying Conditions).
10. (Optional) Click the Linear tab and enter the parameters necessary to define any desired Linear
analyses to be performed at the end of the mini-maneuver (for more information, see Specifying Linear
Analyses).
11. To create additional mini-maneuvers, click the button to the left of the mini-maneuver Name.
This displays the Table Editor for mini-maneuvers.
12. In Table Editor mode, enter the name of your new mini-maneuver in the Name text box at the
bottom of Event Builder.
13. Click Add. This adds a row to the Table Editor. You can edit any of the values in the row by clicking
in the appropriate cell (for more information, see dialog box help for Event Builder).
14. Continue adding mini-maneuvers as necessary.
15. To return to Property Editor mode, either double-click a name (in the Name column), or select the
name, right-click, and then select Modify with Property Editor.
16. When you've finished creating your event file, select Save.
After you create the file, you use it to run a file-driven analysis.
Learn about Structure of Event Files.
Creating Mini-Maneuvers
A mini-maneuver is a set of smaller, simpler analysis steps, such as a straight-line mini-maneuver. Mini-
maneuvers are contained in event files (.xml).
To create a mini-maneuver, you must specify controls signals (steering, throttle, braking, gear, and clutch)
and its conditions. For each control signal, you specify the following:
Actuator type (steering only)
Control method
Control type
Control mode
Learn more:
Specifying Actuators
Specifying an Actuator Type
Specifying a Control Method
Specifying a Control Type
Specifying a Control Mode
Running Analyses 457
Running Full-Vehicle Analyses
Specifying Conditions
Specifying Linear Analyses
Specifying Actuators
Actuators specify custom actuators used when the Adams Car supplied actuation channels are not sufficient
for the users needs.
The event file supports the following actuator UDEs in Adams Car:
ac_joint_force_actuator
ac_joint_motion_actuator
ac_point_force_actuator
ac_point_point_actuator
ac_point_torque_actuator
ac_variable_actuator
The Actuators tab of the Event Builder shows all actuators used by the current mini-maneuver. In Table
Editor mode, you can see all defined actuators, select new actuators, modify actuator definitions, or remove
actuators from the mini-maneuver.
Arguments
Note: Actuators of application type 'steering' and 'driver_demand' are not populated to
not interfere with the driving machine.
458 Adams Car
Running Full-Vehicle Analyses
You can also use the final value of a condition sensor of the previous mini-maneuver in your
expression by using @condition_sensor@ (for example, @rack_travel@).
Mode Absolute indicates that the final value is absolute. Relative indicates that the final value is
relative to the initial value.
Offset Offset value for the actuator.
Major Role Describes the major role of the parent of the actuator and is used to identify the actuator
while populating the actuator table.
Minor Role Describes the minor role of the parent of the actuator and is used to identify the actuator
while populating the actuator table.
Application Describes the purpose of the actuator and is used to identify the actuator while populating
the actuator table.
Identifier Describes the actuator instance for the application area.
force Driving Machine steers the vehicle by applying a force to the steering rack.
rotation Driving Machine steers the vehicle using a MOTION statement on the steering-wheel
revolute joint.
torque Driving Machine steers the vehicle by applying torque to the steering wheel.
trans Driving Machine steers the vehicle using a motion on the steering rack translational joint.
Running Analyses 459
Running Full-Vehicle Analyses
Note: Rotation and translation Actuator Types are implemented as motions. When Control
Method is set to Machine (or SmartDriver) these motions necessarily depend on system
states other than time. Such motions pose greater problems for some integrators than others
in Adams. By default the driving machine detects and avoids using these Actuator Types with
those integrators (automatically uses a torque actuator instead of a rotation actuator or a
force actuator instead of a translation actuator.) Similarly, when Control Method is set to
Open, some integrators benefit more than others if the function expression defining the open
loop motion for rotation and translation Actuator Types is extracted and applied directly to
the motion. By default, the driving machine detects these situations and applies extracted
function expressions accordingly. These actions are taken at runtime, after the integrator
setting is known. It is possible to override this behavior (to force the use of the originally
selected actuator) by setting the environment variable MSC_ADAMS_VDM_SI2FLAG.
If you set Control Method to machine for throttle or brake, then you should specify the target speed profile,
using the Speed Control argument.
Notes: If you set Speed Control to lat_accel, then you must set Steer Control to skidpad.
Machine control for throttle requires the use of machine control for braking. Likewise,
machine control for clutch requires machine control for gear.
Running Analyses 461
Running Full-Vehicle Analyses
Arguments
462 Adams Car
Running Full-Vehicle Analyses
ax_s_map
ax_t_map
file
• File Name - Enter the name of a file that contains the closed-loop data.
lat_accel - Be sure to set Steer Control to skidpad.
• Lat. Acc. - Enter a value for the lateral acceleration.
lon_accel
• Start Time
• Long. Acc - Enter a value for the longitudinal acceleration.
maintain - The Driving Machine maintains the speed of the vehicle at a value determined as
follows:
• Velocity Type - If set to initial_actual, maintain the actual speed of the vehicle at the end
of the preceding mini-maneuver or the initial speed set in the EXPERIMENT block if this
mini-maneuver is the first in the experiment. If set to initial_target, maintain the target
speed at the end of the preceding mini-maneuver if the preceding mini-maneuver was also
using the machine Control Method for Throttle/Brake (this produces a continuous
transition between two mini-maneuvers both using machine), otherwise the same as
initial_actual. If set to specified, maintain the speed given by the Velocity field (see next.)
• Velocity - Maintain the specified speed, used only for Velocity Type = specified (see
previous.)
speed_s_map
speed_t_map
464 Adams Car
Running Full-Vehicle Analyses
vel_polynomial
• Velocity - Specifies the vehicle speed as polynomial of time. The Driving Machine
computes the speed using the following relation:
IF (Time < START_TIME):
SPEED = VELOCITY
IF ( TIME START_TIME ):
SPEED = VELOCITY +
ACCELERATION*(TIME - START_TIME)+
1/2*JERK*(TIME-START_TIME)**2
where START_TIME is the starting time relative to the beginning of the mini-maneuver.
Specify the following arguments:
VELOCITY = value <length/time>
ACCELERATION = value <length/time2>
JERK = value <length/time3>
START_TIME = value <time>
Note that JERK is the time rate of change of acceleration. JERK = d(acceleration)/dt.
• Acceleration
• Jerk
• Start Time
You can use a Table/Plot editor to define the various maps of speed and acceleration expressed
as a function of time or distance traveled.
Max Driving Acc Enter the maximum driving acceleration index. Valid values are 0 to 100.
Max LH Turn Acc Enter the maximum left turn acceleration index. Valid values are 0 to 100.
Max Braking Acc Enter the maximum braking acceleration index. Valid values are 0 to 100.
Running Analyses 465
Running Full-Vehicle Analyses
Max RH Turn Acc Enter the maximum right turn acceleration index. Valid values are 0 to 100.
Front Axle Coupling Fraction of maximum available traction and steering force (tire-force ellipse) at
front axle to utilize in generating static target speed profile (bigger values give more
aggressive speed targets.)
Rear Axle Coupling Fraction of maximum available traction and steering force (tire-force ellipse) at rear
axle to utilize in generating static target speed profile (bigger values give more
aggressive speed targets.)
Auto ICs For Vx The "Speed" parameter for the Maneuver (including the Static Set-Up) will be
replaced by SmartDriver with a value consistent with the target speed profile at the
starting position of the vehicle on the target path. (Note, the target speed profile
determined will not be constrained to begin at the Speed value specified for the
Maneuver.)
Auto ICs For Accx The "Long Acc." parameter for Static Set-Up (the initial Acceleration for the
Maneuver, including the Static Set-Up) will be replaced by SmartDriver with a
value consistent with the target speed profile at the starting position of the vehicle
on the target path.
Auto ICs For Gear The "Gear" parameter for the Maneuver (including the Static Set-Up) will be
replaced by SmartDriver with a value consistent with the target speed profile at the
starting position of the vehicle on the target path.
constant The Driving Machine inputs a constant signal to your vehicle model.
Note: The data provided will be interpolated linearly, and if extrapolated will saturate.
466 Adams Car
Running Full-Vehicle Analyses
function Specifies that you should use any valid Adams Solver function expression based on time.
impulse The Driving Machine outputs an impulse to your vehicle constructed from a pair of cubic
step functions. To define the impulse, you must specify the following arguments:
Start Time - The starting time of the impulse relative to the beginning of the mini-
maneuver. For example, if the mini maneuver starts at 1.2 seconds simulation time
and Start Time = 0.3 seconds, then the impulse begins at 1.5 seconds simulation
time.
Duration - The length in time of the impulse.
Maximum Value - The height of the impulse. The impulse reaches its maximum
value relative to the start time at half the duration.
Adams Car computes the IMPULSE function as follows:
ramp The Driving Machine supplies a ramp input. To define the ramp, you must supply the
following arguments:
Start Time
Ramp Value
Adams Car computes the RAMP function as follows:
Note: When using the RAMP function, the output value grows for the duration of the
mini-maneuver.
Running Analyses 469
Running Full-Vehicle Analyses
sine The Driving Machine outputs a single-cycle sinusoid to your vehicle smoothed at the
beginning and end by cubic-step functions. The duration of each cubic-step function is
1/100*CYCLE_LENGTH.
Start Time - The starting time of the sinusoid relative to the beginning of the mini-
maneuver. For example, if the mini-maneuver starts at 2.1 seconds simulation time
and Start Time = 0.3 seconds, then the sinusoid begins at 2.4 seconds simulation
time.
Amplitude - The amplitude of the sinusoid.
Cycle Length - The length of time to complete one cycle of the sinusoid.
Adams Car computes the SINE function as follows:
step The Driving Machine inputs a STEP5 function to your vehicle model based on the
following input parameters, which you must supply:
Start Time
Duration
Final Value
Adams Car computes the STEP5 function as follows:
STEP5(time,START_TIME,INITIAL_VALUE,START_TIME+DURATION,FINAL_V
ALUE)
swept_sine Sweeps the frequency of the output from the initial frequency to a maximum frequency at a
given rate. Once the maximum frequency is achieved, the frequency remains constant. The
amplitude of the swept sine function is fixed. To define swept sine, you must supply the
following parameters:
Start Time - The starting time of the function, measured from the beginning of the
mini-maneuver.
Amplitude - The amplitude of the swept-sine function.
Initial Frequency - The starting frequency of the swept-sine function in
<cycles/time>.
Frequency Rate - The rate the frequency is swept from the initial frequency to the
maximum frequency <cycles/time/time>.
Max Frequency - The maximum frequency of the swept sine function in
<cycles/time>.
The following plot illustrates the SWEPT_SINE open-loop function:
constant
data_driven
data_map
step
For these control types, Control Mode changes the meaning of the FINAL_VALUE input in the .xml.
Control Mode has no effect on the rest of the Control Types, nor on machine, and SmartDriver control
methods.
The relative and absolute methods allow you to define the steering-wheel angle for the end of the next mini
maneuver.
Arguments
Absolute Indicates that the final value is absolute. For example, for a step input to the steering where
the initial steering is 10 degrees and the final value is 50 degrees, the steer at the end of the
step equals 50 degrees.
Relative Indicates that the final value is relative to the initial value. For example, for a step input to
the steering where the initial steering is 10 degrees and the final value is 50 degrees, the
steer at the end of the step equals 60 degrees.
Here is another example. If at the beginning of the mini-maneuver the steering is 20o, the steering Control
Method is set to open, the Control Type is set to step, and the FINAL_VALUE = 90.0, then FINAL_VALUE
is relative to INITIAL_VALUE, and the steering angle at the end of the step input is 110o. If, however,
Control Mode is set to Absolute, then the steering angle at the end of the step input equals the
FINAL_VALUE of 90o
Specifying Conditions
Conditions specify when one mini-maneuver ends so the next one can begin. For example, you might end a
mini-maneuver when the vehicle speed reaches 100 kph. You can also group end conditions together. For
example, you might end a mini-maneuver when the vehicle speed reaches 100 kph and the lateral acceleration
exceeds 5 m/s2.
The event file supports conditions based on time, distance, velocity, acceleration, and many other vehicle
control variables. Conditions reference a measure or solver variable by name to measure a given quantity in
the model.
The Conditions tab of the Event Builder shows one possible condition at a time in Property Editor mode. To
add conditions or view other defined conditions, click the button to the left of the condition name to enter
Table Editor mode. In Table Editor mode, you can see all defined conditions, add new conditions, modify
conditions, or delete conditions. The Table Editor mode also lets you see the full set of arguments available
for each condition.
Arguments
Running Analyses 473
Running Full-Vehicle Analyses
Name Filter Filters the listed conditions based on the substring you specify.
Name Shows the condition name (not editable).
476 Adams Car
Running Full-Vehicle Analyses
modify linear analyses, or delete linear analyses. The Table Editor mode also lets you see and modify a subset
of arguments available for each linear analysis.
Arguments
Linear Analysis Chooses the type of linear analysis to be performed, can be:
Blackbox - lumped
Whitebox - element-by-element
Coordinates Table Include a coordinates table for selected modes
Dissipative Table Include a dissipative energy table for selected modes
Kinetic Table Include a kinetic energy table for selected modes
Strain Table Include a strain energy table for selected modes
Specify Tables by Choose how to select modes for tables, can be:
The following topics contain information on setting up quasi-static analyses, as well as a description of the
types of quasi-static analyses:
Quasi-Static Constant-Radius Cornering
Quasi-Static Constant-Velocity Cornering
Quasi-Static Force Moment Method
Quasi-Static Straight-Line Acceleration
Static Equilibrium Analysis
This analysis:
Uses a force-moment method to balance the static forces to 0 at each time step.
Provides a faster solution than the corresponding dynamic analysis, but doesn't account for transient
effects.
Can be useful when exploring the limit handling characteristics of the vehicle due to a combination
of decreasing turn radius and longitudinal acceleration.
Differs from the constant-radius cornering analysis in that the turn radius is not fixed.
If your powertrain model is based on a General State Equation subroutine (that is, derived from and
compatible with one of the shared powertrain template examples), this event will use the throttle to achieve
the desired longitudinal acceleration. If you specify a negative longitudinal acceleration, the throttle will be
used to control engine braking and thus deceleration, unless the additional power of the brakes is required to
achieve the desired deceleration.
A CONSUB controls this analysis. For more information on CONSUB, see Welcome to Adams Solver
Subroutines.
You can use the plot configuration file, mdi_fva_ssc.plt, in the shared car database to generate the plots that
are typically of interest for this analysis.
A CONSUB controls this analysis. For more information on CONSUB, see Welcome to Adams Solver
Subroutines.
3. Select OK.
1. Suspension Alignment
Adams Car "adjustable forces" are used to facilitate automatic suspension alignment during initial static
equilibrium. These adjusters control a linear distance between two points, measure the resulting alignment
angles, and compare to the user-specified targets.
By default, alignment of toe, camber or caster adjuster is inactive. After alignment is complete, adjuster
motion/force is used to lock the adjusters during subsequent analyses.
Toe, camber or caster adjuster alignment activity can be controlled by using toggle buttons from event
alignment or the Static Vehicle Set-up dialog box.
2. Weight Adjustment
To achieve the desired corner weights, the overall weight is first adjusted by modifying the mass of a selected
body. Its CG is also moved to achieve the correct front/rear and left/right total weights. This adjustment is
performed in a loop until the average change in corner weight error is less than the tolerance times the weight
scale, or the specified number of iterations has been reached.
Diagonal weight bias can be set once the weight adjustment is done, if "adjust spring preload" is selected and
the model uses supported spring types (ac_spring, ac_linear_spring, ac_airspring, ac_truck_airspring) at all
four corners. This diagonal bias adjustment is performed in a loop until the sum of corner weight errors is
less than the tolerance, or the specified number of iterations has been reached. The user has the option of
selecting which spring preload is to be adjusted.
If the desired mass properties are selected, inertia and C.G. height adjustment is performed in a loop along
with corner weight adjustment.
If mass location limits are selected, then it will restrict the movement of the C.G. of the selected part. If the
desired corner loads cannot be achieved within these limits, a warning message will appear and the simulation
will stop. You can then select a different part to achieve desired corner loads within specified limits. It is
484 Adams Car
Running Full-Vehicle Analyses
desirable to select a heavy part (example: chassis/body) to restrict its movement within the boundary of the
vehicle.
Note: If Weight, Ride Height Adjustment and/or Wheel Rate are selected, spring preloads are
adjusted in a single loop until the sum of the corner weight errors is less than the weight
tolerance, and the sum of the ride height errors is less than the height tolerance, and the sum
of the wheel rate errors is less than the wheel rate tolerance.
Notes: 1. In case of an interactive simulation and two different platforms are used for
running Adams and VTD, one should take care that the UDP ports used for the
RDB interface are not blocked. The ports used by this application are 48190,
48191, 48270 and 48271.
2. In case of an interactive simulation where the VTD application is to be accessed
remotely from either Windows or Linux, common remote access software like
RealVNC or MobaXterm are not supported. The one remote access software
that does work is NoMachine freeware which is available for download at
https://www.nomachine.com/download.
The __MDI_SPMM_TESTRIG test rig (Figure 16) is used for Suspension Parameter Measurement Machine
(SPMM) analysis.
The __MDI_SPMM_TESTRIG actuates chassis part using motion in jounce, rebound and roll sub-events.
The chassis part is fixed at the static configuration in the Steering, Compliance and Aligning torque sub-
events. In Compliance and Aligning torque sub-events general forces are used to apply forces and moments
Running Analyses 489
Running Full-Vehicle Analyses
at tire contact patch or at wheel center. In Steering sub-event steering wheel is actuated using rotational
motion.
Note: Before performing a SPMM analysis, you must specify several parameters about the vehicle
in which you intend to use the suspension and steering subsystems. These parameters include
the steering ratio, whether or not the suspension is front- or rear-wheel drive, and the braking
ratio. To define vehicle parameters, see Full-Vehicle Analysis: Setup Parameters.
490 Adams Car
Running Full-Vehicle Analyses
SPMM event has five different kinematic and compliance sub-events: Vertical Motion, Roll motion, Steer
Motion, Compliance and Aligning Torque. If you uncheck any particular sub-event using "Active" toggle
button, corresponding parameters of the events won't be displayed in the report. It will be displayed as
"N/A".
The SPMM Report contains the parameters below reported at static condition:
Parameter Information
Date Date and time of report generation
Vehicle Assembly Name of assembly used for SPMM analysis
General Parameters:
Total Weight Total weight of the vehicle. Summation of Front axle weight and Rear axle
weight.
Front Ground Reaction Weight of the vehicle on front axle
Rear Ground Reaction Weight of the vehicle on rear axle
Total Roll Inertia Vehicle principal mass moments of inertia about vehicle center of mass and is
oriented in GCS (X axis)
Total Pitch Inertia Vehicle principal mass moments of inertia about vehicle center of mass and is
oriented in GCS (Y axis)
Total Yaw Inertia Vehicle principal mass moments of inertia about vehicle center of mass and is
oriented in GCS (Z axis)
Total Product Ixy The cross products of inertia about vehicle center of mass and is oriented in
GCS (X and Y axis)
Total Product Ixz The cross products of inertia about vehicle center of mass and is oriented in
GCS (X and Z axis)
Total Product Iyz The cross products of inertia about vehicle center of mass and is oriented in
GCS (Y and Z axis)
Global C.G location Location of Center of Gravity of vehicle at static condition from GCS
Ground Plane Elevation The movement of ground plane to bring it below the tires.
C.G Height The height of vehicle C.G. from ground plane
Wheelbase Distance between the front and rear wheel centers
Average Track Width The average of front and rear track width
STATIC:
Static Toe (total / left / Toe specified in the alignment setting at static position. If adjuster force is
right)* defined and active in the subsystem, value in the report matches the alignment
setting.
492 Adams Car
Running Full-Vehicle Analyses
Parameter Information
Static Camber* Camber specified in the alignment setting at static position. If adjuster force is
defined and active in the subsystem, value in the report matches the alignment
setting.
Static Caster* The angle in the side elevation between the steering axis (such as kingpin axis)
and the vertical
Kingpin Angle* The angle in the front elevation between the steer axis (the kingpin axis) and
the vehicle's vertical axis. It is positive when the steer axis is inclined upward
and inward.
Caster Trail* The distance in side elevation between the point where the steering axis
intersects the ground, and the center of tire contact. The trail (or offset) is
considered positive when the intersection point is forward of the tire contact
center and negative when it is rearward.
Scrub Radius* The distance from the point at the intersection of the kingpin axis and the
ground plane to the line of intersection of the wheel and ground planes. Scrub
radius is positive if the kingpin axis intersects the ground inboard of the wheel.
Track Width* The lateral distance between the centers of tire contact of the left and right
wheels
Roll Center Height* The vertical distance of Roll center location from the ground plane.
Roll Center lateral shift* The lateral distance of Roll Center Location from the half-track.
Wheel Center Rise Difference in wheel center height, measured with respect to the body, between
design and static equilibrium condition.
Tire Rolling Radius Static tire loaded radius
BOUNCE TEST:
Wheel Rate* The rate of change in normal tire force per unit change in vertical
displacement of wheel center.
OR
The change of wheel load, at the center of tire contact, per unit vertical
displacement of the sprung mass relative to the wheel.
Spring Rate The rate of change in spring length per unit displacement of spring
displacement
Spring Ratio The rate of change in spring length per unit vertical displacement of the wheel
center relative to the sprung mass
Damper Ratio The rate of change in damper length per unit vertical displacement of the
wheel center relative to the sprung mass
Spring Rate at Wheel Calculated by taking the square of the spring ratio times the spring rate
Bump Steer Change in toe angle per unit vertical displacement of the wheel center.
Running Analyses 493
Running Full-Vehicle Analyses
Parameter Information
Bump Caster Change in caster angle per unit vertical displacement of the wheel center
Bump Camber Change in camber angle per unit vertical displacement of the wheel center
Longitudinal Wheel Change in horizontal displacement of the wheel center per unit vertical
Center Recession displacement of the wheel center
Lateral Wheel Center Change in lateral displacement of the wheel center per unit vertical
Migration displacement of the wheel center
ROLL TEST:
Wheel Rate in Roll Change in normal tire force per unit change in vertical displacement
Roll Stiffness Resistance to chassis roll due to spring and/or anti roll bar.
Parameter Information
Full lock Angle Maximum steer angle of inner and outer wheel at given parameter
@pvs_max_rack_disp pvs_max_rack_displacement in right turn. This will be displayed if rack travel
(Right Turn) reaches specified rack travel in parameter variable
pvs_max_rack_displacement.
LONGITUDINAL COMPLIANCE TEST:
Brake Steer Change in toe angle per unit change in longitudinal tire force at contact patch
Traction Steer Change in toe angle per unit longitudinal force at wheel center
Contact Patch Braking Change in longitudinal tire force at contact patch per unit change in
Stiffness longitudinal tire displacement
Wheel Center Change in longitudinal force at wheel center per unit change in longitudinal
Longitudinal Stiffness tire displacement
Caster Compliance - Change in caster angle per unit longitudinal tire force at contact patch
Braking
Caster Compliance - Change in caster angle per unit longitudinal force at wheel center
Traction
LATERAL COMPLIANCE TEST - PARALLEL:
Lateral Force Steer Change in toe angle per unit lateral tire force at contact patch
Compliance*
Lateral Force Camber Change in camber angle per unit lateral tire force at contact patch
Compliance*
Wheel Center Lateral Change in lateral tire force at contact patch per unit lateral tire displacement
Stiffness*
LATERAL COMPLIANCE TEST - OPPOSITE:
Lateral Force Steer Change in toe angle per unit lateral tire force at contact patch
Compliance*
Lateral Force Camber Change in camber angle per unit lateral tire force at contact patch
Compliance*
Wheel Center Lateral Change in lateral tire force at contact patch per unit lateral tire displacement
Stiffness*
ALIGNING TORQUE TEST - PARALLEL:
Aligning Torque – Steer* Change in steer angle per unit change in aligning torque on the wheel
Aligning Torque - Change in camber angle per unit change in aligning torque on the wheel
Camber*
ALIGNING TORQUE TEST - OPPOSITE:
Aligning Torque – Steer* Change in steer angle per unit change in aligning torque on the wheel
Aligning Torque - Change in camber angle per unit change in aligning torque on the wheel
Camber*
Running Analyses 495
Running Full-Vehicle Analyses
* For detailed information refer to Running Analyses > Output of Suspension Analyses
Communicator
Option Template Role Matching Name Entity Type
Engine Steering steering_assist_force force Single
On/Off
ARB On/Off Antirollbar/Suspension arb_droplink_joint / Joint / bushing Left/Right
(if ARB is modelled as arb_droplink_bushing
part of suspension)
The __MDI_SPMM_TESTRIG test rig (Figure 17) with some graphical changes is used for KnC analysis.
The __MDI_SPMM_TESTRIG actuates wheel part using motion in jounce, rebound and roll sub-events.
The chassis part is fixed at the static configuration in the Vertical, Roll, Steering, Compliance and Aligning
torque sub-events. In Compliance and Aligning torque sub-events general forces are used to apply forces and
moments at tire contact patch or at wheel center. In Steering sub-event steering wheel is actuated using
rotational motion.
Running Analyses 497
Running Full-Vehicle Analyses
Note: Before performing a KnC analysis, you must specify several parameters about the vehicle in
which you intend to use the suspension and steering subsystems. These parameters include
the steering ratio, whether or not the suspension is front- or rear-wheel drive, and the braking
ratio. To define vehicle parameters, see Full-Vehicle Analysis: Setup Parameters.
and '<output_prefix >_vertical_dkcse.plt' for dynamic vertical motion sub-event). It also creates command
file (.cmd) that can be used to import all the plt files. The plot configuration file includes pre-defined plots
for the selected KnC sub-events. The creation of plot configuration files per sub-event is as follows:
Report
The report for Kinematic and Compliance event can be generated and displayed from event browser, you
can right click on this event instance under event set, and select Review → Generate Report.
When you simulate Kinematic and Compliance event, report file with extension
<test_name>_[d]kcse_rep.dat file will be generated in your working directory.
Kinematic and Compliance event has five different kinematic and compliance sub-events: Vertical Motion,
Roll motion, Steer Motion, Compliance and Aligning Torque. If you uncheck any particular sub-event using
"Active" toggle button, corresponding parameters of the events won't be displayed in the report. It will be
displayed as "N/A".
For details on report generation and its parameters descriptions, Animations, flexible chassis and Engine
On/Off and ARB On/Off refer respective sections under Suspension Parameter Measurement Machine (SPMM)
Analysis.
Running Analyses 499
Using the Driving Machine
path and maintain a specified longitudinal speed or acceleration. Inputs to Machine Control are the target
path the vehicle should follow and/or a target speed or longitudinal acceleration vs time or distance.
Using Adams SmartDriver, you can determine the maximum performance of a vehicle as it follows a specified
path. Adams SmartDriver is an extra-cost, add-on product that lets you specify a desired performance
criterion (for example, 100%, 80%, 50% of vehicle limits) for the vehicle as it follows the defined path.
Adams SmartDriver then creates a target longitudinal speed along the path that meets the desired
performance criterion.
Adams Car stores your instructions to the Driving Machine in an XML event file. You can use the Event
Builder (or any text editor) to create or modify an event file.
Note: We changed the Driving Machine architecture to support XML files as the default, while
maintaining support for legacy dcf files. If you specify a dcf file, Driving Machine
automatically converts it to an XML file in the working directory so you can use the Event
Builder to review and modify the event.
Driving Machine reads recorded open-loop signals and vehicle path and velocity data from text files named
driver control data files (.dcd).
To help you calculate the control signals, Adams Solver passes vehicle information such as position, velocity,
and acceleration, to the Driving Machine. The Driving Machine provides a means for defining and passing
sets of command signals, feedback signals, and parameters for each of the five control signals (steering,
throttle, brake, gear, and clutch).
The following figure shows how the Driving Machine works in a virtual prototyping model.
Running Analyses 501
Using the Driving Machine
Path transformation
Depending on the steering control input that is used, paths may be transformed (translated and/or rotated)
to align the beginning of the path with the initial position/orientation of the vehicle. Paths obtained by
extracting road centerlines from road data are not transformed by default to prevent misalignment of the path
used by the driving machine and the road used by the tires and road graphics.
Following table shows the transformations applied to the path for the different steering control inputs:
Template Updates
The 2005 Driving Machine employs vehicle controllers developed by MSC Software, commonly known as
Machine Control, which replaces DriverLite functionality, and Adams SmartDriver. To better control speed
and path, the 2005 Driving Machine needs additional information about the vehicle. In particular, the speed
controller uses a feed-forward function to ensure quick and accurate response. However, this requires
information about the available engine brake torque, engine drive torque, brake torque, and aerodynamic
drag. You supply this information by creating new output communicators in your templates. In addition, you
must also enter vehicle parameter data, such as overall steering ratio that is stored in the assembly file.
For more information, see Working with Templates->Template Updates.
Speed
Represents the initial vehicle speed for the maneuver.
Gear Number
Represents the initial gear position for the maneuver.
Static Setup
You can specify static-setup analyses that remove start-up transients that can eliminate mini-maneuvers that
you might normally use to set up a vehicle for cornering maneuvers. For example, in the past, to perform a
brake-in-turn analysis you might have run a transient mini-maneuver to have the vehicle turn-in and reach
static-setup on given turn, at a given speed/lateral acceleration, before starting to brake the vehicle. This
approach is equivalent to a test driver on a proving ground, driving at a steady speed and in a steady-state
condition (vehicle has no transients) before starting a dynamic maneuver (braking, acceleration, steering, and
so on). Now you can perform a much faster (less CPU time) static-setup analysis.
You can set static setup to any of the arguments described next.
Running Analyses 507
Using the Driving Machine
Arguments
none Adams Car does not perform a static equilibrium analysis. Rather, it locks the wheel
rotations and then performs an acceleration initial-conditions analysis, which initializes
Adams Tire. Adams Car then deactivates the wheel lock joint primitives before
executing the first mini-maneuver.
normal Locks the wheel rotations using joint primitives, but leaves the body free to move in the
fore-aft, lateral, and yaw directions. Soft springs (1 N/m and 10 N m/radian),
introduced by Adams Tire just for static equilibrium, acting in all directions between
each wheel center and ground limit, but do not prevent, body yaw, fore-aft, and lateral
displacements. Then, before executing the first mini-maneuver, Adams Car deactivates
the joint primitives to unlock the wheel rotations, and Adams Tire removes the soft
springs.
The transitional and torsional stiffnesses supplied by the tire act in all directions (x,y,z).
Without these stiffnesses, the vehicle would have a neutral equilibrium position in the
x-y plane of the road.
settle Locks the body's fore-aft, lateral, and yaw displacement using joint primitives and
performs a static equilibrium to settle the vehicle on the road. Then, before executing
the first mini-maneuver, Adams Car deactivates the joint primitives.
For example selecting settle and specifying an initial velocity of 27777.78 mm/s is
equivalent to driving a stake vertically through the vehicle body and constraining the
body to move vertically about the stake. It allows the vehicle to roll (cornering) and
pitch (braking), but does not allow rotation about the axis of the stake (Yaw). When the
vehicle is released from this condition, it should be relatively well balanced to remove
initial transient effects. An imbalance in the tire forces could, however, cause a slight
steering effect. If you want to remove this effect, we recommend that you use straight.
508 Adams Car
Using the Driving Machine
skidpad Locks the body's fore-aft and lateral position using a joint primitive. Adams Car adjusts
the steering and throttle so the vehicle's yaw rate, lateral acceleration, and speed match
those prescribed by the initial radius, initial turn direction, and the initial lateral
acceleration or initial speed. You must specify the initial radius and turn direction. Also,
you must supply either the initial lateral acceleration or the initial speed.
For example, selecting skidpad and specifying an initial radius, turn direction, and
initial speed effectively performs a settle static setup followed by a straight static setup.
Then, Adams Car adjusts the steering and throttle so that the vehicle's yaw rate, lateral
acceleration, and speed match those prescribed in the event file. By carefully observing
the .msg file Adams Solver produces, you can see the model manipulation occur.
straight Locks the body's fore-aft and lateral position using a joint primitive. Adams Car adjusts
the steering (so that the vehicle's yaw rate and lateral acceleration are zero) and the
throttle and/or brake (to balance any aerodynamic drag and scrub that the tires produce
and to match the specified initial longitudinal acceleration). Then, before executing the
first mini-maneuver, Adams Car deactivates the joint primitives.
The maneuver has two separate static analyses: the first uses the settle method, the
second uses a force balance on the vehicle body to ensure that the net lateral force is
negative (the vehicle is traveling in a straight line) and that longitudinal forces are zero.
The values for steering-wheel angle, throttle position, and so on, are used as initial
conditions for the subsequent dynamic analysis.
Gear-Shifting Parameters
Define the gear-shifting properties and the shape of the upshift and downshift curves for throttle and clutch
signals.
Arguments
Throttle Fall Time Delta time of the step function for the descending curve of the throttle signal
(> 0.0)
Clutch Fall Time Delta time of the step function for the descending curve of the clutch signal
(> 0.0)
Throttle Raise Time Delta time of the step function for the ascending curve of the throttle signal
(> 0.0)
Clutch Raise Time Delta time of the step function for the ascending curve of the clutch signal (>
0.0)
Shift Time Duration of the gear shifting event (> 0.0)
RPM Control Enables an algorithm for RPM limiting during gear shifting
Running Analyses 509
Using the Driving Machine
Mini-Maneuvers
The Driving Machine runs each mini-maneuver in the order listed, until the list is ended or a mini-maneuver
is terminated.
For each mini maneuver, you must specify a name for the mini-maneuver, the control signals (steering,
throttle, braking, gear, and clutch), as well as the condition for ending the mini maneuver. Learn more about
Creating Mini-Maneuvers.
Note: Driver control data files can contain both open-loop and closed-loop blocks.
The rows represent the steering control options from the driver parameters array.
The intersections give the data contained in the .dcd file and, therefore, the data input to the funnel
to produce {x, y, lon_vel} as needed by Driving Machine.
p1 refers to the first parameter in the steering and throttle (speed) driver parameters arrays (initial
conditions arrays) in the dataset Adams Car outputs.
SPEED_CONTROL path
STEERING_CONTROL none lon_vel (p1=0) lon_acc (p1=1) lat_acc (p1=2) (p1=3)
none NOT {(distance or time), {(distance or time), NOT VALID NOT
VALID lon_vel} lon_acc} VALID
curvature (p1 = 0) {distance, {(distance or time), {(distance or time), {(distance or time), NOT
curvature} curvature, lon_vel} curvature, lon_acc} curvature, lat_acc} VALID
path (p1 = 1) {x, y} {x, y, lon_vel} {x, y, lon_acc} {x, y, lat_acc} {x, y,
time}
lat_acc (p1 = 2) NOT {distance or time, {distance or time, NOT VALID NOT
VALID lat_acc, lon_vel} lat_acc, lon_acc} VALID
[UNITS]
LENGTH = 'meter' || 'millimeter' || 'centimeter' || 'kilometer' || etc.
FORCE = 'newton' || 'kilogram_force' || etc.
ANGLE = 'deg' MASS = 'kg'
TIME = 'sec'
[CLOSED_LOOP]
comment = string
steering_control = 'none' || 'curvature' || 'path' || 'lat_acc'
speed_control = 'none' || 'lon_vel' || 'lon_acc' || 'lat_acc' || 'path'
ordinal = 'distance' || 'time'
lon_vel_max = float
lon_vel_min = float
lon_acc_max = float
lon_acc_min = float
lat_acc_max = float
lat_acc_min = float
(DATA)
$ steering, speed
$ 1 Case{none, none} -- null case, no data required!!
$ 2 Case{none, lon_vel}
$ 3 Case{none, lon_acc}
$ 4 Case{none, lat_acc} -- NOT VALID
$ 5 Case{none, path} -- NOT VALID
{ ( distance || time ) && ( lon_vel || lon_acc ) }
$ 6 Case{curvature, none} -- Must have distance with curvature
{ distance && curvature }
$ 7 Case{curvature, lon_vel}
$ 8 Case{curvature, lon_acc}
$ 9 Case{curvature, lat_acc}
$10 Case{curvature, path} -- NOT VALID
{ ( distance || time ) && curvature && ( lon_vel || lon_acc || lat_acc )}
$11 Case{path, none}
$12 Case{path, lon_vel}
$13 Case{path, lon_acc}
$14 Case{path, lat_acc}
{ x && y && ( lon_vel || lon_acc || lat_acc ) }
$15 Case{path, path}
{ x && y && time }
$16 Case{lat_acc, none} -- NOT VALID
$17 Case{lat_acc, lon_vel}
$18 Case{lat_acc, lon_acc}
$19 Case{lat_acc, lat_acc} -- NOT VALID
$20 Case{lat_acc, path} -- NOT VALID
{ ( distance || time ) && lat_acc && ( lon_vel || lat_acc ) }
[OPEN_LOOP]
ordinal = 'time' || 'distance'
{distance || time steering throttle brake gear clutch}*
0.0 0.0 0.0 0.0 2 0.0
0.1 0.0 0.0 0.0 2 0.0
*You can select distance or time and any combination of steering, throttle, brake, gear, and clutch.
{ TIME, LON_VEL }
0.0 27.777
0.1 27.777
0.2 27.776
0.3 27.775
0.4 27.774
0.5 27.773
.....
Differences between the behavior of the simulated vehicle and the expected behavior (that is, the behavior of
the idealized models employed by the controller) are corrected continuously using feedback controllers,
which adjust the control actions to minimize the error between the reference trajectory and the actual vehicle
behavior.
Learn more about Machine Control:
Feed-Forward Control
Trajectory Planning
Feedback Control
Computation of Controls
Feed-Forward Control
The projection of the vehicle path onto the ground plane is related to the velocities and global heading
as:
x· = V X cos θ – V Y sin θ
y· = V X sin θ – V Y cos θ
where:
514 Adams Car
Using the Driving Machine
The feed-forward component of the lateral control action is computed by assuming that your simulated
vehicle responds as a bicycle model. The simplicity of the bicycle model allows the analytical identification
of the relationship between the geometry of the path and the necessary control action (steering angle), and
vice-versa.
In a bicycle model, the lateral forces from both tires on an axle are assumed to act in the same direction, and
the left and right steer angles are assumed to be the same. In other words, Ackerman steering geometry is not
considered. With these assumptions, the tires may be lumped together into a single tire representation, and
the model is guided by a single steer angle.
This simplified model is used to identify the necessary steer angle required for the vehicle to follow the
specified target.
Running Analyses 515
Using the Driving Machine
The form of the bicycle model employed by Machine Control assumes pure rolling of the front and rear tires
with no kinematic or compliance-steer effects, and therefore, no lateral velocity at the rear axle. Note that this
does not imply zero sideslip at the center of mass.
If the origin of the vehicle-fixed local axis system shown above is selected to be the center of the rear axle (not
the center of mass), then the lateral velocity VY is now always assumed to be zero, and the assumed path of
the vehicle simplifies to:
516 Adams Car
Using the Driving Machine
where:
Rate of change of the direction of the path at the rear axle (note that this is not
equal to the yaw rate of the vehicle).
In this case, the center of the turn always lies on a line through the rear axle. The steer angle required to yield
a certain path curvature is then always equal to the Ackerman angle, and is independent of the vehicle speed
V X:
where:
E Wheelbase of the vehicle
R Radius of the turn at the rear axle
ρ Curvature of the path of the rear axle
and, therefore, this single steer angle input to the bicycle model controls the radius of turn and the curvature
of the path. A simple inversion of this equation enables an estimate of the necessary steer angle to be
calculated and applied to the simulated vehicle in a feed-forward sense.
1 2
T aero – drag = --- ρ A C D AVref R eq
2
Running Analyses 517
Using the Driving Machine
where:
The default is not to include tire rolling resistance in Tw because this can cause poor performance, if the road
is not smooth. Including tire rolling resistance can be beneficial for some simulations, if the vehicle is heavy
(or if tire rolling resistance accounts for a significant fraction of the overall longitudinal force for other
reasons.).
Gear Shifting
Gear shifts are triggered on the basis of engine speed thresholds, and the gear is incremented according to the
following strategy:
where:
Trajectory Planning
Connecting Contour
For the lateral control of the vehicle with a target path, a simple model of the vehicle (a bicycle model) is used
to compute the control action that should cause the vehicle to follow the intended path. The simulated
vehicle, however, may not exactly follow the target path because of differences between the simplified model
and the simulated vehicle (see Note), or external factors (road roughness and aerodynamic disturbances).
Therefore, the potential for offset between the instantaneous vehicle location and heading, and the location
and heading of the path must be considered. In considering the location and heading of the path, Machine
Control builds a connecting contour between the current vehicle position (wherever it may be) and some
point on the target path, along which the vehicle will be steered to later bring it back to the target path:
Connecting contour
where:
D - preview distance = max(minimum, preview time * speed) - distance ahead from the current
vehicle (gyro pt) position to locate preview point.
L0 - path_distance - distance from current vehicle (gyro pt) position to the nearest point on the
path, projected on the road surface.
L1 - preview_point_distance - distance from preview point to the nearest point on the path,
projected on the road surface.
The function that describes the connecting contour is parameterized such that one end of the connecting
contour matches the position and direction of the vehicle (at the vehicle rear axle) and the other end of the
connecting contour matches the path (at the preview distance, where the contour connects with the target
path), as shown in the above figure.
The most potent (effective) adjustment to the connecting contour is the preview distance, which is typically
controlled by changing the preview time. It is also possible (but less potent) to use alternate connecting
contour shapes. The default connecting contour is a cubic with tangents matching the vehicle heading at both
the "near" and "far" ends. Two alternate connecting contours are available: one is a cubic matching the vehicle
heading at the "near" end and the path tangent at the "far" end; the other is a circular arc matching the vehicle
heading at the "near" end and touching the target path at the far end. For some paths, notably skidpads, the
Running Analyses 519
Using the Driving Machine
alternate cubic and the circular options are superior to the default (which is best in the widest variety of
situations.) Finally, and least potent in general but sometimes useful in marginal situations, it is possible to
use the heading of the vehicle velocity rather than the vehicle heading (thus incorporating the body side slip
angle) for the tangent at the "near" end of all three connecting contour types (and of the "far" end of the
default cubic type) by setting MSC_SD_CONN_CONTOUR_BETA_CORRECTION to 1.
The connecting contour then becomes the reference trajectory (path) for the lateral control of the vehicle,
and the vehicle is steered by both feed-forward and feedback controllers, such that it should follow this
connecting contour. The connecting contour is updated each time the Machine Control controller is called.
Note: The ._MDI_SDI_TESTRIG test rig creates a "gyro point" used as the origin for the connecting
contour and determines the vehicle wheelbase used for the bicycle model based on the locations of
the front and rear wheel centers as defined by the ci(l/r)_wheel_center(front/rear)
communicators. For 2 axle vehicles, even those that do not steer at the front axle, the bicycle
model provides an adequate feed-forward estimate when the path curvature is significantly
bigger than the vehicle wheelbase. For vehicles with more than 2 axles, decide which axles to
identify as "front" and "rear" so that the wheelbase and gyro point location based on those
wheel center locations will provide a reasonable feed-forward estimate of the ratio of steer
angle to path curvature and a reasonable origin for the connecting contour.
Feedback Control
Anti-windup
To improve the stability of the control in conditions of actuator (usually engine torque) saturation, the input
to the integral term of the controller is set to zero. This prevents wind-up of the integral term when the vehicle
is unable to provide any more torque, such that the feedback component of the torque demand becomes:
Computation of Controls
such that the upper and lower limits Tm and TM on the net wheel torque, Tw (we) can be identified from the
upper and lower limits on Te (we):
522 Adams Car
Using the Driving Machine
where:
Net wheel torque limits as a function of engine speed, and maximum brake torque
The above figure shows the user-supplied engine model, scaled according to the gearing of the vehicle, to
yield:
The maximum available net wheel torque, TM (normally positive for all we)
The minimum available net wheel torque Tm (usually negative, especially at high engine speed we,
since it includes frictional and pumping losses due to throttling).
or
If a throttle map is provided, then this is mathematically inverted, so that the necessary throttle position can
be identified from the required net wheel torque Tw, provided it is feasible for the engine to deliver this torque
at the current engine speed :
524 Adams Car
Using the Driving Machine
If the linear model is selected, then the feed-forward throttle and brake signals can be determined directly
from the required torque:
Running Analyses 525
Using the Driving Machine
The following plot shows the influence of the throttle raise and fall time parameters:
Running Analyses 527
Using the Driving Machine
The following plots show the effect of changing a single parameter from this baseline:
528 Adams Car
Using the Driving Machine
Changing DT1:
Running Analyses 533
Using the Driving Machine
Changing DT2:
534 Adams Car
Using the Driving Machine
Wheel-lift compensation
Controller-induced wheel-spin-up or wheel-lock is prevented by detecting when the loads on the driven
wheels go to zero (that is, the driven wheels are not in contact with the road). In this case, the throttle and
brake are released (set to zero) and the clutch is depressed. The clutch action ensures that when the vehicle
lands, the wheels spin up to the correct velocity as quickly as possible.
Driving Machine Design Options to improve computation speed for open loop events
The Driving Machine has several design options that deactivate Adams Solver Driving Machine components
and still allow for simulating open loop events. In open loop events the Driving Machine inputs (steering,
throttle, brake, gear and clutch) are provided by the user and the controlMethod in the event specifiction is
set to 'open'. Removing components from the Adams dataset not needed for the simulation may improve
Adams Solver computation speed, which is important for, for example, Real-Time applications utilizing the
Fixed Step Integrator.
From the Adams Car GUI, select Adjust → Design Options and choose for Subsystem Name the testrig
connected to the assembly (for example, MDI_Demo_Vehicle.testrig). Following three design options are
available for Driving Machine State:
Full Driving Machine - No Adams Solver components are deactivated in the Adams dataset. This
default option allows for full functionality of the Driving Machine.
Open Loop Events - Adams Solver components connected to the Driving Machine are de-activated,
but this design option still allows for using End Conditions in the event.
External Signal Driven - Adams Solver components connected to the Driving Machine are de-
activated, but this design option does not allow for using End Conditions in the event.
As an example, the Driving Machine discrete GSE Adams Solver component is not required when simulating
open loop events, and will be deactivated for design options 'Open Loop Events' and 'External Signal
Driven'. The GSE may have impact on computation time and thus may improve Solver computation speed
by removing it from the Adams dataset.
Prior to running the simulation, the Driving Machine state is verified and changed to 'Full Driving Machine'
or 'Open Loop Events' if a machine controlled event or end condition is detected in the event specification.
If any subsystems within the assembly being analyzed contain flexible bodies, your template-based product
automatically outputs a results file, regardless of the specifications you made.
ID Description
900 Runs one or more static solutions to, for example, to adjust tie rod length to set desired toe
angle. Adams Car adds a call to this consub when the assembly contains adjustable forces. See
Align or Adjust Suspension.
910 Set part velocity and wheel rotational velocity. See Part Velocity Setting.
917 Set part velocity and wheel rotational velocity. See Set Part Velocity.
950 For a suspension assembly, run a quasi-static simulation from time zero (0) to time one (1) to
position the suspension at the first point in the loadcase file. Output from Adams Solver to
the request, graphics, and results files is suppressed so that plots generated for suspension
characteristics verses wheel travel do not have duplicate points
ID Description
1032 Quasi-Static Steady-State Swept Steer Equilibrium
1060 Quasi-Static Milliken Moment Method Analysis
1402 Deactivate Initial Condition Motion, jprims, joints and couplers
2. Predefined Test Rig analyses database files can be selected by clicking on File → Open.
3. In the Registered Databases select mdids://acar_shared/ and pure_cornering_test.xml from the folder
and then click Open.
Running Analyses 539
Running Component Analyses
4. Each line represents one simulation with the Tire Test Rig. Clicking on one of the cells in the Name
column will allow you to define the simulation specifications in detail. For example clicking on '3000
N' will bring you into the Tire tab.
5. By clicking the Run It button, all specified simulations will be run with the solver and simulation
settings as shown. After each simulation the simulation results will be imported into the Adams
Postprocessor and a set of standard plots will be created.
6. By clicking the Add button a new analysis will be added with a name specified in the Name box.
7. The set of simulations can be saved in an .xml database file and re-loaded for another session.
1. Tire
The 'Property File' cell defines the property file to be used in this simulation, while the 'Mass', 'Ixx', 'Iyy'
and 'Izz' define the mass and inertia of the wheel and tire (see also Defining Wheel Inertia).
With 'Left' and 'Right' the tire characteristics may be mirrored depending on the mounted side of the tire
defined in the tire property file (see section Left and Right Side Tires in the PAC2002 documentation).
2. Road
Running Analyses 541
Running Component Analyses
3. Kinematics
By clicking Load from File the unloaded radius will be imported from
the tire property files specified under tab Tire.
Initial Spin q_statics The initial rotational velocity (used at the start of the simulation) of
Velocity the wheel will be calculated using the 'Tire Radius' and the 'Initial
Long. Velocity' by a quasi-statics setup.
user_defined The user can specify the initial rotational velocity of the wheel in the
cell at the right of this drop down box.
Running Analyses 543
Running Component Analyses
The slip value is based on the 'Initial Long. Velocity' and the 'Tire
Radius'.
4. Vertical/Longitudinal
544 Adams Car
Running Component Analyses
When the 'force' option is used the wheel can move without any
constraints in vertical direction.
disp_motion A vertical displacement motion is applied to the wheel center based on
the function expression defined at the right side of the drop down box.
A zero motion displacement means that the distance in between the
wheel center and the road is equal to the Tire Radius defined under tab
Kinematics. A positive displacement causes a tire deflection.
vel_motion A vertical velocity motion is applied to the wheel center based on the
function expression defined at the right side of the drop down box. In
the initial position, the distance of the wheel center to the road is equal
to the unloaded tire radius.
Longitudinal force A force along the x-axis of the tire Test Rig on the wheel center can be
defined in the box at the right of this drop down box.
disp_motion A displacement motion along the x-axis on the wheel center will be
applied as defined at the right of this drop down box. For a
displacement equal to a constant velocity, the 'Constant Velocity'
input box can be use. The Use Initial Velocity button will import the
Initial Long. Velocity value defined under the Kinematics tab.
vel_motion A velocity motion along the x-axis on the wheel center will be applied
as defined at the right of this drop down box. For a velocity equal to a
constant velocity, the 'Constant Velocity' input box can be used. The
Use Initial Velocity button will import the Initial Long. Velocity value
defined under the Kinematics tab.
Locked off The anti-lock controller is not applied.
Wheel on A simple anti-lock (torque) controller is applied to the wheel.
Controller
Brake/Drive An expression can defined for a rotational torque along the wheel spin
Torque axis.
Running Analyses 545
Running Component Analyses
5. Out of Plane
6. Spring Damper
The Spring Damper tab specifies the properties of a spring in between the wheel center and the ground.
546 Adams Car
Running Component Analyses
The 'Current Field Unit' informs about the units for the selected input box. The plots generated in the
Adams PPT will be in the MMKS unit system by default.
Note: When switching units, the inputs contain the Adams expressions for a motion or a sforce are
not converted. This can be checked by selecting the input box: the 'Current Field Unit' will
remain blank!
548 Adams Car
Running Component Analyses
Another plotfile can also be chosen by defining the environment variable MSC_TIRETESTRIG_PLT, for
example:
MSC_TIRETESTRIG_PLT=d:/adams/testrig/my_tire_testrig_plots.plt
By setting the checkbox 'Clear Plots with New Run', all plots of a previous run will be deleted before plotting
the latest results.
Running Analyses 549
Running Component Analyses
The .xml can be used to run the simulations in batch mode. No postprocessor will be started after the
simulations, but just the simulations will be executed. An example of a macro (.cmd) running the simulations
is given below. This macro executed with the command:
Windows:
<release>\common\mdi.bat acar ru-acar b runtest_batch.cmd
Linux:
<release>/mdi -c acar ru-acar b runtest_batch.cmd exit
With the content of the runtest_batch.cmd (running the tiretestrig_batch.xml):
! example cmd for running tire testrig in batch:
! mdi.bat acar ru-acar b runtest_batch.cmd
!----
!
variable create variable_name=filename string_value="tiretestrig_batch.xml"
!
if condition=(!db_exists(".acar.variables.tireTestrig"))
variable set variable_name=ttmp_pyexe &
int=(eval(run_python_code("from mdi.visedit.common.tiretestrig_editor
import *")))
variable set variable_name=ttmp_pyexe &
int=(eval(run_python_code("os.environ[\"MDI_PRODUCT_NAME\"]=\"main\" ")))
variable set variable_name=.acar.variables.tireTestrig &
int=(!eval(run_python_code("w_tire_testrig=TireTestrig_editor()")))
end
!
! for loading the acar databases
!
for var=ttmp_index start=1 end=(eval(cdb_get_number_of_cdbs()))
variable set variable_name=ttmp_name string =
(eval(cdb_level2db(ttmp_index)))
variable set variable_name=ttmp_path string =
(eval(cdb_alias2path(ttmp_name)))
variable set variable_name=ttmp_pycmd &
string=(eval("w_tire_testrig.addDb
('"//ttmp_name//"','"//ttmp_path//"')"))
variable set variable_name=ttmp_pyexe &
int=(eval(run_python_code(ttmp_pycmd)))
end
!
550 Adams Car
Output of Full Vehicle Analyses
if condition=(filename != "")
variable set variable_name=ttmp_pyexe &
int=(eval(run_python_code("w_tire_testrig.loadFile ('" // filename //
"')")))
variable set variable_name=ttmp_pyexe &
int=(eval(run_python_code("w_tire_testrig.runit_clicked(True)")))
end
!
variable delete
variable=(eval(db_filter_name(db_children(.__ACAR,"variable"),"ttmp_*")))
Note: Some result_sets are comprised of multiple requests, and most requests contain multiple
components. Descriptions are given for each request, and for those components which may
not be clearly defined by their names.
Driver Demands
brake:
gear_position:
Running Analyses 551
Output of Full Vehicle Analyses
clutch:
steering_force:
SSE Outputs
target_ax:
path_s:
path_distance: distance from current vehicle (gyro pt) position to the nearest
point on the path, projected on the road surface
path_curvature:
maneuver_ID:
min_driving_torque:
Corner Heights
FR:
RL:
RR:
554 Adams Car
Output of Full Vehicle Analyses
Model Fidelity Reduction
Adams Car provides an automated reduction in modelling fidelity with the aim of reducing simulation run
times. This can be beneficial in cases of real-time applications or multiple – run analyses such as DOE.
Currently Model Fidelity Reduction is achieved using anti-roll bar(s) and tire modelling objects in you Adams
Car Assembly. Other modelling objects will follow.
Note: This Fidelity tool only supports the Adams Car Anti-Roll Bar component.
542 Adams Car
Model Fidelity Reduction on Anti-Roll Bars
You need click on 'Compute Equivalent Stiffness' and proceed. This will start an iteration process
performing wheel-travel-like simulations to calculate the equivalent linear torsional stiffness for the Simple
method. Once this process is finished, the resulting equivalent stiffness is shown in the gray field.
The Choose Reduction page shows the characteristics of the original Anti-Roll Bar versus the Simple Anti-
Roll Bar using the computed Equivalent Stiffness ('Derived Stiffness'). Change field 'Stiffness to Apply' if you
want to use a different stiffness for the linear torsional spring in the Simple Anti-Roll Bar. Click Plot to
compute and visualize the force-deflection characteristics using this modified stiffness value.
Click Finish to replace the original Anti-Roll Bar component in your assembly by the Simple Anti-Roll Bar
using the rotational stiffness value in the 'Stiffness to Apply' field. Click Close if you want to close the wizard
without replacing the Anti-Roll Bar in your assembly.
544 Adams Car
Model Fidelity Reduction on Tires
The basis of the approach is to convert the selected tire property file to a PAC2002 tire property file for which
the reduced use mode options can be defined. If the tire property file is already a PAC2002 formatted file,
just the reduced options can be defined.
Any (USER) tire model that is supported by Adams Car (linked via the Standard Tire Interface or Cosin Tire
Interface and using a Teim Orbit formatted tire property file) can be converted to a PAC2002 tire property
file and thus reduced in fidelity.
There are a few options for the reduction:
When launched, the Tire Data Fitting Tool will show the conversion dialog window with the settings
specified in the previous page of the wizard:
548 Adams Car
Model Fidelity Reduction on Tires
In addition to the selection of the use mode options (Relaxation, Enveloping, Belt Dynamics), the working
range for the tire can be specified. A detailed explanation can be found in section Converting a non-PAC2002
or non-PAC-MC tire property file.
Model Fidelity Reduction 549
Model Fidelity Reduction on Tires
The 'Advanced' button offers you to set some more specific settings for the conversion process: the 'Maximum
number of parallel simulations' can speed up the conversion process considerably.
Once started, the conversion process starts with generating 'virtual' tire test data by running tire test rig
simulations with the original tire property file. If your computer platform has multiple cpu's, parallel
simulations can therefore speed up the conversion.
After the simulations have finished the parameter identification process for the PAC2002 tire model with all
the available data will start. At the end of this process, graphical comparisons can be made in between the
'virtual' test data and the PAC2002 representation, for details on the plotting see section Calculating the
PAC2002 or PAC-MC tire model parameters out of tire measurement data.
If the conversion ran properly and you are finished with the TDFT work, then save the converted PAC2002
tire with File → Save Property.
After closing the TDFT the remaining settings can be defined in the last page of the wizard:
For some parameters the PAC2002 has two settings, the 'Default' setting and the 'High Performance' setting.
This allows you to easily switch from a default (slow) parameter setting to a setting in which the tire model
performs faster. The 'High Performance' switch is also shown in the Wheel Modify dialog for each tire in your
model:
550 Adams Car
Model Fidelity Reduction on Tires
Both for the 'Default' and 'High Performance' model the speed critical parameters can be set in the last wizard
page. In case the '3D Enveloping Contact' has been selected at the first page, three enveloping parameters
can be defined:
Number of Cams:
The 3D Enveloping Contact is using cams distributed over the tire - road contact patch for
analyzing the road input. More cams will result in more accuracy but less speed. For 'Default' use
with good accuracy 5 cams in longitudinal direction and 6 in lateral is a proven optimum. The
minimum number of cams is 2 in each direction. Lateral force response due to road inclination
(short wavelength) will mainly be impacted by reducing the number of cams.
Contact Threads:
By increasing the number of threads speed can be increased. However when running C++ multi-
threaded the benefit of this option is low.
Road Spacing:
By taking a more course grid size of the contact patch/cams the contact routine will be faster.
The local tire solver will reduce the work for the Adams Solver for integrating the tire states locally, and thus
increase overall simulation speed. In particular, when a large number of states are involved (Belt Dynamics)
and small solver step sizes (< 0.005 s) this option is interesting.
Model Fidelity Reduction 551
Model Fidelity Reduction on Tires
With the 'Save' button the converted tire property file including the chosen settings will be saved with the
predefined file name: <original_file_name>_PAC2002.tir in the working directory.
With 'Save As' a different filename can be defined. If 'Replace Tires in Assembly' is checked, the original tire
property file will be replaced by the converted PAC2002 file in the current assembly. 'Use HP mode' will set
the High Performance switch so that the High Performance settings will be use in the assembly model.
552 Adams Car
Model Auditor
Model Diagnostics
Model Auditor
This tool audits a full-vehicle model using user-entered tolerances. The results are displayed on screen and
saved to a text file. The following model characteristics can be checked:
1. Solver settings.
2. Beam element length less than diameter for stabilizer bars, twist beam axles, and beam trailing arms.
For cross-sections that are not circular, the "diameter" is calculated as 2*SQRT(area/ π ).
3. Part inertias are physically meaningful. The following are checked: IXX + IYY >= IZZ, IXX + IZZ >=
IYY, IYY + IZZ >= IXX.
4. Front suspension, rear suspension, steering and powertrain part CG locations relative to the default
CGs using a user-entered tolerance.
5. Bushing location coincident with ZP/XP locations.
6. Bushing rates. If the bushing uses linear stiffness and linear or Kfraction damping, check against user-
entered upper and lower tolerances.
7. Bushing stiffness compared with a user-entered stiffness limit.
8. Splines in springs, airsprings, dampers, and bushings. Check for proper sign convention, proper slope,
and 2nd derivative less than a user-entered limit.
For more information, see Spline Comparison and Spline Check and Repair.
Tire and Driving Machine features for faster simulations 553
PAC2002 local Tire Solver for faster simulations.
An example of the improved runtime while running the realtime demo vehicle model in SimWB utilizing 4
threads is shown below (green = High Performance tires, yellow = without High Performance tires).
554 Adams Car
Driving Machine Design Options for faster simulations (Open Loop events only)
It should be noted that the Adams Solver step size may not be too large for using the local tire Solver. The
advised maximum step size (HMAX) is 0.005s.
If you do not have a PAC2002 tire property file, note that you can use the Adams Tire Data and Fitting Tool
(TDFT) to compute a PAC2002 tire property file out of tire measurement data or perform an automatic
conversion of non-PAC2002 Adams Tire model tire property files towards a PAC2002 tire property file.
For more information about the Tire Data and Fitting Tool see Adams Tire Data and Fitting Tool (TDFT).
Full Driving Machine - No Adams Solver components are deactivated in the Adams dataset. This
default option allows for full functionality of the Driving Machine.
Open Loop Events - Adams Solver components connected to the Driving Machine are de-activated,
but this design option still allows for using End Conditions in the event.
External Signal Driven - Adams Solver components connected to the Driving Machine are de-
activated, but this design option does not allow for using End Conditions in the event.
An example of the improved runtime while running the realtime demo vehicle model in SimWB utilizing 4
threads is shown below (green= External Signal Driven, yellow = Full Driving Machine).
556 Adams Car
Driving Machine Design Options for faster simulations (Open Loop events only)
Note that prior to running the simulation, the Driving Machine state is verified and changed to 'Full Driving
Machine' or 'Open Loop Events' if a machine controlled event or end condition is detected in the event
specification.
Configuring Your Product
About the Management Tasks
When you start your template-based product, it automatically creates the necessary files for you to begin
working immediately. As you become more familiar with your template-based product, you may find that
you want to set up custom private versions of it or change the way it is configured. In addition, you may want
to set up custom site versions that several users can share.
The template-based products let you do these different management tasks depending on the type of user
access you have been assigned. You should give one user, who has expert-user access, the responsibility of
managing the site version, if you have one, of your template-based product so only one user, the site manager,
makes changes.
The following table lists the different management tasks that you can perform depending on your user access.
You can perform many of these tasks using the menus in your template-based product. Other tasks require
you to set variables in different configuration files.
To get expert-user access, modify your private .acar.cfg configuration file and change your user mode to
EXPERT. Learn about setting your product's environment.
Database Structure
Each database consists of one directory (*.cdb) and several subdirectories (*.tbl), called tables. Each
subdirectory contains files for specific types of components, such as springs and dampers, or files for
performing tests, such as loadcases and wheel envelopes. The number of tables varies, but you can define the
number in the shared and private configuration files.
By default, your template-based product divides a database into the following table elements:
Models and topological information (templates, assemblies, subsystems, and flexible bodies)
Analysis information (such as analysis scripts, loadcases, driver loadcases, and suspension curves)
Postprocessing (plot configuration files)
In Adams Car, driver files (such as driver inputs and roads)
In Adams Car, tires and roads
Property files (such as springs, dampers, and remaining tables)
Each type of file that a table stores has a unique three-letter extension that identifies its contents. For example,
all files stored in the assembly table contain a .asy extension.
An example of the default structure of a database for Adams Car is shown in the Information window. The
information window shows all the tables in the database, their names, the type of files they store, and the file
extension of the files that they store.
Configuring Your Product 543
About Database Management
You can also add your own tables since the database is an open-architecture file repository. For example, you
might want to create a table that stores data files for an analysis that is specific to your company. Learn about
managing tables.
Managing Databases
Select a topic to learn about the operations you can perform on databases:
Creating Databases During a Session
Setting the Writable Database
Managing Tables in a Database
Creating Tar Files of Databases
Note: Unless you save database changes to your private configuration file, Adams Solver will not be
able to access the databases you added or created in a session
You should create a database for every project on which you are working. By creating separate databases for
each project, you can ensure that the property files belonging to different subsystems are kept separate.
When you create a database, you define two elements for it:
Name - You use the name, or database alias, to select the database from the search list in dialog
boxes.
Path - The location of the database in the file system.
Note: You can also create databases directly using the configuration files. Learn about managing
databases through configuration files.
To create a database:
1. From the Tools menu, point to Database Management, and then select Create Database.
2. Press F1 and then follow the instructions in the dialog box help for Create New Database.
3. Select OK.
list as your default writable database, as long as you have permission to write to the file system to which the
database points.
To create a database:
1. From the Tools menu, point to Database Management, and then select Set Default Writable.
2. Press F1 and then follow the instructions in the dialog box help for Set Default Writable Database.
3. Select OK.
Note: By default, your template-based product doesn't search all defined databases when it cannot
locate a file. You can, however, re-enable the searching by setting the MDI_CDB_SEARCH
environment variable to yes. In the Command Navigator, you can issue the following command:
See the following topics to learn more about the search order, how it impacts you, and how you set it up:
About Search Order
Adding Databases to the Search List
Removing Databases from the Search List
Changing the Search Order
databases, showing the search order level of each database in the first column. Learn about displaying database
information.
Publishing Subsystems
When you publish a subsystem, you copy the subsystem file and all its associated property files to the target
database, which is the database where your template-based product saves all files. You can also select to
publish the subsystem's template file. As you publish the subsystem, you can choose to write over existing
files or create backups of the files.
You can also select to update the in-session subsystem data to point to the target database or to have the
subsystem retain the existing references.
The subsystem you are publishing must be currently opened in the standard interface, and the target database
must be writable. Learn about setting the writable database.
You can also publish an entire assembly. Learn about publishing an assembly.
To publish a subsystem:
1. From the Tools menu, point to Database Management, and then select Publish Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Publish an Open Subsystem.
3. Select OK.
Publishing Assemblies
When you publish an assembly, you copy each subsystem file included in the assembly definition, including
the associated property files for each subsystem, to the target database, which is the database where your
template-based product saves all files. You can also select to publish each subsystem's template file. As you
publish the assembly, you can select to write over existing files or create backups of the files.
Configuring Your Product 549
About Configuration Files
You can also select to update the in-session assembly data to point to the target database or to have the
assembly retain the existing references.
The assembly you are publishing must be currently opened in the standard interface, and the target database
must be writable. Learn about setting the writable database.
You can choose to publish only a subsystem, not an entire assembly. Learn about publishing a subsystem.
To publish an assembly:
1. From the Tools menu, point to Database Management, and then select Publish Assembly.
2. Press F1 and then follow the instructions in the dialog box help for Publish an Open Assembly.
3. Select OK.
Note: The private configuration file is not located in the installation directory. Never change the
acar.cfg file located in the installation.
550 Adams Car
About Configuration Files
If you have more than one private configuration file, you can choose the file you want to use for a given
session.
Use the Registry Editor to choose the file you want to use. The registry setting name for your private
configuration file is privateCfg. Learn about Adams Registry Editor.
You should set up your private configuration file so it contains information specific to the work you are
performing. For example, you can set up your own tables in databases in which to store project data. You can
also override many of the default settings provided in the shared and site configuration files.
As an alternative to changing the privateCfg setting in the Registry Editor, you could simply change the value
of the $HOME environment variable, and create a new .acar.cfg file there. For example, if you have two
projects, with configuration files located here:
/drive/user/username/project_1/.acar.cfg
/drive/user/username/project_2/.acar.cfg
Then when working on Project 1, set the environment variable HOME = /drive/user/username/project_1
before launching your template-based product. When working on Project 2, set HOME =
/drive/user/username/project_2.
When you set up your private configuration file using the Adams Registry editor, the location specified for
privateCfg is saved in a file $HOME/.msca/msca_x.reg. Where x represents the Adams version number; for
example, C:/.msca/msca_2021.reg for Adams 2021. This enables you to specify a different location when you
use a different version of Adams. For example; if a new location is specified for the privateCfg when using
Adams 2021; this setting is stored in the file $HOME/.msca/msca_2021.reg and each subsequent usage of
Adams 2021 will use the privateCfg file specified in this registry file.
We recommend that no one changes the shared configuration file. You should make any personal
modifications using private configuration files, and any common changes for multiple users in site configuration
files.
DEFAULT_WRITE_DB private
!
!-------------------------------------------------------------------!
! - List of personal tables directories
! Type class Name of table Extension
!-------------------------------------------------------------------!
! Example table entry:
!TABLE list2+ example.tbl exa
!
!-------------------------------------------------------------------!
! - List of personal default property files
! Type class Default property file
!-------------------------------------------------------------------!
! Example property file entry:
!PROPFILE assembly <private>/assembly.tbl/myfile.dpr
!
! Example test rig entry:
!TESTRIG four_post .__MY_FOURPOST
Note: The private configuration file is not located in the installation directory. Never change the
acar.cfg file located in the installation.
flexible bodies, your template-based product automatically outputs a result file regardless of the environment
variable setting.
If the assembled model does not contain flexible bodies, use the following command (example is for Adams
Car) to indicate that you want your template-based product to output a result file:
ENVIRONMENT MDI_ACAR_WRITE_RES yes, no)
If a result file exists, your template-based product will automatically read it in with the analysis, if you run an
interactive simulation.
If you run the simulation externally (background, files_only), you can read in the result file using either of
these two methods:
Review -> Analysis Management -> Read
File -> Import -> Adams Results File (*.res)
Note: If the plugin Adams Driveline is loaded then the ascii option is not valid, as some components
of these plugin are not compatible with the ascii format. If the value is set to ascii anyway, the
save format will default to binary.
To redefine environment variables, use the format below. Your template-based product initializes the variables
at startup. The format is:
ENVIRONMENT VARIABLE_NAME VARIABLE_VALUE
For example, the following gives you expert access to your template-based product:
ENVIRONMENT MDI_ACAR_USERMODE expert
List of Environment Variables.
based product. Adding this environment setting to your .acar.cfg file causes the View Property File tool
to launch a text editor instead of the Information window.
If this environment variable is not set, external files will be shown in the info window. If it is set to any value,
the default browser is used to visualize .xml files and notepad.exe is used to open any other file. The default
editor for non-xml files can be changed by specifying the path via the Adams Settings utility (Adams registry
editor -> AView -> Preferences -> textEditor). In the variable, simply specify the location of your preferred
text editor executable.
For example, an Adams Car user who wants to launch Wordpad would set up the environment variable as
follows:
ENVIRONMENT MDI_ACAR_USE_EDITOR yes
and specifies the following path for textEditor field using Adams Settings utility as described above.
558 Adams Car
Managing Databases Through Configuration Files
C:\Program Files\WindowsNT\Accessories\wordpad.exe
Setting Up Databases
You can define databases in your template-based product using the keyword DATABASE. A DATABASE
keyword entry has the following format:
DATABASE DB_NAME DB_PATH
In the format, DB_NAME is the name assigned to the database and DB_PATH is the location of the database
in your file system. You can add any database to the DATABASE definition in any configuration file. If the
database does not exist, your template-based product creates it in the specified location and adds it to the
database list.
Creating Tables
At start up, your template-based product determines when to create new table directories as follows:
1. Your template-based product verifies that all database directories defined in the private configuration
file contain table directories for the corresponding table directories also defined in the private
configuration file.
2. If a table directory does not exist inside the database, your template-based product creates one.
3. If a site configuration file exists, your template-based product ensures that for any table directory
specified in the site configuration file, a corresponding table directory exists for all database directories
defined in both the site and private configuration files.
4. Your template-based product ensures that for all table directories specified in the shared configuration
file, a corresponding table directory exists for all database directories defined in the private, site (if it
exists), and shared configuration files.
The TABLE keyword entry for creating tables has the format:
TABLE TABLE_CLASS
TABLE_NAME
TABLE_EXTENSION
where:
They are the standard set of tables that are distributed with your template-based product's database. You
cannot reconfigure TABLE entries. Changing these values disables your template-based product's ability to
assign properties to a class of entities.
562 Adams Car
Managing Tables Through Configuration Files
ASSEMBLY_CLASS is a string that identifies the type of assemblies which correspond to the test
rig.
TESTRIG_NAME is the name of the test rig model.
For example:
TESTRIG four_post .__MY_FOURPOST
You can define the default test rigs in the private, site, or shared configuration files.
Customizing Your Product
Overview
If you are an expert user or site manager, you can customize your template-based product to your company's
needs and preferences. You can extend your template-based product by adding new functionality, modifying
standard functionality, or tailoring its appearance to fit the needs of your work environment. Customizing
your template-based product lets you create a familiar environment in which users can work. Learn about
Setting User Access.
Note: You cannot customize all dialog boxes and tools. For example, you cannot customize the
Plugin Manager or the Information window. The Dialog-Box Builder's Dialog Box -> Open
menu provides access to those dialog boxes, containers, and toolbars that you can customize.
You can typically modify your template-based product in three main areas. These require different levels of
understanding, ranging from the Adams macro language, Standard Developer Kit (Adams SDK), through
FORTRAN and C solver routines, as described next.
Customizing the interface - Involves creating or modifying interface objects, such as macros, dialog
boxes, menus, and windows. This uses Adams command language to modify the look and feel of the
interface. It can be used to automate recurring tasks, using the scripting language, but has limitations
in terms of speed and would not be used to generate computationally complex objects (1000 parts
located and oriented to generate a chain). For these tasks, you would use an Adams View library
written in C.
Creating a custom Adams View library - Takes advantage of user-written subroutines and functions
to automate highly repetitive and computationally complex tasks in an efficient manner, using C.
Using functions delivered in the SDK, you can quickly generate and manipulate Adams elements.
Creating a custom Adams Solver library - Create user-written subroutines and functions to extend
the functionality of your template-based product in terms of the solver. You save them in custom
libraries for later use.
Note: For Adams Driveline - Because of the plugin structure of Adams Driveline, you cannot
create a custom version. You can, however, create a custom Adams Car version, adding
your own custom elements, analyses, and so on, and then load in the standard Adams
Driveline plugin.
570 Adams Car
Customizing the Interface
Once you have finalized your customization of your template-based product, you can store your customized
dialog boxes, macros (binary files), Adams View and Adams Solver libraries in a site directory, for use by all
users, or in a private directory for personal use. You can extend this hierarchy to support multiple operating
systems from one installation.
Select an entry on the left to learn how to efficiently customize the environment of your product.
Naming Conventions
We recommend that you use a naming convention when you create and modify interface objects or macros.
A naming convention reduces the chances of naming conflicts and provides a simple method for organizing
files, macros, and dialog boxes.
The naming convention that we recommend is the same one that template-based products currently use. The
naming convention uses the abbreviation of the object (for example, mac for macro) followed by a set of
Customizing Your Product 571
Customizing the Interface
characters that identify the commands or functionality that the object executes or performs. The naming
conventions for macros and dialog boxes are explained next.
Macro naming convention - The macro naming convention uses the abbreviation mac for macro
followed by the first three characters of each command in the user-entered command that executes
the macro. For example, if the user-entered commands for a macro are as shown below (the first
three characters are highlighted in boldface type):
acar analysis suspension single_travel submit
Then, the name of the macro is:
mac_ana_sus_sin_sub
Dialog box naming convention - The naming convention for dialog boxes uses the abbreviation
dbox for dialog box followed by the first three characters of the words that identify the functionality
of the dialog box. For example, if a dialog box is the interface through which a user creates a
hardpoint, then the words that define its functionality are:
template_builder hardpoint create
and, its name is:
dbox_tem_har_cre
If, however, the dialog box performs two or more functions, as many dialog boxes do, then the dialog
box name does not include the words for the function. For example, if a dialog box lets a user both
create and modify a spring damper, the words that define its functionality are:
template_builder damper create/modify
and, its name is:
dbox_tem_dam
Using Libraries
We recommend that you use libraries to store the interface objects and macros that you create. Libraries are
repositories for Adams View objects such as variables, assembly instances, macros, and dialog boxes. Using
libraries allows you to easily find, retrieve, or remove specific custom objects. You can add to your template-
based product as many libraries as you need. You can also have libraries within libraries.
Your template-based product stores all its objects in libraries, named as follows:
You can view the objects in the library using the Database Navigator. See About the Database Navigator.
To create libraries, execute the following command either in your .cmd file or during an interactive session.
In the following command, MY_LIBRARY is the name of the library that will be created:
library create library_name=.MY_LIBRARY
Alternatively, you can add the command in the file you use to generate the site or private custom binary. The
files are named as follows:
572 Adams Car
Customizing the Interface
The following figure shows some of the different objects. Learn more about Interface objects.
We also recommend that you fix the height of dialog boxes. In most cases, only the ability to change the width
of a dialog box is useful to a user because he or she may want to stretch the dialog box to see the full name of
an object in a particular text box. This isn't really necessary for the height of a dialog box.
To fix the height of a dialog box, include the parameters height_minimum and height_maximum in the
interface command that creates the dialog box. You must do this directly in the command file that contains
the commands to create the dialog box. You cannot do this through the Dialog-Box Builder. For example, for
Adams Car, you can enter:
interface dialog modify &
dialog=.ACAR.dboxes.dbox_tem_har_mod &
height=150.0 height_minumum=150.0 height_maximum=150.0
When building dialog boxes, always test to ensure that the resizing attributes of each object in the dialog box
are appropriate. Under Resizing in the Dialog-Box Builder, there are resizing attributes for interface objects.
These attributes describe how the size of the objects on a dialog box are affected if the width or height of the
dialog box changes. You should set the resizing attributes of the objects on a dialog box so that if the size of
the dialog box changes, the general look of the dialog box remains the same. For example, if all the text boxes
in a dialog box are right justified along the edge of the dialog box, the text boxes should all remain right
justified if you increase or decrease the width of the dialog box.
For the dialog box attribute: Set its position or size to:
Location 33, 154
Width 370
Label width 150
Label height 25
Text box width 240
For the dialog box attribute: Set its position or size to:
Location 15, 150
Width 404
Label width 150
Label height 25
Text box width 244
selects that option from a pull-down menu. Having an object execute a command gives you great flexibility
in how your dialog box works.
For example, you can set up your dialog box so that the commands assigned to a particular database object
field can:
Check to determine whether the object that the user selects exists in the database
Issue a warning message if it does not exist
You can also have commands operate on other objects in dialog boxes, which causes the dialog box to change
its appearance when a user makes a selection from an object. For example, when a user selects an option from
a pull-down menu, the dialog box changes to display objects for entering values for the selected option as
shown next.
576 Adams Car
Customizing the Interface
To clean up variables:
You can use the command:
variable delete variable_name=(eval(db_children($_self, "variable")))
Customizing Your Product 577
Customizing the Interface
2. For more information about the Model Browser and settings, see Model Browser section.
To switch back to the parent assembly from a subsystem, you need to select it from the drop-down
at the top.
Customizing Your Product 579
Customizing the Interface
Using Parameters
Parameters are placeholders for information that users provide when they execute a macro in a template-based
product. You write parameters in a macro as a $ followed by the name of the parameter. Parameters let you
make macros very flexible. When you create a macro, your template-based product scans the command text
to identify all the parameters.
When you issue the command to execute the macro, you provide values for the parameter or the parameters
assume default values. Your template-based product substitutes the values in place of the parameters in the
macro and executes the macro commands.
You identify parameters in macros using qualifiers. Qualifiers define a parameter's type, range, count
(number of values), and defaults. Learn about Parameter Qualifiers and Formats.
The following is an example of a list of parameters and their qualifiers for a macro:
! $part_name:t=string
! $location:t=location
! $type:t=string
! $orientation:t=orientation
! $mass:t=real
! $cm_location_from_part:t=location:d=0,0,0
Customizing Your Product 581
Customizing the Interface
! $Ixx:t=real
! $Iyy:t=real
! $Izz:t=real
! $Ixy:t=real:d=0
! $Izx:t=real:d=0
! $Iyz:t=real:d=0
!END_OF_PARAMETERS
Note: If you do not attach your dialog box to a template, the dialog box will be lost when you close
the current session.
Customizing Your Product 583
Customizing the Interface
1. From the Build menu, point to Custom Gui, point to Dialog Box, and then select Attach.
2. Select << Add.
3. In the Selections dialog box, double-click the name of your dialog box. In this case, dbox_1. If you
have multiple dialog boxes you want to store, repeat these steps for each dialog box.
4. Select OK.
Push button - You can use a push button to execute a command such as displaying a dialog box or
executing a macro.
When creating menus, we recommend that you first think about the structure of what you are trying to
achieve. By using a hierarchical approach, you can use submenus to categorize different buttons.
In the following example we assume that you have created a custom dialog box named dbox_1. We are first
going to create a submenu named Example.
To create a submenu:
1. From the Build menu, point to Custom Gui, point to Menu, point to Submenu, and then select
Create.
Your product displays the Create Custom Sub-Menu dialog box.
2. Enter the label that you want to use, in this case Example, and then reference the template in which
this custom menu will be stored.
3. Select OK.
Now you create a push button that resides as a child of submenu, and call the button Display. You then
execute a command to display the custom dialog box, dbox_1.
3. Set Parent Menu to menu1, which is the submenu Example you created above. Note that as you
create submenus, your product references them internally as menu1, menu2, and so on, rather than
by name (in this case, Example). If you created several submenus and lost track of their names, you
can use the Info command to see how your product names them: from the Build menu, point to
Custom Gui, point to Menu, and then select Info.
4. The execution command is highly dependent on what you want to achieve. In this example, you want
to display the custom dialog box, dbox_1, so in the Commands text box enter:
interface dialog_box display dialog_box_nam = .ACAR.custom.dbox_1
If, however, you wanted to view the front view of your model, you would enter a command similar
to the following:
acar interface view_restore view_orientation = front
5. Select OK.
6. To validate that the push button works, from the Build menu, point to Example, and then select
Display. Your template-based product should display your dialog box.
window_name=.gui.main &
title="Adams Car: Company XYZ" &
icon_label="A/XYZ"
!---- Set-up libraries and variables ----
file command read
file_name=(getenv("MDI_ACAR_SITE")//"/build_gui/libraries.cmd")
!---- Interface Menus ----
file command read
file_name=(getenv("MDI_ACAR_SITE")//"/interface/menus_int.cmd")
!----Site Initialization ----
macro create macro=.ACAR.macros.acar_init_site &
user_entered_command="acar toolkit initialization standard plugin=acar"
For private binaries, please substitute "acar_init_site" with "acar_init_private". You will need one 'acar toolkit
initialization ...' command for each plugin you want to include in your private or site customization. If you
decide to build either a site or private binary file, then you must place this file at the top level, as defined by
the path in MDI_ACAR_SITE or MDI_ACAR_PRIVATE.
Adams Car writes a command file to your file system. The name of the resulting command file
will be derived from the dialog box name. If the dialog box is named dbox_ana_ful_tst_sub, then
the dialog box will be saved as dbox_ana_ful_tst_sub.cmd.
3. Create a command file, named as shown in table File Names, that reads in the command files that
customize the interface. See an example of an acar_build.cmd file.
4. Add commands to that command file that automatically reads the macro and dialog box. The
following would read the macro and dialog box, as saved in the steps above.
!------Read a macro-----
macro read &
macro_name = .MY_LIBRARY.mac_ana_ful_tst_sub &
file_name = "C:\temp\mac_ana_ful_tst_sub.cmd" &
user_entered = "Analysis full-vehicle test submit" &
wrap_in_undo = no &
create_panel = no
!------Read a dialog box-----
file command read &
file_name = "C:\temp\abox_ana_ful_tst_sub.cmd
5. Store the file in the desired private or site file repository. Learn about private and site file repositories.
6. Create a private or a site-specific binary, including the saved interface objects, as explained in
• Creating Binary Files in the guide Running and Configuring Adams
Structure of ModelBrowser.xml
The various tags and attributes in ModelBrowser.xml explained in the below table.
Customizing Your Product 589
Customizing the Model Browser for Adams Car and Adams Driveline
A variable created under DV_2 will not be shown since the model browser does not support more than 2
levels.
In order to see all variables under the model, the model browser will have to be customized.
Customizing Your Product 591
Introducing Adams View Libraries
Copy the ModelBrowser.xml to the current working directory and modify the section related to 'Design
Variables' as below:
<Folder Name="Design Variables">
<L1 Exhaustive="true">variable</L1>
</Folder>
On running Adams car or Adams Driveline with the above change, all the variables under the active model
can be seen in the model browser
tasks, you can write a custom Adams View library in C. As an example, you might want to create a wavefront
file that given a number of macro parameters, such as road width, length, and color, can be used to define a
road graphic. In such an example, you would create a C file that when combined with some macro-wrapping
code can be set up to pass parameters from the macro to your custom C routine. The following example
shows five parameters (road_width, road_length, color, shell_file, error_flag) being passed to a routine named
create_a_road:
variable set variable_name = $_self.generate_road &
integer_value = (eval(create_a_road("$road_width", "road_length", "color",
"shell_file", "error_flag" )))
If successful, this execution results in the generation of a wavefront file based on the input parameter
contained in shell_file (as an example, my_road.obj).
In this case, you call a function (create_a_road) in your Adams View library. You can set up this code to return
a Boolean flag, such as 0 if it failed and 1 if it was successfully executed. You can check this flag to see if the
operation was successful or not, and take action based on the result.
After you check the error flag, you can execute a read Wavefront file in the macro, specifying the shell_file
file as generated by the Adams View library:
file wavefront read &
file_name = (eval($_self_shell_file)) &
port_name = $assembly_ground
You must have the linkers from the FORTRAN compilers to create a library, even if the subroutine
is in C.
Modifying vc_init_usr_c
You can find the file vc_init_usr.c in the distribution of Adams, under /aview/usersubs. This file provides an
interface between Adams View and user-defined functions. For this example, you'll assume that a user-
defined function, named create_road, is going to be used. Following the instructions in vc_init_usr.c, you
would do the following:
1. Copy vc_init_usr.c and mdi_c.h to your local working directory.
2. Modify vc_init_usr.c to suit your function (create_road). The file includes help inside comment
blocks.
3. Create a C file containing the function create_road. Use the parameters that are passed to and from
the function.
4. Compile the two files using the appropriate compile flags (can be found by opening an advanced
session):
On Windows:
• From the Start button, point to Programs, point to Adams 2021, point to your template-based
product (in this case, Adams Car), and then select Advanced.
• At the prompt, enter cr-acarprivate, and then press Enter.
• Press Enter again to select the default, which tells the compiler not to build debug libraries.
• Your template-based product displays the compile options.
On Linux:
• At the prompt, enter adams2021 -c acar cr-acarprivate, and then press Enter.
• Press Enter again to select the default, which tells the compiler not to build debug libraries.
• Your template-based product displays the compile options.
5. To end this session, type Exit, and then press Enter.
6. Once the files have been compiled, repeat this process, this time specifying the two object files that
were compiled. If everything is successful, you will now have a .dll file (.so on Linux).
You can input C or FORTRAN source files to create Adams Solver user libraries and only C source files to
create Adams View user libraries. You must compile these subroutines before linking them with an Adams
product. See the hardware and software specifications that come with your Adams product for the type of
compiler you need (http://simcompanion.mscsoftware.com/infocenter/index?page=content&id=DOC9283). Also refer to
your compiler documentation for details.
Therefore, you can write an Adams Solver routine in FORTRAN or C, but keep in mind that:
The solver subroutine is expected to be in FORTRAN.
If the solver subroutine is written in C, you must make it emulate a FORTRAN subroutine, as
specified in Simcompanion article KB8014048, at http://simcompanion.mscsoftware.com/KB8014048. If
you write an Adams Solver routine in C, it requires a FORTRAN header, and also requires a
FORTRAN compiler (linker).
You must have the linkers from the FORTRAN compilers to create a library, even if the subroutine
is in C.
• Type @sub_list.lst to provide the list of files you want to include in your custom Adams Solver
library.
• Press Enter.
On Linux:
• At the prompt, type adams2021 -c acar cr-solverprivate, and then press Enter.
• Press Enter again to select the default, which tells the compiler not to build debug libraries.
• Your template-based product displays the compiler options for the C and FORTRAN compilers.
Make a note of the options.
• Type @sub_list.lst to provide the list of files you want to include in your custom Adams Solver
library.
• Press Enter.
4. Alternatively, from the command line you can create your custom library by typing the following
command:
adams2021 -c acar cr-solverpr n @sub_list.lst -n
Notes: Adams Car writes the resulting acarsolver.dll (the name of the file is dependent on your
template-based product) to the directory defined by the environment variable
MDI_ACAR_PRIVATE_DIR.
If you are having difficulty building your custom code, we recommend using a DOS
prompt and the command adams2021 acar cr-solverprivate n @sub_list.lst. This allows for
output to be readable.
If you want to create a site solver library, you can replace the command cr-solverprivate
with cr-solversite. Your template-based product stores the generated library in the directory
defined by the environment variable MDI_ACAR_SITE.
Your compiled files and sub_list.lst are stored in a working directory. Your template-based
product does not necessarily start in that directory. If there is a mismatch between the two
directories, your template-based product is unable to locate your files and will fail.To make
the working directory default to the correct location, do the following:
On Windows:
From the Start button, point to Programs, point to Adams 2021, point to your
template-based product (for example, Adams Car), and then right-click Advanced.
Select Properties.
In the Start in text box, enter the location of your files (for example, c:\temp).
On Linux, move into the directory where sub_list.lst is located (for example, cd
/usr/home/my_home/work).
After you created the private Adams Solver library, modify an existing Adams Solver dataset to verify that your
custom functions are working. You might find it helpful to write basic 'write' statements in your FORTRAN
code to verify that the code is being executed.
Customizing Your Product 597
Introducing Adams Solver Libraries
Overview of GENDISP
When you write a standard REQSUB subroutine, you often need to process output in more than one way.
You might have one subroutine that computes toe, camber, and caster angle, and another that computes
lateral acceleration and body sideslip angle. In your dataset you may have the following requests, which
reference two user subroutines to calculate toe, camber, and caster, and in the second subroutine lateral
acceleration and body sideslip.
REQUEST/111 !toe, camber, caster
FUNCTION = USER(1, 1, 2, 3)
REQUEST/222 !lateral acceleration, body sideslip
FUNCTION = USER(2, 4, 5, 6)
The parameters of interest are USER(1, and USER(2, where the values 1 and 2 correspond to PAR(1) in the
expression that follows. In your REQSUB, you must have logic to branch to the different subroutines as
shown next:
IF (NINT( PAR(1)) .EQ. 1 ) THEN
CALL TCCREQ( ID, TIME, PAR, NPAR, IFLAG, RESULT )
ELSE IF (NINT( PAR(1)) .EQ. 2 ) THEN
CALL BSAREQ( ID, TIME, PAR, NPAR, IFLAG, RESULT )
.
.
.
In the above example, if PAR(1) is equal to 1 (as defined by REQUEST/111), then the subroutine TCCREQ
is called. Likewise, if PAR(1) is equal to 2 (as defined by REQUEST/222), then the subroutine BSAREQ is
called.
Each time you add a new subroutine, you must rewrite your REQSUB to call that subroutine. If your
company has a standard REQSUB, you have to create a local version for yourself and then add your
subroutines to it.
598 Adams Car
Introducing Adams Solver Libraries
With the template-based products, however, if you follow a simple naming convention for your user-written
subroutines, GENDISP automatically creates a REQSUB, SFOSUB, and so on, with all the branches to your
routines as part of the linking of a library. GENDISP places these subroutines in an automatically generated
file, named dispatch.f.
For example, if you rename the subroutine TCCREQ to REQ001 and the subroutine BSAREQ to REQ002,
then GENDISP creates a REQSUB for you with branches to REQ001 and REQ002 as shown next:
IF (NINT( PAR(1)) .EQ. 1 ) THEN
CALL REQ001( ID, TIME, PAR, NPAR, IFLAG, RESULT )
ELSEIF (NINT( PAR(1)) .EQ. 2 ) THEN
CALL REQ002( ID, TIME, PAR, NPAR, IFLAG, RESULT )
.
.
.
Using GENDISP makes the generation of dispatcher routines a fully automated process, allowing you to
concentrate primarily on the content of your solver subroutines.
Name: Description:
CONSUB Control command
COUSUB Coupler subroutine and partial derivatives
COUXX Coupler first partial derivatives subroutine (CXX100)
COUXX2 Coupler second partial derivatives subroutine (CXD100)
CURSUB Curve statement
DIFSUB Differential equation statement
DMPSUB Modal damping subroutine
FIESUB Field statement
GFOSUB Gforce statement
GSESUB General state equation subroutine
Name: Description:
BRASUB Brake demand
STRSUB Steering demand
THRSUB Throttle demand
Adams Tire now supports dynamic loading (dispatching) of tire (TYRSUB) and road contact (ARCSUB)
subroutines. Support for standard driver interface (SDISUB) for lack of usage.
& NPAR,
& IFLAG,
Customizing Your Product 601
Introducing Adams Solver Libraries
& RESULT )
C This is a dispatcher routine written by gendisp
INTEGER ID
DOUBLE PRECISION TIME
DOUBLE PRECISION PAR(*)
INTEGER NPAR
LOGICAL IFLAG
DOUBLE PRECISION RESULT(8)
C Local variables
character*(80) errmsg
IF ( NINT(PAR(1)).EQ.900 ) THEN
CALL req900 ( ID,
& TIME,
& PAR,
& NPAR,
& IFLAG,
& RESULT )
ELSE IF ( NINT(PAR(1)).EQ.901 ) THEN
CALL req901 ( ID,
& TIME,
& PAR,
& NPAR,
& IFLAG,
& RESULT )
ELSE IF ( NINT(PAR(1)).EQ.221 ) THEN
CALL req221 ( ID,
& TIME,
& PAR,
& NPAR,
& IFLAG,
& RESULT )
ELSE
WRITE (ERRMSG,'(A,I4.4)')
& 'Error in dispatcher subroutine reqSUB: Invalid
PAR(1): ',
& NINT( PAR(1) )
CALL ERRMES( .TRUE., ERRMSG, 0, 'STOP')
ENDIF
RETURN
END
Each block for a subroutine in dispatch.dat must contain a (PARAMETERS) sub-block that defines the
subroutine parameter types. Optionally, a block may contain a (CODE_BEFORE_BRANCH) sub-block as
illustrated in the example MYUSUB shown in Example of Using GENDISP.
Using GENDISP
The following procedure is only applicable if you want to extend the libraries that GENDISP dispatches.
Here we provide an overview of how to test additions to the dispatch.dat file. The result of this procedure
should be a fully populated dispatch.f file, which you can examine to verify that valid subroutines have been
written. In normal circumstances, this procedure should not required because this process is automated by
the acarcom and acarsolvercom scripts. We provide this procedure as a means to validate that you correctly
modified the dispatch.dat file.
602 Adams Car
Introducing Adams Solver Libraries
GENDISP is invoked when linking private or site libraries. A list of standard template-based product file
names, plus file names you supply, are passed to GENDISP. GENDISP examines the list of files for names
matching the supported subroutine types given in the file dispatch.dat. For each matching name, GENDISP
creates a branch in the appropriate user subroutine and outputs the source code file dispatch.f to the working
directory.
The file dispatch.f can contain multiple subroutines, but only one of each type (for example, one REQSUB
or one CURSUB). The acarcom and acarsolvercom scripts include dispatch.f when linking. The files
dispatch.f and dispatch.o are left in the working directory so you can look at them.
For testing or other purposes, you can execute GENDISP yourself. You can find GENDISP at the following
location, where install_dir is the installation directory, and product_name is the name of your template-based
product:
$install_dir/$product_name/$MDI_CPU/gendisp
For example, the location of GENDISP might be:
/usr/mdi12/acar/irix32/gendisp
You invoke GENDISP with the following arguments:
gendisp file.lst dispatch.f dispatch.dat
where:
file.lst - File containing a list of user subroutine filenames for GENDISP processing.
dispatch.f - Source code file name output by GENDISP.
dispatch.dat - TeimOrbit format file defining the supported subroutine types and their parameter
lists.
Note that this step should be performed once (or whenever the macro changes) to generate the python class
and does not need to be performed each time Adams Car starts.
Note: This step must be performed at startup of Adams Car and registered into the session.
Upon display of the event browser, a custom table will display all the attributes of the event. For example:
Note: This step is easily automated by placing this command in either the macro or dialog
box itself.
ID Description
900 See Controlling Analyses Using CONSUBs
901 See Utilities for tire simulation control
903 See Utilities for tire simulation control
904 See Utilities for tire simulation control
910 See Controlling Analyses Using CONSUBs
917 See Controlling Analyses Using CONSUBs
1010 See Controlling Analyses Using CONSUBs
1020 See Controlling Analyses Using CONSUBs
1021 See Controlling Analyses Using CONSUBs
1030 See Controlling Analyses Using CONSUBs
1031 See Controlling Analyses Using CONSUBs
1032 See Controlling Analyses Using CONSUBs
1060 See Controlling Analyses Using CONSUBs
1402 See Controlling Analyses Using CONSUBs
ID Description
900 Adding Tires to Your Model
901 Adjustable Forces
1117 Calculation of auto trim load for airspiring
1020 Calculation of yaw angle error
ID Description
901 Linear bushing. See Working with Bushings.
910 Non-Linear bushing. See Working with Bushings
608 Adams Car
Adams Car Solver Routines
ID Description
900 Adding Tires to Your Model
908 Defining Tires in Adams Solver
ID Description
908 Defining Tires in Adams Solver
ID Description
mot912 See Calculation of steering functions
mot914 See Calculation of sine steering functions
ID Description
req902 See Request 902
req904 See Request 904
req905 See Request 905
req906 See Request 906
req907 See Request 907
req908 See Vehicle Mass Properties (Request 908)
req909 See Request 909
req1001 See Request 1001
req1090 See Request 1090
Customizing Your Product 609
Utility Functions
ID Description
sfo901 See SFORCE 901
sfo912 See Calculation of steering functions
ID Description
var906 Tire Velocity
var907 Unit vector calculation
var909 Calculation of steady state controller error
var911 Calculation of pitch, roll or side slip angle
var912 Calculation of steering functions
var914 Calculation of sine steering functions
var1004 See Wheel Rotational Velocity Calculation During Statics
var1117 Automatic Air Spring Trim Load Calculation
var1402 Used to call CON1402. See Deactivate Initial Condition Motion, jprims, joints and
couplers.
Utility Functions
This topic lists utility functions that help you extend the Adams View macro language. The functions help
you access information that is not easy to access using the standard Adams View macro language. You can use
the utility functions in macros and in dialog boxes.
The following functions are used by the template-based products. To see information on all functions
available in the Function Builder, see the Function Builder online help.
Units-Conversion Functions
String Functions
Database Functions
File Functions
Database Lookup Functions
Miscellaneous Functions
610 Adams Car
Utility Functions
Units-Conversion Functions
The units-conversion functions convert an input value to a different unit system. The units-conversion
functions are:
convert_from_units
convert_units
convert_to_radians
units_to_mks
convert_from_units
Definition
convert_from_units converts the input value from a unit type to the equivalent modeling units. It accepts
any valid units string (for example, mm, newton, or inch) for the unit type. It returns the converted value.
Format
REAL convert_from_units (STRING from_units, REAL in_value)
Arguments
Examples
The following example converts the current length units, which are in inches (inch), to millimeters (mm):
variable set variable=units_convert &
real_value=(eval(CONVERT_FROM_UNITS("inch", 1.0)))
units_convert = 25.4
convert_units
Definition
convert_units returns the conversion factor necessary to convert a value from the current units (from_units)
to the desired units (to_units). It accepts any valid units string (for example, mm, newton, or inch) for the
units strings. The units should be equivalent modeling units of length, force, mass, time, or angle.
Format
REAL convert_units (STRING from_units, REAL to_units)
Customizing Your Product 611
Utility Functions
Arguments
Examples
The following example returns the conversion factor necessary to convert miles to millimeters:
variable set variable=convert_factor &
real_value=(CONVERT_UNITS( "mile" , "mm" ))
convert_factor = 1.609344E+06
convert_to_radians
Definition
convert_to_radians converts an angle from degrees to radians. You specify the input value in current
modeling angular units.Format
REAL convert_to_radians (REAL in_value)
Arguments
Examples
The following example converts the current modeling angular units, which are in degrees, to radians:
variable set variable=angle_radians &
real_value=(CONVERT_TO_RADIANS(90))
angle_radians = 1.5707963268
units_to_mks
Definition
units_to_mks returns the conversion factor from user units to database units (meters, kilograms, seconds,
radians, or mks).Format
REAL units_to_mks (INTEGER units)
Arguments
Examples
The following example returns the conversion factor necessary to change degrees to database units:
variable ser variable=myvar1 &
real_value=90.0 units=angle
variable set variable=myvar2 &
real_value=(UNITS_TO_MKS( myvar1.units ))
myvar2 = 1.7453...E-02
String Functions
The string functions allow you to manipulate character strings. The string functions are:
str_assembly_class
str_char_swap
str_filename
str_model_class
str_prefix
str_remove
str_replace
str_typecheck
str_assembly_class
Definition
str_assembly_class returns the assembly class of an assembled model. Your template-based product stores the
returned information in the assembly_class variable under all assemblies. For Adams Car, typical assembly
classes include suspension and full_vehicle. You can also extend the assembly classes.
If no assembly variable exists within the assembled model, str_assembly_class returns an empty string.
Format
STRING str_assembly_class (OBJECT assembled_model)
Arguments
Examples
variable set variable=current_class &
string_value=(STR_ASSEMBLY_CLASS(.susp_assy))
current_class = "suspension"
Customizing Your Product 613
Utility Functions
str_char_swap
Definition
str_char_swap changes a single character in a string (object_name) at a particular location (index) to another
character string. It changes the characters as specified in swap_str.
str_char_swap compares the strings and changes them only in the string following the last . in object_name.
In addition, swap_str must be two or more characters long and contain an even number of characters.
The first half of swap_str determines the characters to be changed ("from characters") and the second half of
swap_str determines the characters to which the characters are to be changed ("to characters"). If
str_char_swap does not change any characters, it returns the original object_name string.
Format
STRING str_char_swap (STRING object_name, STRING swap_str, INT index)
Arguments
Examples
In the following Adams Car example, lrrl is the string that defines what should be changed. The first half of
the string (lr) represents the valid "from characters." The second half of the string (rl) represents the "to
characters."
If the example finds one of the "from characters" at position 3 in the string
._front_susp.ground.hpl_lca_front, it replaces the "from characters" with the corresponding "to characters."
In this example, l would change to r.
variable set variable=symmetric_name &
string_value=(STR_CHAR_SWAP("._front_susp.ground.hpl_lca_front",
"lrrl", 3))
symmetric_name = "._front_susp.ground.hpr_lca_front"
str_filename
Definition
str_filename strips an input string (in_str) to a base file name (with extension) and then substitutes a new
string (new_str) for the old string (old_str) if the old string exists in the base name. If old_str occurs more
than once in the input string, str_filename only replaces the last occurrence.
614 Adams Car
Utility Functions
Format
STRING str_filename (STRING in_str, STRING old_str, INT new_str)
Arguments
Examples
variable set variable=base_filename &
string_value=(STR_FILENAME("/usr/car.cdb/test.tpl", "tpl","sub"))
base_filename = "test.sub"
str_model_class
Definition
str_model_class returns a model's model class. This information is stored in the model_class variable under
all models. If no such variable exists within the model, str_model_class returns an empty string. Typical
model classes include template, subsystem, and assembly.
Format
STRING str_model_class (OBJECT model)
Arguments
Examples
variable set variable=current_class &
string_value=(STR_MODEL_CLASS(._front_susp))
current_class = "template"
str_prefix
Definition
str_prefix returns the generic prefix for a given string (object_name). The length of the return string is always
four characters long. str_prefix also pares the input down to only the string following the last . in
object_name.
Customizing Your Product 615
Utility Functions
Format
STRING str_prefix (STRING object_name)
Arguments
Examples
variable set variable=name_prefix &
string_value=(STR_PREFIX("._front_susp.ground.hpl_lca_outer"))
name_prefix = "hps_"
str_remove
Definition
str_remove trims an input string (in_str) by removing a string (begin_str) from the beginning of in_str and
truncating in_str starting from the last occurrence of end_str.
str_remove removes begin_str before removing end_str so if the beginning and ending string in in_str
overlap, str_remove only removes begin_str.
Format
STRING str_remove (STRING in_str, STRING begin_str, STRING end_str)
Arguments
Examples
variable set variable=trim_string &
string_value=(STR_REMOVE("abcdef", "ab", "ef"))
trim_string = "cd"
variable set variable=trim_string &
string_value=(STR_REMOVE("abcdef", "", "ef"))
trim_string="abcd"
616 Adams Car
Utility Functions
str_replace
Definition
str_replace replaces a string (old_str) with a new string (new_str) in the string in_str. If there are multiple
occurrences of old_str, str_replace replaces the last occurrence.
Format
STRING str_replace (STRING in_str, STRING old_str, STRING new_str)
Arguments
Examples
variable set variable=other_filename &
string_value=(STR_REPLACE("/usr/car.cdb/test.tpl", "test",
"junk"))
other_filename = "/usr/car.cdb/junk.tpl"
str_typecheck
Definition
str_typecheck returns a 1 if a list of characters (type) matches the third character in the base name of an
object's name (object_name). str_typecheck always pares down the input to only the string following the last
. in object_name.
You can specify more than one character in type.
Format
STRING str_typecheck (STRING object_name, STRING type)
Arguments
Examples
variable set variable=check_type &
string_value=(STR_TYPECHECK("._front_susp.ground.hpl_lca_outer",
Customizing Your Product 617
Utility Functions
"ls"))
check_type = 1
variable set variable=check_type &
string_value=(STR_TYPECHECK("._front_susp.ground.hpl_lca_outer",
"r"))
check_type = 0
Database Functions
The database functions let you manage and access the databases of your template-based product. The
database functions are:
cdb_alias2path
cdb_path2alias
cdb_input2base
cdb_input2ext
cdb_input2file
cdb_input2path
cdb_input2full
cdb_search_file
cdb_runtime_path_port
cdb_alias2path
Definition
cdb_alias2path returns the full path associated with a given table path alias or cdb_name. If cdb_alias2path
does not find the full table path corresponding to the alias, it returns the input string. By returning the input
string, you can input normal path names and filenames, and cdb_alias2path returns them without
modification.
Format
STRING cdb_alias2path (STRING path_alias)
Arguments
Examples
This example finds the file system path associated with database prototype:
variable set variable=a2p &
string_value=(eval(cdb_alias2path("prototype")))
a2p = "/local/proto.cdb"
618 Adams Car
Utility Functions
cdb_path2alias
Definition
cdb_path2alias returns the path alias associated with a given table path alias or cdb_name. If cdb_path2alias
does not find a path alias corresponding to the full path name, it returns the input string. By returning the
input string, cdb_path2alias allows you to enter normal path names and filenames, and returns them without
modification.
Format
STRING cdb_path2alias (STRING path)
Arguments
Examples
This example finds the database alias associated with database:
variable set variable=p2a &
string_value=(eval(cdb_path2alias("/local/proto.cdb")))
p2a = "prototype"
cdb_input2base
Definition
cdb_input2base returns the base name of a file (input_name). It strips the input_name of both its file system
path prefixes and extension or suffix, if any.
Format
STRING cdb_input2base (STRING input_name)
Arguments
Examples
This example finds the base name for the file /local/proto.cdb/bushings.tbl/my_bush.bus:
Customizing Your Product 619
Utility Functions
cdb_input2ext
Definition
cdb_input2ext returns the extension or suffix of a file (input_name). It returns an empty string if it finds no
extension
Format
STRING cdb_input2ext (STRING input_name)
Arguments
Examples
This example finds the extension for the file /local/proto.cdb/bushings.tbl/my_bush.bus:
variable set variable=i2e &
string_value=(eval(cdb_input2ext("/local/proto.cdb/bushings.tbl/my
_bush.bus")))
i2e = "bus"
cdb_input2file
Definition
cdb_input2file returns the filename contained in input_name. cdb_input2file strips input_name of any file
system path prefix and returns the result.
Format
STRING cdb_input2file (STRING input_name)
Arguments
Examples
This example finds the filename for the file /local/proto.cdb/bushings.tbl/my_bush.bus:
variable set variable=i2file &
620 Adams Car
Utility Functions
string_value=(eval(cdb_input2file("/local/proto.cdb/bushings.tbl/my_bush
.bus")))
i2file = "my_bush.bus"
cdb_input2path
Definition
cdb_input2path returns the file system path prefix of a filename. If the path prefix is not present,
cdb_input2path returns an empty string.
Format
STRING cdb_input2path (STRING input_name)
Arguments
Examples
This example finds the file system path prefix for the file /local/proto.cdb/bushings.tbl/my_bush.bus:
variable set variable=i2p &
string_value=(eval(cdb_input2path("/local/proto.cdb/bushings.tbl/my_bush
.bus")))
i2p = "/local/proto.cdb/bushings.tbl"
cdb_input2full
Definition
cdb_input2full returns the file system path of a filename containing a database alias. If cdb_input2full finds
no database alias present, it returns the input string.
Format
STRING cdb_input2full (STRING input_name)
Arguments
Examples
This example finds the file system path for the file mdids://prototype/bushings.tbl/my_bush.bus:
variable set variable=i2full &
string_value=(eval(cdb_input2full("mdids://prototype/bushings.tbl/
Customizing Your Product 621
Utility Functions
my_bush.bus")))
i2full = "/local/proto.cdb/bushings.tbl/my_bush.bus"
cdb_search_file
Definition
cdb_search_file returns the file system path of the input file (filename). First, it checks to determine if the
filename as input corresponds to an existing file. It expands any database alias to its corresponding file system
path, and looks for the filename at the resultant location. If it finds no file, it removes any file system path
prefix from the filename, and begins its to search the different databases in the specified search order.
Remember that search order may be important. If two identically named files exist in different databases, the
search order determines which of these files cdb_search_file finds and returns.
cdb_search_file returns an empty string if it does not find the requested filename after searching the
databases.
Format
STRING cdb_search_file (STRING class_name, STRING filename, INT level)
Arguments
class_name The type class name for the table in which to search for the file. It is defined in the
configuration files.
filename The filename, either with or without any path prefix, to be found.
level The level in the search list at which to start searching. The value is usually 1, which
indicates a full search.
Examples
This example finds the file system path for file my_bush.bus:
variable set variable=sfile &
string_value=(eval(cdb_search_file("bushing","my_bush.bus",1)))
sfile="/local/proto.cdb/bushings.tbl/my_bush.bus"
cdb_runtime_path_port
Definition
cdb_runtime_path_port returns the filename of the input string (input_name) converted to the Linux/Linux
style format (using forward slashes, that is, "/"). You will find cdb_runtime_path_port useful when you are
sharing filenames between Linux and Windows file systems. It also lets you use a database alias instead of a
full file system path.
622 Adams Car
Utility Functions
Format
STRING cdb_runtime_path_port (STRING input_name)
Arguments
Examples
This example returns the Linux/Linux version of the filename for the file
mdids:\\\prototype\bushings.tbl\my_bush.bus:
variable set variable=rpp &
string_value=(eval(cdb_runtime_path_port("mdids:\\\\prototype\\bushings.tbl\\my_bush.bus")))
rpp = "mdids://prototype/bushings.tb/my_bush.bus"
File Functions
The file functions return information about the roles and variants of templates, subsystems and assemblies:
template_hdr_major_role
subsystem_hdr_major_role
subsystem_hdr_minor_role
read_subsystem_variants
read_assy_variants
template_hdr_major_role
Definition
template_hdr_major_role returns the major role of a template. Your template-based product stores the major
role information in the header information of all template files (.tpl). template_hdr_major_role automatically
opens a template file, retrieves the information from the file header, and closes the file.
Format
STRING template_hdr_major_role (STRING filename)
Arguments
filename String that contains the full path of the template file.
Examples
This is an example of the header information that is stored in an Adams Car template file:
$------------------------TEMPLATE_HEADER----------------------$
Customizing Your Product 623
Utility Functions
[TEMPLATE_HEADER]
MAJOR_ROLE = 'suspension'
TIMESTAMP ='1999/02/04,13:13:38'
HEADER_SIZE = 5
The following example returns the major role of a template, which it obtains from the header information
shown above:
variable set variable=tpl_major_role &
string_value=(TEMPLATE_HDR_MAJOR_ROLE
("mdids://shared/template.tbl/_dbl_wish.tpl"))
tpl_major_role = "suspension"
subsystem_hdr_major_role
Definition
subsystem_hdr_major_role returns the major role of a subsystem. Your template-based product stores the
major role information in the header information of all subsystem files (.sub). subsystem_hdr_major_role
automatically opens a subsystem file, retrieves the information from the file header, and closes the file.
Format
STRING subsystem_hdr_major_role (STRING filename)
Arguments
filename String that contains the full path of the subsystem file.
Examples
This is an example of the header information that is stored in an Adams Car subsystem file:
$--------------------------SUBSYSTEM_HEADER -----------------------$
[SUBSYSTEM_HEADER]
TEMPLATE_NAME = ’mdids://shared/templates.tbl/_double_wishbone.tpl’
MAJOR_ROLE = ’suspension’
MINOR_ROLE = ’front’
TIMESTAMP = ’1999/02/04,17:18:18’
The following example returns the major role of an Adams Car subsystem, which it obtains from the header
information shown above:
variable set variable=sub_major_role &
string_value=(SUBSYSTEM_HDR_MAJOR_ROLE("mdids://shared/subsystem.tbl/
front_susp.sub"))
sub_major_role = "suspension"
624 Adams Car
Utility Functions
subsystem_hdr_minor_role
Definition
subsystem_hdr_minor_role returns the minor role of a subsystem. Your template-based product stores the
minor role information in the header information of all subsystem files (.sub). subsystem_hdr_minor_role
automatically opens a subsystem file, retrieves the information from the file header, and closes the file.
Format
STRING subsystem_hdr_minor_role (STRING filename)
Arguments
filename String that contains the full path of the subsystem file.
Examples
This is an example of the header information that is stored in an Adams Car subsystem file:
$------------------------SUBSYSTEM_HEADER ----------------------$
[SUBSYSTEM_HEADER]
TEMPLATE_NAME = ’mdids://shared/templates.tbl/_double_wishbone.tpl’
MAJOR_ROLE= ’suspension’
MINOR_ROLE= ’front’
TIMESTAMP= ’1999/02/04,17:18:18’
The following example returns the minor role of an Adams Car subsystem, which it obtains from the header
information shown above:
variable set variable=sub_minor_role &
string_value=(SUBSYSTEM_HDR_MINOR_ROLE("mdids://shared/subsystems
.tbl/front_susp.sub"))
sub_minor_role = "front"
read_subsystem_variants
Definition
read_subsystem_variants returns a list of variants defined in a subsystem file. Your template-based product
scans the variant information in the specified subsystem file (.sub or .xml). read_subsystem_variants
automatically opens a subsystem file, retrieves the information from the file, and closes the file. If no variant
definitions are found in the subsystem, an empty string is returned.
Format
STRING read_subsystem_variants (STRING filename)
Customizing Your Product 625
Utility Functions
Arguments
filename String that contains the full path of the subsystem file.
Examples
The following example returns the variants of an Adams Car subsystem, which it obtains from the file as
shown below:
variable set variable=sub_variants &
string_value=(
READ_SUBSYSTEM_VARIANTS("<private>/subsystems.tbl/front_susp.sub"))
sub_variants = "default,baseline,sport,luxury"
read_assy_variants
Definition
read_assy_variants returns a list of variants defined in an assembly file. Your template-based product scans the
variant information in the specified assembly file (.asy, .xml, or .bin). read_assy_variants automatically opens
an assembly file, retrieves the information from the file, and closes the file. If no variant definitions are found
in the assembly, an empty string is returned.
Format
STRING read_assy_variants (STRING filename)
Arguments
filename String that contains the full path of the assembly file.
Examples
The following example returns the variants of an Adams Car assembly, which it obtains from the file as shown
below:
variable set variable=assy_variants &
string_value=(
READ_ASSY_VARIANTS("<private>/assemblies.tbl/full_vehicle.asy"))
assy_variants = "default,curb,GVW"
subsystem_role_exists
subsystem_role_exists_in_variant
subsystem_lookup_in_variant
subsystem_lookup_index
subsystems_count
model_class_exists
Definition
model_class_exists lets you easily determine if a model of a particular model class exists in the current session.
model_class returns a 1 if a model of the specified model class exists.
Your template-based product stores the model class information in the model_class variable under all models.
Typical model classes include template, subsystem, and assembly.
Format
INT model_class_exists (STRING model_class)
Arguments
Examples
if condition=(model_class_exists("assembly") == 0)
! No Assemblies !
end
subsystem_lookup
Definition
subsystem_lookup returns the subsystem contained in the assembled model with the specified major and
minor role. If no such subsystem exists, subsystem_lookup returns no object or NONE.
Format
OBJECT subsystem_lookup (OBJECT model, STRING major_role, STRING minor_role)
Customizing Your Product 627
Utility Functions
Arguments
Examples
variable set variable=front_susp_subsystem &
object_value=(eval(SUBSYSTEM_LOOKUP(.susp_assy, "suspension",
"front")))
front_susp_subsystem = .susp_assy.TR_Front_Suspension
subsystem_role_exists
Definition
subsystem_role_exists lets you easily determine if a subsystem of a particular role exists in an assembled
model. subsystem_role_exists returns a 1 if the assembled model contains such a subsystem. Your template-
based product stores the role information in the role variable that exists in each subsystem.
Format
INT subsystem_role_exists (OBJECT model, STRING role)
Arguments
Examples
if condition=(subsystem_role_exists(.fveh_assembly, "brake_system")
== 0)
! No Brakes !
end
subsystem_role_exists_in_variant
Definition
subsystem_role_exists_in_variant lets you easily determine if a subsystem of a particular role exists in an
assembly variant. subsystem_role_exists_in_variant returns a 1 if the assembly variant contains such a
subsystem.
628 Adams Car
Utility Functions
Format
INT subsystem_role_exists_in_variant (OBJECT model, STRING role, STRING variant)
Arguments
Examples
if condition=(subsystem_role_exists_in_variant(.fveh_assembly,
"brake_system", "default") == 0)
! No Brakes !
end
subsystem_lookup_in_variant
Definition
subsystem_lookup_in_variant returns the name of the subsystem contained in the assembly variant with the
specified major and minor role. If no such subsystem exists, subsystem_lookup_in_variant returns an empty
string. Use this function when the subsystem may not be currently loaded in session. For example, imagine
an assembly with ten assembly variants, each referencing a different front suspension subsystem, only one of
which is currently open. You can use subsystem_lookup_in_variant to find the front suspension referenced
by one particular assembly variant, whether or not that subsystem is currently open.
Format
STRING subsystem_lookup_in_variant (OBJECT model, STRING variant, STRING major_role,
STRING minor_role, INT index)
Arguments
Examples
variable set variable=front_susp_subsystem &
Customizing Your Product 629
Utility Functions
string_value=(eval(SUBSYSTEM_LOOKUP_IN_VARIANT(.susp_assy,
"default", "suspension", "front", 0)))
front_susp_subsystem = "TR_Front_Suspension"
subsystem_lookup_index
Definition
subsystem_lookup_index returns the subsystem contained in the assembled model with the specified major
and minor role and index. If no such subsystem exists, subsystem_lookup_index returns no object or NONE.
Unlike subsystem_lookup_in_variant, this function will only find subsystems that are currently open in
session.
Format
OBJECT subsystem_lookup_index (OBJECT model, STRING variant, STRING major_role, STRING
minor_role, INT index)
Arguments
Examples
variable set variable=front_susp_subsystem2 &
object_value=(eval(SUBSYSTEM_LOOKUP_INDEX(.road_train, "default",
"suspension", "front", 2)))
front_susp_subsystem2 = .road_train.f_susp_2
subsystems_count
Definition
subsystems_count returns the number of subsystems contained in the assembled model with the specified
major and minor role. If no such subsystem exists, subsystems_count returns 0. Unlike
subsystem_lookup_in_variant, this function will only count subsystems that are currently open in session.
Format
INT subsystems_count (OBJECT model, STRING major_role, STRING minor_role)
630 Adams Car
Utility Functions
Arguments
Examples
variable set variable=rear_suspensions &
integer_value=(eval(SUBSYSTEMS_COUNT(.road_train, "suspension",
"rear")))
rear_suspensions = 3
Miscellaneous Functions
This topic lists utility functions that help you extend the Adams View macro language. The functions help
you access information that is not easy to access using the standard Adams View macro language. You can use
the utility functions in macros and in dialog boxes.
ac_info_mass
ac_info_mass
Definition
ac_info_mass computes the aggregate mass of the assembly. This function ignores inactive parts.
Format
REAL ac_info_mass(OBJECT model)
Arguments
Examples
variable set variable_name=total_mass &
real_value=(EVAL(ac_info_mass(.model_name)))
For example, when a group of users needs to access the same information or are working on the same project,
you can create a custom site repository. By having a site repository, they can share site-specific versions of the
template-based product and configuration files.
Also, a private repository is a convenient way for a single user to create several custom versions of a template-
based product or to work on different projects. Private locations let you create an unlimited number of site
binaries and libraries.
In the site or private repository, your template-based product creates a directory structure that mimics the
installation directory structure. The directory contains subdirectories for each platform for which you created
a binary or a library.
You control the location of the private repository using the privateDir setting. The privateDir setting tells
Adams where to locate the appropriate files and where to store the resulting files. The default location of the
private repository is as follows:
Where $HOME represents your user home directory when you log on to your computer.
Note: The following procedures show how you can define the site and private repositories for
Adams Car. Follow the same basic procedures to define the site repository for your template-
based product.
4. To the right of siteDir, in the Value column, enter (or right-click to browse for) a directory path, such
as d:\acar_custom.
5. Select Apply or OK.
Test Description
You can use the four-post test rig to investigate the vertical dynamics of the full vehicle and its suspension
systems. You can then plot the time-based results and study them in the frequency domain to understand the
various ride modes and their respective damping levels. The investigation will also help you learn more about
the influences of the vehicle's vertical dynamics effects on handling behavior by studying the system's
dynamic responses, which includes:
Front-to-rear modal balance
Suspension-to-body transfer function gain and phase
Suspension-to-tire transfer function gain and phase
Tire contact patch vertical load variation
The test involves assembling a standard full-vehicle model to a four-post test rig. The test rig is defined by
four parts representing the tire pads that support the vehicle. The tire pads are constrained to move only in
the vertical direction and a displacement actuator, or motion controller, controls their vertical motion.
The only constraint between the pads and the vehicle's tires is the friction of the tires.
634 Adams Car
Example Four-Post Analysis
Not all tire models have adequate zero speed modeling for being used with the four-post rig test: a rolling tire
acts as a damper because the force response depends on tire slip speeds; a non-rolling tire should act as a spring
and forces must depend on tire deflection.
All Adams Tire tire models support the four-post rig test when used in transient mode. For most tire models
this means that the USE_MODE in the tire property file must be larger then 10. The exceptions are:
UA-Tire, USE_MODE must be set to 2
The Basic and Enhanced tire model property files must specify a RELAXATION_LENGTH larger
then zero.
FTire is in transient mode by default.
An analytical function controls the vertical actuators. Analytical functions also describe the displacement
profile of the actuator in the time domain and they are limited to constant amplitude sinusoidal input that
sweeps over a predetermined frequency range in a set amount of time. When using the analytical function
control, users can use four excitation modes:
Heave - All tire pads move vertically in phase.
Pitch - The front tire pads move 180o out of phase with the rear tire pads.
Roll - The left tire pads move 180o out of phase with the right tire pads.
Warp - The left-front and right-rear tire pads move 180o out of phase with the right-front and left-
rear pads.
Running a Test
You should have a full-vehicle assembly mounted to the four-post test rig as shown next.
Use the Command Navigator to submit an analysis using the auto-generated dialog box:
1. To open the Command Navigator, from the Tools menu, select Command Navigator.
2. To run a full-vehicle analysis with the four-post test rig, you must select acme -> analysis ->
full_vehicle -> four_post -> submit (double-click).
Adams Car displays the following dialog box (without the values, which we added for your
convenience):
Customizing Your Product 637
Example Four-Post Analysis
3. After the analysis is completed, review the results using the animation and post-processing tools.
User-Input Parameters
Analysis input parameters are the values that you enter to control a simulation or some other event in the
template-based products. Analysis input parameters can be grouped into two categories:
Parameters common to all analyses:
• Output prefix
• End time
• Number of steps
• Type of analysis (interactive, background)
• Analysis log file (yes, no)
Parameters specific to this four-post test rig. You use the four-post simulation input parameters to
define the boundary conditions of the desired vertical excitation test. The parameters are:
• Peak displacement
• Displacement units (such as m, mm, inch)
• Frequency range (units hardcoded to Hz)
• Excitation mode (heave, pitch, roll, or warp)
Defining Parameters
We determined the parameters for the four-post analysis macro from User-Input Parameters (for a description
of the parameters whose values are important for the success of the four-post simulation, see the table
Parameter Descriptions):
! $assembly:t=model
! $output_prefix:t=string
! $comment:t=string:d=""
! $end_time:t=real:gt=0
! $number_of_steps:t=integer:gt=0
! $analysis_mode:t=list(interactive,graphical,background):d=interacti
ve
! $peak_displacement:t=real:gt=0
! $units:t=list(mm):d=mm
! $frequency_range:t=real:gt=0
! $excitation_mode:t=list(heave,pitch,roll,warp):d=heave
! $load_results:t=list(yes,no):u=yes
! $log_file:t=list(yes,no):u=yes
! $error_variable:t=variable:d=.ACAR.variables.errorFlag
640 Adams Car
Example Four-Post Analysis
Parameter Descriptions
Handling Errors
With this macro, users must perform the four-post analysis with the .__acme_4PostRig test rig described in
Test Rig Description. The assembly and test rig perform actions based on the elements that exist in the
.__acme_4PostRig test rig. Therefore, as part of error checking, the macro checks for the correct test rig. For
a description of the setup of the assembly and test rig, see About the Simulation Process.
In addition to verifying that the user is using the correct test rig, the macro also checks if the analysis name
is unique for this assembly. Notice that we use indenting and comments to make the macro easier to read; as
with all programming languages, this is a good practice to get into.
variable set variable_name=$error_variable integer=0
!---- Check to ensure the assembly has the proper test rig ----
if condition=($assembly.original_testrig_name != "__acme_4PostRig")
acar toolkit warning &
warning="Analysis cannot be submitted!", &
"The assembly does not have the proper testrig. This analysis only", &
"works with assemblies using the '__acme_4PostRig' testrig."
variable set variable_name=$error_variable integer=1
return
Customizing Your Product 641
Example Four-Post Analysis
end
verbose=yes &
error_variable=$error_variable
if condition=($error_variable != 0)
return
end
if condition=(!db_exists("$assembly.fourpostSetup"))
!--- Parameterize the 4post pad height to the global road height marker
just previously adjusted ---
marker modify &
marker_name=$assembly.testrig.ground.std_tire_ref &
location=($assembly.ground.std_tire_ref.location) &
relative_to=$assembly.testrig.ground
variable set variable=$_self.frontWheel &
object_value=(eval(subsystem_lookup($assembly,"wheel","front")))
variable set variable=$_self.leftFrontWheel &
object_value=(eval(db_filter_name(db_children($_self.frontWheel[1],"ac_ti
re"),"til_*")))
variable set variable=$_self.rightFrontWheel &
object_value=(eval(db_filter_name(db_children($_self.frontWheel[1],"ac_ti
re"),"tir_*")))
variable set variable=$_self.rearWheel &
object_value=(eval(subsystem_lookup($assembly,"wheel","rear")))
variable set variable=$_self.leftRearWheel &
object_value=(eval(db_filter_name(db_children($_self.rearWheel[1],"ac_tir
e"),"til_*")))
variable set variable=$_self.rightRearWheel &
object_value=(eval(db_filter_name(db_children($_self.rearWheel[1],"ac_tir
e"),"tir_*")))
marker modify &
marker_name=(eval($_self.leftFrontWheel.object_value.ref_marker.object_va
lue)) &
new_marker_name=
(eval($assembly.testrig.col_front_pad_mount[1]//"."//$_self.leftFrontWheel.o
bject_value.ref_marker.object_value.name))
marker modify &
marker_name=(eval($_self.rightFrontWheel.object_value.ref_marker.object_v
alue)) &
new_marker_name=(eval($assembly.testrig.cor_front_pad_mount[1]//
"."//$_self.rightFrontWheel.object_value.ref_marker.object_value.name))
marker modify &
marker_name=(eval($_self.leftRearWheel.object_value.ref_marker.object_val
ue)) &
new_marker_name=(eval($assembly.testrig.col_rear_pad_mount[1]//"."//$_sel
f.leftRearWheel.object_value.ref_marker.object_value.name))
marker modify &
marker_name=(eval($_self.rightRearWheel.object_value.ref_marker.object_va
lue)) &
new_marker_name=(eval($assembly.testrig.cor_rear_pad_mount[1]//"."//$_sel
f.rightRearWheel.object_value.ref_marker.object_value.name))
variable set variable=$assembly.fourpostSetup &
integer_value=1
end
You must reset the motion actuators driving the displacement of the shaker pads for each individual four-post
analysis. This is in contrast to the tire reference marker setup, described in the previous paragraphs, which
needs to occur only once for a particular assembly, and remains valid for all successive four-post analyses.
Each of the four shaker pads will have the same magnitude of motion, but a specific excitation mode will
determine the direction of the motion:
Heave mode - All four shaker pads move in the same direction.
Pitch mode - The front and rear tires move in opposite directions.
Roll mode - The left and right tires move in opposite directions.
Customizing Your Product 643
Example Four-Post Analysis
Warp mode - The left front and right rear tires move opposite to the direction traveled by the right
front and left rear tires.
You set the different excitation modes by specifying a 1 or -1 multiplier at the beginning of the actuator
function definition, as shown next:
!---- Assign actuator functions based on excitation mode ----
!-Heave Excitation
if condition=("$excitation_mode" == "heave")
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_front_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_front_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_rear_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_rear_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
!-- Pitch Excitation
elseif condition=("$excitation_mode" == "pitch")
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_front_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_front_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_rear_actuator &
function="-
1*$peak_displacement*sin(.5*360d*$frequency_range/$end_time*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_rear_actuator &
function="-
1*$peak_displacement*sin(.5*360d*$frequency_range/$end_time*time**2)"
!-- Roll Excitation
elseif condition=("$excitation_mode" == "roll")
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_front_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_front_actuator &
function="-
1*$peak_displacement*sin(.5*360d*$frequency_range/$end_time*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_rear_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_rear_actuator &
644 Adams Car
Example Four-Post Analysis
function="-
1*$peak_displacement*sin(.5*360d*$frequency_range/$end_time*time**2)"
!-- Warp Excitation
elseif condition=("$excitation_mode" == "warp")
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_front_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_front_actuator &
function="-
1*$peak_displacement*sin(.5*360d*$frequency_range/$end_time*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_left_rear_actuator &
function="-
1*$peak_displacement*sin(.5*360d*$frequency_range/$end_time*time**2)"
acar template_builder actuator set function &
actuator=$assembly.testrig.jms_right_rear_actuator &
function="1*$peak_displacement*sin(.5*360d*$frequency_range/$end_tim
e*time**2)"
end
if condition=("$analysis_mode" != "background")
acar toolkit message &
message="Simulation is complete."
end
When you access the four-post macro from the Command Navigator, Adams Car automatically creates a
dialog box based on the parameters in the macro. Users can use this dialog box, shown next, to execute the
macro and submit the four-post analysis.
Customizing Your Product 647
Example Four-Post Analysis
You can add the four-post custom dialog box to either the private or site binary (or interactively read it in
during your Adams Car session). The command shown next creates the dialog box by reading in the
command file found at the location you specify or we have provided an example dialog box in the examples
directory (install_dir\acar\examples\fourpost\analysis\dboxes).
We have also provided dboxes_ana.cmd in the example, which contains the following code.
!---- Check if dialog box exists and delete it if it does ----
if condition=(db_exists(".acar.dboxes.dbox_ana_ful_fou_sub"))
interface dialog_box delete dialog_box_name=.acar.dboxes.dbox_ana_ful_fou_sub
end
Adams Machinery Gear is used to create simplified or detailed representations of involute gears in Adams Car.
The following gear types can be created: Cylindrical (spur/helical and internal/external), bevel
(straight/spiral), hypoid, worm and rack & pinion.
648 Adams Machinery
Using Adams Machinery
Adams Machinery Gear creates gear forces as well as gear geometry. The gear force and the gear geometry are
added to, and act between, existing Adams Parts (Bodies) created by Adams Machinery Gear. The gear forces
can modeled with a simplified analytical method or a full 3D contact method. Spur gears also have a detailed
analytical method.
For more detailed information on Machinery Gear, see the Adams Machinery Gear documentation.
The Adams Machinery Gear module consists of 6 gear types:
Cylindrical Gear
Bevel Gear
Worm Gear
Rack Gear
Hypoid Gear
Planetary Gear
The following methods for defining the gear pair contact are available:
Simplified: the contact forces are calculated analytically and assume mostly planar behavior of the
gear pair; this method solves much faster than the 3D contact method.
Detailed (spur gears only): the contact forces are calculated analytically by using the involute
function (which describes the tooth profile) and the contact properties specified by the user; this
method solves much faster than the 3D contact method.
3D Contact: the contact forces are calculated by using standard Adams View solid-to-solid 3D
Contact modeling. Out-of-plane motion of the gears is better captured with this method than the
simplified and detailed method.
Advanced 3D Contact: this scalability enables one to apply Advanced 3D gear from conceptual
design up to optimization.
2. Adams Machinery Motors can be created in Template Builder via Build → Motor → New.
Adams Machinery in the Template-Based Products 649
Machinery Gear
Machinery Gear
Modeling Instructions
Modeling a gear pair in your template-based product should follow this procedure:
1. Create gear element 1
2. Create gear element 2
3. Create gear force that acts between gear 1 and gear 2
650 Adams Machinery
Machinery Gear
Modifying a gear
Gear element or gear force can be modified either by RMB modify (GUI or model browser) or using 'modify'
dialog box.
Deleting a gear
Gear pair should be deleted in reverse order as they were created.
A gear force should be deleted first as it has dependency on gear elements.
Gear element/force can be deleted using RMB delete (GUI or model browser) or using 'delete' dialog box.
Motor
Introduction
To access the Motor from the Adams Car:
Launch Adams Car interface.
From Build menu, select Motor → New.
The Create Motor dialog box will be displayed.
The Adams Motor provides the modeling of motor systems within the Adams Car environment.
Three modeling methods are available:
Analytical
Curve Based
External
Analytical
Motor Type
AC Synchronous Motor
DC Motor
Brushless DC Motor
Stepper Motor
Adams Machinery in the Template-Based Products 655
Motor
1. AC Synchronous Motor
An AC synchronous electric motor is a motor in which, at steady state, the rotation of the shaft is
synchronized with the frequency of the supply current; the rotation period is exactly equal to an integral
number of AC cycles. Synchronous motors contain electromagnets on the stator of the motor that create a
magnetic field which rotates in time with the oscillations of the line current. The rotor turns in step with this
field, at the same rate.
The motor does not rely on "slip" under usual operating conditions, and as a result produces torque at
synchronous speed. The speed of the synchronous motor is determined by the number of magnetic poles and
the line frequency.
1.1 Components
Rotor: Armature Windings
Stator: Electromagnets.
1.2 Types
Non excited Motors
• Hysteris motors
• Permanent Magnet Motors.
• Reluctance Motors
656 Adams Machinery
Motor
Excited Motors
Once the motor is in operation, the speed of the motor is dependent only on the supply frequency. When
the motor load is increased beyond the breakdown load, the motor falls out of synchronization and the field
winding no longer follows the rotating magnetic field. Since the motor cannot produce (synchronous) torque
if it falls out of synchronization, practical synchronous motors have a partial or complete squirrel cage damper
(amortisseur) winding to stabilize operation and facilitate starting.
1.5 Applications
Electric wall clocks
Synchronous Condensers.
Centrifugal Machines
Air Compressors
Textile mills
To improve power factor in Large industries
E –1 R a E sin δ E – X ( V – E cos δ E )
K = ------ Φ = tan -------------------------------------------------------------------
- X = 2πfL
ωr XE sin δ E + R a ( V – E cos δ E )
2πf V P
ω r = ---------- ------ δ E = δ × ---
P⁄2 V 2
Calculation of K (rated condition),
Er
K = ------
ωs
2π × f r
E r = ( V r – I r R a cos Φ r + I r X r sin Φ r ) + i ( I r X r cos Φ r + I r R a sin Φ r ) ω s = ----------------
P⁄2
–1 –1
Φ r for leading = cos ( PF r ) Φ r for leading = – 1 × cos ( PF r ) X r = 2πf r L
Where,
T = Motor torque
V = Supply voltage
K = BEMF constant
Φ = Power factor angle
658 Adams Machinery
Motor
ω s = Angular velocity
Vr = Rated voltage
Ir = Rated current
Ra = Armature resistance
4π
α = ------
p
where:
P = Poles
α = Pole Pair angle (Angle between two consecutive North Poles)
f = 150 Hz
P=6
I = 8.4 A
φ = 0.8
R = 0.33 ohms
L = 2 mH
2. DC Motor
D.C electric motors are mechanically commutated motors. Powered by a D.C electric source, current in the
rotor is switched by the commutator. The relative angle between the stator and rotor magnetic flux is
maintained near 90°, which generates the maximum torque.
D.C motors have a rotating armature winding but non-rotating armature magnetic field and a static field
winding or permanent magnet. Different connections of the field and armature winding provide different
inherent speed/torque regulation characteristics. The speed of a D.C motor can be controlled by changing
the voltage applied to the armature or by changing the field current. The introduction of variable resistance
in the armature circuit or field circuit allowed speed control. Modern D.C motors are often controlled by
power electronics systems called D.C drives.
2.1 Components
Rotor - Armature Winding
660 Adams Machinery
Motor
Stator - Magnets
Split ring commutator
Carbon Brushes
Fans
Pumps
Band saw
Drive requiring moderate torques
Winding/unwinding machines and Tensioners
Dragline Excavators
Air compressors
Vacuum cleaners
T = KφI a
ZP Es – Eb ZφNP
K = ---------- I a = ----------------- E b = ---------------
2πa Ra 60a
662 Adams Machinery
Motor
Where
T = Torque developed in N-m
K = Torque constant
φ = Flux per pole in Webers
Ia = Armature current in Amps
Z = Number of conductors
P = Number of Poles
a = Number of parallel paths in the Armature.
Es = Source Voltage in Volts
Eb = Back emf induced in Volts
Ra= Armature resistance in ohms
N = Revolutions per Minute
ZP Es – Eb ZφNP
K = ---------- I a = ----------------- E b = ---------------
2πa Ra 60a
Where
T = Torque developed in N-m
K = Torque constant
K1 = Series motor constant
3. Brushless DC Motor
Brushless DC electric motor also known as electronically commutated motors (ECMs, EC motors) are
synchronous motors which are powered by a DC electric source via an integrated inverter/switching power
supply, which produces an AC electric signal to drive the motor. Brushless motors may be described as stepper
motors; however, the term stepper motor tends to be used for motors that are designed specifically to be
operated in a mode where they are frequently stopped with the rotor in a defined angular position.
A typical brushless motor has permanent magnets which rotate and a fixed armature, eliminating problems
associated with connecting current to the moving armature. An electronic controller replaces the
brush/commutator assembly of the brushed DC motor, which continually switches the phase to the windings
to keep the motor turning. The controller performs similar timed power distribution by using a solid-state
circuit rather than the brush/commutator system.
Brushless motors offer several advantages over brushed DC motors, including
More torque per weight and watt
Increased reliability
Reduced Noise
Longer life time
Adams Machinery in the Template-Based Products 665
Motor
3.1 Components
Rotor - Permanent magnets
Stator - Armature
Electronic commutator
The commutation of a brushless DC motor depends on the position of the rotor. The angle between the
magneto-motive forces of stator and rotor is fixed to 90°, so the motor produces maximum torque and needs
Adams Machinery in the Template-Based Products 667
Motor
low reactive current. It might be useful to advance commutation by few degrees to compensate the effects of
the stray inductance and minimize reactive current.
3.5.3 Examples
Gyroscope motors
T = k d k p k s mnBLRI
Eb – Es ZφNP
I a = ----------------- E b = ---------------
Ra 60a
TE × Ra
E s = -------------------------------------------------------------------------------
kd × kp × ks × m × n × B × L × R
TPID = Pgain x Proportional Input+ Igain x Integral Input + Dgain x Derivative Input
668 Adams Machinery
Motor
ω
T rated = T max – T max × ------------
ω max
Proportional Input = G x Error
For speed control, Error = Desired Speed-Actual Speed
For position control, Error = Desired Angular Displacement - Actual Angular Displacement
Where
kd = Distribution Factor
kp = Coil pitch Factor
ks = Slot Skew Factor
m = Number of Teeth per phase
n = Number of Turns per phase
B = Strength of the permanent Magnetic field
L = Length of rotor windings
R = Radius of Armature
I = Current in the Motor winding
T = Torque developed in N-m
φ = Flux per pole in Webers
Z = Number of conductors
P = Number of Poles
a = Number of parallel paths in the Armature
Es = Source Voltage in Volts
Eb = Back emf induced in Volts
Ra = Armature resistance in ohms
N = Revolutions per Minute
TE = minimum value of TPID & Trated
Trated = Rated Torque
Proportional Input =Error from difference between actual and desired speed (or angle) of the rotor
Integral Input = Integral of Proportional Input
Derivative Input = Derivative of Proportional Input
G = Gain applied to the error
Pgain = Gain applied to the Proportional Input
Igain = Gain applied to the Integral Input
Dgain = Gain applied to the Derivative Input
Tmax = Maximum Torque
Adams Machinery in the Template-Based Products 669
Motor
kp = 0.866
ks =1
n = 120
B = 1.3
L = 25 mm
R = 43 mm
Pgain = 1.0e-3
Igain = 2.0e-2
Dgain = 4.0
G = 10.0
Tmax = 150.0e+3 N-mm
4. Stepper Motor
A stepper motor is a brushless, synchronous electric motor that converts digital pulses into mechanical shaft
rotation. Every revolution of the stepper motor is divided into a discrete number of steps and the motor must
be sent a separate pulse for each step. Stepper motors provide a means for precise positioning and speed
control without the use of feedback sensors. Stepper motors are very popular in digital control circuits, such
as robotics, because they are ideally suited for receiving digital pulses for step control. Each step causes the
shaft to rotate a certain number of degrees.
Above Figure shows a typical cross-sectional view of the rotor and stator of a stepper motor. From the diagram
it can be seen that the stator (stationary winding) has eight poles, and the rotor has six poles (three complete
magnets). The rotor will require 24 pulses of electricity to move the 24 steps to make one complete
revolution. Another way to say this is that the rotor will move precisely 15° for each pulse of electricity that
the motor receives. The number of degrees the rotor will turn when a pulse of electricity is delivered to the
motor can be calculated by dividing the number of degrees in one revolution of the shaft (360°) by the
number of poles (north and south) in the rotor. In this stepper motor 360° is divided by 24 to get 15°. When
no power is applied to the motor, the residual magnetism in the rotor magnets will cause the rotor to detent
or align one set of its magnetic poles with the magnetic poles of one of the stator magnets. When the rotor is
in a detent position, it will have enough magnetic force to keep the shaft from moving to the next position.
Adams Machinery in the Template-Based Products 671
Motor
When power is applied, it is directed to only one of the stator pairs of windings, which will cause that winding
pair to become a magnet. One of the coils for the pair will become the North Pole, and the other will become
the South Pole.
4.4 Applications
Linear actuators
Goniometry
Floppy disk drives
Flatbed scanners
Computer printers & plotters
Intelligent lighting
π
T 1 = HSin --- ⁄ S θ
2
π
T 2 = HCos --- ⁄ S θ
2
Where
T1 = Torque on the first winding.
T2 = Torque on the Secondary winding.
H = Holding Torque in N-m.
S = Step Angle in radians.
θ = Shaft Angle in radians.
One Phase on - Full Step Drive: Torque on the first winding (T1) is alone considered.
Two Phase on - Full Step Drive: Torque on the first winding (T1) and torque on the
second winding (T2) are considered.
θ = 0.5 radians
Adams Machinery in the Template-Based Products 673
Motor
Curve Based
In curve based method, motor is represented as an Adams force element based on a user specified Torque-
Speed curve.
The motor is created through following two methods.
Select Spline
Enter Spline File
Create Data Points
674 Adams Machinery
Motor
Select Spline
Select spline from within the model.
External
In the External method, motor is modeled using external Control package software's like
SimuLink/Easy5/MATLAB and represented via Adams using the following two methods.
External System Library Import
Co-Simulation
Note: The (.cmd) generated in version 2014.0 or prior containing external method Adams
Machinery Motors will issue an error message upon import into Adams Car 2015.0 or later:
“ERROR: You cannot write files inside a suppressed undo block”. This message can be safely
ignored if the model is again exported as a .cmd file it will no longer issue this error on
subsequent import actions in version 2015.0 or later.
1.1 Standard
Standard method creates the GSE equation, by importing the External System Library (from MATLAB or
Easy5) and using the default input and output state variables.
1.2 User-Defined
User-Defined method follows the same method as that of Standard method except it allows the user to select
input and output state variables.
2. Co-Simulation
Co-Simulation is aimed at interfacing external software's like MATLAB/Easy5 with Adams motor Module.
If there is a control system defined in a control package such as Easy 5 or Matlab/Simulink, then Co-
Simulation can be performed between mechanical model defined in Adams and control system defined in the
control package.
2.1 Standard
In the standard method, Adams motor module automatically creates State variables to be passed and received
from Control package (MATLAB). The PINPUT structure contains Motor Torque which is the input from
Control package (MATLAB). The POUTPUT structure contains Angular Displacement, Angular Velocity
and Angular Acceleration which acts as the output from Adams. A Motor Plant is created upon the
completion of the Motor wizard. Once an interactive/batch simulation is carried out between the two
software's, three motor plant files are created, that is, .m (Matlab), .adm (Adams database) and .cmd
(Command files).
2.2 User-Defined
The user-defined method for Co-Simulation follows the same functioning process of Standard method, but
in this method the input from the Control package (MATLAB/Easy 5) and Output (State Variables) from
Adams motor can be selected by the user.
Motor Output
The Output torque of the motor can be multiplied before supplying to the model in a simpler way using
below options.
1. Scale Factor - To multiply the torque value by a constant or a variable.
2. Step Function - To multiply and as well as apply the torque in steps.
3. Expression - To scale the torque value within an expression.
<acar_shared>/assemblies.tbl/
MDI_Demo_Vehicle_MachineryGear_3D.asy
MDI_Demo_Vehicle_MachineryMotor.asy
mdi_front_vehicle_MachineryGear.asy
mdi_front_vehicle_MachineryGear_3D.asy
<acar_shared>/subsystems.tbl/
MDI_FRONT_STEERING_MachineryGear.sub
MDI_FRONT_STEERING_MachineryGear_3D.sub
TR_Steering_MachineryGear_3D.sub
TR_Steering_MachineryMotor.sub
<acar_shared>/templates.tbl/
_rack_pinion_steering_MachineryGear.tpl
_rack_pinion_steering_MachineryGear_3D.tpl
_rack_pinion_steering_MachineryMotor.tpl
<atruck_shared>/assemblies.tbl/
msc_tractor_unit_MachineryGear.asy
<atruck_shared>/subsystems.tbl/
msc_bus_steering_MachineryGear.sub
msc_truck_steering_MachineryGear.sub
<atruck_shared>/templates.tbl/
_msc_truck_steering_MachineryGear.tpl
<adriveline_shared>/assemblies.tbl/
JEEP_RWD_MachineryMotor.asy
JEEP_RWD_SDI_MachineryGear.asy
<adriveline_shared>/subsystems.tbl/
JEEP_steering_MachineryGear.sub
RWD_driveline_MachineryMotor.sub
<adriveline_shared>/templates.tbl/
_RWD_driveline_MachineryMotor.tpl
678 Adams Machinery
Examples in the shared databases
Tutorials and Examples
For tutorials of overall product use, see:
Getting Started Using Adams Car
(COMMENTS)
{comment_string}
'Any comment'
[UNITS]
LENGTH = 'meter' || 'millimeter' || 'centimeter' || 'kilometer' || etc.
FORCE = 'newton' || 'kilogram_force' || etc. ANGLE = 'deg' MASS = 'kg'
TIME = 'sec'
[CLOSED_LOOP]
comment = string
steering_control = 'none' || 'curvature' || 'path' || 'lat_acc'
speed_control = 'none' || 'lon_vel' || 'lon_acc' || 'lat_acc' || 'path'
ordinal = 'distance' || 'time'
350 Adams Car
Example .dcd File
lon_vel_max = float
lon_vel_min = float
lon_acc_max = float
lon_acc_min = float
lat_acc_max = float
lat_acc_min = float
(DATA)
$ steering, speed
$ 1 Case{none, none} -- null case, no data required!!
$ 2 Case{none, lon_vel}
$ 3 Case{none, lon_acc}
$ 4 Case{none, lat_acc} -- NOT VALID
$ 5 Case{none, path} -- NOT VALID
{ ( distance || time ) && ( lon_vel || lon_acc ) }
$ 6 Case{curvature, none} -- Must have distance with curvature
{ distance && curvature }
$ 7 Case{curvature, lon_vel}
$ 8 Case{curvature, lon_acc}
$ 9 Case{curvature, lat_acc}
$10 Case{curvature, path} -- NOT VALID
{ ( distance || time ) && curvature && ( lon_vel || lon_acc
|| lat_acc ) }
$11 Case{path, none}
$12 Case{path, lon_vel}
$13 Case{path, lon_acc}
$14 Case{path, lat_acc}
{ x && y && ( lon_vel || lon_acc || lat_acc ) }
$15 Case{path, path}
{ x && y && time }
$16 Case{lat_acc, none} -- NOT VALID
$17 Case{lat_acc, lon_vel}
$18 Case{lat_acc, lon_acc}
$19 Case{lat_acc, lat_acc} -- NOT VALID
$20 Case{lat_acc, path} -- NOT VALID
{ ( distance || time ) && lat_acc && ( lon_vel || lat_acc ) }
[OPEN_LOOP]
ordinal = 'time' || 'distance'
{distance || time steering throttle brake gear clutch}*
0.0 0.0 0.0 0.0 2 0.0
0.1 0.0 0.0 0.0 2 0.0
*You can select distance or time and any combination of steering, throttle, brake, gear, and clutch
0.1 27.777
0.2 27.776
0.3 27.775
0.4 27.774
0.5 27.773
.....
Template mdids://acar_concept/templates.tbl/_rigid_chassis_bed_bof.tpl
Major role body
Minor role any
The next (non-blank) line contains the titles for the columns. These titles should be constant, in this order
(please note that this line is informational only):
352 Adams Car
Example Mapping File
Class
Acar_name
Options
Values
Apre_name
Options
Comments
Class: Class is the Adams Car entity type such as ConstructionOptions, HardPointPair, HardPoint (single),
PartPair, Part and so on. This is the same as the tag used in the XML subsystem file.
The line containing class name should have blank columns. The line below this line will contains mapping
information about that entity type.
Acar_name: This column contains the names of the Adams Car entity without prefix. Example
'ge[lr]_spindle' should be written as 'spindle'. This column should have values from the line below its class
definition line. This is the name in Adams Car that the corresponding object from Adams Car should map to.
Options: [Only used if the class type is of "ConstructionOption".] This is the option name used in Adams
Car for the design option. Note that in order to map Adams Car Construction options within Adams Car
template, your template based product should contain Design Options.
Values: [Only used if the class type is of "ConstructionOption".] This is the value used in the parameter
variable associated with the relevant design option.
Apre_name: This column contains the name of the Adams Car entity in the subsystem (that is, the entity
that needs to be mapped into Adams Car).
Comments: This column contains user entered comments. This column may or may not contain any value.
It is not used for mapping, but may be useful for modification of the mapping file itself.
As an example, please see the following Construction Option section for a body subsystem:
ConstructionOptio
n
number_of_body_mounts 1 bushing 1 body_mounts 1
2 bushings 2 2
3 bushings 3 3
4 bushings 4 4
5 bushings 5 5
6 bushings 6 6
Tutorials and Examples 353
Example Suspension Loadcase File
7 bushings 7 7
8 bushings 8 8
9 bushings 9 9
For all other sub-sections, only two columns are needed (names from Adams Car ). For example, the
following Hardpoint section for the same body subsystem:
HardPointPair
body_mount_1 body_mount_1
body_mount_2 body_mount_2
body_mount_3 body_mount_3
body_mount_4 body_mount_4
body_mount_5 body_mount_5
body_mount_6 body_mount_6
body_mount_7 body_mount_7
body_mount_8 body_mount_8
body_mount_9 body_mount_9
For further examples of the mapping file format, see the examples in the Adams installation:
<install_dir>\ achassis\map
Note: For wheel-envelope input files, Adams Car ignores columns three through ten: (left and right)
lateral force, aligining torque, brake force, and driving force.
$--------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'wen'
FILE_VERSION = 5.0
FILE_FORMAT = 'ascii'
$--------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
FORCE = 'newton'
ANGLE = 'deg'
Tutorials and Examples 355
Example Wheel-Envelope Output File
MASS = 'kg'
TIME = 'sec'
$--------------------------------------------MODE
[MODE]
STEERING_MODE = 'angle'
VERTICAL_MODE = 'length'
$--------------------------------------------GRID
[GRID]
BOUNDARY_STEERING_GRID = 100.0
BOUNDARY_WHEEL_GRID = 20.0
INTERIOR_STEERING_GRID = 100.0
INTERIOR_WHEEL_GRID = 20.0
$--------------------------------------------DATA
[DATA]
$COLUMN: input type: type of input data: side:
$ (c1) wheel z disp / force left
$ (c2) wheel z disp / force right
$ (c3) lateral force (y) left
$ (c4 lateral force (y) right
$ (c5) aligning torque (z-axis) left
$ (c6) aligning torque (z-axis) right
$ (c7) brake force (y) left
$ (c8 brake force (y) right
$ (c9) driving force (y) left
$ (c10) driving force (y) right
$ (c11) steering steer angle / rack travel
$ {whl_z_l whl_z_r lat_l lat_r align_l align_r brake_l brake_r
drive_l drive_r steer}
-120.0 -120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -500.0
80.0 80.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -500.0
90.0 90.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -300.0
120.0 120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -200.0
120.0 120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200.0
85.0 85.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 350.0
80.0 80.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
60.0 60.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
30.0 30.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 450.0
-30.0 -30.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 450.0
-75.0 -75.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
-120.0 -120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 500.0
Columns 2-4 show the data for the left wheel center x, y, z
Columns 5-7 show the data for the left wheel axis point x, y, z
Columns 8-10 show the data for the right wheel center x, y, z
Columns 11-13 show the data for the right wheel axis point x, y, z
The following is an example of a wheel-envelope output file:
Adams Car Wheel Envelope Analysis Output File - acar_v10.0
Adams Car Assembly
2000-01-19 16:41:21
1 -4.2702 -673.57 205.00 -348.83 -1611.7 170.29 7.0293 670.69 205.00 303.63 1620.7 107.88
2 -4.6463 -681.45 225.00 -344.63 -1621.7 206.15 6.7629 678.55 225.00 307.97 1628.3 139.91
3 -4.9532 -687.82 245.00 -340.16 -1630.0 239.60 6.5706 684.92 245.00 311.28 1634.4 170.26
4 -5.2433 -692.82 265.00 -334.67 -1637.0 271.40 6.3755 689.93 265.00 314.35 1639.0 198.89
5 -5.5240 -696.55 285.00 -328.07 -1643.0 301.70 6.1779 693.66 285.00 317.43 1642.1 225.76
6 -5.7905 -699.08 305.00 -320.38 -1648.0 330.44 5.9864 696.18 305.00 320.67 1643.8 250.76
7 -6.0372 -700.45 325.00 -311.59 -1652.1 357.51 5.8099 697.55 325.00 324.25 1644.1 273.76
8 -6.2583 -700.71 345.00 -301.72 -1655.3 382.78 5.6583 697.79 345.00 328.31 1643.0 294.55
9 -6.4469 -699.89 365.00 -290.74 -1657.8 406.03 5.5424 696.93 365.00 333.04 1640.3 312.88
10 -6.5953 -698.01 385.00 -278.64 -1659.4 426.98 5.4752 695.00 385.00 338.63 1636.2 328.39
... .......
[PAGE]
PAGE_LAYOUT = 11.0
NUMBER_OF_PLOTS = 1.0
PAGE_NAME = page_1
HEADER_LEFT_LINES = 1.0
HEADER_LEFT_LINE_0_TEXT = 'Header Left'
HEADER_LEFT_TEXT_FONT_SIZE = 9.0
HEADER_LEFT_LINES = 1.0
HEADER_LEFT_COLOR = 788529153.0
FOOTER_RIGHT_LINES = 1.0
FOOTER_RIGHT_LINE_0_TEXT = 'Footer Right'
HEADER_LEFT_LINES = 1.0
HEADER_LEFT_LINE_0_TEXT = 'Header Left'
FOOTER_RIGHT_TEXT_FONT_SIZE = 9.0
FOOTER_RIGHT_COLOR = 788529153.0
$----------------------------------------------------------------------PLOT
[PLOT]
INDEX = 0.0
NAME = 'plot_1'
Tutorials and Examples 357
Example Plot Configuration File
TIME_LOWER_LIMIT = 0.0
TIME_UPPER_LIMIT = 0.0
AUTO_DATE_STAMP = 1.0
AUTO_ANALYSIS_NAME = 1.0
AUTO_SUBTITLE = 0.0
AUTO_TABLE_HEADER = 1.0
(LEGEND)
{placement xloc yloc zloc fill }
2 55.46 85.03 0.00 1
(PLOT_BORDER)
{color line_style line_weight}
788529153 1 1.0
(PRIMARY_GRID)
{color line_style line_weight}
788529165 1 0.5
(SECONDARY_GRID)
{color line_style line_weight}
788529165 1 0.5
(LEGEND_BORDER)
{color line_style line_weight}
788529153 1 1.0
(NOTES)
NUMBER_OF_NOTES = 3.0
(NOTE_1)
{name font color autopos rotation alignment xloc yloc zloc isDate isAnalysis
numStrings}
'analysis' 9 788529153 0 0.0 2 54.3200 4.7836 0.0000 0 1 0 1
STRING_1_TEXT = 'Analysis: test1_parallel_travel'
(NOTE_2)
{name font color autopos rotation alignment xloc yloc zloc isDate isAnalysis
numStrings}
'date' 9 788529153 0 0.0 2 117.8513 4.7836 0.0000 1 0 0 1
STRING_1_TEXT = '15:52:54 11-MAY-98'
(NOTE_3)
{name font color autopos rotation alignment xloc yloc zloc isDate isAnalysis
numStrings}
'NOTE_3' 10 788529163 1 0.0 4 82.6197 56.0575 0.0000 0 0 0 1
STRING_1_TEXT = 'This is my note'
(PLOT_AXES)
{axis_name type label scaling divisions low_limit up_limit color font
rotation alignment placement axis_offset axis_color label_autopos
label_offset label_xloc label_yloc tic_color minor_divs auto_divs use_divs
incs trailing_zeros dec_places sci_lower sci_upper num_font num_color}
'vaxis' 'vertical' 'No Units' 'linear' 8 0 0 788529153 9 90.0 3 0 0.0
788529153 0 10.9 43.4 49.3 788529153 2 1 1 1.0 0 4 -4 5 9.0 788529153
'haxis' 'horizontal' 'Time (sec)' 'linear' 3 0 0 788529153 9 0.0 2 3 0.0
788529153 0 6.5 86.1 4.8 788529153 2 1 1 5.0 0 4 -4 5 9.0 788529153
$----------------------------------------------------------------PLOT_CURVE
[PLOT_CURVE]
NAME = 'curve_1'
PLOT = 'plot_1'
VERTICAL_AXIS = 'vaxis'
HORIZONTAL_AXIS = 'haxis'
HORIZONTAL_EXPRESSION = 'toe_angle.TIME'
VERTICAL_EXPRESSION = 'toe_angle.right'
Y_UNITS = 'no_units'
X_UNITS = 'time'
LEGEND_TEXT = 'Right'
COLOR = 'red'
358 Adams Car
Example Differential Property File
STYLE = 'solid'
SYMBOL = 'none'
LINE_WEIGHT = 2.0
HOTPOINT = 0.0
INCREMENT_SYMBOL = 1.0
15 3.00
19 3.80
21 6.00
25 14.00
30 24.00
35 34.00
39 42.00
41 64.00
45 144.00
50 244.00
55 344.00
60 444.00
65 544.00
69 624.00
71 844.00
75 1644.00
80 2644.00
85 3644.00
90 4644.00
0.0 120.0
100.0 74.2072
200.0 63.323
300.0 115.5031
400.0 45.7163
500.0 4.7405
600.0 5.0
700.0 0.0
Tutorials and Examples 361
Example Motor Property Files
3.0 360.0
3.1 360.0
3.2 360.0
3.3 360.0
3.4 360.0
3.5 360.0
3.6 270.0
3.7 270.0
3.8 270.0
3.9 270.0
4.0 270.0
4.1 270.0
4.2 270.0
4.3 270.0
4.4 270.0
4.5 270.0
4.6 90.0
4.7 90.0
4.8 0.0
4.9 0.0
5.0 0.0
6.0 0.0
7.0 0.0
8.0 0.0
9.0 0.0
10.0 0.0
11.0 0.0
12.0 0.0
Tutorials and Examples 363
Example Motor Property Files
$---------------------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'bldc'
FILE_VERSION = 4.0
FILE_FORMAT = 'ASCII'
$--------------------------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
ANGLE = 'degrees'
FORCE = 'newton'
MASS = 'kg'
TIME = 'second'
$---------------------------------------------------------PARAMETERS
[PARAMETERS]
METHOD = 'analytical'
MOTOR_TYPE = 'bldc'
CONTROL_METHOD = 'speed_control'
$--------------------------------------------------------------CURVE
[CURVE]
{ time rpm}
0.0 0
0.05 100
0.1 100
0.2 100
0.3 100
0.4 100
0.5 100
0.6 100
0.7 100
0.8 100
0.9 100
1 100
1.1 100
1.2 100
1.3 100
1.4 100
1.5 100
1.6 150
1.7 150
1.8 150
1.9 150
2 150
2.1 150
2.2 150
2.3 150
2.4 150
2.5 150
2.6 300
2.7 300
364 Adams Car
Example Motor Property Files
2.8 300
2.9 300
3 300
3.1 300
3.2 300
3.3 300
3.4 300
3.5 300
3.6 200
3.7 200
3.8 200
3.9 200
4 200
4.1 100
4.2 100
4.3 100
4.4 100
4.5 100
4.6 50
4.7 40
4.8 30
4.9 20
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
Tutorials and Examples 365
Example Motor Property Files
$---------------------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'stpr'
FILE_VERSION = 4.0
FILE_FORMAT = 'ASCII'
$--------------------------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
ANGLE = 'degrees'
FORCE = 'newton'
MASS = 'kg'
TIME = 'second'
$---------------------------------------------------------PARAMETERS
[PARAMETERS]
METHOD = 'analytical'
MOTOR_TYPE = 'stepper'
INPUT_TYPE = 'target_angle_vs_time'
$--------------------------------------------------------------CURVE
[CURVE]
{ time angle}
0.0 0.0
0.5 0.0
0.9 0.0
1.0 60.0
1.1 60.0
1.9 60.0
2.0 60.0
2.1 60.0
4.1 60.0
5.0 60.0
6.0 60.0
7.0 60.0
366 Adams Car
Example Wind File
$---------------------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'stpr'
FILE_VERSION = 4.0
FILE_FORMAT = 'ASCII'
$--------------------------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
ANGLE = 'degrees'
FORCE = 'newton'
MASS = 'kg'
TIME = 'second'
$---------------------------------------------------------PARAMETERS
[PARAMETERS]
METHOD = 'analytical'
MOTOR_TYPE = 'stepper'
INPUT_TYPE = 'pps_vs_time'
$--------------------------------------------------------------CURVE
[CURVE]
{ time PPS}
0.0 0.0
0.5 0.0
0.9 0.0
1.0 1.0
1.1 1.0
1.9 1.0
2.0 1.0
2.1 0.0
4.1 0.0
5.0 0.0
6.0 0.0
7.0 0.0
(BASE)
{length force angle mass time}
'mm' 'newton' 'degrees' 'kg' 'sec'
(USER)
{unit_type length force angle mass time conversion}
'Nm' 1 1 0 0 0 1E+03
'MPa' -2 1 0 0 0 1
'Nms_d' 1 1 -1 0 1 1E+03
'Nm_d' 1 1 -1 0 0 1E+03
'mm_s' 1 0 0 0 -1 1
(XY_DATA)
{distance <length> || time angle <angle>}**
-10000.00 60.00
0.00 60.00
25000.00 60.00
26000.00 60.00
50000.00 60.00
100000.00 60.00
101000.00 60.00
150000.00 60.00
1000000.00 60.00
*You can select distance or time (should match with the ordinal value specified) and wind_velocity.
**You can select distance or time (should match with the ordinal value specified in wind_velocity block) and
angle.
368 Adams Car
Adams Car Dynamic Suspension Analysis
Model Description
6. To animate the results, from the Review menu, select Animation Controls. Animate the model and
observe the change in the suspension travel.
The fz_front component corresponds to magnitude of the force in the Z direction. Plot this quantity
to obtain a figure similar to the following:
3. Click on the Connections tab next and highlight the Move column and click Preserve Expression
button and click OK.
Tutorials and Examples 373
Adams Car Dynamic Suspension Analysis
4. Now, the rigid lower control arm in red is replaced by the white flexible body.
2. Because of the left lower control arm being a flexible body, note the difference in the bushing force.
Optional: Load Durability Plugin to display Stresses and Identify the Hotspots
Here you will load the Durability Plugin and identify the hot-spots on the flexible lower control arm and also
plot the nodal stresses. For better visualization, in the Adams Car Standard Interface change the background
color from Black to Gray (Settings - View Background Color).
To Display Stresses and animate the flex body:
1. Change to Adams Postprocessor and switch to Animation mode.
2. Go to View - Load Animation - select Rigid_Flex_dynamic to load the animation.
3. Go to Tools - Plugin Manager and check the load Adams Durability option.
4. In the Animation tab right click the Component field and select the flexible body
gel_lower_control_arm_flex. This only displays the flexible body and not the whole model.
Tutorials and Examples 375
Adams Car Dynamic Suspension Analysis
5. Select the Contour Plots tab; set Contour Plot Type to Von Mises Stress and check Display Legend.
6. Select the Hot Spots tab; check Display HotSpots and fill the dialog box as shown below. You are
interested in looking at the top 2 hotspots on the flexible body.
7. Play the animation; you would observe the change in stress with the hot spots being identified.
376 Adams Car
Adams Car Dynamic Suspension Analysis
8. From the above exercise, you can note that Node with ID 709 experiences the maximum Von Mises
Stress. You can now, plot the stress at this node. Go to Durability menu at the top and select Nodal
Plots. The dialog for Nodal Plots pops up. In the Select Node List field, fill in 709, Check Von Mises
and click OK.
9. Switch back to Plotting mode in the Adams PostProcessor, Set the Source to be Result Sets; select
gel_lower_control_arm_flex_Stress and component to be node_709_Von_Mises. Your plot should
look something like shown below.
Tutorials and Examples 377
Adams Car Dynamic Suspension Analysis
Remarks
The above example, demonstrates a simple use of applying a non standard excitation to a suspension
assembly. You could use an RPCIII file from test data to actuate your suspension or use other
Adams View functions. An example RPCIII file (roadprofile_lr_channels.drv) has been provided in
the shared car database with your Adams installation
(install_dir\acar\shared_car_database.cdb\loadcases.tbl).
While animating or during plotting of the hot spots/stresses for the first time, you may see a progress
bar. This is showing the caching of the Flex Cache Files for improving performance for future
animation and post processing.
378 Adams Car
Adding the vertical setup mode of Adams Car Suspension Testrig
Model Description
6. Click "Front" toggle button under "Toe" which will activate adjustable force
".frontsusp_acforce.TR_Front_Suspension_torsional.afl_toe_adjustment".
380 Adams Car
Adding the vertical setup mode of Adams Car Suspension Testrig
Now you can see the desired value (-0.5). This value means that the toe angle is adjusted to -0.5 at
setup phase.
Click OK.
7. Set up the analysis as follows. In this case, the vertical travel of the wheel is controlled to keep 0mm
in setup phase.
8. Select OK.
9. Go to Simulate - Suspension Analysis - Parallel Wheel Travel… again
Tutorials and Examples 381
Adding the vertical setup mode of Adams Car Suspension Testrig
10. Set up the analysis as follows for the second analysis. In this case, the vertical travel of the contact
patch is controlled to keep 0mm in setup phase.
Note: "Absolute" at "Control Mode" means that the vertical displacement is controlled the
displacement with absolute value. "Relative" means that the displacement is relative to the
position at the setup phase.
7. Locate the testrig.toe_angle REQUEST under user-defined REQUESTs. And select left in
component list.
8. Select Add curve. You can see the plot of wheel_travel vs toe_angle.
The toe angle in Red line(case1...) should be -0.5 by adjustable force when wheel_travel is 0.
Remarks
"VERTICAL_SETUP_MODE" is available with all quasi-static suspension analysis. When you
create the loadcase file, the setup mode is described as follows in loadcase file.
[MODE]
STEERING_MODE = 'angle'
$ wheel_center_height/ contact_patch_height
VERTICAL_MODE_FOR_SETUP = 'contact_patch_height'
VERTICAL_MODE = 'wheel_center_height'
VERTICAL_TYPE = 'absolute'
COORDINATE_SYSTEM = 'vehicle'
Model Description
7. Select OK.
8. Go to Simulate - Suspension Analysis - Roll & Vertical Force… again
9. Set up the analysis as follows. In this case, the vertical mode is controlled with Length mode during
the simulation.
9. Select Add curve. The sum of two curves is constant. This means that the center of the table is
constant during simulation.
Remarks
When you create the loadcase file for roll analysis, the vertical setup mode is described as follows in
loadcase file.
[MODE]
STEERING_MODE = 'angle'
VERTICAL_MODE_FOR_SETUP = 'wheel_center_height'
$ roll_angle / roll_angle_disp
VERTICAL_MODE = 'roll_angle_disp'
COORDINATE_SYSTEM = 'iso'
Create Pinion
1. Select Build → AMachinery Gear → Cylindrical Gear → Cylindrical Gear Element → New.
The Create Cylindrical Gear Element dialog box appears.
2. Enter the values as listed below in the dialog box.
Tutorials and Examples 389
Modelling Rack Pinion Steering in ACar using AMachinery Gear
Create Rack
Assumption:
1. Total rack gain:
Approximately 3 revolutions of pinion (or steering wheel) = 120 mm
2. Transverse Pinion Pitch = Normal Pinion Pitch / cos(helix angle)
= 4.87/cos(20) = 5.18mm
3. Total number of teeth on rack = 120/5.18 = 23
4. Refer to 'rps_rack.gea' in 'machinery_examples.cdb/gear_elements.tbl'
5. Select 'cfs_prs_rack_ref' as construction frame created in step 3.
6. Choose connection as fixed with 'ges_rack'
Tutorials and Examples 393
Modelling Rack Pinion Steering in ACar using AMachinery Gear
7. Select OK.
The completed rack model will be displayed as below:
394 Adams Car
Modelling Rack Pinion Steering in ACar using AMachinery Gear
5. Click OK.
Alternatively you can select '3D gear force', if required formulation is '3D'.
Tutorials and Examples 395
Modelling Rack Pinion Steering in ACar using AMachinery Gear
1. Save Template
Note: Visually inspect the rack and pinion for correct mesh. It will not mesh correctly.
396 Adams Car
Modelling Rack Pinion Steering in ACar using AMachinery Gear
The rack and pinion are not meshing correctly in MDI_FRONT_STEERING as the construction frame of
pinion (cfs_pinion_pivot) is changed as mentioned below:
Tutorials and Examples 397
Modelling Rack Pinion Steering in ACar using AMachinery Gear
Note the difference of angle between MDI and TR steering subsystems for cfs_pinion_pivot:
1. 45(TR) - 35.4082704862 (MDI)= 9.5917295138
2. Adjust the helix angle of rack by opening the rack gear element in subsystem mode
3. Reduce the helix angle of rack by '9.5917295138 deg'
4. (20-9.5917295138= 10.408deg)
5. Click OK.
The completed model will be displayed as below:
Tutorials and Examples 399
Modelling Rack Pinion Steering in ACar using AMachinery Gear
6. Save MDI_Steering Subsystem and check the helix angle (BETA) is modified correctly in subsystem
file (in respective MACHINERY_GEAR block)
1. Run Analysis
1. Open mdi_front_vehicle.asy using newly created _rack_pinion_steering and (or select
mdi_front_vehicle_simpli.asy from 'machinery_example.cdb' )
2. Run 'steering' analysis for one complete revolution of steering wheel (3600)
3. Open mdi_front_vehicle.asy using standard assembly file in acar_shared_database and run 'steering'
analysis for one complete revolution of steering wheel (3600)
4. Compare results for 'rack displacement'.
400 Adams Car
Modelling Rack Pinion Steering in ACar using AMachinery Gear
5. Rack Displacement
Machinery Gear = 36.2733mm for one revolution of steering wheel
acar_shared_database = 36.004mm for one revolution of steering wheel
Tutorials and Examples 401
General Actuation Analysis feature examples
3. Enter the required parameters in the dialog. Note that the input parameters can be categorized into
3 classes (output control, simulation, actuator setup) as shown in the figure above.
Output control parameters: To define the output files generated as part of the analysis.
Simulation parameters: To define the simulation length, mode etc.
Actuator setup: To setup the actuator parameters.
Note that the actuator setup is done through the 'RPC request map file' and the 'Actuation input
file'. Sample files have been provided with the installation and may be used as an example.
4. Hit the OK or Apply button of the dialog, when all parameters have been input. Note that the
environment variable MSC_FLATTEN_ADM should not be set.
5. The simulation progress will be indicated by verbose messages displayed in the message window.
6. The end of the simulation will be indicated as shown in the snapshot below,
Tutorials and Examples 403
General Actuation Analysis feature examples
7. Once the analysis is finished, open the post processor (F8) and import the RPC file (extension .rsp)
generated as part of the simulation output. The RPC would be located in the current working
directory of the session. Plot the results. An example plot is shown in the figure below,
404 Adams Car
General Actuation Analysis feature examples
The desired assembly can be selected from the drop down list of valid assemblies open in the session. Upon
selection, all actuators in that assembly are populated in the Actuator drop down.
The desired actuator can be selected either through the drop down or using the up-down arrow buttons.
Parameter data related to the selected actuator is displayed in the dialog below and can be set by the user. The
settings are saved to the assembly, using the OK/button. Facility is provided to switch to the "table view"
from the wizard.
The "table view" for setting actuator parameters is shown below,
406 Adams Car
General Actuation Analysis feature examples
The table like interface provides the user with an easy way of looking at a list of actuators at once and
activating/deactivating an entire selection. As shown in the figure the desired set of actuators is selected first.
Using the 'Activate Selection' and 'De-activate Selection' buttons, the selected set can be activated and de-
activated at once.
Besides this, the user can choose to edit the list of selected actuators in the wizard view, using the 'Edit
Selection in Wizard' button.
The actuator settings can be saved to a file using the Request map editor functionality, described later.
In order to edit the request data in the table, the user needs to explicitly switch to the edit mode, using the
corresponding check button provided.
The request data is displayed to the user in the tabular form and can be sorted, which makes it easier to locate
and edit the desired request(s). The user may choose to apply the changes to the model directly, or
alternatively, save the data to a request map file. Request maps saved in a template will automatically be used
when a subsystem referencing that template is opened in an assembly. Any request maps that have the same
name will be merged at the assembly level.
It's not necessary to have any valid active assemblies open in a session, in order to view an existing actuation
input file. Select the desired file and click on the button with a magnifying glass, in order to open the file.
Note that the file gets opened in the user set editor as defined by the optional environment variable
MDI_ACAR_USE_EDITOR. If the variable is not defined, then the file is opened in the message window.
If a valid assembly is open in the session, then the verify functionality is available, by which the user can
compare the actuator data in an assembly, with that in the file. The comparison reports actuators present in
the file that are absent in the assembly as well as incorrect roles set for the actuator, if any. A sample
comparison message is shown below,
Alternatively, a valid assembly can be opened and the actuator settings can be changed manually for each
desired actuator. Using these settings, an actuation input map file can be generated as follows,
Tutorials and Examples 409
Path optimization feature example
A facility to export the settings of actuators that belong to the specific type is provided. By default data
belonging to all actuators within an assembly is exported. Specify the file name and the database location to
save the file and hit the OK/Apply button to create the file.
The input road file can be visualized when the "Show" button is pressed. The mandatory fields on this dialog
are the "Input Road Data File" and the "Output Path File Name". The road specified by input file can be
optimized by providing values for mandatory fields and hitting the OK/Apply button. The output file
generated contains the optimized road.
After the optimized road file is generated, the centerline for the optimized path is shown overlaid with the
input road. The figure below shows input road file overlaid with the red line, which is the centre line for the
optimized path.
Tutorials and Examples 411
Path optimization feature example
In AChassis, use Utilities->Path Optimization command to launch the tool. The dialog for path optimization
in AChassis looks like the one as below
412 Adams Car
Importing CAD geometry at the subsystem level
6. Save the subsystem as "my_chassis", and define a new variant named "subcompact":
7. Look in the new subsystem file for the "subcompact" variant of the ges_chassis part:
[PART_ASSEMBLY]
USAGE = 'chassis'
SYMMETRY = 'single'
Tutorials and Examples 415
Importing CAD geometry at the subsystem level
MODE = 'rigid'
$ Rigid body data:
MASS = 995.0
SPRUNG_PERCENTAGE = 100.0
PART_LOC_X = 0.0
PART_LOC_Y = 0.0
PART_LOC_Z = 0.0
PART_ORI_ZP1 = 0.0
PART_ORI_ZP2 = 0.0
PART_ORI_ZP3 = 1.0
PART_ORI_XP1 = 1.0
PART_ORI_XP2 = 0.0
PART_ORI_XP3 = 0.0
CM_LOCATION_FROM_PART_X = 1500.0
CM_LOCATION_FROM_PART_Y = 0.0
CM_LOCATION_FROM_PART_Z = 450.0
IXX = 2.00E+08
IYY = 5.00E+08
IZZ = 6.00E+08
IXY = 0.0
IZX = 0.0
IYZ = 0.0
(VARIANTS)
{subcompact}
EXTERNAL_GEOMETRY_FILE =
'mdids://acar_concept/shell_graphics.tbl/subcompact.xmt_txt'
EXTERNAL_GEOMETRY_TRANSPARENCY = 60
(COMMENTS)
{comment_line}
'Chassis Structure'
8. Switch back to the default variant, and the original geometry will be restored.
9. Set pvs_graphics_choice to 2 to turn off the Testarossa geometry again.
10. Set hps_chassis_graphics location to 0,0,0
11. Import shell graphics to define a sports car body:
416 Adams Car
Importing CAD geometry at the subsystem level
13. Save the subsystem again, this time as a new variant named "sports". Check the subsystem file
contents again:
(VARIANTS)
{subcompact}
EXTERNAL_GEOMETRY_FILE =
'mdids://acar_concept/shell_graphics.tbl/subcompact.xmt_txt'
EXTERNAL_GEOMETRY_TRANSPARENCY = 60
{sports}
EXTERNAL_GEOMETRY_FILE =
'mdids://acar_shared/shell_graphics.tbl/body.shl'
GEOMETRY_REF_MARKER = 'mas_chassis_graphics_ref'
EXTERNAL_GEOMETRY_COLOR = '.colors.SILVER'
EXTERNAL_GEOMETRY_FILE =
'mdids://acar_shared/shell_graphics.tbl/glass.shl'
GEOMETRY_REF_MARKER = 'mas_chassis_graphics_ref'
EXTERNAL_GEOMETRY_COLOR = '.colors.SKYBLUE'
EXTERNAL_GEOMETRY_TRANSPARENCY = 80
2. In the Model Browser, select the Groups tab. Right-click on the chassis_outline group and hit
Modify. The group is defined as shown below:
This group contains one of the geometry children of the chassis part. Its activity (and therefore its
visibility) is controlled by a parameter variable named "pvs_graphics_choice". The activity
expressions says, if this variable is 0, the outline will be active.
3. In the Model Browser, right-click on the chassis_graphics_1 group and hit Modify. The group is
defined as shown below:
This group contains most of the other geometry children of the chassis part. Its activity expression
says if the pvs_graphics_choice is 1, these geometries will be active.
4. Close the template and switch to the Standard Interface,
5. Open the subsystem mdids://acar_shared/subsystems.tbl/TR_Body.sub
6. Modify the Parameter Variable pvs_graphics_choice. Set its value to 0 and hit Apply. The CAD
geometry is hidden and the outline geometry is displayed.
Tutorials and Examples 419
Controlling Geometry Visibility
7. Right-click on the part ges_chassis and select Hide. Note that the outline and the ellipsoid are now
invisible, but the inertia_frame marker is still visible. If you were to save the subsystem at this point,
you'd see the following lines in the .sub file:
[PART_ASSEMBLY]
USAGE = 'chassis'
SYMMETRY = 'single'
MODE = 'rigid'
DISPLAY_GRAPHICS = 'no'
…
[PARAMETER]
{parameter_name symmetry type value}
'graphics_choice ' 'single ' 'integer' 0
420 Adams Car
Controlling Geometry Visibility
874 Adams Car
Full-Vehicle Analysis: Dynamic Loadcase
Output Prefix Enter a string that specifies the Analysis Output Name. The string can contain only
alphanumeric characters and underscores (_). Adams Car appends the suffix
_dyf to form the complete analysis name. For example, if you enter test_45 as
the output prefix, the analysis name becomes test_45_dyf.
Solver Settings File Select one or more files (extension .ssf ) defining the solver settings to be
temporarily applied for this simulation (optional).
Note: Solver settings files are applied in the order specified, so if multiple
.ssf files contain the same solver settings, the last file in the list
determines those settings.
Opens the Solver Settings File (extension .ssf ) editor dialog box.
End Time Specify the amount of time over which you want the simulation to run.
Number of Steps / Step Select either of the following:
Size / Step Frequency
Number of Steps: Specify the number of Output Steps.
Step Size : Specify the size of the Output Steps.
Step Frequency : Specify the number for the output frequency.
Analysis Mode Select interactive, graphical, background, files, or event only.
Vertical Input If Toggle button not selected then enter the runtime function expression that
will define the left/right vertical jack actuator motion or force.
If Toggle button selected then select channel number that maps the RPC3 file
channels to the desired input quantity.
Zero Offset Select to offset the RPC3 data by subtracting the channels first date value from
the array.
Cornering Force If Toggle button not selected then enter a runtime function for the left and the
right cornering force, applied at the wheel center.
If Toggle button selected then select channel number that maps the RPC3 file
channels to the desired input quantity.
Braking Force If Toggle button not selected then enter a runtime function for the braking
force, applied at the wheel center.
If Toggle button selected then select channel number that maps the RPC3 file
channels to the desired input quantity.
Aligning Torque If Toggle button not selected then enter a runtime function for the left and the
right aligning torques, applied at the wheel center.
If Toggle button selected then select channel number that maps the RPC3 file
channels to the desired input quantity.
Overturning Torque If Toggle button not selected then enter a runtime function for the overturning
torque.
If Toggle button selected then select channel number that maps the RPC3 file
channels to the desired input quantity.
Rolling Res. Torque If Toggle button not selected then enter a runtime function for the rolling
resistance torque.
If Toggle button selected then select channel number that maps the RPC3 file
channels to the desired input quantity.
876 Adams Car
Full-Vehicle Analysis: Dynamic Loadcase
If Toggle button selected then user need to enter inputs such as stiffness,
damping, feedback force which are used as inputs to the feed-forward
controller system.
Stiffness Enter stiffness value
Damping Enter damping value
Feedback Motion If Toggle button not selected then enter a runtime function for the feedback
motion (displacement input).
If Toggle button selected then select channel number that maps the RPC3 file
channels to the desired input quantity.
WFT Parameters File Enter WFT Parameters file which contain WFT mass, Offset, Static Load,
scaling factors and so on.
Steering Excitation Mode Select displacement, velocity or acceleration.
Steering RPC3 File Enter RPC3 file for Steering input.
Steering Input If Toggle button not selected then enter the runtime function expression that
will define the steering motion.
If Toggle button selected then enter an integer value that maps the RPC3 file
channels to the desired input quantity.
Select to use the Function Builder to define the runtime function expression
for the steering input. See Function Builder for more information.
Create Analysis Log File Select if you want Adams Car to write information about the assembled model
and analysis to an Analysis Log File.
Compute Characteristic Activates requests computing suspension and steering characteristics during
Values the full vehicle event.
The additional requests are equivalent to those previously already available for
suspension analysis.
See Output of Suspension Analyses in Adams Car - Running Analysis for more
details.
Select to display Request Selection dialog box where you can set request activity
by selecting different options.
Note: Feedback force is calculated using controller gains stiffness, damping and feedback
motion (Displacement input)
Feedback force = static load from wft parameter file + controller gain stiffness *
(relative spindle displacement) + controller gain damping * (relative spindle
displacement)
Adjuster
The adjuster allow you to activate or deactivate all adjustable forces like camber adjuster, toe adjuster in the
model.
The parameter variable pvs_adjuster is used to control activity of adjustable forces. Where, '0', '1' are mapped
to Inactive and Active respectively. It is used to activate appropriate groups created for the adjuster.
Friction
Rack housing midmount
Upper/Lower Isolator
Dash seal compliance
U-Joint phasing
The steering column compliance can be of type Linear or Nonlinear. This can be toggled by using parameter
variable 'pvs_steering_column_compliance'. Where, '0', '1' and '2' are mapped to None, Linear and
Nonlinear respectively.
The point torque 'pts_steering_column_compliance' actuator introduce required torque depending upon the
selection of the steering column compliance.
The parameters required for the compliance are torsional stiffness (gps_steering_column_comp_kt),
torsional damping (gps_steering_column_comp_ct) and nonlinear spline
(gss_steering_column_compliance). These are read from "steer_compliance.ste" file stored in
steering_assist.tbl of the acar_concept database.
Column compliance
The column compliance is induced in between intermediate shaft lower and intermediate shaft lower
dummy. This can be toggled by using parameter variable 'pvs_column_compliance'. Where, '0', '1' and '2'
are mapped to None, Linear and Nonlinear respectively.
The point torque 'pts_column_compliance' actuator introduces required torque depending upon the
selection of the choices of the column compliance.
The parameters required for the compliance are:
1034 Adams Car
Advanced Steering Design Options
Friction
The modelling fidelity can be improved to accurately model on center handling, steering performance, and
drift by turning on the friction. The friction between lower, upper u-joint and steering wheel can be activated
by using parameter variable 'pvs_lower_ujoint_friction_active' for lower u-joint,
'pvs_upper_ujoint_friction_active' for upper u-joint and 'pvs_steering_wheel_friction_active' for steering
wheel.
For Relay and Pitman Advanced Steering System and Relay and Pitman Simple Steering System additional friction forces
related to steering gear are modeled. The friction between steering shaft, piston, sector shaft and idler arm
can be activated by using parameter variable 'pvs_gear_input_friction' for housing to input shaft joint,
'pvs_piston_friction' for piston to gear housing joint, 'pvs_sector_shaft_friction' for sector to gear housing
joint and 'pvs_idler_arm_friction' for idler to body joint. Idler arm friction can be used only if the pitman
type gear configuration is selected.
You can modify the parameters of the friction 'frs_lower_ujoint', 'frs_upper_ujoint', 'frs_steering_wheel',
'frs_gear_input_friction', 'frs_piston_friction', 'frs_sector_shaft_friction' and 'frs_idler_arm_friction'
selectively.
Upper/Lower Isolator
In the Rack and Pinion Tilt 3 Universal Joint Steering System the isolators are provided for upper and lower
intermediate shaft. The upper and lower isolator can be individually activated using parameter variable
'pvs_upper_isolator' and 'pvs_lower_isolator' respectively. When the upper isolator is active the fixed joint
between "upper_isolator_dummy" and "upper_ishaft_compliance" parts is replaced with the bushing.
Similarly, lower isolator bushing is attached between "lower_isolator_dummy" and
"intermediate_shaft_lower" parts.
U-Joint phasing
To simulate the installation of steering column universal joints, your template based product offers the user
optional specification of U-Joint phase angles. The user can specify 2 phase angles for Rack and Pinion Advanced
Steering System and 3 phase angles for Rack and Pinion Tilt 3 Universal Joint Steering System.
For 2 U-joint phasing system the first phase angle applies to the upper u-joint, the second phase angle applies
to the lower u-joint. Similarly, for 3 U-joint phasing system the first phase angle applies to the upper u-joint,
the second phase angle applies to the middle u-joint and the third phase angle applies to lower u-joint.
The orientation is such that a positive angle indicates clockwise rotation of the u-joint looking down the
steering column. The second phase angle is defined as being relative to the first phase angle (Figure 3) and the
third phase angle is defined as being relative to second phase angle.
1036 Adams Car
Advanced Steering Design Options
The U-joint phasing can be activated by using parameter variable 'pvs_ujoint_phase'. The angles can be
specified using parameter variables 'pvs_u_joint_phase_angle_1', 'pvs_u_joint_phase_angle_2',
'pvs_u_joint_phase_angle_3' respectively.
Torsion Bar
The torsion bar can be used to specify different torsion bar modeling options like linear, linear with stop
angle, geometric, geometric with stop angle and nonlinear spline options for providing compliance between
steering shaft and pinion shaft.
Steering Assist
The force or torque actuator provides the steering assist force to the rack or torque to the motor. The below
figure shows the flow chart of steering assist implementation. The steering assist has different options like
None, Hydraulic, EPAS Column, EPAS Rack Simple, EPAS Rack Complex, EPAS Pinion and EPAS Second
Pinion.
Appendix 1037
Advanced Steering Design Options
When "None" is selected, it deactivates steering assist force. When "Hydraulic" is selected, it activates steering
assist force at the rack. When different EPAS options are selected, it activates respective steering assist torque
at the motor.
The Figure 5 shows the flow chart of hydraulic assist Implementation. It directly apply steering assist force to
the rack.
1038 Adams Car
Advanced Steering Design Options
The Figure 6 shows the flow chart of EPAS Column Assist Implementation. It apply steering assist torque to
the motor.
Note: For EPAS column assist, the part "Input steering shaft" is fixed to part "Pinion". The revolute
joint between "Input steering shaft" and "Rack Housing" is removed.
The Figure 7 shows the flow chart of EPAS Rack Simple Assist Implementation. It apply steering assist torque
to the rack motor. See EPAS Boost Options (Rotational Sforce) Implementation.
1040 Adams Car
Advanced Steering Design Options
The Figure 8 shows the flow chart of EPAS Rack Complex Assist Implementation. It apply steering assist
torque to the rack motor. See EPAS Boost Options (Rotational Sforce) Implementation.
Appendix 1041
Advanced Steering Design Options
The Figure 9 shows the flow chart of EPAS Pinion Assist Implementation. It apply steering assist torque to the
pinion motor. See EPAS Boost Options (Rotational Sforce) Implementation.
1042 Adams Car
Advanced Steering Design Options
The Figure 10 shows the flow chart of EPAS Second Pinion Assist Implementation. It apply steering assist
torque to the pinion motor.
Appendix 1043
Advanced Steering Design Options
Lower / Upper u-joint and Inactive 0 Deactivate the friction of the joints
Steering wheel friction
Upper/Lower Isolator
Active 1 Activate the upper/lower isolator
pvs_u_joint_phase_an
Active 1 Used user entered phasing angle to orient
gle_3
the universal joints
U Joint Phase Angle 1 User- Specify phasing angle for upper universal
entered joint
real
number
U Joint Phase Angle 2 User- Specify phasing angle for lower (middle)
entered universal joint
real
number
U Joint Phase Angle 3 User- Specify phasing angle for lower universal
entered joint
real
number
Appendix 1047
Advanced Steering Design Options
Design Option
Name Choices Values Dependent Variable Dependent Variable Description
None 0 Deactivate subframe part, bushings
and joint
Number of
Reboundstops One 1 One reboundstop is active
Design Option
Name Choices Values Dependent Variable Dependent Variable Description
None 0 No bumpstop is active
Number of Bumpstops
One 1 One bumpstop is active
Upper Control Arm Single Ball Joint 1 Activate single ball joint
Configuration configuration
Adjuster
Active 1 Activate adjuster to align toe and
camber
Appendix 1051
Advanced Suspension Design Options
Design Option
Name Choices Values Dependent Variable Dependent Variable Description
Inactive 0 Deactivate driveline
Drivelines
Active 1 Activate driveline
Aero Drag
The aero drag allow you apply aerodynamic forces on vehicle body.
The parameter variable pvs_aero_drag is used to activate or deactivate aerodynamic forces on the body.
Where, '0', '1' are mapped to Inactive and Active respectively. It is used to activate appropriate groups created
for the aero drag. Inactive represents aerodynamic forces are not applied on the body and Active represents
aero dynamic forces applied on the body.
When aero drag is Active, dependent variables pvs_aero_frontal_area, pvs_air_density, pvs_drag_coefficient
are used for aero drag force calculation in the older aero force implementation.
An aerodynamics implementation (Adams 2019 onwards), doesn't need parameter variables such as
pvs_aero_frontal_area, pvs_air_density and pvs_drag_coefficient. The output communicators of type
variables automatically get created that refers to the value from the property file and communicates it to the
MDI_SDI_TESTRIG.
Note: SVC Event creates all the necessary dataset statements needed for your model, no additional
statements are needed. The following description is provided for informational purposes only.
Modeling
The following conventions must be employed when building a vehicle or half suspension model. Orient the
vehicle with the global Z axis upward, the global X axis rearward, and the global Y axis pointing out the right
side of the vehicle. The vehicle may be positioned at any X or Z position, but the user must select the Y
position in such a way that the XZ plane falls somewhere inside the vehicle track (between the left and right
wheels).
Model Type
A full vehicle model should be supported only by tire forces applied to the spindles or wheels. There must be
no other constraints or attachments to ground. If only the front or rear suspension is to be analyzed, the user
must fix the body rigidly to ground. In this case, tire forces are optional. If it is desired not to model the tire
forces, the suspension must be kept at the desired position during static equilibrium, by adjusting spring free
lengths or by applying a constant vertical force to the spindles, for instance.
Steering Systems
A few of the SVCs rely on the pitman arm or the steering rack to transmit steering motion. For these to be
computed properly, the pitman arm or rack must have some compliance relative to the body. If the pitman
arm or rack is locked to the body (by a MOTION, for instance) there will be no compliance. This will make
it impossible to compute the steer ratio and steering compliance. In addition, the reported Ackerman error
will be incorrect. See the descriptions of these quantities for more details. SVC will issue a warning if this
situation occurs. In a ball-nut steering system, a torsional spring between the pitman arm and the body is the
simplest way of providing this compliance. In a rack and pinion steering system, compliance between the
pinion and body will suffice.
If there is a desire to control the steering for a transient simulation, a steering wheel can be connected to the
pitman arm or pinion by a torsional spring. The user may then rotate the steering wheel with a MOTION
to control the vehicle, while leaving some compliance in the actual arm. This spring should be very stiff, since
compliance at the pitman arm leads to compliance at the spindle. If the pitman arm were completely free to
turn, for instance, the fore-aft compliance at the spindles would be very large.
The following ARRAY statements contain data for computing a vehicle mass properties. These statements
are only required for the full-vehicle analysis, since the half-vehicle analysis option does not compute overall
vehicle mass properties.
Creating the SVC Dataset 1055
All About SVC (Static Vehicle Characteristics)
Front_part_id_array:
ARRAY/9901, NUM=id_1, id_2, id_3, ..... id_n
List of fFront suspension part Adams IDs
Front_susp_mass_dist_array:
ARRAY/9902 NUM=ps_1, ps_2,ps_3, .....ps_n
% sprung (0-100) for each part above
Rear_part_id_array:
ARRAY/9903 rear suspension part IDs
Rear_susp_mass_dist_array:
ARRAY/9904 % sprung for each part in ARRAY/9903
Each part referenced must have non-zero mass and inertia. Further, each part must have a corresponding
percent sprung value between 0 and 100. Any part not listed as part of the "front" or "rear"suspension is
assumed to be 100% sprung.
Front_tire_ids:
ARRAY/9905, NUM=id_1, id_2
List of front tire force Adams IDs (only used in Adams Car)
Rear_tire_ids:
ARRAY/9906, NUM=id_1, id_2... id_n
List of rear tire force Adams IDs (only used in Adams Car)
ARRAY statement 9907 identifies MARKER statements that describe the front suspension geometry.
ARRAY/9907 is not required for a rear suspension half-vehicle analysis.
ARRAY/9907, NUM= idwcfl, idwcfr, idksil, idksir, id-flspsu, id-flspby
, idfrspsu, id-frspby, id-flsksu, id-flskby, id-frsksu, id-frskby,
idsfbl, idsfel,
, idsfbr, idsfer, id-str, faxlr, sratio
where:
idwcfl identifier of a MARKER statement located at the left front wheel center on the spindle part. The Y
axis of the MARKER must lie along the spindle axis and point toward the passenger (right) side of the vehicle.
Further, if the front suspension is supported by tires, the tire forces for the left front wheel must be applied
to this MARKER.
idwcfr identifier of a MARKER statement located at the right front wheel center on the spindle part. The Y
axis of the MARKER must lie along the spindle axis and point toward the passenger (right) side of the vehicle.
Further, if the front suspension is supported by tires, the tire forces for the right front wheel must be applied
to this MARKER.
idksil identifier of a MARKER statement located at the left front kingpin-spindle intersection on the steering
knuckle. The Z axis of the MARKER must directed upward along the kingpin axis. If the kingpin axis and
spindle axis do not intersect, the MARKER can be located any place along the kingpin axis.
idksir identifier of a MARKER statement located at the right front kingpin-spindle intersection on the
steering knuckle. The Z axis of the MARKER must directed upward along the kingpin axis. If the kingpin
axis and spindle axis do not intersect, the MARKER can be located any place along the kingpin axis.
1056 Adams Car
All About SVC (Static Vehicle Characteristics)
Note: If above marker is not present (leafspring), then create output communicator
'col_spring_marker_lower' of type marker on axle part.
id-flspby identifier of a MARKER statement located at the front left spring seat on the body. This MARKER
is used to compute the front left wheel spring ratio.
Note: If above marker is not present (leafspring), then create output communicator
'col_spring_marker_upper' of type marker on body.
id-frspsu identifier of a MARKER statement located at the front right spring seat on the axle. This MARKER
is used to compute the front right wheel spring ratio.
Note: If above marker is not present (leafspring), then create output communicator
'col_spring_marker_lower' of type marker on axle part.
id-frspby identifier of a MARKER statement located at the front right spring seat on the body. This
MARKER is used to compute the front right wheel spring ratio.
Note: If above marker is not present (leafspring), then create output communicator
'cor_spring_marker_upper' of type marker on body.
Creating the SVC Dataset 1057
All About SVC (Static Vehicle Characteristics)
idwcrr identifier of a MARKER statement located at the right rear rbr identifier of a MARKER statement
located at the rear right stabilizer-bar attachment point on the stabilizer-bar. This MARKER is used to
compute the rear right wheel stabilizer-bar ratio.
Id-rlssu, id-rlsby, id-rrssu, id-rrsby spring MARKER identifiers in the rear suspension
Id-rlsksu, id-rlskby, id-rrsksu, id-rrskby damper MARKER identifiers in the rear suspension
Idsrbl, idsrel, idsrbr, idsrer identifier of a MARKER statements located at the right end of the rear stabilizer-
bar. This MARKER is used to compute the rear right wheel stabilizer-bar ratio. (Not used)
raxlr rear axle final drive ratio (0.0 for front-wheel drive).
idraxcm identifier of a MARKER statement located at the C.G of the rear axle. This MARKER is used to
compute the wheel hop and tramp natural frequencies for a solid axle suspension.
ARRAY/9909 contains information on the overall vehicle. It is not required for a half-vehicle analysis.
ARRAY/9909, NUM = idbcm, idbwfl, idbwfr, idbwrl, idbwrr, fdrat
, fbrat, idhpt
where:
idbcm identifier of a MARKER statement located at the body center of mass.
idbwfl identifier of a MARKER statement on the body part located at the design position of the front left
wheel center. This MARKER statement is used to calculate the wheel center rise.
idbwfr identifier of a MARKER statement on the body part located at the design position of the front right
wheel center.
idbwrl identifier of a MARKER statement on the body part located at the design position of the rear left
wheel center.
idbwrr identifier of a MARKER statement on the body part located at the design position of the rear right
wheel center.
fdrat front drive torque ratio. The portion of drive torque sent to the front wheels (e.g. 1.0 for front-wheel
drive, 0.0 for rear-wheel drive, 0.5 (for instance) for four-wheel drive).
fbrat front braking ratio. The fraction of vehicle braking done by front brakes (should be between 0 and 1).
idhpt H-point marker of driver's hip.
ARRAY/9910 contains information about the ground plane. It is required for all analysis options.
ARRAY/9910, NUM = gblm, ght
where:
gblm identifier of a MARKER statement on ground giving the global reference frame. If tire forces are used
to support a vehicle, this MARKER must also be the J marker for the vertical tire forces.
ght The height of the ground plane above the location of the gblm.
Creating the SVC Dataset 1059
All About SVC (Static Vehicle Characteristics)
SVC uses the ground marker in several ways. It should be parallel to the global axes, because it is the reference
frame used to compute many characteristics. It should also be the J marker on the vertical tire SFORCEs,
otherwise the INFO calls to retrieve ground reaction forces will fail. The ground height defines the point on
the marker Z axis that corresponds to ground level. This is used to compute various heights above ground.
Notes: To run SVC Event on the user customized full-vehicle testrig in Adams Car and Adams
Driveline, user need to add following input communicators:
ci[lr]_front_suspension_mount
ci[lr]_rear_suspension_mount
ci[lr]_tire_force_front
ci[lr]_tire_force_rear
cis_diff_ratio (optional)
cis_drive_torque_bias_front (optional)
If optional communicators or variables are not defined then the default values are considered.
Executing SVC
The SVC Event issues a CONTROL command in the .acf file to perform the SVC calculations. The
CONTROL command in turn invokes a CONSUB subroutine that drives the SVC calculations.
The form of the CONTROL statement is:
CONTROL/FUNCTION=USER( aopt, jpr_ary, cflag, tflag, vflag, ctime )
where:
1062 Adams Car
All About SVC (Static Vehicle Characteristics)
Parameter Description
aopt Analysis Option -- The type of model to be analyzed
(Adams Car)
svc_str Id of the array containing the necessary id's of Adams_string for report annotation.
(Adams Car)
CONTROL/ FUNCTION=USER(1002,555,0,1)
This CONTROL statement above invokes the SVC calculations for a half vehicle front suspension analysis
(aopt = 1002). The front suspension is not supported by tire forces (tflag = 0). The output is converted from
the data-set units according to the factors supplied in ARRAY/9912 (cflag = 1). Finally, no verbose message
( vflag defaults to zero) and simulation time defaults to zero (0.0). Note, if the user employs an optional
parameter, all the preceding parameters must be supplied. For instance, if a full-vehicle, verbose- output run
is desired, include cflag and tflag, even though tflag will be ignored:
CONTROL/FUNCTION=USER(1001,555,0,0,1)
SVC Output
SVC produces a text output file which contains an annotated table of all the SVCs. The output file has the
root name chosen by the user for other Adams output files, with the extension .svc. The format of the
annotated .svc file is self explanatory. In a full vehicle analysis, all the values are computed and output. In a
half-vehicle analysis, the characteristics that are not computed are reported as zero. The last page of output
gives the sign convention for the SVCs. Included below is an examples of .svc file generated from running the
SVC event.
GENERAL CHARACTERISTICS
_________________________________________________________________________
S V C SIGN CONVENTION
Subroutine SVCRMV constrains a degree of freedom to zero, in effect fixing it to ground. This is necessary
to restrain the vehicle body in a full vehicle model, for instance. The suspension characteristics are a function
of spindle compliance relative to the body. But the body is free to move, so the reported vertical compliance
at the spindle, for example, reflects the fact that the body will rise along with the suspension when the spindle
is lifted. Fixing the kth degree of freedom changes the compliances because a restraining force is applied at k.
The new compliance matrix, [Cm], is computed term by term:
cmij = cij + cikFk
Fk = -ckj/ckk, where Fk is the restraining force at k due to a force at j.
The kth column and row of [Cm] are, by definition, zeros and can be removed from the matrix, reducing its
order by one, and leaving a new matrix reflecting the behavior of the modified system.
SUBROUTINE SVCRMV(K, C, TEMP, NDIM, N)
INTEGER K - input, the DOF to be removed. K must be greater than zero and less than or equal to N.
DOUBLE PRECISION C(NDIM,N) - input and output, compliance matrix. On input, C is the original order
N compliance matrix. On output, C is the modified order (N-1) matrix. You must dimension C with exactly
NDIM rows and at least N columns.
DOUBLE PRECISION TEMP(N) - output, temporary workspace for SVCRMV
INTEGER NDIM - input, dimensioned number of rows in C
INTEGER N - initial order of C
Subroutine SVCRMK removes the effects of unwanted stiffness. To continue the example above, even after
removing the vehicle body degrees of freedom from a suspension compliance matrix, the spring forces from
the tires would still obscure the true vertical suspension rate.
The stiffness matrix for the spindle has two components, one from its connection to the vehicle through the
suspension, and one from its connection to ground via the tires: [K] = [Ks] + [Kt. In order to examine the
spindle compliances with respect to the body alone, the effects of [Kt] must be removed:
[I] = [C]([Ks] + [Kt])
[I] = [C][Ks] + [C][Kt]
[I] - [C][Kt] = [C][Ks]
([I] - [C][Kt]) [Ks]-1 = [C]
or ([I] - [C][Kt]) [Cs] = [C], where [Cs] = [Ks]-1
The suspension compliance matrix, [Cs], can be calculated one column at a time:
[A]{csj} = {cj}, where [A] = [I] - [C][Kt]
Subroutine SVCRMK performs this modification given the original compliance matrix and the stiffness
matrix to be removed. Since it was intended to remove tire stiffnesses, it assumes the ground stiffness matrix
is diagonal.
SUBROUTINE SVCRMK( C, KG, NDIM, N )
DOUBLE PRECISION C(NDIM,N) - input and output, compliance matrix. On input, C is the original
compliance matrix. On output, it is the modified matrix.
SVC Output Parameters 1069
All About SVC (Static Vehicle Characteristics)
DOUBLE PRECISION KG(N) - input, stiffnesses of ground attachments. This is the diagonal of matrix [Kt] in
the example above.
INTEGER NDIM - input, dimensioned number of rows in C
INTEGER N - input, order of C
SVC Output Parameters
This section describes each characteristic in detail. Each description contains the characteristic name,
description, the name of the subroutine that computes the characteristic, the input variables, the output
variables, and the method used to compute the value. In order to perform the actual characteristic
calculations, the SVC CONSUB calls about 25 separate subroutines. The descriptions indicate which
subroutine computes each characteristic. The input variables used for the calculations fall into two categories,
those supplied by the user, and those computed internally in SVC. Those that are input by the user are
referred to by the names given previously in SVC Data in the data set.
The compliance matrix is the primary input computed internally (see Definition of the SVC Compliance Matrix).
An 18 by 18 matrix is computed for the front suspension and a 12 by 12 matrix for the rear. The front matrix
is computed for the ntage_Roll > Percentage Roll Steer.
Select a parameter:
Camber Angle, Camber Angle with Respect to Body Rotational Inertias of Vehicle Total Mass
Camber Change Scrub Radius
Caster Angle, Caster Angle with Respect to Body Side View Instant Center
Caster Change Single Bump Wheel Rate
Caster Trail Sprung Mass Bounce and Pitch Frequencies and Node
Locations
Center-of-Gravity Height of Suspension Unsprung Mass Sprung Vehicle Mass
Center-of-Gravity Height of Vehicle Sprung Mass Static Loaded Tire Radius
Front Ground Reactions Steer Angle
Front View Instant Center Tire Rate
Kingpin Angle, Kingpin Angle with Respect to Body Toe Angle
Overall Steer Ratio Toe Change
Percent Anti-lift Under Acceleration Total Vehicle Center-of-Gravity Height
Percent Anti-Dive Under Braking Total Vehicle Weight
Percent Anti-lift Under Braking Track Width
Percent Anti-Squat Under Acceleration Unsprung Mass Wheel Hop and Tramp Natural
Frequencies
Percentage Roll Steer Unsprung Suspension Mass
Rear Ground Reactions Vehicle Speed
Ride Rate Wheel Center Rise
Roll Camber Wheel Rate
Roll Center Height Wheel Shock Ratio
1070 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCGAN (SVCTCM)
Method:
SVC uses the INFO utility subroutine to retrieve the Euler angles of the wheel center marker with respect to
the global marker (the body marker). SVC assumes the y-axis of the wheel center marker is parallel to the
spindle axis, and the z-axis is vertical.
Left camber = (180/p ) arctan( cos (psi) tan(theta) )
Right camber = -(180/p ) arctan( cos (psi) tan(theta) )
Camber Angle
Camber Change
Vertical displacement of the wheel center relative to the sprung mass.
Caster Angle, Caster Angle with Respect to Body 1071
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCRAT
Method:
SVC computes camber change as the ratio of x-axis rotation to z-axis displacement at the wheel center due
to unit vertical forces applied at both wheel centers simultaneously.
Left = (180/p) [C( 4,3 ) + C( 4,9 )] / [C( 3,3 ) + C( 3,9 )]
Right = - (180/p) [C( 10,3 ) + C( 10,9 )] / [C( 9,3 ) + C( 9,9 )]
Camber Change = DØ / DZ
Camber Change
Computed by:
SVCFAN (SVCFAB)
Global origin marker identifier (gblm) (Body frame marker identifier (idbcm))
Method:
SVC uses the INFO utility subroutine to retrieve the Euler angles of the kingpin marker with respect to the
global marker. SVC assumes the z-axis of the kingpin marker points up the kingpin axis.
Caster = (180/p ) arctan( sin (psi) tan(theta) )
Caster Angle
Caster Change
Change in caster angle per unit vertical displacement of the wheel center relative to the sprung mass. SVC
computes caster change only for the front suspension.
Computed by:
SVCFAN
Method:
SVC computes caster change as the ratio of y-axis rotation to z-axis displacement at the wheel center due to
vertical forces applied at both wheel centers simultaneously.
Left = (180/p) [C( 5,3 ) + C( 5,9 )] / [C( 3,3 ) + C( 3,9 )]
Right = (180/p) [C( 11,3 ) + C( 11,9 )] / [C( 9,3 ) + C( 9,9 )]
Caster Change = DØ / DZ
Caster Change
Caster Trail 1073
All About SVC (Static Vehicle Characteristics)
Caster Trail
The distance in side elevation between the point where the steering axis intersects the ground, and the center
of tire contact. The trail (or offset) is considered positive when the intersection point is forward of the tire
contact center and negative when it is rearward.
Computed by:
SVCCTR
Method:
SVC uses the SYSARY utility subroutine to retrieve the positions of the wheel center and kingpin markers
with respect to the ground plane. SVC next computes the intersection point of the kingpin axis and the
ground plane, and the wheel/ground intersection line. The caster trail is the distance along the wheel/ground
intersection line from the kingpin axis/ground intersection point to the tire contact point to the ground. SVC
assumes the z-axis of the kingpin marker points up the kingpin axis and y-axis of the wheel center marker is
parallel to the spindle axis. SVC also assumes the global origin marker lies somewhere inboard of both the
wheel/ground and kingpin-axis/ground intersections.
Caster Trail
1074 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCCGH
Method:
The mass properties and CM marker identifiers of the parts listed in ARRAY statements 9901 and 9903 are
extracted from the data set. The mass properties are multiplied by 100 percent minus the corresponding
percentage sprung values and used with displacements from the INFO utility subroutine to compute the
unsprung center of gravity.
Center-of-Gravity Height of Vehicle Sprung Mass
Center-of-gravity height of the sprung mass of the vehicle.
Computed by:
SVCCGH
The ground height (ght) and the global reference frame marker (gblm) from ARRAY/9910.
Method
SVC extracts from the data set the mass properties and the center-of-mass marker identifiers of all parts listed
in ARRAY statements 9901, 9903, and 9905. SVC multiplies each mass property by the corresponding
percentage sprung value and uses the result with displacements from the INFO utility subroutine to compute
the sprung center of gravity.
Front Ground Reactions
Mass supported by front tires.
Computed by:
SVCGDR
Method:
SVC uses the INFO utility subroutine to retrieve the force applied to the tire force marker by the global origin
marker. SVC divides the global z component of this force by the gravitational acceleration along the global
z-axis to convert it to mass units.
Front Ground Reaction, Left and Right
1076 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCICR
Method:
SVC computes the instant center from the DY, DZ, and DTHETA of the wheel center due to opposite
vertical forces on both sides:
left side right sideDY = C( 2,3 ) - C( 2,9 ) = C( 8,9 ) - C( 8,3 )
DZ = C( 3,3 ) - C( 3,9 ) = C( 9,9 ) - C( 9,3 )
DTHETA = C( 4,3 ) - C( 4,9 ) = C( 10,9 ) - C( 10,3 )
Kingpin Angle, Kingpin Angle with Respect to Body 1077
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCFAN (SVCFAB)
1078 Adams Car
All About SVC (Static Vehicle Characteristics)
Method:
SVC uses the INFO utility subroutine to retrieve the Euler angles of the kingpin marker with respect to the
global marker. SVC assumes the z-axis of the kingpin marker points up the kingpin axis.
Left kingpin = -(180/p ) arctan( cos (psi) tan(theta) )
Right kingpin = (180/p ) arctan( cos (psi) tan(theta) )
Ø=Kingpin Angle
Computed by:
SVCFST
Method:
SVC computes the steering change due to a Y force at the Pitman arm marker for pitman type steering or at
the rack marker for rack type steering:
DSTEER = abs( C( 6,14 ) + C( 12,14 ) ) / 2
Percent Anti-lift Under Acceleration 1079
All About SVC (Static Vehicle Characteristics)
Pitman:
SVC assumes that the Pitman arm is oriented such that a Y force will turn the wheels. In addition, there must
be some compliance at the Pitman arm in order to generate steer. The total Pitman arm angle change due to
a Y force at the Pitman arm marker is:
DPIT = sqrt( C( 6,14 )2 + C( 17,14 ) 2 + C( 18,14 ) 2 )
The overall steer ratio is:
Steer ratio = SRATIO DPIT / DSTEER
Rack:
SVC assumes that the rack is oriented such that a Y force will turn the wheels. In addition, there must be
some compliance at the rack in order to generate steer. The total rack displacement due to a Y force on the
rack marker is:
DRAC = C( 14,14 )
The overall steer ratio is:
Computed by:
SVCANA
1080 Adams Car
All About SVC (Static Vehicle Characteristics)
Method:
SVC computes the longitudinal force due to acceleration:
Fleft = Fright = -fdrat / 2.0
and the vertical force due to weight transfer:
VWleft = VWright = -Total CG height / ( 2 wheelbase )
The driveshaft torque is:
Tdrive = Rl ABS( Fleft + Fright ) / faxlr
where Rl is the average loaded radius of the tire.
If the axle is dependent, the vertical force reaction at the wheel forces due to the driveshaft torque are:
VTleft = -Tdrive / Track
VTright = Tdrive / Track
If the axle is independent, VTleft = VTright = 0. The total vertical forces due to weight transfer and axle
torque are:
Vleft = VWleft + VTleft
Vright = VWright + VTright
These are all forces at each wheel per unit total acceleration force.
Vertical deflections due to the vertical force are:
Zwleft = Vleft C( 3,3 ) + Vright C( 3,9 )
Zwright = Vleft C( 9,3 ) + Vright C( 9,9 )
Vertical deflections due to tractional forces are:
Zfleft = Fleft [C( 3,1 ) - Rl C( 3,5 )] + Fright [C( 3,7 ) - Rl C( 3,11 )]
Zfright = Fleft [C( 9,1 )-Rl C( 9,5 )]+Fright [C( 9,7 ) - Rl C( 9,11 )]
Percent Anti-Dive Under Braking 1081
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCANB
Method:
SVC first computes longitudinal force due to braking:
Fleft = Fright = fbrat / 2.0
and the vertical force due to weight transfer:
Wleft = Wright = Total CG height / ( 2 wheelbase )
These are forces at each wheel per unit total braking force.
Vertical deflections due to the vertical force are:
Zwleft = Wleft C( 3,3 ) + Wright C( 3,9 )
Zwright = Wleft C( 9,3 ) + Wright C( 9,9 )
Vertical deflections due to tractional forces are:
Zfleft = Fleft [C( 3,1 ) - Rl C( 3,5 )] + Fright [C( 3,7 ) - Rl C( 3,11 )]
Zfright = Fleft [C( 9,1 )-Rl C( 9,5 )]+ Fright [C( 9,7 ) -Rl C( 9,11 )]
where Rl is the average loaded radius of the tire.
The percent anti-dive is:
Left percent anti-dive = -100. Zfleft / Zwleft
Right percent anti-dive = -100. Zfright / Zwright
1082 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCANB
Method:
SVC first computes longitudinal force due to braking:
Fleft = Fright = ( 1 - fbrat ) / 2.0
and the vertical force due to weight transfer:
Wleft = Wright = - Total CG height / ( 2 wheelbase )
These are forces at each wheel per unit total braking force.
The following calculations are identical to those for Percent Anti-Dive Under Braking.
Vertical deflections due to the vertical force are:
Zwleft = Wleft C( 3,3 ) + Wright C( 3,9 )
Zwright = Wleft C( 9,3 ) + Wright C( 9,9 )
Vertical deflections due to tractional forces are:
Zfleft = Fleft [C( 3,1 )-Rl C( 3,5 )] + Fright [C( 3,7 ) - Rl C( 3,11 )]
Zfright = Fleft [C( 9,1 )-Rl C( 9,5 )]+Fright [C( 9,7 )-Rl C( 9,11 )]
where Rl is the average loaded radius of the tire
The percent anti-lift is:
Left percent anti-lift = -100. Zfleft / Zwleft
Right percent anti-lift = -100. Zfright / Zwright
The ratio of suspension extension due to traction forces to the suspension compression due to weight transfer
and axle torque. Anti-squat under acceleration is computed for the rear suspension only, and only in a full-
vehicle analysis. If the rear suspension is not driven (fdrat = 1), the anti-squat will be 0.
Computed by:
SVCANA
Method:
SVC computes the longitudinal force due to acceleration:
Fleft = Fright = -( 1 - fdrat ) / 2.0
and the vertical force due to weight transfer:
VWleft = VWright = Total CG height / ( 2 wheelbase )
The following calculations are identical to those for Anti-Lift Under Acceleration.
The driveshaft torque is:
Tdrive = Rl abs( Fleft + Fright ) / raxlr
where Rl is the average loaded radius of the tire.
If the axle is dependent, the vertical force reaction at the wheel forces due to the driveshaft torque are:
VTleft = - Tdrive / Track
VTright = Tdrive / Track
If the axle is independent, VTleft = VTright = 0. The total vertical forces due to weight transfer and axle
torque are:
Vleft = VWleft + VTleft
Vright = VWright + VTright
These are all forces at each wheel per unit total acceleration force. Vertical deflections due to the vertical force
are:
Zwleft = Vleft C( 3,3 ) + Vright C( 3,9 )
Zwright = Vleft C( 9,3 ) + Vright C( 9,9 )
Vertical deflections due to tractional forces are:
1084 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCROL
Method:
SVC applies opposing unit forces acting vertically at the tire patches. The height difference between the tire
patches is:
Dz = C( 3,3 ) - C( 3,9 ) - C( 9,3 ) + C( 9,9 ) + 2/Kt
where Kt is the tire stiffness.
The vehicle roll angle is the rotation of the line through the tire patches:
Av = Dz / track
The change in steer angle is:
As = [ C( 6,3 ) - C( 6,9 ) + C( 12,3 ) - C( 12,9 ) ] / 2
The roll steer is:
RS = [ As / Av ] * 100
Computed by:
SVCGDR
Ride Rate 1085
All About SVC (Static Vehicle Characteristics)
Method:
SVC uses the INFO utility subroutine to retrieve the force applied to the tire force marker by the global origin
marker. SVC divides the global z component of this force by the gravitational acceleration along the global
z-axis to convert it to mass units.
Rear Ground Reaction, Left and Right
Ride Rate
Vertical spring rate of the suspension relative to the body, measured at the tire patch.
Computed by:
SVCRAT
1086 Adams Car
All About SVC (Static Vehicle Characteristics)
Method:
SVC computes ride rate as the equivalent rate of the wheel rate and tire rate in series.
Ks = Suspension ride rate (see description for this SVC).
Kt = Vertical tire rate.Ktotal = Ks Kt / (Ks + Kt)
Roll Camber
The rate of change in wheel inclination angle with respect to change in vehicle roll angle.
Computed by:
SVCROL
Method:
SVC applies opposing unit forces acting vertically at the tire patches. The height difference between the tire
patches is:
Dz = C( 3,3 ) - C( 3,9 ) - C( 9,3 ) + C( 9,9 ) + 2/Kt
where Kt is the tire stiffness.
The vehicle roll angle is the rotation of the line through the tire patches:
Av = Dz / track
The wheel inclination is measured with respect to the line through the tire patches and has two components.
The first is from the vertical movement of the tire patch, and is the same as the vehicle roll angle. The second
is from the rotational compliance at the wheel center due to the vertical force:
Ac = - C( 4,3 ) + C( 4,9 ) (left side)
= - C( 10,3 ) + C( 10,9 ) (right side)
The total wheel inclination is then:
Ai = Av - Ac
The roll camber is then:
RC = ( Av - Ac ) / Av = 1 - Ac / Av
Roll Center Height 1087
All About SVC (Static Vehicle Characteristics)
Roll Camber
Computed by:
SVCROL
Method:
The compliance matrix at the wheel centers are transferred to equivalent compliance matrix at the contact
patch location. Now the left side vertical displacement is
DZ_L = CP(3,3) - CP(3,9)
DY_L = CP(2,3) - CP(2,9)
YL
ZL
Where:
1088 Adams Car
All About SVC (Static Vehicle Characteristics)
DZ_L - Vertical Displacement at left tire patch due to unit opposing force at left and right tire patch.
DY_L -Lateral Displacement at left tire patch due to unit opposing force at left and right tire patch.
YL - Lateral wheel center position wrt to ground.
ZL - Vertical wheel center position wrt to ground.
Computed by:
SVCROL
Method:
SVC uses opposing unit forces as the applied torque:
T = F track = track
The resulting vertical distance between wheel centers is:
Dz = C( 3,3 ) - C( 3,9 ) - C( 9,3 ) + C( 9,9 ) + 2 / Kt
where Kt is the average tire stiffness.
The rotation of the line through the tire patches is:
Ø = Dz / track.
The roll rate is:
1090 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCROL
Method:
SVC uses opposing unit forces as the applied torque:
T = F track = track
The resulting vertical distance between wheel centers is:
Dz = C( 3,3 ) - C( 3,9 ) - C( 9,3 ) + C( 9,9 )
The rotation of the line through the wheel centers is:
Ø = Dz / track
The roll rate is:
Rate = T / Ø = ( p /180 ) track2 / Dz
Roll Rate - Suspension
Rotational Inertias of Vehicle Sprung Mass 1091
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCMIN
Method:
SVC extracts from the data-set the mass properties and the center-of-mass marker identifiers of all parts listed
in ARRAY statements 9901, 9903, and 9905. SVC multiplies the mass properties by the corresponding
percentage sprung value and uses the result with displacements from the INFO utility subroutine to compute
the various inertias using the parallel axis theorem.
Sprung Rotational Inertias
1092 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCMI2
Method:
SVC extracts from the data set the mass properties and the center-of-mass marker identifiers of all parts listed
in ARRAY statements 9901, 9903, and 9905, and uses the result with displacements from the INFO utility
subroutine to compute the various inertias. Note the lists of part identifiers in ARRAY statements 9901,
9903, and 9905 must include all parts belonging to the vehicle to correctly compute the total rotational
inertias.
Sprung Rotational Inertias
Scrub Radius 1093
All About SVC (Static Vehicle Characteristics)
Scrub Radius
The distance from the point at the intersection of the kingpin axis and the ground plane to the line of
intersection of the wheel and ground planes. Scrub radius is positive if the kingpin axis intersects the ground
inboard of the wheel. SVC computes scrub radius for the front suspension only.
Computed by:
SVCCTR
Method:
SVC uses the SYSARY utility subroutine to retrieve the positions of the wheel center and kingpin markers
with respect to the ground plane. SVC next computes the intersection point of the kingpin axis and the
ground plane, and the wheel/ground intersection line. The scrub radius is the difference between the distance
from the ground origin to the line and the distance from the origin to the point. SVC assumes the z-axis of
the kingpin marker points up the kingpin axis and y-axis of the wheel center marker is parallel to the spindle
axis. SVC also assumes the global origin marker lies somewhere inboard of both the wheel/ground and
kingpin-axis/ground intersections.
Scrub Radius
1094 Adams Car
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCICR
Method:
SVC computes the instant center from the DX, DY, DZ, and DTHETA of the wheel center due to vertical
forces applied on both sides:
left side right sideDX = C( 1,3 ) + C( 1,9 ) = C( 7,3 ) + C( 7,9 )
DZ = C( 3,3 ) + C( 3,9 ) = C( 9,3 ) + C( 9,9 )
DTHETA = C( 5,3 ) + C( 5,9 ) = C( 11,3 ) + C( 11,9 )
The radius of the circle described is:
R = SQRT( DX2 + DZ2 ) / DTHETA
The angle of the line connecting the wheel center to the instant center is:
ANG = arctan( -DX / DZ )
The instant center position is then:
fore and aft = R cos( ANG )
vertical = R sin( ANG ) + Rolling Radius
Single Bump Wheel Rate 1095
All About SVC (Static Vehicle Characteristics)
Note: The figure above describes the vertical instant center with respect to wheel center, but the
calculation includes the rolling radius so that the vertical instant center is determined with
respect to tire patch.
Computed by:
SVCRAT
Method:
SVC computes single bump wheel rate as the inverse of the z-axis displacement at the wheel center due to the
vertical force applied at the wheel center.Left = 1 / C( 3,3 )
Right = 1 / C( 9,9 )
Sprung Mass Bounce and Pitch Frequencies and Node Locations
1096 Adams Car
All About SVC (Static Vehicle Characteristics)
Longitudinal location of bounce and pitch nodes with respect to H-point and the natural frequencies of
bounce and pitch modes.
Computed by:
SVCNOD
Method:
SVC solves the equation of motion of the bounce and pitch displacements of the sprung mass. It first
determines the total ride rate at the spring center, total ride rate per unit rotation of the sprung mass and the
angular rate of the body. These values are inserted into the equation of motion to determine the bounce and
pitch natural frequencies.
The equation of motion for the bounce and pitch motions are:
zacc + az + bq = 0
qacc + gq + bz/r*r = 0
Where:
a,b,g are the rates defined above and r is the radius of gyration.
a = (Kf + Kr)/M
b = (Kf*fdis - Kr*rdis)/M
g = (Kf*fdis*ldis + Kr*rdis*rdis)/J
Where:
Kf - total front ride rate
Kr - total rear ride rate
M - total sprung mass
J - moment of inertia of sprung mass about pitch axis
fdis - distance between front springs and sprung mass C.G
rdis - distance between rear springs and sprung mass C.G
The solutions for the above equations are in the form:
z = Z *coswt
q = Q*coswt
Sprung Vehicle Mass 1097
All About SVC (Static Vehicle Characteristics)
substituting these in the equations of motions and solving for w will give the natural frequencies for the
bounce and pitch motions.
Node points with respect to C.G of the sprung mass are:
rmd1 = -b/(a - w12)
rmd2 = -b/(a - w22)
Node furthest from the C.G represents the bounce node.
Node points with respect to H-point are:
dhp = (dhp1+dhp2)/2.O - rllf
Where,
dhp1 - distance between H-point and left wheel center in global X direction.
dhp2 - distance between H-point and right wheel center in global X direction.
rllf - distance between front wheels and sprung mass C.G location.
hpt1 = rmd1 - dhp
hpt2 = rmd2 - dhp
Where,
hpt1 and hpt2 are node point locations with respect to H-point.
Sprung Vehicle Mass
Total sprung vehicle mass.
Computed by:
SVCTMA
Method:
SVC extracts the mass for each part listed in ARRAY statements 9901, 9903, and 9905 from the data-set and
multiplies the mass by the corresponding percentage sprung value. The results of these calculations are
summed to form the total sprung vehicle mass.
Static Loaded Tire Radius
The loaded radius (the distance from the center of tire contact to the wheel center measured in the wheel
plane) of a stationary tire inflated to normal recommended pressure.
1098 Adams Car
All About SVC (Static Vehicle Characteristics)
Note: In general, static loaded radius is different from the radius of slowly rolling tire. Static radius
of a tire rolled into position may be different from that of the tire loaded without being rolled.
Computed by:
SVCHGT
Method:
SVC uses the INFO utility subroutine to retrieve the vertical distance of the wheel center markers with
respect to the global marker. SVC then takes the average values of the data obtained from left and right side
of the vehicle.
Static Loaded Tire Radius
Steer Angle
The angle between the longitudinal axis of the vehicle and the line of intersection of the wheel plane and the
road surface. It is the average of the right and left angles. Steer angle is reported in degrees, and is positive if
the wheels are steering to the left. Steer angle is only computed for the front suspension.
Computed by:
CONSUB
Method:
Since the steer angle is the same as the toe angle, except for the sign on the left angle, is is computed as half
the difference of right and left toe angles.
average steer angle = ( right toe - left toe ) / 2
Tire Rate
Vertical spring rate of the tires.
Computed by:
CONSUB
Method:
These values are taken from ARRAY/9911 or approximated in the CONSUB as described in earlier sections.
If SVC must approximate the rates, it uses the compliance matrix entries to compute the simultaneous
vertical forces required to move both front or rear wheel centers one unit vertically. This is done before the
matrix is modified, so the vehicle body is free to move. Since the wheel centers are being moved the same
distance, only the tires are flexing, and the forces computed are approximately the tire rates. The two
simultaneous equations for one pair of front or rear tires are:
C( 3,3 ) Fl + C( 3,9 ) Fr = 1
C( 9,3 ) Fl + C( 9,9 ) Fr = 1
The determinate for this system is:
D = C( 3,3 ) C( 9,9 ) - C( 3,9 ) C( 9,3 )
Using Cramer's rule, the solution is:
Fl = [C( 9,9 ) - C( 3,9 )] / D
Fr = [C( 3,3 ) - C( 9,3 )] / D
Toe Angle
The angle between the longitudinal axis of the vehicle and the line of intersection of the wheel plane and the
road surface. Toe angle is reported in degrees, and is positive if the wheel front is rotated in towards the vehicle
body.
Computed by:
SVCGAN
1100 Adams Car
All About SVC (Static Vehicle Characteristics)
Method:
SVC uses the INFO utility subroutine to retrieve the Euler angles of the wheel center marker with respect to
the global marker. SVC forms the direction cosine matrix of the wheel center marker with respect to the
global marker from the Euler angles. SVC calculates the toe angle using elements of the direction cosine
matrix. SVC assumes the y-axis of the wheel center marker is parallel to the spindle axis, and the z-axis is
vertical.
Left toe = (180/p ) arctan( DCL(1,2) / DCL(2,2) )
Right toe = (180/p ) arctan( -DCR(1,2) / DCR(2,2) )
Toe Angle
Toe Change
Change in toe angle per unit vertical displacement of the wheel center relative to the sprung mass.
Computed by:
SVCRAT
Method:
SVC computes toe change as the ratio of z-axis rotation to z-axis displacement at the wheel center due to unit
vertical forces applied at both wheel centers simultaneously.Left = - (180/p) [C( 6,3 ) + C( 6,9 )] / [C( 3,3 )
+ C( 3,9 )]
Right = (180/p) [C( 12,3 ) + C( 12,9 )] / [C( 9,3 ) + C( 9,9 )]
Toe Change = DØ / DZ
Computed by:
SVCCGH
1102 Adams Car
All About SVC (Static Vehicle Characteristics)
Method:
SVC extracts from the data set the mass properties and the center-of-mass marker identifiers of all parts listed
in ARRAY statements 9901, 9903, and 9905 and uses them with displacements from the INFO utility
subroutine to compute the center of gravity.
Total Vehicle Weight
Total vehicle weight.
Computed by:
SVCTMA
Method:
SVC calls the INFO subroutine to obtain the vertical tire forces for all four tires. These forces are summed
and then the sum is divided by the acceleration of gravity along the global z-axis thus converting the sum to
mass units.
Track Width
The lateral distance between the centers of tire contact of the inner and outer wheels.
Computed by:
SVCTRW
Method:
Steer uses the INFO utility subroutine to retrieve positions of the inner and outer wheel center markers with
respect to the ground. The wheel centers are projected along the wheel plane onto the ground plane. The
distance between these projected points is the track.
Track width
Unsprung Mass Wheel Hop and Tramp Natural Frequencies 1103
All About SVC (Static Vehicle Characteristics)
Computed by:
SVCNOD1
Input variables:
Unsprung mass of solid axle suspension
Solid axle roll rate
Left and right tire rate
Left and right wheel rate
Unsprung mass inertia about roll axis for solid axle
Left and right unsprung masses for independent suspension
Method:
For independent suspensions the hop natural frequency is
frq = sqrt(1000.0 * lrr/lmass)/(2*pi)
where:
lrr - left suspension ride rate
lmass - left unsprung mass
1104 Adams Car
All About SVC (Static Vehicle Characteristics)
For solid axle suspension, SVC solves the equation of motion of the wheel hop and tramp and displacements
of the unsprung mass. It first determines the distance between the suspension springs by taking the roll rate
into account.
Total distance between both the springs is:
dis = roll rate/ride rate
It then determines the total ride rate at the spring center, total ride rate per unit rotation of the sprung mass,
and the angular rate of the body. These values are inserted into the equation of motion to determine the wheel
hop and tramp natural frequencies.
The equation of motion for the bounce and pitch motions are:
zacc + az + bq = 0
qacc + gq + bz/r*r = 0
where:
a,b,g are the rates defined above and r is the radius of gyration.
a = (Kl + Kr)/M
b = (Kl*ldis - Kr*rdis)/M
g = (Kl*ldis*ldis + Kr*rdis*rdis)/J
Kl - left ride rate
Kr - right ride rate
M - total unsprung mass
J - moment of inertia about roll axis
ldis - location with respect to axle CG at which effective spring rate acts.
rdis - location with respect to axle CG at which effective spring rate acts.
The solutions for the above equations are in the form:
z = Z *coswt
q = Q*coswt
Substituting these in the equations of motion and solving for w gives the natural frequencies for the wheel
hop and tramp motions.
Unsprung Suspension Mass
Total unsprung mass for the front or rear suspension. Unsprung mass is only computed for full-vehicle
analysis.
Computed by:
SVCTMA
Vehicle Speed 1105
All About SVC (Static Vehicle Characteristics)
Method:
Masses of all parts listed in ARRAY statements 9901 and 9903 are extracted from the data set, multiplied by
100 percent minus the corresponding percentage sprung values, and summed.
Vehicle Speed
Initial speed of the vehicle center of mass.
Computed by:
SVCSPD
Method:
SVC calls the INFO utility subroutine (prior to the static equilibrium analysis) to compute the center-of-
mass marker velocity with respect to the global origin marker. The reported speed is the magnitude of this
vector.
Wheel Center Rise
Difference in wheel center height, measured with respect to the body, between design position and static
equilibrium position. Positive rise means the static wheel center position is in rebound. Note that Wheel
Center Rise is also Rise-To-Curb for vehicles described with curb weight loading.
Computed by:
SVCWCR
Method:
SVC uses the INFO utility subroutine to compute the global z-axis distance between the wheel center marker
and the corresponding marker on the body.
1106 Adams Car
All About SVC (Static Vehicle Characteristics)
Wheel Rate
Vertical spring rate of the suspension relative to the body, measured at the wheel center due to the motion of
a pair of wheels.
Computed by:
SVCRAT
Method:
SVC computes wheel rate as the inverse of the z-axis displacement at the wheel center due to the vertical
forces applied at both wheel centers simultaneously.
Left = 1 / [C( 3,3 ) + C( 3,9 )]
Right = 1 / [C( 9,3 ) + C( 9,9 )]
Wheel Shock Ratio
Change in shock length per unit vertical displacement of the wheel center relative to the sprung mass.
Computed by:
SVCWSR.
Method:
SVC calculates a temporary compliance matrix to relate the wheel and shock motion. For full-vehicle models,
the body degree of freedom is then removed from the compliance matrix.
Determine the normalized suspension to body vector
LSL = SQRT( LSHOCK(1)**2 + LSHOCK(2)**2 + LSHOCK(3)**2 )
Where:
LSHOCK(1) - Global X displacement of shock attachment on body wrt shock attachement on suspension
LSHOCK(2) - Global Y displacement of shock attachment on body wrt shock attachement on suspension
LSHOCK(3) - Global Z displacement of shock attachment on body wrt shock attachement on suspension
LSHOCK(1) = LSHOCK(1) / LSL
LSHOCK(2) = LSHOCK(2) / LSL
LSHOCK(3) = LSHOCK(3) / LSL
Compute change in shocklength due to vertical force at wheel center (dot product of shock-end compliance
and shock vector).
DS = CTEMP(7,3) * LSHOCK(1) + CTEMP(8,3) * LSHOCK(2) + CTEMP(9,3) * LSHOCK(3)
Shock Ratio = CTEMP(3,3) / DS
Shock Ratio = 1/Shock Ratio
Wheel Spring Ratio
Change in spring length per unit vertical displacement of the wheel center relative to the sprung mass.
Computed by:
SVCRAT
Method:
SVC calculates a temporary compliance matrix to relate the wheel and spring motion. For full-vehicle models,
the body degree of freedom is then removed from the compliance matrix.
Determine the normalized suspension to body vector
LSL = SQRT( LSPRNG(1)**2 + LSPRNG(2)**2 + LSPRNG(3)**2 )
Where:
LSPRNG(1) - Global X displacement of spring attachment on body wrt spring attachment on suspension
LSPRNG(2) - Global Y displacement of spring attachment on body wrt spring attachment on suspension
LSPRNG(3) - Global Z displacement of spring attachment on body wrt spring attachment on suspension
1108 Adams Car
All About SVC (Static Vehicle Characteristics)
Compute change in spring length due to vertical force at wheel center (dot product of spring-end compliance
and spring vector).
DS = CTEMP(7,3) * LSPRNG(1) + CTEMP(8,3) * LSPRNG(2) + CTEMP(9,3) * LSPRNG(3)
Spring Ratio = CTEMP(3,3) / DS
Spring Ratio = 1/Spring Ratio
Wheelbase
Fore and aft distance in the side elevation between the front and rear wheels.
Computed by:
SVCWBA
Method:
SVC uses the INFO utility subroutine to determine the global x-axis distance between wheel center markers.
Wheelbase
Wheelbase 1109
Analysis Log File
Body Compliance
The body compliance is modeled in the body template like Rigid Chassis Two Body provided in the acar_concept
database. It allows you to set compliance between front and rear body parts.
The parameter variable pvs_body_compliance is used to define which type of compliance is active between
two bodies. Where, '1', '2', '3' are mapped to Torsion Only, Torsion and Lateral Bending, Torsion and Vertical
and Lateral Bending respectively. It is used to activate appropriate groups created for the body compliance.
Torsion Only represents the two body parts are connected with a revolute joint. Torsion and Lateral Bending
represents the two body parts are connected with a universal joint. Torsion and Vertical and Lateral Bending
represents the two body parts are connected with a spherical joint. In above three cases a bushing with the
rotational stiffness values are used to model the compliance.
Design Option
Name Choices Values Dependent Variable Dependent Variable Description
Inactive 0 pvs_aero_frontal_area, Deactivate aerodynamic forces on
pvs_air_density, vehicle body
Aero Drag pvs_drag_coefficient
Active 1 Activate aerodynamic forces on
vehicle body
Design Option
Name Choices Values Dependent Variable Dependent Variable Description
None 0 No body mounts
Number of Body
Mounts 1 to 9 1 to 9 Activates number of body mounts
Number of Bed
Mounts 1 to 9 1 to 9 Activates number of bed mounts
Body Compliance Torsion and 1 Two body parts are connected with
Lateral a universal joint and rotational
Bending stiffness using bushing
Torsion and 2 Two body parts are connected with
Vertical and a spherical joint and rotational
Lateral stiffness using bushing
Bending
Wheelbase 1111
Brake Schematic
Brake Schematic
Centroidal Inertia
Centroidal inertia is inertia measured about the center of mass.
Course Marker
When you create the assembly, Adams Car creates a marker on the ground part. (Learn about Markers.)
Because Adams SmartDriver uses this marker to determine the position, velocities, and accelerations of the
vehicle, the orientation of this marker is critical.
You should orient it depending on the road data file that you want to use for your Analysis: the positive x-
axis of the course marker should point towards the positive direction of travel in the road data file.
Data-Driven Analysis
The inputs for a data-driven analysis are defined in the driver_loadcase_file used in the analysis. A driver
loadcase specifies inputs to the vehicle as: steering value, desired velocity, braking pressure, and so on.
1112 Adams Car
DIFSUB
Adams Car creates an event file (.xml) that defines the analysis and the different parameters. It uses the .xml
file for the analysis and then leaves it in the working directory so you can refer to it as needed.
See Working with Event Files (.xml).
DIFSUB
DIFF 901
DIFF 901 (dif901) used in Adams Car for adjustable force elements to zero out the forces.
Input:
DIFF/id, FUNCTION = USER(routing_code, type_astring, desired_value,
i_measmar, j_measmar, array, 0.0 , susp_par_array)
Routine= abgFDM::dif901
where:
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
type_astring = Specify 'CAM', 'CAS' or 'TOE'
desired_value = Specify desired value
i_measmar = ID of I marker
j_measmar = ID of J marker
array = ID of array that specify pattern of ones (on) and zeros (off ) to control the
sequence of adjustment for multiple adjustable forces. See Adjustable Forces.
array[1] =
susp_par_array = ID of suspension_parameters_ARRAY, required when desired_value = 'CAS'
Output
Return the difference between desired value and current value.
Drivelines
The driveline allow you to activate or deactivate driveline components in the model
Wheelbase 1113
Dual-Path Strut Mount
The parameter variable pvs_driveline is used to control activity of driveline. Where, '0', '1' are mapped to
Inactive and Active respectively. It is used to activate appropriate groups created for the driveline.
pvs_driveshaft_offset_[left/right] is used as dependent variable which is used to offset driveline from wheel
center along the wheel's spin axis.
(Standard Interface) Simulate → Full-Vehicle Analysis → Durability Events → Create Dynamic Loadcase (Event
Generator)
For Suspension Assembly:
(Standard Interface) Simulate → Suspension Analysis → Create Dynamic Loadcase (Event Generator)
Allows you to build a list of dynamic loadcase events with different RPC datafiles. This utility is available for
both full- and half-vehicle simulations.
Wheelbase 1115
Error Checks
Note:
Events will be added for each unique RPC file name. Specifying
the same RPC file multiple times will not generate multiple
events.
Global parameters are common for all events in a fingerprint.
After generating the fingerprint, you may need to edit
road/testrig file to specify WFT parameters specific to the
vehicle.
Load Type Select one:
All
Component Loads
Frame Loads
Steering Loads
Stabilizer Bar Loads
For frame and steering loads, select a coordinate system type.
Include Displacement Select to include displacement requests in the model.
Requests
Wheel Force Input Specify the data channel numbers.
Single Input Specify various single-input values.
Controller Gains Specify stiffness and damping gains.
Error Checks
To avoid nonphysical conditions, you must carefully select the desired mass and inertia values. Sometimes,
Adams Car cannot match the desired aggregate mass properties you input because the properties result in
negative mass or in negative principal inertias for the part you select to modify.
1116 Adams Car
Forces
For example, assume the aggregate mass of the model is 2000 kg, and the mass of the part is 400 kg. If you
input a desired aggregate mass of 1500kg, then to match the desired mass the modified part must have a mass
of (400+(1500-2000))=-100 kg, which is nonphysical. Two conditions lead to error:
If the calculated mass for the part < 0, Adams Car cancels the adjustment.
If the principal inertias < 0, Adams Car adjusts the mass and the location of the center of gravity (CG) of the
part (so that the overall location of the CG of the model is the one you entered), but does not modify the
moments of inertia.
Forces
SFORCE 901
SFORCE 901 (sfo901) used in Adams Car for adjustable force elements to zero out the forces.
Input:
SFORCE/id, FUNCTION = USER(routing_code, damping, stiffness, dmCalc,
imarker, jmarker, diff_id)
Routine= abgFDM::sfo901
where:
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
damping = Specify damping
stiffness = Specify stiffness
dmCalc = Distance between imarker and jmarker
imarker = ID of I marker
jmarker = ID of J marker
diff_id = ID of DIFF element (dif901)
Full-Vehicle Assembly
A full-vehicle assembly is comprised of:
Front suspension and front wheel subsystems
Rear suspension and rear wheel subsystems
Steering subsystem
Body subsystem
It can also consist of many other subsystems and nonstandard subsystems. For example, you may want to
create an assembly that contains particular control systems.
1120 Adams Car
General Parts
General Parts
General parts are rigid parts that you define using their location, orientation, mass, inertia, and center of
gravity. If you want to, you can add geometry to general parts. Adams Car uses either geometry-based or user-
entered information to determine mass properties for general parts.
Hitch Configuration
The hitch configuration allows you to select three different attachments between trailer and body. Where, '0',
'1' and '2' are mapped to standard / fifth wheel / gooseneck respectively. It is use to activate appropriate
groups created for the hitch configuration.
Hub Compliance
Hub compliance allows you to model wheel bearing compliance.
The parameter variable pvs_hub_compliance is used to model compliance. Where, '0', '1' are mapped to
Inactive and Active respectively. It is used to activate appropriate groups created for the hub compliance.
The parameter variable pv[lrs]_hub_compliance_offset is used as dependent variable which helps to offset
hub compliance bushing/joint from the wheel center.
Description
For independent suspensions, the spindle part is disconnected from the upright part by deactivating the
revolute joint. The spindle is then attached to the upright as shown in Figure 15 below via a spherical joint and
a bushing.
For dependent suspensions, the hub part is disconnected from the axle part by deactivating the revolute joint.
The hub is then attached through a spherical joint and a bushing.
Wheelbase 1121
Hub Compliance
Note: This bushing property file shouldn't have any resisting torque
acting along the rotation of the hub. This can be achieved by setting
scale factor tz_scale_factor to 0.0. The spherical joint takes care of
translational degrees of freedom, so fz[fy/tz]_scale_factor can be set
to 0.0 as well. The scale factor of this bushing shouldn't be
promoted to factors in the DOE as it may change the
tz_scale_factor to a non-zero value.
Interface Part
An interface part is a massless general rigid part that is rigidly fixed to a specified node. You can use interface
parts to connect flexible bodies to the rest of your mechanism.
Kinematic Flag
The kinematic flag allow you to toggles between kinematic and compliant mode replacing the joints with the
corresponding elastic like bushing elements.
The parameter variable pvs_kinematic_flag is used to toggle between kinematic and compliant mode. Where,
'0', '1' are mapped to Inactive and Active respectively. It is used to activate appropriate groups created for the
kinematic flag. Inactive represents compliant mode and Active represents kinematic mode.
Keyword
A word that represents a command or parameter.
Or
Open an existing template or subsystem containing a leaf spring. Then from the Build menu, select
Leaf Spring, and Modify.
Leaf Spring Editor has different tabs for accessing the leaf spring property file data. You can show different
tabs by clicking on the tab names in the side bar on the upper left side of the Leaf Spring Editor.
For more information on different tabs of the Leaf Spring Editor, see:
Leaf Spring Editor: File Menu
Leaf Spring Editor: Plot Menu
Leaf Spring Editor: Settings Menu
Leaf Spring Editor: Run Menu
Leaf Spring Editor: General Information
Leaf Spring Editor: Leaves
Leaf Spring Editor: Axle Information
Leaf Spring Editor: Shackle Information
Leaf Spring Editor: Geometry
Leaf Spring Editor: Leaf Eyehook Information
Leaf Spring Editor: Bushing Information
Leaf Spring Editor: Leaf Clips
Leaf Spring Editor: Command Shell
Note that if the file contains the description of more leaves than this
field indicates, then only the number of leaves specified in this field
will be read. This can be helpful if you want to remove the last #X
leaves for experimentation.
Number of Clips Enter the total number of the clips.
Frictional Coefficient The frictional coefficient specified pertains to leaf-to-leaf friction.
Impact Exponent Impact exponent specifies the level of impact and is the exponent of
the force characteristics. The impact with friction formulation is used.
Wheelbase 1131
Leaf Spring Editor
This flag is not available for Leaf 1, since Leaf 1 is always the leaf with eyehooks.
In fact, the auxiliary leaf should generally be the last leaf specified. You need to
create "Auxiliary Front Contact" and "Auxiliary Rear Contact" hard points in *.ltf
file under "Geometry" section.
Leaf Length Front/Rear Enter the arc length of the front and rear sections of the leaf being defined in mm,
respectively, from the X=0.0 point defined in the profile.
Number of Contact Points Number of Rear Contact Points (<= # of elements*2).
Front/Rear
These integer numbers define the number of CONTACT POINTS to be created
for the front and rear, respectively, for this leaf and the leaf directly above it. These
contacts are used to keep the leaves from passing through each other as they deflect,
in effect modeling the physical contact of the top of the current leaf with the
bottom surface of the leaf above it.
A maximum of two contact points per beam element is allowed (the number of
beams used is defined by the number of elements specified in the next rows of the
table). Therefore number of contact points should be equal or less than number of
elements multiply by two.
Number of elements per Front/Rear The leaf being defined will be broken up into discrete sections, each of which will
Leaf be modeled using an Adams beam element. These two parameters define how
many beam elements should be used in discretizing the front and rear sections of
the leaf, respectively. A maximum of 45 elements per half-leaf has been imposed
for memory allocation purposes.
Gap Distance Front/Center/Rear These values define the gap between this leaf and the leaf above it, in mm. They
are always defined as a positive number.
Center gap distance is used to determine the location of the leaf-to-leaf bushings.
The front and rear gap is used to determine the location of the contact forces.
If you are copying profile to another leaf (Leaf Profile to Copy=1 in *.ltf file) then
gap distance will be added to the Z offset and seat thickness values to determine Z
offset.
Wheelbase 1135
Leaf Spring Editor
Note: The gap distance center and leaf Seat Thickness only are used to
determine the height of the leaf when copying the profile of another leaf.
Material Properties: E-Modulus Defines Young's modulus of elasticity for the material from which the leaf being
defined is constructed. This value will be used in defining the BEAM statements
for the Adams representation.
Material Properties: G-Modulus Defines the shear modulus of elasticity for the material from which the leaf being
defined is constructed. This value will be used in defining the BEAM statements
for the Adams representation.
Material Properties: Density Defines the density of the material (kg/mm**3) from which the leaf being defined
is constructed. This value will be used in defining the BEAM statements for the
Adams representation.
Material Properties: Damping Specifies the ratio for calculating the structural damping matrix for the beam.
Ratio Adams Solver multiplies the stiffness matrix by this value to obtain the damping
matrix.
1136 Adams Car
Leaf Spring Editor
If "Exclude first/last points" is chosen, the first and last points given in the profile
will be used as the bushing points and will not be used in the polynomial fitting
process.
If "Every point" is selected, then all points will be considered during the fitting
points. In this case, the shackle bushing point is to be estimated.
Wheelbase 1137
Leaf Spring Editor
The Thickness column defines the thickness of the leaf at each X value. This
column is flexible about the amount of data entered. Data may be defined only at
desired points, or at all points. The only restriction is that at least ONE value must
be entered. The data are processed in the following manner:
Note: The X-value at the center of the leaf defined in the profile must be 0.0;
this position is also referred to as the seat of the leaf.
Also, since the coordinate system for Adams models has X positive
pointing rearward with respect to the vehicle, the leaf spring data must
have X positive pointing rearward and, of course, X negative point
forward. So the front leaf must be in negative X-axis
Note: The ground height may or may not correspond to the bottom of the tire. This will depend
on the design layout of your vehicle.
Compression (above leaf) - when the leaf eye is below the shackle-to-body
point, the link is in compression.
Tension (below leaf) - when the leaf eye is above the shackle-to-body point, the
link is in tension.
Another entry for the chassis contact points is necessary if an auxilliary leaf spring is defined in the template.
1144 Adams Car
Leaf Spring Editor
These bushings are used to keep the leaves from moving laterally or
twisting from each other. They should have rather large values
(~1.0E+09 for translational rates and ~1.0E+07 for rotational rates).
Front Leaf Eye Bushing Specify the translational and rotational spring rates for the bushing at
the front of the leaf.
Leaf Spring to Shackle Bushing Specify the translational and rotational spring rates for the bushing at
the rear of the leaf.
Shackle to Frame Specify the translational and rotational spring and damping rates for
the bushing at the point where the shackle connects to the chassis.
Example
Bushing information will remain in sample_rear.py, Adams Car will not write the
bushings when the Adams Car model is created with this leaf.
Note: In almost every case, you will not need to keep the bushings in the leaf
model file. This way, Adams Car will always generate the bushings when
creating the full-vehicle or exerciser model. If the bushings change
independent of the rest of the leaf spring, makeleaf doesn't have to be run
again. This also aids Design of Experiment (DOE) analysis. Please note that
bushings are always included in the leaf model when the leaf is exercised to
the design position during the makeleaf program.
Help A help option is available from the command line with makeleaf:
achassis -makeleaf -h
• Leaf thickness
Shackle information
• Shackle location
• Mass, length, inertia, etc
Bushing rates for
• Leaf to frame bushing
• Leaf to shackle bushing
• Shackle to frame bushing
Location of leaf to frame and shackle to frame bushings
Axle Information
• Axle type (Underslung or Overslung)
• Height of leaf spring pack at rise to curb and design loaded condition
• Reference marker to leafpack which is a distance between axle center to leafseat surface
Eyehook type (Berliner, upturned, downturned)
Clips information
Wheelbase 1153
Leaf Spring Editor
Makeleaf Program
Makeleaf is a program that builds a beam-element leafspring model suitable for use with Adams.
Makeleaf takes the leaf data in the leaf spring template file (.ltf ), and creates both Adams dataset model files
(.adm) and a beam-element leaf spring property file (.py).
If the leaf spring template file is called sample.ltf, Makeleaf creates Adams dataset model files
(sample_aview.adm, sample_leaf.adm and sample_reset.adm) and sample.py.
1154 Adams Car
Leaf Spring Editor
Note that in the case of Adams Car, the calculations are performed within the macro and the end result is a
template rather than a python file. View An Example Leaf template File.
Using Makeleaf
You can run Makeleaf from the Leaf Spring Editor or the command shell.
Note: You can switch between Standard Interface and Template Builder by pressing F9 key. Also,
the Build menu is only active when there is a template model present in the Adams Car
Template Builder session
3. The Adams control file (*sample_leaf.acf) created in the previous step is run with Adams Solver to
exercise the leaf spring from the "free" position to the "rise to curb" position given in *.ltf file. This
position is represented in the model as SENSOR/4, and Adams Solver will stop the simulation when
the axle reaches this position.
This is the first quasi-static analysis. The model is imported in Adams View, the results from the
previous step are read, and a new model file at rise-to-curb condition is written and saved in
sample_aview.adm.
4. Then Makeleaf executes the "reset_bushings" python script, which takes the model
(sample_aview.adm) and removes bushing preloads by resetting marker positions. The updated
model is saved in sample_reset.adm and sample_reset.acf files.
5. Adams View is executed and exercises the leaf spring from rise-to-curb to design position as given in
*.ltf files to create an Adams dataset model file of the leafspring in the design position. This position
is represented in the model as SENSOR/1 to 3, and Adams Solver will stop the simulation when the
axle reaches this position. This is the second quasi-static analysis, and the model is saved as
sample_aview.adm which overwrites the sample_aview.adm file generated after the first quasi-static
analysis.
6. Note that in the case of Adams Car, the calculations are performed within the macro and the end
result is a template or subsystem rather than a python file.
1156 Adams Car
Leaf Spring Editor
During this process, files such as sample_leaf.adm, sample_aview.adm etc are generated in your
working directory in the folder named sampleBuildFiles. This folder will be automatically deleted
after closing your Adams session. If you want to keep these files on your disk then you need to set the
following environment variable.
Set ACAR_DEBUGGING to "1" to avoid removal of files from your working directory.
Adams Car:
sim/stat
equil/maxit=50.00, err=0.001, imb=0.10000, stab=0.01
The values for the last equil/maxit statement are defined by the user in the system parameters. The maximum
number of iterations is always taken from the system parameters.
================================================================================
TITLE
--------------------------------------------------------------------------------
Default leaf spring file
================================================================================
GENERAL INFORMATION
--------------------------------------------------------------------------------
4 = No. of Leaves
0.0 = Frictional Coefficient
2.1 = Impact Exponent
1 = Leaf Spring ID Number (pick 1-REAR, 2-FRONT, 3-OTHER )
1 = Flag for fitting algorithm (1-2nd poly, 2-3rd poly)
1 = Flag for contact algorithm (1-impact w/frict)
POINT LOCATIONS
LEFT (mm) RIGHT (mm)
GEOMETRY HARDPOINT X Y Z X Y Z
------------------------------ ------------------------ ------------------------
Front Leaf Eye Bushing 1-2 3722.70 -497.06 404.10 3722.70 497.06 404.10
Shackle to Frame 20-21 5070.30 -497.06 675.43 5070.30 497.06 675.43
AXLE INFORMATION
--------------------------------------------------------------------------------
0.5 = Extra Mass on the Dummy Axle (U-bolts, spacers, etc.)
41.3 = Reference Marker to Leafpack (bot-OVERSLUG, top-UNDERSLUG)
40.0 = Front Inactive Length (mm)
40.0 = Rear Inactive Length (mm)
541.43 = Reference Marker Height at Design Load
UNDERSLUNG = Axle Mount Type (UNDERSLUG OR OVERSLUG)
541.43 = Rise to Curb (mm)
SHACKLE INFORMATION
--------------------------------------------------------------------------------
139.88 = Shackle Length
0.73 = Shackle Mass (kg)
3.67E1 = Shackle Inertia: Ixx (kg*mm**2) (when it's laid in flat pos.)
8.81E2 = Shackle Inertia: Iyy (kg*mm**2) (x-dir. is its pointing dir.)
8.81E2 = Shackle Inertia: Izz (kg*mm**2)
1158 Adams Car
Leaf Spring Editor
CLIP INFORMATION
--------------------------------------------------------------------------------
2 = No. of clips
CLIP 1
================================================================================
LEAF # 1
--------------------------------------------------------------------------------
650.0 = Front Leaf Length (mm)
785.0 = Rear Leaf Length (mm)
7 = No. of Elements per Front Leaf (<= 45)
8 = No. of Elements per Rear Leaf (<= 45)
8.00 = Seat (Leaf Center) Thickness (mm)
64.0 = Seat (Leaf Center) Width (mm)
2.00E5 = Material Properties: Emod
7.9E4 = Material Properties: Gmod
7.86E-6 = Material Properties: Density (kg/mm**3)
0.1 = Material Properties: Damping
1.2 = ASY
1.2 = ASZ
1 = 1, if every point is to be used for fitting,
0, if First and Last points are the bushing points
(If " 1 " is chosen, the shackle bushing point is to be estimated.)
0.0 = Z-offset leaf
X Z Thickness
----------- ----------- -----------
-589.92 123.77 8.0
-555.09 113.34
-486.13 90.56
-451.50 79.13
-383.58 57.89
-352.91 49.03
-276.92 29.85
-242.13 22.37
-167.64 9.57
-131.96 5.11
-65.21 0.51
-27.11 0.19
0.00 0.00
21.05 0.17
61.97 0.46
136.52 6.21
175.23 11.56
248.37 24.64
283.46 32.38
353.76 51.22
388.92 61.91
457.23 84.66
494.53 97.99
558.79 123.50
593.31 138.57
658.94 168.07
694.25 183.73
720.80 193.30
================================================================================
LEAF # 2
--------------------------------------------------------------------------------
0 = Auxiliary Leaf Flag
2 = No. of Front Contact Points ( <= # of elements*2 )
2 = No. of Rear Contact Points ( <= # of elements*2 )
2.54 = Center Gap Distance between Leaf #1 And #2 (liner thick.) (mm)
2.54 = Front Gap Distance between Leaf #1 And #2 (liner thick.) (mm)
2.54 = Rear Gap Distance between Leaf #1 And #2 (liner thick.) (mm)
525.0 = Front Leaf Length (mm)
635.0 = Rear Leaf Length (mm)
5 = No. of Elements per Front Leaf (<= 45)
6 = No. of Elements per Rear Leaf (<= 45)
8.00 = Seat (Leaf Center) Thickness (mm)
64.0 = Seat (Leaf Center) Width (mm)
2.00E5 = Material Properties: Emod
7.9E4 = Material Properties: Gmod
7.86E-6 = Material Properties: Density (kg/mm**3)
0.1 = Material Properties: Damping
1.2 = ASY
1.2 = ASZ
-10.74 = Z-offset leaf
X Z Thickness
----------- ----------- -----------
-511.82 96.7907 8.0
-481.94 87.7102
-454.45 79.4907
-416.25 68.0787
-384.29 58.8754
-350.96 49.632
-317.55 40.8384
-277.57 31.1448
-245.72 24.0214
-212.85 17.3841
-172.3 10.357
-138.29 5.5226
-95.14 1.2738
-61.68 -0.2094
0.000 0.0000
61.67 0.2006
102.13 2.0485
133.11 5.2944
174.06 10.7729
216.01 17.6316
246.34 23.3458
290.07 32.687
332.62 43.6053
367.6 53.5062
402.55 64.2678
435.29 74.9009
466.02 85.2701
504.65 99.117
535.67 111.2967
561.02 122.0138
611.26 144.288
================================================================================
LEAF # 3
--------------------------------------------------------------------------------
0 = Auxiliary Leaf Flag
2 = No. of Front Contact Points ( <= # of elements*2 )
2 = No. of Rear Contact Points ( <= # of elements*2 )
Wheelbase 1161
Leaf Spring Editor
2.54 = Center Gap Distance between Leaf #2 And #3 (liner thick.) (mm)
2.54 = Front Gap Distance between Leaf #2 And #3 (liner thick.) (mm)
2.54 = Rear Gap Distance between Leaf #2 And #3 (liner thick.) (mm)
405.0 = Front Leaf Length (mm)
480.0 = Rear Leaf Length (mm)
5 = No. of Elements per Front Leaf (<= 45)
6 = No. of Elements per Rear Leaf (<= 45)
8.0 = Seat (Leaf Center) Thickness (mm)
64.0 = Seat (Leaf Center) Width (mm)
2.00E5 = Material Properties: Emod
7.9E4 = Material Properties: Gmod
7.86E-6 = Material Properties: Density (kg/mm**3)
0.1 = Material Properties: Damping
1.2 = ASY
1.2 = ASZ
-21.58 = Z-offset leaf
X Z Thickness
----------- ----------- -----------
-399.5 61.5076 8.0
-359.4 51.0546
-318.31 40.2328
-282.08 31.0422
-248.28 23.0739
-213.34 15.8522
-175.43 9.3821
-137.37 4.4586
-93.58 0.9245
-61.57 -0.2476
00.00 00.00
61.57 0.2494
102.06 2.4562
128.98 5.3642
168.59 10.724
214.39 18.3665
249.89 25.2511
289.64 33.9831
333.8 45.0847
367.91 54.3477
403.28 64.7392
430.63 73.833
468.7 85.7599
================================================================================
LEAF # 4
--------------------------------------------------------------------------------
0 = Auxiliary Leaf Flag
2 = No. of Front Contact Points ( <= # of elements*2 )
2 = No. of Rear Contact Points ( <= # of elements*2 )
0.51 = Center Gap Distance between Leaf #3 And #4 (liner thick.) (mm)
0.51 = Front Gap Distance between Leaf #3 And #4 (liner thick.) (mm)
0.51 = Rear Gap Distance between Leaf #3 And #4 (liner thick.) (mm)
317.5 = Front Leaf Length (mm)
342.9 = Rear Leaf Length (mm)
5 = No. of Elements per Front Leaf (<= 45)
6 = No. of Elements per Rear Leaf (<= 45)
15.02 = Seat (Leaf Center) Thickness (mm)
63.5 = Seat (Leaf Center) Width (mm)
2.00E5 = Material Properties: Emod
7.9E4 = Material Properties: Gmod
7.86E-6 = Material Properties: Density (kg/mm**3)
0.1 = Material Properties: Damping
1.2 = ASY
1162 Adams Car
Load Equalizer
1.2 = ASZ
-29.90 = Z-offset leaf
X Z Thickness
----------- ----------- -----------
-305.498 4.9887 9.7
-274.323 4.3701 10.64
-249.806 3.9388 11.12
-224.956 3.5062 11.76
-199.874 3.207 12.33
-173.256 3.041 13.35
-138.388 1.4397 13.63
-108.784 1.0534 14.38
-85.5226 0.5575 14.81
-57.3923 0.099 15.02
0.0000 0.000 15.02
57.3989 -0.097 15.02
84.2265 0.3865 14.61
116.3068 1.079 14.01
144.5213 1.7155 13.81
169.5381 1.3476 12.64
202.0697 1.7619 11.99
230.4132 2.1584 11.19
264.2446 2.5961 10.58
302.4333 2.2705 9.46
335.4665 1.8588 8.44
Load Equalizer
The load equalizer helps in balancing the load. Its mechanism created between body and trailer. Where, '0',
and '1' are mapped to Inactive and Active respectively. It is use to activate appropriate groups created for the
load equalizer.
Loadcase Files
Loadcase files are text files that contain the vertical wheel travel and other parameters needed to control a
suspension analysis.
Wheelbase 1163
Load Case Data File Editor
Parameters tab
You must supply vehicle parameters, such as GVW, GAWR front, GAWR rear, Cg Height, roll angle and
powertrain parameters, such as gear ratio, efficiency, maximum engine torque. These parameters are used for
calculating input loads to wheel.
See the following Parameters on the Load Case Data File Editor:
1164 Adams Car
Load Case Data File Editor
You can specify loadcases for the front and rear suspension in single loadcase file. Adams Car will only use
data from Front tab for front suspension analysis and data from Rear tab for rear suspension analysis.
The "Active" column allows you to select which loadcases should be run for the current analysis. You can
double-click on the load case of interest to modify the input data for that particular load case.
Static Loadcases
You can specify any number of loadcases. In the example loadcase file "example_static_loadcase.xml"
available in the acar_shared database has few loadcases defined as an example.
Under "General" tab you can select loadcase type as below:
G Loads
Analytical G Loads
• Hold height:
Wheelbase 1165
Load Case Data File Editor
G Loads
G loads type offer different options like wheel loads, shock loads and stabar loads
You can specify load magnitudes that are applied at certain locations. The load specifications should be in G's
for forces and in Nmm for torques.
Wheel loads
Loads can be applied at the contact patch or wheel center. You can also apply loads at the contact patch in
certain directions and at the wheel center in other directions.
All the applied loads are in G's. and one G value is based on GAWR for front (or GAWR for rear suspension)
from parameters tab.
Shock loads:
If shock_loads are set to active, it applies force along the axial direction of shocks. Applied loads are in G's.
Stabar Loads
If stabar_loads are set to active, it applies motion to the wheel from initial value to final value and all forces
(Wheel loads, shock loads) are set to zero.
This can be used to do motion based parallel wheel travel or opposite wheel travel.
1168 Adams Car
Load Case Data File Editor
Analytical G Loads
The following analytical loadcases are supported:
Panic Braking
Braking
Cornering
Wheelbase 1169
Load Case Data File Editor
Panic Braking
Panic braking can be performed with and without weight transfer. The formulation used are as follows:
Braking
Cornering
Left Turn Direction = -ve weight transfer to the right (outside of turn)
Right Turn Direction = +ve weight transfer to the left (outside of turn)
Lateral Load transfer = ((front/rear)roll_rate * roll_angle + ((front/rear)GAWR *
roll_center_height * lat.accel))/track_width
Left Wheel Max fz = max(sign(turn direction)*delta_load + (GAWR/2),0)
Right Wheel Max fz = max(-1.0 * sign(turn direction)*delta_load + (GAWR/2),0)
Max fy = mu * Max fz
Parameters
Longitudinal Deceleration
This parameter controls the brake signal: a longitudinal closed-loop controller acts on the brake to maintain
the desired rate of change of longitudinal velocity.
Mount Parts
Mount parts are massless parts that attach to other parts. By default, mount parts are fixed to ground. Mount
parts represent the vehicle body or subframe and act as place holders.
When you create a mount part, Adams Car automatically creates an input communicator for it of class
mount. The input communicator requests the name of the part to which the mount part should connect. If
Adams Car finds a matching communicator during assembly, it replaces the mount part with the part that
the output communicator indicates. The replacement part is from another subsystem. If Adams Car finds no
matching output communicator, it replaces the mount part with the ground part.
1172 Adams Car
Number of Bed Mounts
Number of Bumpstops
The number of bumpstops allow you to use more than one bumpstops in suspension.
The parameter variable pvs_number_of_bumpstops is used to change number of bumpstops. Where, '0', '1',
'2' are mapped to None, One and Two respectively. It is used to activate appropriate groups created for the
number of bumpstops. None represents no bumpstop is active. One represents only one bumpstop is active.
Two represents both bumpstops are active.
Number of Reboundstops
The number of reboundstops allow you to use more than one reboundstops in suspension.
The parameter variable pvs_number_of_reboundstops is used to change number of reboundstops. Where,
'0', '1', '2' are mapped to None, One and Two respectively. It is used to activate appropriate groups created
for the number of reboundstops. None represents no reboundstop is active. One represents only one
reboundstop is active. Two represents both reboundstops are active.
Requests
Request 902
Request 902 (req902) can output predefined tire results into the request (.req) and results (.res) files.
Input:
REQ/id, FUNCTION = USER(routing_code, reqtyp, tir_id)
Routine= abgTire::req902
where:
Wheelbase 1175
Requests
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
reqtyp = Integer code fixing the information output to the request file. The output for each
value of reqtyp is described in the Outputting Results.
tir_id = Tire GFORCE statement ID
Request 904
Request 904 (req904) used in Adams Car spring, damper, bumpstop and reboundstop UDE's and outputs
displacement magnitude, velocity and force in the direction of displacement, accelerations, and body side-
slip angle depending on the value of par(2) in the parameter list. Req907 is compatible with both dynamic
and steady-state type analyses.
Input:
REQ/id, FUNCTION = USER(routing_code, imarker, jmarker,rmarker,
zerolim, dmCalc)
Routine= abgFDM::req904
where:
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
imarker = ID of I marker
jmarker = ID of J marker
rmarker = (Optional) ID of reference marker
zerolim = (Optional) Result values smaller than zerolim (default is 1e-7) are returned as zero
dmCalc = (Optional) Initial displacement computed between the I and J markers
1176 Adams Car
Requests
Request 905
Request 905 (req905) used in Adams Car bushing UDE and outputs displacement, velocity, standard Adams
Car bushing forces, standard Adams bushing forces, and standard Adams vforce depending on the value of
par(2) in the parameter list.
Input:
REQ/id, FUNCTION = USER(routing_code, branch_id, imarker, jmarker,
force_id, rmarker, zerolim)
Routine= abgFDM::req905
where:
Wheelbase 1177
Requests
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
branch_id = Output branching flag:
1 = displacement
2 = velocity
5 = vforces
imarker = ID of I marker
jmarker = ID of J marker
force_id = ID of FIELD or BUSH or VFORCE element
rmarker = (Optional) ID of reference marker
zerolim = (Optional) Result values smaller than zerolim (default is 1e-7) are returned as zero
Request 906
Request 906 (req906) used in Adams Car to calculate the point on the road that is closet to a specified point
on a part. This works only with 3D (spline) roads.
Input:
REQ/id, FUNCTION = USER(routing_code, str_road_id, imarker, jmarker,
rmarker)
Routine= abgTire::req906
where:
Wheelbase 1179
Requests
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
str_road_id = String id of road property file
imarker = ID of marker on body
jmarker = ID of road reference marker
rmarker = ID of reference marker
Request 907
The definition of the parameters array and the resulting output is:
par(1) = Branch Flag 907
par(2) = Request Type:
0 = Displacement(Angles in radians)
1 = Velocities
(Translational vel. in KPH)
(Angular velocity in radians/s)
2 = Accelerations
(Translational acc. G's)
(Rotational acc. in radians/s/2)
3 = Body Side Slip Angle in Radians
par(3) = id I marker
par(4) = id J marker
par(5) = id RM marker
Any results with a magnitude less than 1e-7 are set to zero.
1180 Adams Car
Requests
Input:
REQ/id, FUNCTION = USER(routing_code,type,grm,zerolim)
Routine= abgVDM::req908
where:
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
type = request type
Request 909
Request 909 (req909) used in Adams Car joint force/motion UDE's and outputs displacement, velocity,
torque/force and acceleration.
Input:
REQ/id, FUNCTION = USER(routing_code, imarker, jmarker,
type_of_freedom, action_only_flag, array_id, zerolim)
Routine= abgFDM::req909
where:
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
imarker = ID of I marker
jmarker = ID of J marker
type_of_freedom = specify type of freedom
0 = Translation
1 = Rotation
5. (not used)
6. (not used)
Request 1001
Request 1001 (req1001) used in Adams Car to outputs turn radius, bank angle and longitudinal acceleration
in G.
Input:
REQ/id, FUNCTION = USER(routing_code)
Routine= abgVDM::req1001
where:
Description
routing_code = Used only when routine= is not specified to dispatch to the proper routine
Request 1090
Request 1090 (req1090) used in Adams Car to computes vehicle handling statistics. Refer to special request
Vehicle Dynamics.
Input:
REQ/id, FUNCTION = USER (routing_code, side,
left_wheel_center_marker_id, right_wheel_center_marker_id, length)
Routine= acarSDM::req901
where:
Description
routing_code = Used only when routine is not specified to dispatch to the proper
routine
side = 1=left, 2=right
left_wheel_center_marker_id = left wheel center marker id
right_wheel_center_marker_id = right wheel center marker id
length = Distance between the wheel center and the axis point written to
the .wev file for wheel envelope analyses.
Request 1103
Request 1103 (req1103) used in Adams Car to computes steering wheel rotation, pitman arm rotation or
rack translation, and (for steering gear w/ pitman only) rotation difference between steering wheel and
pitman arm. Refer to special request Steering Statistics.
Request 1106
Request 1106 (req1106) used in Adams Car to computes the ideal steer radius, average steer angle, outside
turn diameter, either linkage ratio or rack-and-pinion ratio, Ackerman angle, and percent Ackerman. Refer
to special request Turn Statistics.
Request 1117
Request 1117 (req1117) used in Adams Car to computes steering wheel angle, lower intermediate shaft angle,
steering gear input angle, as well as the torque at the steering wheel and in the column rag joint at each time
step. Refer to special request Steering Column Statistics.
Request 1114
Request 1114 (req1114) used in Adams Car to computes the translational and/or rotational vectors for any
displacement, velocity, acceleration, or force request. Refer to special request Vector Scaling.
Request 1131
Request 1131 (req1131) used in Adams Car to computes the front, rear, and percent total lateral load
distribution as well as the front and rear axle slip and neutral steer angles. Refer to special request Vehicle
Dynamics Parameters II.
Request 1090
Request 1090 (req1090) used in Adams Car to computes vehicle handling statistics such as lateral
acceleration, yaw rate, roll angle, pitch angle, body sideslip angle, and longitudinal velocity in standard testing
units. Refer to special request Vehicle Dynamics.
Request 1119
Request 1119 (req1119) used in Adams Car to computes instantaneous steering sensitivity, roll gradient,
sideslip gradient, understeer from steering wheel angle, and understeer from just the slip angles at each time
step. Refer to special request Vehicle Dynamics Parameters.
Instrumentation Requests 1185
Requests
Request 1121
Request 1121 (req1121) used in Adams Car to computes the longitudinal and lateral accelerations at the
accelerometer location. Refer to special request Body Acceleration as Measured by an Accelerometer.
Request 1115
Request 1115 (req1115) used in Adams Car to computes and scales string pot deflections at all four wheels
then calculates the roll and pitch of the body on the suspension. Refer to special request String Potentiometer
Processor.
Request 1140
Request 1140 (req1140) used in Adams Car to computes Turn radius is calculated by determining the lateral
velocity and lateral acceleration of I marker with respect to J marker in I marker's coordinate system. Refer
to special request Turn Radius.
Request 5150
Request 5150 (req5150) used in Adams Car to computes global gyro displacement.
Refer to special request. Request 5150.
Request 5160
Request 5160 (req5160) used in Adams Car to computes vehicles front lift/dive displacement.
Refer to special request. Request 5160
Request 5161
Request 5161 (req5161) used in Adams Car to computes vehicles rear lift/dive displacement.
Refer to special request. Request 5161
Request 1153
Request 1153 (req1153) used in Adams Car to computes wheel lift metrics.
Instrumentation Requests
Request 1121
Request 1121 (req1121) used in Adams Car for instrumentation of type acceleration. Refer to request Body
Acceleration as Measured by an Accelerometer.
The longitudinal and lateral acceleration are the components of the request.
1186 Adams Car
Rise-to-Curb
VARSUB 1109
Variable routine 1109 (var1109) used in Adams Car for creating request of instrumentation of type height.
Refer to solver routine Ride Height Marker Location.
The ride height is the component of the request.
Request 1139
Request 1139 (req1139) used in Adams Car for instrumentation of type height. Refer to request Corrected
Height Sensors.
Request 1124
Request 1124 (req1124) used in Adams Car for instrumentation of type stringpot. Refer to request Normalized
Distance Between MARKERS.
Request 1116
Request 1116 (req1116) used in Adams Car for instrumentation of type velocity. Refer to request Sideslip
Calculations using Q-Heads.
Request 1090
Request 1090 (req1090) used in Adams Car for instrumentation of type velocity to computes vehicle
handling statistics. Refer to special request Vehicle Dynamics.
Rise-to-Curb
Springs are designed to support a vehicle at a certain ride height (design height) at a certain load (design load).
When the vehicle's payload is reduced (for example removing passengers and/or cargo), the sprung mass of
the body is less than it is at design load, and the result is that the suspension "raises" the body.
The increase in suspension height between design load and the current (curb) load is defined as "rise-to-
curb".
Rise-to-curb is 0 when curb loading is equal to design loading.
Instrumentation Requests 1187
Road Data File
Roll Angle
Roll angle is measured by the inclination of the Test Rig tables.
Solver Routines
The Solver routines are divided into the following categories:
Motion subroutines
Control subroutines
Request subroutines
Coupler subroutines
Sforce subroutines
Differential Equation subroutines
SIMULATE/STATIC Routines
Field Element subroutines
Variable subroutines
Gforce subroutines
Vtorque subroutines
ID Description
910 Part Velocity Setting
1111 Full-Vehicle Static Vehicle Characteristics (SVC)
1112 Front Suspension Static Vehicle Characteristics (SVC)
1113 Rear Suspension Static Vehicle Characteristics (SVC)
1105 Front Suspension Auto Alignment. See Automated Suspension Alignment Routine.
1106 Rear Suspension Auto Alignment. See Automated Suspension Alignment Routine.
1109 Auto Ground Height Adjustment. See Ground Marker Height Adjustment.
1010 Fixed Body Equilibrium
1020 Static Steady-State Straight Line Equilibriumand Static Steady State Acceleration/Braking
1021 Quasi-Static Steady-State Straight Line Acceleration/Braking Equilibrium
1030 Static Steady-State Cornering Equilibrium
1031 Quasi-Static Steady-State Cornering Equilibrium
1032 Quasi-Static Steady-State Swept Steer Equilibrium
1140 Half Vehicle Rise to Curb Setting
1105 Auto-Aligner. See Automated Suspension Alignment Routine.
1106 Auto-Aligner. See Automated Suspension Alignment Routine.
1141 Half-Vehicle Predetermined Alignment Value Setting.
1142 Determination of Steering Wheel Angle from Steady State Cornering Analysis
1144 On-Center Handling Analysis
1149 Suspension Measurement (SPMM) Setup
1190 Adams Car
Solver Routines
ID Description
906 Standard Driver Interface
1199 Output of Simulation Specifics.
1152 Ride Height Auto-Adjustment (vehicles with coil springs)
ID Description
cou1110 Rotational to Translational Couplers using Splines
cou1120 Rotational to Rotational Couplers
ID Description
dif1101 4 pole filter
dif1102 Calculation of traction/braking controller errors
dif904 Calculation of steady state controller error
dif1110 Calculation of rise-to-curb controller errors
ID Description
910 This FIESUB reads the bushing specifications directly from the .adm deck, and returns the total
(stiffness plus damping) force, fi + ci, for any six-element bushing displacement and six-element
bushing velocity vector.
ID Description
gfo900 Interface to STI tire models
gfo1106 Interface to Adams 5.2.1 Tire model
gfo1102 Aerodynamic force application. See GFORCE: Aerodynamic Modeling
Instrumentation Requests 1191
Solver Routines
ID Description
mot1110 Application of Random Steer Input
mot1120 Reading motion time history data from file. See Motion Time History Trace Routine.
ID Description
sfo1100 Wheel velocity controller for tire model 0. See Wheel Velocity Controllers for Adams.
sfo1103 Viscous Coupling for Powertrain Models.
sfo1104 Aerodynamic force application. See SFORCE: Aerodynamic Modeling (Motorsports
Application)
ID Description
var1004 Wheel Rotational Velocity Calculation During Statics
var1100 Path-Following Steering Controller
var1102 Determination of Continuous Angular Displacement
var1103 Variable-Based Traction Controller for powertrain models
var1106 Extracting Request Output Through Variable Statements
var1107 Variable Based Braking Controller
var1108 Variable Based Traction Controller
var1109 Ride Height Marker Location
var1110 Determination of Marker Translational Velocity
var1111 Determination of Steering Wheel Angle from Steady State Cornering Analysis
var1112 Variables required for On-Center Handling Analysis
var1113 Variables required for On-Center Handling Analysis
var1114 Latching a Variable Value at a Given Time
var1117 Automatic Air Spring Trim Load Calculation
ID Description
vto1105 Drive Torque Application
vto1106 Brake Torque Application
vto1120 Drive Torque Application for Powertrain Models
Instrumentation Requests 1193
Solver Routines
Nonlinear Couplers
The custom FORTRAN subroutines includes the ability to model nonlinear couplers. Currently the options
available are:
Rotational to Translational Couplers using Splines
Rotational to Rotational Couplers using Splines
Solver Routines
Description
afoid = Id of array containing the all active adjustable force ids.
aprid = (Optional) Id of array containing the loading part ids for which mass is not
considered during adjustment.
svs_flag = (Optional) a flag to output DATOUT.
Description
id = Diff statement id
tlen = Trim length
imrk = Id of spring I marker
jmrk = Id of spring j marker
where:
Description
type = An integer value that specifies the value to be calculated.
1 – pitch angle
2 – roll angle
3 – side slip angle
imrk = Id for I marker
jmrk = Id for J marker
rmrk = Id for Reference marker.
scale = 1 - kph, 0 mph
int_branch = Internal branch id to specify correction to lateral acceleration.
1 - Ay in body frame, corrected with respect to roll and pitch (Ay as Adams
measures)
2 - Ay in body frame, uncorrected (Ay as an accelerometer would measure)
3 - Ay in body frame, corrected with respect to suspension roll and pitch
4 - Ay in body frame, uncorrected with respect to suspension roll and pitch
Description
id = VARIABLE id for VARIABLE
Description
gain = Controller gain
jprid = Id of the jprim whose error is computed.
comp = An integer value that specifies the component of the JPRIM force to be computed.
2 - x component of force
3 - y component of force
4 - z component of force
6 - x component of torque
7 - y component of torque
8 - z component of torque
rmrk = Id of the marker representing the coordinate system in which the force/torque is
measured.
gfoid = (optional) Id of GFORCE representing the Tire.
Input:
The syntax to access the routine for VARIABLE is as follows:
VARIABLE/id
, FUNCTION = USER(routing_code, branch_id, T1, T2, fT1, fT2, EPS, TMS,
add)
Routine= abgVDM::var912
The syntax to access the routine for MOTION is as follows:
MOTION/id, JOINT = ijt, type
, FUNCTION = USER(routing_code, branch_id, T1, T2, fT1, fT2, EPS, TMS,
add)
Routine= abgVDM::mot912
The syntax to access the routine for SFORCE is as follows:
SFORCE/id , FUNCTION = USER(routing_code, branch_id, T1, T2, fT1,
fT2, EPS, start_time, add)
Routine= abgFDM::sfo912
where:
1198 Adams Car
Solver Routines
Description
id = VARIABLE id for VARIABLE statement
1 = Ramp
2 = Step
T1 = Time of first edge
T2 = Time of second edge
fT1 = Value of the function f(T1)
fT2 = Value of the function f(T2)
EPS = Environment where rounding off take place
TMS = Mini-manuever start time
ADD = If set to greater than 1, fT2 = fT1 + FT2
Description
id = Diff statement id
imrk = Id of marker whose displacement is measured.
jmrk = Id of marker with respect to which imrk's displacement is
measured.
gain = Controller gain
Description
mot_ary = Id of array containing the necessary motions to deactivate.
jpr_ary = Id of array containing the necessary jprims to deactivate.
jnt_ary = Id of array containing the necessary joints to deactivate.
cpr_ary = Id of array containing the necessary couplers to deactivate.
job_flg = (Optional) flag indicating following scenario
where:
Description
jpr_ary = Id of array containing the necessary jprims, motions, sforce ids to perform the static
equilibrium
int_ss = Initial side slip angle in degrees.
fin_ss = Final side slip angle in degrees.
ss_nsteps = Number of steps for the side slip angle (that is, slip increment = (fin_ss - int_ss)/
ss_nsteps)
str_amp = Steering input amplitude in degrees.
str_frq = Steering input frequency in degrees.
dur = Duration for the output.
nsteps = Number of steps for the output.
bank = (Optional) bank angle in degrees with default being zero (deg)
positive value = road banks into corner (that is, outside of turn is higher than inside
of turn)
str_mot = (Optional). Steering motion Id. (Default motion id is 735 for Adams Car).
origo = (Optional). Marker defining the coordinate system is which model was created.
(Standard Adams Car models have vehicle forward as -X). Default marker id is 3
Tire Velocity
This routine will calculate the velocity and angular velocity of the tire belt part.
The syntax to access the Wheel Velocity is as follows:
VARIABLE/id, FUN=USER (906, comp, imrk, jmrk, rmrk)
where:
Description
comp = Velocity component which need to be calculated:
1 = vx, 2 = vy, 3 = vz
4 = wx, 5 = wy, 6 = wz
imrk = I marker of wheel spindle revolute joint
jmrk = J marker of wheel spindle revolute joint
rmrk = Reference marker in whose coordinate systems the velocities are determined.
Instrumentation Requests 1201
Static Load
Description
imrk = Id for I marker
jmrk = Id for J marker
rmrk = Id for Reference marker.
vdir = Vector direction id along which we need to measure:
1= x
2= y
3= z
vcom = Resolved vector component whose value is need:
1= x
2= y
3= z
Static Load
(Standard Interface) Simulate -> Suspension Analysis -> Create Loadcase -> Select Loadcase Type = Static Load
Creates a static load loadcase file. Learn about loadcase files with Setting up Suspension Analyses.
1202 Adams Car
Static Load
For the
option: Do the following:
Aligning Enter values for the left and the right wheel that fix the upper bound and the lower bound
Torque of the aligning torques applied between ground and tire patches at the contact patches
location.
Cornering Enter values for the left and the right cornering force, applied at the contact patch. ISO-
Force W Coordinates are used (positive is left from a drivers perspective). See Notes for reference
frame info
Braking Force Enter values for the left and the right wheel that fix the upper bound and lower bound of
the braking force applied between the test rig table and the wheels, at the tire contact
patch. Positive braking force acts in the direction of the rear of the vehicle. This is in the
negative direction of the ISO/Tydex coordinate system (see Notes).
Traction Force Enter values for the traction force, applied at the wheel center.
Vertical Enter values for the vertical wheel input.
Length/Force
Instrumentation Requests 1203
Static Load
For the
option: Do the following:
Vertical Input Select one of the options presented next:
This option: Lets you:
Contact Patch Height Control the height of the contact patch
point. The vertical actuators will move the
suspension in the range you specify in the
Vertical Length text box.
Wheel Center Height Control the height of the wheel center
points. The vertical actuators will move the
suspension in the range you specify in the
Vertical Length text box.
Wheel Vertical Force Control the absolute vertical force
generated by the tire.
For more information, see the About Axis Systems and Sign Conventions section.
1204 Adams Car
Static Load
For the
option: Do the following:
Damage Enter values for the left and right damage radius. The damage radius determines the
Radius position of the point of application of the damage forces:
A damage radius of 0 corresponds to damage forces applied directly at the wheel center
(therefore, at the origin of the ISO-C (TYDEX C) axis system).
A damage radius of 100 mm corresponds to damage forces applied to a point 100 mm
in the negative z direction of the ISO-C (TYDEX C) axis system.
For more information, see the About Axis Systems and Sign Conventions section.
Steering Input Select one of the following:
Notes: Positive values for bump and rebound travel move the wheel centers upward from the
design position. Negative values move the wheel centers downward.
Positive steering-wheel angle rotates the steering wheel counter-clockwise as if making a left
turn.
Positive rack displacement moves the rack toward the right side of the vehicle.
Forces and torques are expressed as follows:
Force: Point of application: Reference frame:
Lateral force (cornering) Contact patch TYDEX H ISO-W
Longitudinal force (braking) Contact patch TYDEX H ISO-W
Longitudinal force (acceleration) Wheel center TYDEX C ISO-C
Overturning moments Contact patch TYDEX H ISO-W
Rolling resistance torque Contact patch TYDEX H ISO-W
Aligning torque Contact patch TYDEX H ISO-W
For more information about reference frame, see the About Axis Systems and Sign Conventions
section in the Adams Tire online help.
Steer Axis
You need the steer axis of a suspension to compute suspension characteristics such as caster angle, kingpin
inclination, scrub radius, and caster moment arm.
When you create a suspension template in Adams Car, you must select the method that Adams Car will use
to compute the steer axis, and provide the necessary input information. You can use two methods to calculate
suspension steer axes:
Geometric - Adams Car calculates the steer axis by passing a line through the points you selected in
the Coordinate Reference text boxes. The Kingpin Location will be set to the I Coordinate Reference, so
be sure to choose a location on the wheel spin axis.
Instant axis - Adams Car calculates the steer axis as the instant axis of rotation of the wheel carrier
parts. To calculate the steer axis, in physical terms, Adams Car first locks the spring travel and
applies incremental steering torque or force. Then, from the resulting translation and rotation of the
wheel carrier part, it is able to calculate the instant axis of rotation for each wheel. The instant axis of
rotation corresponds to the steer axis.
1206 Adams Car
Steerable Axle
Steerable Axle
The steerable axle is modeled in the _quad_link_advanced template provided in the acar_concept database.
You can set subsystems based on this template to Steerable axle or Non-Steerable axle using design option
Steerable Axle.
The parameter variable pvs_steerable_axle is used to select steerable axle. Where, '0', '1' are mapped to
Inactive and Active respectively. It is used to activate appropriate groups created for the Steerable Axle.
Steering
(Standard Interface) Simulate -> Suspension Analysis -> Create Loadcase -> Select Loadcase Type = Steering
Creates a steering loadcase file. Learn about loadcase files with Setting up Suspension Analyses.
Strut Modeling
Struts are specialized dampers designed to take bending and damping loads in the suspension. The same two
damping definition options are available for a strut that are available for a shock. Struts are modeled with data
stored in strut property files. Strut property files are stored in the dampers.tbl subdirectory of a vehicle
database. The strut property files include three options for modeling the bending stiffness:
Rigid (no bending)
Simple bending
Complex bending
Instrumentation Requests 1207
Strut Modeling
As the wheel moves into jounce, the two bushings get further apart, making the strut conically stiff to
bending.
When the wheel moves into rebound, the two bushings coming together decreases the conical stiffness,
therefore increasing the strut bending.
To provide the radial compliance of each part, the beam stiffness properties are programmed into a subroutine
linked in to the Adams model. The radial compliance of the outer tube, inner tube, and piston are linked
from the Adams data set to the subroutine code through several GFORCE statements. The axial stiffness of
the strut is provided by an Adams BEAM statement that connects the inner tube base with the rod guide.
The rod guide lash and piston lash are modeled as piecewise linear bushings, and the base cup is modeled as
a linear bushing.
Instrumentation Requests 1209
Strut Modeling
Subframe
Subframe allow you to remove subframe part from the model and add it with complaint or kinematic mode.
The hidden parameter variable phs_subframe is used to change subframe activity. Where, '0', '1' and '2' are
mapped to None, Compliant and Kinematic respectively. It is used to activate appropriate groups created for
the subframe activity.
The switch part is created to toggle an attachment of the subframe based on the selection of the choices of
the subframe Design Options. If subframe is inactive, suspension parts are attached to the mount part which in
turn gets attach to the part specified in the output communicator of type mount.
Subframe MidMounts
Subframe Midmounts allow you to use up to eight subframe mounts for a front or rear suspension.
The parameter variable pvs_subframe_midmounts is used to change number of subframe midmounts.
Where, '0', '1', '2' and '3' are mapped to None, Front Only, Rear Only and Both respectively. It is used to
activate appropriate groups created for the subframe mid-mounts.
Instrumentation Requests 1211
Suspension Assembly
Suspension Assembly
An suspension assembly is comprised of suspension and steering subsystems and a suspension Test Rig.
A steering subsystem, however, does not have to be present in a suspension assembly. For example, a rear
suspension assembly, in most circumstances, would not contain a steering subsystem.
Suspension Parameters
Suspension parameters describe the vehicle in which you want to use the suspension. Adams Car uses, for
example, the parameters wheelbase, cg_height, and sprung mass to calculate the fore-aft weight transfer
during braking and acceleration. Adams Car then uses weight transfer to calculate dive and lift suspension
characteristics.
Once you set the parameters in an Adams Car session, Adams Car uses those settings for all suspension
analyses until you reset the parameters.
If set to active, an additional upper strut dual part and the top mount dual bush is activated. The Upper strut
dual part is connected to camber adjuster with the top mount dual bush. The custom macro connect the
spring to part upper strut dual using the switch part options.
Roll Steer
The Overall Steering ratio (kinematic) calculated using simplified calculations: we assume that linkages are
nearly perpendicular to each other at design (normally a good assumption). Please note that the overall
steering ratio will change with steering wheel angle, but for now we are using the single number calculated at
design. In the future more rigorous calculations could be added using an Adams User routine that calculated
the kinematic overall steering wheel ratio at each instant. Please see Appendix B for the overall steering ratio
calculations for the different steering systems.
Sign Conventions
Lateral acceleration is positive to the right, roll angle is positive to the left. So, in a left turn, lateral acceleration
and roll angle are both negative. Positive roll steer percentages, front and rear, indicate toe out for the outside
tire, toe in for the inside tire. Therefore, a positive front roll steer percentage is an understeer effect, while a
positive rear roll steer percentage is an oversteer effect. Toe-out is negative, toe-in is positive.
Toe Angles
The four toe angles of the vehicle play an important role in calculating the understeer budget gradients. It is
only through the toe angles that we can calculate suspension compliance steer. It is important to understand
the various components of these toe angles.
When dealing with front toe angles, the assumption is made that the signs of the toe angles won't change
during a constant radius maneuver (In a left turn, the right front tire will always be toed in, the left front tire
will always be toed out). Because of this, we can calculate average front toe by averaging the absolute values
of the front toe angles. This average toe is then used to help calculate the front suspension compliance steer.
Figure 1 shows the components of front toe.
Figure 1. Front Toe Angle Components
1218 Adams Car
Understeer Budget Calculations
As we can see from Figure 1, if roll steer and lateral compliance are understeer effects, they will act to reduce
the average toe angle. Notice that the figure does not include toe angles due to alignment. This is because the
understeer budget numbers are gradients, which are the change in various quantities as lateral acceleration
changes. An alignment value for toe has no effect on these gradients.
Using Figure 1, we arrive at the following expression for front toe.
(1)
Instrumentation Requests 1219
Understeer Budget Calculations
(2)
Eqn.(2) is set up so that when the individual quantities are positive, they indicate understeer. This is why the
absolute value of roll angle is used, RSF is a signed quantity that indicates roll understeer when positive.
For rear toe, we can not make the assumption that the signs of the toe angles won't change. Because of this
we need a different way to represent rear average toe. Figure 2 shows the components of rear toe.
Figure 2. Rear Toe Angle Components
Rear toe angles are a function of roll steer and suspension compliance. Since these can be either understeer
or oversteer effects, we can not use absolute values to calculate average rear toe: we must use actual toe values
and account for the direction of turn. The sign convention for all toe angles is toe-in is positive, toe-out
negative. In a left hand turn something that makes the right rear tire toe-in and left rear tire toe-out has an
understeer effect. Using this and the fact that
1220 Adams Car
Understeer Budget Calculations
roll angle is negative in a left turn, we derive the expression for rear average toe.
This expression will give a positive value when the rear suspension has overall understeer. Eqns. (3) and (4)
are written such that a positive value for dRear Suspension Compliance indicates rear compliance understeer.
The roll steer term is signed differently than the front roll steer because a positive value for RSR indicates
oversteer.
(3)
(4)
Gradient Calculations
All of the understeer budget gradients are calculated so that a positive value indicates an understeer effect on
the vehicle. The following sections list the individual gradients, all with units (deg/g), that make up the
understeer gradient. The gradients are calculated across .25g by taking the difference between the values at
.3g and .2g, and dividing by .1g.
Weight Distribution and Tires
(5)
(6)
Roll Steer
Instrumentation Requests 1221
Understeer Budget Calculations
(7)
(8)
Steering System Compliance Steer and Front Suspension Compliance Steer
Steering System Compliance Steer is the understeer effect due to upstream steering system compliance, i.e.
compliance between the steering wheel and the steering gear. Downstream steering system compliance effects
will be lumped into Front Suspension Compliance Steer. For example, understeer effects due to tie rod ball
bushing stiffness will show up in the front suspension compliance number.
Rack-and-Pinion Steering System
(9)
(10)
Pitman, Haltenberger, and Relay Steering Systems
(11)
(12)
Rear Suspension Compliance Steer
1222 Adams Car
Understeer Budget Calculations
(13)
Relay
1224 Adams Car
Welcome Dialog Box
The draglink steering arm length is the distance from the draglink to spindle connection to the kingpin axis.
The other steering arm lengths are the distances from the tie rod ends to the kingpin axes.
The above calculations pertain to the draglink attached to the right spindle. For draglink attachment to left
spindle, reverse LSR and LSL.
Description
In Adams Car, Wheel Force Transducers are used to mimic data acquisition devices that attach to the
spindle/hub (part which attaches to wheel using suspension mount communicator) by fixed joint.
By attaching WFTs, it helps with correlation to the data acquired by test engineers for wheel loads and
displacements during vehicle simulations.
In Adams Car, generally the upright part is connected to the spindle by a revolute joint and the spindle is
connected to the wheel by a fixed joint.
If you activate WFT in the model, the WFT part connects to the spindle by fixed joint. By default WFT's
cm marker is located at wheel center location.
The wft_offset parameter is where you enter the distance, the WFT is offset outboard from the wheel center
(negative value means offset is inboard from wheel center). The Wheel Transducer Force measurement is
performed at the fixed joint between spindle and wheel.
1226 Adams Car
Wheel Force Transducer
Wheel Travel
(Standard Interface) Simulate -> Suspension Analysis -> Create Loadcase -> Select Loadcase Type = Wheel Travel
Creates a wheel travel loadcase file. Learn about loadcase files with Setting up Suspension Analyses.
Left
Right
1228 Adams Car
Wheel Travel