Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Adams Car

Download as pdf or txt
Download as pdf or txt
You are on page 1of 1068

Welcome to Adams Car

About Adams Car


Adams Car, part of the Adams® 2021 suite of software, is a specialized environment for modeling vehicles. It
allows you to create virtual prototypes of vehicle subsystems and analyze the virtual prototypes much like you
would analyze the physical prototypes.
Using Adams Car, you can quickly create assemblies of suspensions and full vehicles, and then analyze them
to understand their performance and behavior.
You create assemblies in Adams Car by defining vehicle subsystems, such as front and rear suspensions, steering
gears, anti-roll bars, and bodies. You base these subsystems on their corresponding standard Adams Car
templates. For example, Adams Car includes templates for double-wishbone suspension, MacPherson strut
suspension, rack-and-pinion steering, and so on.
If you have expert-user access, you can also base your subsystems on custom templates that you create using
the Adams Car Template Builder.
When you analyze an assembly, Adams Car applies the analysis inputs that you specify. For example, for a
suspension analysis you can specify inputs to:
 Move the wheels through bump-rebound travel and measure the toe, camber, wheel rate, roll rate,
and side-view swing arm length.
 Apply lateral load and aligning torque at the tire contact path and measure the toe change and lateral
deflection of the wheel.
 Rotate the steering wheel from lock to lock and measure the steer angles of the wheels and the
amount of Ackerman, that is, the difference between the left and right wheel-steer angles.
Based on the analysis results, you can quickly alter the suspension geometry or the spring rates and analyze
the suspension again to evaluate the effects of the alterations. For example, you can quickly change a rear
suspension from a trailing-link to a multi-link topology to see which yields the best handling characteristics
for your vehicle.
Once you complete the analysis of your model, you can share your work with others. You can also print plots
of the suspension characteristics and vehicle dynamic responses. In addition, you can access other users'
models without overwriting their data.

Benefits of Adams Car


Adams Car enables you to work faster and smarter, letting you have more time to study and understand how
design changes affect vehicle performance.
Using Adams Car you can:
 Explore the performance of your design and refine your design before building and testing a physical
prototype.
2 Adams Car
About 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.

Adams Car Standard Interface


Adams Car has two interface modes: Standard Interface and Template Builder. This topic explains how to start
Adams Car Standard Interface.

To start in the Windows environment:


1. From the Start menu, point to Programs, point to Adams 2021, and then select Adams Car.
The Welcome Dialog Box appears on top of the Adams Car main window.
2. Do one of the following:
• If the Welcome dialog box contains the options Standard Interface and Template Builder, select
Standard Interface, and then select OK.
• If the Welcome dialog box does not contain any options, then Adams Car is already configured
to run in standard-interface mode. Select OK.
The Adams Car Standard Interface appears.

To start in the Linux environment:


1. At the command prompt, enter the command to start the Adams Toolbar, and then press Enter. The
standard command that MSC Software provides is adamsx, where x is the version number, for
example adams2021.
The Adams Toolbar appears.
2. Select the Adams Car tool .
The Welcome Dialog Box appears on top of the Adams Car main window.
3. Do one of the following:
• If the Welcome dialog box contains the options Standard Interface and Template Builder, select
Standard Interface, and then select OK.
• If the Welcome dialog box does not contain any options, then Adams Car is already configured
to run in standard mode. Select OK.
The Adams Car Standard Interface appears.
6 Adams Car
Interfaces and Access

Adams Car Template Builder


Adams Car has two interface modes: Standard Interface and Template Builder. This topic explains how to start
Adams Car Template Builder.
Before you start Adams Car Template Builder, make sure that your private configuration file, .acar.cfg, shows
that you have expert-user access. Your private configuration file is located in your home directory.

To check user access:


1. In a text editor, such as jot or notepad, open .acar.cfg.
2. Verify that the following line appears as shown:
ENVIRONMENT MDI_ACAR_USERMODE EXPERT
This line sets the user mode for the Adams Car session.

To start in the Windows environment:


1. From the Start menu, point to Programs, point to Adams 2021, and then select Adams Car.
The Welcome Dialog Box appears on top of the Adams Car main window.
2. Select Template Builder.
3. Select OK.
The Adams Car Template Builder window appears.

To start in the Linux environment:


1. At the command prompt, enter the command to start the Adams Toolbar, and then press Enter. The
standard command that MSC Software provides is adamsx, where x is the version number, for
example adams2021.
The Adams Toolbar appears.
2. Select the Adams Car tool .
The Welcome Dialog Box appears on top of the Adams Car main window.
3. Select Template Builder.
4. Select OK.
The Adams Car Template Builder window appears.

Interfaces and Access


You can use Adams Car through two different interfaces depending on your user access.

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.

To switch between modes:


Do one of the following:
 From the Tools menu, select [Product Name] Standard Interface or select [Product Name]
Template Builder.
 Press F9.

About User Access


Your access to the standard-interface or template-builder mode depends on your assigned user access:
 Standard user - Standard users do not have access to the Template Builder, only to the Standard
Interface. Therefore, the standard user cannot make topological modifications to templates, but can
operate on subsystems, varying design parametrics and analysis inputs.
 Expert user - Expert users have access to modeling capabilities available in theTemplate Builder.
Therefore, expert users can open templates and modify their topological information, as well as
create new templates.
If you are an expert user, when you launch your Adams product, it prompts you to select either
Standard Interface or Template Builder.

Setting User Access


You use the MDI_ACAR_USERMODE keyword in your private configuration file to set your user access, which
determine you access to the Template Builder and other development tools. Your private configuration file is
found at $HOME/.acar.cfg, where $HOME is the location of your home directory.

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

You can set USERMODE to:


 STANDARD - User can only access the Standard Interface.
 EXPERT - User can access the Template Builder and create and modify templates. User can access
the Template Builder and other development tools that are located under the Tools menu. Expert
users can use the MDI_ACAR_PLUS_AVIEW keyword in the private configuration file to access
Adams View. Learn about accessing Adams View.
To change the value of this keyword, you must edit the private configuration file (.acar.cfg) using a text editor
and modify the corresponding string. The following gives you expert access:
! Desired user mode (standard/expert)
ENVIRONMENT MDI_ACAR_USERMODE EXPERT
When you start a new session, your template-based product reflects the changes to the private configuration
file.

Navigating Through a Modeling Database


The Database Navigator helps you view, select, and modify objects in your Modeling database.
Learn more:
 About the Database Navigator

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

Viewing Information About Your Model


 Viewing Model Topology Through the Database Navigator
 Viewing the Associativity of Objects
 Viewing Object Information Through the Database Navigator
 Viewing Model Topology Map Through Information Window
Learning the Basics 9
Navigating Through a Modeling Database

About the Database Navigator


The Database Navigator has several modes in which you can display object information. It can be set to just
let you browse for objects or you can set it to rename objects, view information about the objects, such as
view how the object relates to other objects, and view dependencies.
The Database Navigator only displays the types of objects that are appropriate for the command you are
executing. For example, if you are renaming a model, it only displays models in your database. On the other
hand, if you are searching for any modeling object in the database, it displays all types of modeling objects.
You can also set a filter for the types of objects that the Database Navigator displays.
The Database Navigator shows objects in their database hierarchy. The following figure shows the Database
Navigator with the top-level modeling objects in a small database that contains one model, model_1 . These
objects do not have parents. Double-click the name of a model, in this case model_1, to find all the objects
belonging to that model.

To display the Database Navigator, do any of the following:


 From the Tools menu, select Database Navigator.
 Execute an editing command, such as Modify, from the Edit menu when no object is currently
selected.
10 Adams Car
Navigating Through a Modeling Database

 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.

Showing, Hiding, and Selecting Objects in the Database Navigator


In the Database Navigator Tree list,a plus (+) in front of an object indicates that the object has children below
it but they are hidden. A minus (-) indicates that all objects immediately below the object are displayed.

To show or hide objects below a single object:


 Double-click an object with a plus or minus by it.

To expand or collapse all objects by one level:


 In the lower right corner of the navigator window, select the + or - button.

To hide all objects:


 In the lower right corner of the navigator window, select the -- button.
You can use the Database Navigator to select any object in the database. You can also select more than one
object to complete a command. You can create a list of selected objects on which to perform options by
choosing Select List from the pull down menu at the top of the Database Navigator.

To select a single object:


 In the tree list, click the object and select OK. If the Database Navigator is not in multi-select mode,
you can also double-click the object to select it.

To use the mouse to select a continuous set of objects:


1. In the tree list, drag the mouse over the objects you want to select or click on one object, hold down
the Shift key, and click the last object in the set. All objects between the two selected objects are
highlighted.
2. Select OK.

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.

To select a noncontinuous set of objects:


1. In the tree list, click on an object, hold down the Ctrl key, and click on the individual objects you
want to select.
2. Select OK.
Learning the Basics 11
Navigating Through a Modeling Database

To clear any selection in the tree list:


 Hold down the Ctrl key and click the selected object to clear its highlighting.

Managing the Select List


You can use the Database Navigator to view objects you've selected using the procedures explained in Showing,
Hiding, and Selecting Objects in the Database Navigator. The list of objects is called the Select list. You can also add
and remove objects from the Select list.

To view the select list:


 From the pull-down menu, select Select List.
The selected objects appear in the text box to the right.

To add objects to a select list:


1. From the pull-down menu, select Select List.
2. From the Tree list or Main Window, select the objects to be on the select list as explained in the previous
section.
3. Select Add.
4. Select Apply.

To remove objects from the select list:


1. From the pull-down menu, select Select List.
2. From the list that appears on the right, select the objects to be removed.
3. Select Remove.
4. Select Apply.

To clear all objects from the select list:


1. From the pull-down menu, select Select List.
2. Select Clear.
3. Select Apply.

Filtering Objects in the Database Navigator


You can filter the types and names of objects that you want displayed in the Database Navigator to narrow
the display to exactly what you want or to broaden the display using wildcards. For example, you can narrow
the display to only parts or broaden the display to include all objects that begin with a particular character,
such as an h.
12 Adams Car
Navigating Through a Modeling Database

To set the filter of the Database Navigator:


1. In the Filter text box, enter the name of the objects that you want to display. Type any wildcards that
you want to include.
2. From the pull-down menu, select the type of object or objects that you want to display in the
Database Navigator. To select from all the different object types in the modeling database, select
Browse.
3. Select OK.

Sorting Objects in the Database Navigator


You can sort objects in the Database Navigator by their name or type, such as parts or geometry. You can also
select to not sort the object so the objects appear in the Database Navigator in the order they are stored in the
modeling database.
Note that sorting by name can be slow for objects with very long names. Setting no sorting is the fastest way
to see objects.

To sort objects in the Database Navigator:


 At the bottom of the Database Navigator, from the Sort by pull-down menu, select how you'd like
the objects sorted.

Setting Highlighting in the Database Navigator


You can set up the Database Navigator so that whenever you select an object in the tree list, it also appears
selected in the main window and the reverse. Highlighting is off by default.
To toggle highlighting:
 Select Highlighting.

Setting Appearance of Objects Through the Database Navigator


Through the Database Navigator, you can set how individual, types of objects, and children of objects appear
in your template-based product.
You can set:
 Visibility of the object and of its name on the screen.
 Color, line style, line width and transparency of the object. For example, you can set the color of the
object’s outline or its name.
 Size of the screen icons that represent the object in your model. Note that these changes take
precedence over the size you specify globally for the modeling database.
 State of the object during a simulation: active or inactive.
Learning the Basics 13
Navigating Through a Modeling Database

To set the appearance of objects:


1. Select an object from the Database Navigator Tree list.
2. Use the options in the dialog box to set the appearance of the object. To inherit an attribute from a
parent of the object, select None from any of the pull-down menus. Learn more with Display Attribute
dialog box.

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.

Renaming Objects Through the Database Navigator


You can use the Database Navigator to rename any object.

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.

Adding Comments Through the Database Navigator


You can use the Database Navigator to associate comments with any object in the Modeling database.

To associate comments with an object:


1. From the Database Navigator pull-down menu, select Comments.
2. From the Tree list or Main Window, select an object.
3. In the text box that appears to the right, type or modify the comments associated with the object.
4. Select Apply.
14 Adams Car
Navigating Through a Modeling Database

To save the comments in a file:


 Select Save to File.

Viewing Model Topology Through the Database Navigator


The model topology map displays information about the parts in your model and determines what
constraints are owned by the model and what parts the constraints connect. The information appears in the
window on the right of the Database Navigator.
You can view the part connection information in the following ways:
 By part - Lists each part in the model, along with the parts it is connected to and what constraints or
forces are affecting it. See Model Topology by Part.
 By connections - Displays each constraint and force with the parts they connect and act on. Also
displays any unconnected parts. See Model Topology by Connections.
 Graphically - Displays a representation of the selected part and shows its connections to other parts.
See Graphically Viewing Model Topology.

To display model topology of parts and connections:


 From the Database Navigator pull-down menu, select Topology by Parts or Topology by
Constraints.

To graphically view the topology of parts:


1. From the Database Navigator pull-down menu, select Graphical Topology.
2. From the Tree list or Main Window, select an object.

Model Topology by Part


You can select to have your template-based product list each part in the Model, along with the parts it is
connected to and what constraints or forces are affecting it. For example, the following shows the information
that appears in the Information window or Database Navigator when you display the connections by parts for a
model called model_1.
Topology of model: model_1
Ground Part: ground

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)

Model Topology by Connections


When you select to display model topology by connection, your template-based product displays each
constraint and force with the parts that they connect and act on. Your template-based product also displays
any unconnected parts. The following sample shows the information that appears when you select to display
topology by connections for a model with three parts, named model_1.
Topology of model: model_1
Ground Part: ground

JOINT_1 connects LINK_2 with ground (Revolute Joint)


JOINT_2 connects LINK_3 with LINK_4 (Revolute Joint)
JOINT_3 connects LINK_2 with LINK_3 (Revolute Joint)

Unconnected Parts:
LINK_1

Graphically Viewing Model Topology


In graphical topology, the Database Navigator displays a representation of the selected part and shows its
connections to other parts. The connections represent the joints or forces between the parts.
Each time you select a different part in the Tree list of the Database Navigator, the graphical display changes
to show the select part at its center.
16 Adams Car
Navigating Through a Modeling Database

Viewing the Associativity of Objects


You can use the Database Navigator to display the objects that a selected object uses. For example, you can select
a joint in the Tree list to show the I and J markers that the joint uses. You can also select to view the objects
that use the selected object.

To view the associativity of objects:


1. From the Database Navigator pull-down menu, select Associativity.
2. Set the associativity:
• To show the objects that the selected object uses, select Uses.
• To show the objects that use the selected object, select Is Used By.
3. From the tree list or Main Window, select an object.
The objects associated with the selected object appear in the text box to the right.
Learning the Basics 17
Navigating Through a Modeling Database

To set up automatic navigation of the objects:


 Select Auto Navigate.

To save the current associativity information to a file:


 Select Save to File.

About Auto Navigation


When you select Auto Navigate, the Database Navigator lets you view the associativity of objects that you
select from the Tree list and any objects listed in the window on the right. For example, if you have a model
with a joint motion, and then select to view the associativity of that motion, you see a joint listed in the right
window, as shown below.
With Auto Navigate selected, you can just select that joint from the right window to view its associativity. If
it were not selected, you would have to select the joint from the tree list to view its associativity. In addition,
when you select the joint in the right window, the Database Navigator also highlights it in the tree list.

Viewing Object Information Through Database Navigator


You can use the Database Navigator just as you would use the Information window to display information about an
object.
18 Adams Car
Working with the Information Window

To display object information:


1. From the Database Navigator pull-down menu, select Information.
2. From the Tree list or Main Window, select an object.
The information about the object appears in the window to the right.

To save the information to a file:


 Select Save to File.

To return to the information about a previous object:

 Select .

Viewing Model Topology Map Through Information Window


The model topology map displays information about the parts in your Model and determines what
constraints are owned by the model and what parts the constraints connect. The information appears in the
Information window.
You can view the part connection information in two ways:
 By part - Lists each part in the model, along with the parts it is connected to and what constraints or
forces are affecting it. See Model Topology by Part.
 By connections - Displays each constraint and force with the parts they connect and act on. Also
displays any unconnected parts. See Model Topology by Connections.

To display model topology by parts, do one of the following:


 From the Tools menu, select Model Topology Map.
 In your template-based product, on the Status Bar, from the Information tool stack, select the Model

Topology by Parts tool .

To display model topology by connections:


 On the status toolbar, from the Information tool stack, select the Model Topology by Constraints

tool .

Working with the Information Window


Your template-based product uses the Information window to display many different types of information
about your model, Simulation, and so on. In addition to just viewing information about your model, you can
perform a variety of operations in the Information window. For example, you can display additional
Learning the Basics 19
Working with the Information Window

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

Displaying Object Information and Accessing Information Window


You can display information about each object in your Modeling database, including parts, geometry,
motion, and markers. Learn about Markers.
You can view the information about an object currently on the screen or any object in the database, including
the Main window or dialog boxes.
When you display information about the objects in your modeling database, your template-based product
displays information specific to that type of object. For example, when you display information about a rigid
body in your model, your template-based product displays information about its material content, inertial
properties, initial conditions, orientation, velocity, and more. When you display information about a motion,
your template-based product displays information about the type of motion it is, its function, and time
derivative.

To display information about a modeling object displayed on the screen:


 Right-click the object on the screen, and then select Info.

Tip: You may want to zoom in on the object on the screen to more easily place the cursor
over just that object.

Information about the object appears in the Information window.

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.

Displaying Parent and Children Information


Each object in the database has an object that owns it, called its parent, and many objects own other objects,
called their children. The top-level objects in the database are models, plots, and interface objects, called gui
objects. These objects do not have parents. You can display information about the parent or children of the
object currently displayed in the Information window.
If an object has a parent, the type of parent it has appears in the Information window under the heading
Parent Type and the name of the parent is placed in front of the name of the object in the Object Name
heading. For example, for the part LINK_2, its parent type and name appear in the Information window, as
shown next:

To display an object's children:


 In the Information window, select Children.

To display an object's parent, do one of the following:


 In the Information window, select Parent.
 In the Information window, place the text cursor in the name of the parent and select Apply.

Displaying an Object's Modify Dialog Box from the Information Window


When information about an object is displayed in the Information window, you can access that object's modify
dialog box so you can modify the object.

To access an object's modify dialog box from the Information window:


 In the Information window, place the text cursor in the name of the object and select Modify.
Learning the Basics 21
Working with the Information Window

Clearing the Information Window


Each time you request information in the Information window, your template-based product adds the
information to the bottom of the Information window without removing the current information. You can
remove all current information.

To clear the Information window:


 In the Information window, select Clear.

Saving Information in the Information Window


You can save the contents of the Information window to a text file.

To save the contents of the information to a text file:


1. In the Information window, select Save to File.
The Select File dialog box appears.
2. Select the directory in which you want to place the file.
3. In the File Name text box, enter the file name.
4. Select Open.

Displaying a Text File in the Information Window


You can display any text file in the Information window. You will find this helpful if you want to display an
information file that you saved or you are creating a demonstration of your model using a command file and
you want to display information about a particular object or aspect of the demonstration.

To display a text file when the Information window is already displayed:


1. In the Information window, select Read from File. dialog box appears.
2. Select the directory in which you want to place the file.
3. Highlight the file that you want to open in the list, or type the file name in the File Name text box.
4. Select Open.

To display a text file when the Information window is not displayed:


1. On the Tools menu, select Show File.
The Info Window Read dialog box appears.
2. In the File Name text box, you can either:
• Enter the name of the file.
• Browse for a file: right-click the File Name text box, and then select Browse to display the File
Selection dialog box.
22 Adams Car
Working with the Information Window

3. Select OK.
The Information window appears with the text of the file as its content.

Copying Text in the Information Window


You can copy any text in the Information window for use in another window, dialog box, or application. You
cannot paste or delete any text in the window.

To copy text in the Information window:


1. Highlight the text that you want to copy.
2. Right-click the Information window and select Copy.

Setting the Information Mode


By default, the Information window displays only a part's parent and type. To display more information about
the part, you can turn on verbose mode. When you turn on verbose mode, the Information window displays
the children of the object, its geometry, whether or not comments are associated with it, and its attributes,
such as its color and visibility.

To turn on verbose mode:


 Select the Verbose check box.

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

Tips on Using Wildcards


Here are some tips for entering wildcards:
 Case is insignificant, so xYz is the same as XYz.
Learning the Basics 23
Setting Preferences

 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

Setting Screen and Printer Fonts


You can change the font your template-based product uses to display text in a view, such as the name of a part
or a note on the screen, or to print text to a printer. The fonts available for displaying text in a view are those
available with your operating system. The fonts available for printing text are a fixed set of 12 fonts. Note
that your printer may not support all of these printer fonts. Learn about Printing Models.

To select a screen or printer font:


1. On the Settings menu, select Fonts.
The Fonts dialog box appears.
2. In the Screen Font text box, enter the name of the font you want your template-based product to use
to display text in a view. To browse for a font, right-click the text box, select Browse, and then select
a font.
3. Set Postscript Font to the font you want to use to print text.
24 Adams Car
Setting Preferences

4. Select OK.

Specifying Working Directory


By default, your template-based product searches for and saves all files in the directory from which you ran
your template-based product. You can change the working directory.

To change the working directory for the current session:


1. On the File menu, select Select Directory.
Select the directory in which your template-based product should save files.
2. Select OK.
You can also set the working directory when you start your template-based product. Learm about Starting a
New Modeling Session.

To change the working directory for all sessions:


On Linux:
1. From the Adams Toolbar, right-click your template-based product's tool, and then select Change
Settings.
2. In the Registry Editor, select WorkingDirectory, and then change the working directory.
For more information see Running and Configuring Adams.
On Windows:
1. On the Desktop, right-click your template-based product's shortcut, and select Properties.
2. In the Start In text box, enter the working directory.
For more information, see your Windows online help.

Setting Units of Measurement


You can set the units that your template-based product uses in modeling, importing, and exporting files. You
can select individual units or select a set group of units. Learn about Units of Measurement in Adams View.

To set the unit of measurement:


1. On the Settings menu, select Units.
The Units Settings dialog box appears.
2. Select the unit of measurement for each of the dimensions using the table below for assistance.
3. Select OK.
Learning the Basics 25
Setting Screen Icon Display

To Select: Do the following:


Unit for a specific Select the individual unit from the pull-down menu associated with the dimension.
dimensions
Predefined unit Select one of the following buttons. In all the unit systems, time is in seconds and
system angle is in degrees. When you select a predefined unit system, the units selected
appear in the upper portion of the dialog box.

 MMKS - Sets length to millimeters, mass to kilograms, and force to


Newtons.
 MKS - Sets length to meters, mass to kilograms, and force to Newtons.
 CGS - Sets length to centimeters, mass to grams, and force to Dyne.
 IPS - Sets length to inches, mass to pound mass, and force to PoundForce.

Setting Screen Icon Display


When you first start your template-based product, it displays Screen icons. As you add objects to your model,
however, these icons can clutter your view of the model. To clear the display of a window, you can turn off
the icons. You can select to turn off:
 All icons
 Only icons of certain types of objects, for example, all joints
 Only icons for individual objects, such as FORCE_1
In addition, you can set the size of the icons either in current units or as a factor of their current size.
Learn more about how to set the display of screen icons by database and object type.
 Setting Screen Icon Display by Database
 Setting Screen Icon Display by Object Type
For information on quickly toggling the display of all screen icons, see Displaying View Accessories. For
information on setting the display of icons for individual objects, see Setting Object Appearance through Edit
-> Appearance Command.

Setting Screen Icon Display by Database


You can set up how you want Screen icons to be displayed for an entire Modeling database. By default, all
models and objects in the modeling database inherit the screen icon settings that you specify for the database.
You can, however, override the inheritance for different types of objects as explained in Setting Screen Icon
Display by Object Type, or for individual objects as explained in Setting Object Appearance through Edit ->
Appearance Command.

To set up the screen icon display for the entire database:


1. On the Settings menu, select Icons.
26 Adams Car
Setting Screen Icon Display

The Icon Settings Dialog Box appears.


2. Set New Value to one of the following to select whether or not you want to turn on screen icons:
• No Change - Select No Change to not change the current settings.
• On - Turns on all icons regardless of how you set the icon display for individual objects or types
of objects.
• Off - Turns off all icons regardless of how you set the icon display for individual objects or types
of objects.
3. In the New Size text box, enter the size you want for the screen icons. Note that any changes you
make to the size of icons for individual objects or types of objects take precedence over this size setting.
4. To save the settings for each new database in your template-based product settings file (*BS.cmd),
select Save new size as default. Learn about Saving and Restoring Settings.
5. Select OK.

To reset the screen icon display to the previous values:


 On the Icon Settings dialog box, select Reset.

Setting Screen Icon Display by Object Type


You can set up how you want Screen icons displayed for a particular type of object, such as all parts or joints.
By default, all objects inherit the screen icon display options that you specify for the modeling database. You
can set screen icon options for the following types of objects:

 Part (also called Bodies)


 Joints
 Forces
 Motion
 Markers (Note that markers belong to parts and, therefore, by default, inherit screen icon display
options for parts.)
 Points
 Data elements
 Equations (System elements)

To set screen icon display options for objects of a particular type:


1. On the Settings menu, select Icons.
The Icon Settings Dialog Box appears.
2. Set Specify Attributes for to the type of object for which you want to set the screen icon options.
3. From the Visibility area of the Icon Settings dialog box, select whether or not you want to turn on
screen icons for the selected object type. You can select:
• On - Turns on the display of screen icons for the selected type of object.
Learning the Basics 27
Setting Display Options

• 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.

Setting Display Options


Learn about:
 Setting Part Display
 Displaying View Accessories
 Setting Rendering Mode
 Displaying the Status Toolbar

Setting Part Display


You can set the Main window so it displays a particular part in the current Model. You will find this helpful
when you want to compare or work with different parts at the same time.

To display a single part in the main window:


1. Click the main window.
2. From the View menu, select Part Only.
The Database Navigator appears listing the parts in the current model.
3. Select the part you want to display.
4. Select OK.
The selected part appears in the currently active view.
28 Adams Car
Setting Display Options

Displaying View Accessories


When you first start your template-based product, it displays several accessories to help you manage the view
of your model:
 Working grid
 Screen icons
 View triad
 View title

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.

Setting Rendering Mode


Your template-based product provides six Rendering modes in which you can display a model in the Main
window.

To select a rendering mode:


 Click the main window.
 On the View menu, point to Render Mode, and then select a rendering mode.

To toggle the display between wireframe and smooth shaded mode:


 Type an uppercase S in the main window.

Displaying the Status Toolbar


You can turn on and off the display of the Status bar. You can also set where the status toolbar appears—either
at the top of the main window under the menu bar or at the bottom of the window. By default, the status
toolbar appears at the bottom of the window.

To turn the status toolbar on and off:


1. On the View menu, select Toolbox and Toolbars.
Learning the Basics 29
Setting View Background Colors

2. Select Status Toolbar and its placement in the main window. Your changes take place immediately.
3. Close the dialog box.

Refreshing the Model Display


You can redraw the Main window to return the model to its initial configuration and display all geometry in
the Model . This is particularly useful if you selected to view only certain parts and now want to view the
entire model.

To refresh the model display:


 On the View menu, select Refresh.

Setting View Background Colors


By default, your template-based product uses a blue background to display the Main window. It also provides
a set of colors in which you can display the background. You can set the view to any color by setting the red,
green, and blue colors directly.

Selecting a Preset Background Color


You access the palette of background colors using View Background Color command on the Settings menu.

To select from the entire palette of background colors:


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.

Creating a Background Color


You can create a background color by setting its red, green, and blue light percentages and change the
background of the Main window to this new color. You cannot add the color to the preset palette of colors
or change the colors in the preset palette.

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 reset a color to the original background color:


 Select the R tool in the Edit Background Color dialog box.
30 Adams Car
Using Template-Based Product Tools

Using Template-Based Product Tools


Learn about using the following template-based product tools:
 Coordinate Window
 Command Navigator
 Command Window
 Message Window
 Information Window
 Database Navigator

Working with the Coordinate Window


You can use the Coordinate window to help you identify the coordinates of any location in the Main window.
You can also measure the distance between objects based on their coordinate locations.
The sections below explain how to work with the coordinate window:

Displaying the Coordinate Window

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.

Measuring the Distance Between Points


In Delta mode, you can use your mouse and the coordinate window to find the distance between two points.

To measure the distance between two points:


1. Move the cursor to the point in the main window where you want to begin, and press and hold down
the mouse button.
2. Drag the cursor to the next point. As you drag the cursor, your template-based product displays the
distance the cursor moves in the coordinate window.
3. To end delta mode, release the mouse button.

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.

Using the Command Window


The command window provides a text-based way to enter commands. It assumes that you understand the
command language underlying your template-based product's interface. The command window contains
both a command entry area for entering commands and a command information area for displaying
informational and error messages:

Learn about using the command window:


 About Commands
 Syntax Rules for Entering Commands
 Syntax Rules for Entering Values
 Miscellaneous Command Information
 Getting Help Completing Command Parameters
 Grouping Operations into an Undo Block
32 Adams Car
Using Template-Based Product Tools

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

Syntax Rules for Entering Commands


There are several rules that you must follow when you enter commands in the command window. For
example, the commands must be entered in the order shown below. Because commands are case insensitive,
you can type upper or lowercase letters or a mix of both.

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

Syntax Rules for Entering Values


The values that you can enter in commands are data that have a particular type. There are five data types that
template-based product commands support: integer, real, string, matrix, and database object references. The
following table lists the data types and their use.

Data type: Use:


Integer Whole numbers in the range -maxint ... +maxint, where maxint is machine dependent
(usually around two billion)
Real Most numeric values
String Character strings of varying length
Object Database objects

The rules for entering values are that they:


 Can contain letters, numbers, and underscore characters.
 Must begin with a letter or underscore character.
 Can contain any characters that are enclosed by double quotation marks.
 Have separators (blank space or tab) between keywords and parameters. Placing separators between
parameters and their values is optional.
For strings, you must use a backslash (\) in front of special characters to ensure that your template-based
product does not try to interpret the characters. These characters include quotation marks (") and
backslashes. For example, to be sure to include the quotation marks in the string: This is a "string", you would
enter:
string "This is a \"string\"."
To get a single backslash into the string, you, therefore, enter double backslashes. For example, to specify
d:\users, you would enter:
"d:\\users..."
Note also for path names on Windows, you can use backslashes as the separators, but you are not required to
do so. You can write portable path names by using the forward slash so your template-based product
interprets the following as the same path:
"d:\\users\\efhl\\some.file"
"d:/users/efhl/some.file"

Miscellaneous Command Information

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

Mixing Comments and Commands


If you want to mix comments and commands (so that your comments appear in the Log file), use one of the
formats below:

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.

Verifying Command Input


Your template-based product verifies command input whenever you enter a space, comma, or equal sign
(except in a string or expression) in the command window. If your template-based product detects an error,
it displays a message above the command information area. You cannot proceed until you correct the error.

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.

Getting Help Completing Command Parameters


In the command window, you can get help with possible parameter values for modeling objects and files. For
example, you can get a list of possible marker names in your model or you can display the File Browser to
help you find a file. Learn about Markers.

To get assistance with values for a parameter:


1. Enter the parameter name but do not include the parameter value. For example, enter the command
mar del mar=.
2. Type ? in the command line.
Learning the Basics 35
Using Template-Based Product Tools

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.

Grouping Operations into an Undo Block


As you issue commands from the command window, you can group them into undo blocks. By grouping
them into undo blocks, you can use a single Undo command to reverse all the operations in the block. You
can define undo blocks around macros, command files, or any group of commands. You can nest them to
any level.

To create an undo block:


1. Enter the following command in the command window to mark the beginning of the block:
UNDO BEGIN_BLOCK
2. Issue all the commands to be included in the undo block.
3. To close the block, enter the command:
UNDO END_BLOCK
Once you have closed the undo block, any individual commands that you issue that are not in the undo block
or any nested undo blocks within the undo block are not affected by an Undo command. Once you close the
undo block, you cannot open it again.
The following is an example of an undo block with individual commands surrounding it and several undo
operations that were issued. The undo commands reverse all operations that were performed to create the
model and part.
MODEL CREATE...
UNDO BEGIN_BLOCK
PART CREATE...
MARKER CREATE...
UNDO BACKWARD ! Undo the MARKER CREATE above, not entire undo
block
MARKER CREATE...
GEOM CREATE...
UNDO END_BLOCK
PART DELETE...
UNDO BACKWARD ! Undo the PART DELETE command
UNDO BACKWARD ! Undo the entire undo block
UNDO FORWARD ! Restore the entire undo block
UNDO BACKWARD ! Undo the entire undo block again
UNDO BACKWARD ! Undo the MODEL CREATE command
Note the following about the example:
 The first UNDO BACKWARD within the undo block undoes only the preceding MARKER
CREATE command.
 The third UNDO BACKWARD command after the Undo block undoes the entire contents of the
undo block.
36 Adams Car
Using Template-Based Product Tools

 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

The Option: Does the following


Apply Executes the command but leaves the dialog box open so you can execute the
command again.
Parent Displays an object's parent.
Children Displays an object's children.
Modify Select to display the modify dialog box for the object displayed in the text box at
the top of the Information window.
Verbose Select if you want to display more information about the object such as children
of the object, its geometry, whether or not commands are associated with it, and
its attributes like color and visibility.
Clear Removes all current information in the window.
Read from File Allows you to read information from a saved file.
Save to File Allows you to save the information.

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

For the option: Do the following:


Pull-Down Menu Use the pull-down menu to choose a mode option. Select one:

 Browse (the default; the options on this page describe Browse)


 Display Attribute
 Rename
 Comments
 Information
 Topology By Parts
 Topology By Connections
 Graphical Topology
 Associativity
 Select List
Filter Select if you want to filter the types and names that you want displayed in the
Database Navigator. Then, enter the name of the objects you want to display in the
text box and use the pull-down menu to the right to select the type of object(s) you
want to display. You can also use the pull-down menu below the Filter text box to
only display those objects that are active or inactive.
Sort by Use the pull-down menu to choose how you want the objects sorted. You can also
select to not sort the objects so they appear in the order they are stored in the
modeling database.
Highlight Off by default. Select if you want an object to appear selected in the main window
and the reverse.
Use the plus sign (+) or the minus (-) (--) signs to display or hide all of the children
hidden/shown in the tree view.

Files and Commands

Executing a System Command


You can execute an operating system command from within your template-based product so that you do not
have to leave your template-based product window.
You can select to display the results of the command in the Information window or the Log file. If you select to
display the results of the command in the Information window, you can:
 Clear the window and only view the results of the command.
 Save the results of the command to a file.
Learning the Basics 39
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.

To execute a system command within your template-based product:


1. On the Tools menu, select System Command.
The Execute System Command dialog box appears.
2. In the Command Text text box, enter the operating system command that you want to execute. See
your operating system documentation for more information.
3. Select whether or not you want the output of the command to be displayed in the Information
window or the log file.
4. Select OK.

Using the Log File


Your template-based product generates a log file during each session, called *.log.
While you are running Adams, you can display the current contents of the log file. In addition, you can
display the log file in a text editor. The following sections explain how to display the log file in your template-
based product and set the type of messages displayed.
 Viewing the Log File in Your Template-Based Product
 Updating the Log File
 Setting the Log File Information

Note: You can change the name of the log file through the initialization file .mdi_init. For more
information, see Running and Configuring Adams.

Viewing the Log File in Your Template-Based Product


You can use the Log File command on the Tools menu to display the log file. You can keep the dialog box
open as you execute commands so you can keep track of the commands and messages that you receive.
To help you use the log file as a command file, your template-based product marks any messages as comments
so that it does not try to execute them when you import the command file. It indicates a comment by placing
an exclamation mark (!) in front of the message. Your template-based product also displays as comments any
commands that it executes when it starts up. To help you distinguish the startup commands from messages,
your template-based product follows the exclamation mark (!) with the command prompt (>>).

To display the log file:


1. On the Tools menu, select Log File.
The Display Log File dialog box appears.
2. Select Info to display all messages written to the log file. The default is to display only warnings,
errors, and fatal messages.
40 Adams Car
Files and Commands

Updating the Log File


Your template-based product does not update the Display Log File dialog box each time you execute a
command. Therefore, if you want to see the commands that you executed since you opened the dialog box,
you must update the log file.

To update the contents of the log file:


 From the Display Log File dialog box, select Update.

Setting the Log File Information


When you display the log file, your template-based product displays only warnings, errors, and fatal messages
that you have received. You can change the type of messages that your template-based product displays as well
as display the commands that your template-based product has executed. You can also display only lines that
contain certain information, such as display only commands that create links, and remove any duplicate lines
that occur if you encounter the same error again.

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 remove duplicate lines:


 From the Display Log File dialog box, select Suppress duplicate lines.

Loading and Unloading Plugins


MSC has many add-on modules or plugins to template-based products, which expand their functionality.
The plugins include Adams Driveline, Adams Car Ride, Adams Vibration, Adams Controls, and Adams
Durability. You run these products from within your template-based product. You can set your template-
based product to load them automatically when you start up. You can also unload them while in your
template-based product's current session. To run a plugin, you must have a license to it.

To see if there is a license available to run a plugin:


1. From the Tools menu, select Plugin Manager.
Learning the Basics 41
Files and Commands

The Plugin Manager appears.


2. At the top of the Plugin Manager, select a plugin.
3. At the bottom of the Plugin Manager, in the text box Licenses, view the number of licenses available.

To load an available plugin:


1. From the Tools menu, select Plugin Manager.
2. In the Load column, next to the plugins you want to load, select Yes.
3. Select OK.
The commands or menus for the plugins are added to your template-based product.

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.

Displaying Product Information


When using any Adams product, you can display the following information:
 Software version number and the date it was built
 Directory where Adams is installed
 Copyright statement

To display information about your product:


1. From the Help menu, select About <product name>.
2. View the information, and then select OK.

Tip: From the Status bar, select .


42 Adams Car
Files and Commands
Building Models
Overview
Three levels of models are used to form a vehicle model (full or half vehicle):
1. Template
Templates are parametric models, built by expert users within the Template Builder. Templates
define the topology of models.
2. Subsystem
Subsystems are used in the Standard Interface. 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.
Prior to version 2021, each subsystem had to represent a unique major and minor role. For example,
you could only have one "suspension" (major role) of type "rear" (minor role). In 2021 and onwards,
this is no longer a limitation. Duplicate subsystems can be specified, differentiated by an index and
subsystem shift. This feature is useful for large vehicles with multiple axles. For example, to model a
three axle trailer suspension, a single suspension subsystem could be referenced three times, with a
longitudinal offset between each.
3. Assembly
An assembly represents a collection of subsystems, along with an optional test rig, which when
assembled forms a system that you can analyze using Adams Solver.

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

The Advantage of Using Variants

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.

Table 1 Files needed in previous versions of Adams Car


50 Adams Car
Overview

Table 2 Single assembly file possible in Adams Car 2021


Building Models 51
Overview
52 Adams Car
Subsystems

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.

To open an existing subsystem:


1. In Standard Interface, from the File menu, point to Open and then select Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Open Subsystem.
3. Select OK.
Notice that once the subsystem is open, the Edit and Adjust menus become active. We recommend
that you familiarize yourself with each menu item.

Getting Subsystem Information


You can get detailed information about subsystems in the current session.

To get information about a subsystem:


1. In the Standard Interface, from the File menu, point to Info, and then select Subsystem.
2. Press F1 and then follow the instructions in the dialog box help for Subsystem Info.
3. Select OK.

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.

Note: The subsystems is not renamed during the update.

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

• Disassembles the assembly, which includes 'unassigning' communicators.


• Opens the new subsystem under the existing assembly.
• Reassembles the assembly, which includes re-assigning the communicators.

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.

Toggling Subsystem Activity


Toggles the activity status of an existing subsystem. Your template-based product disassembles the assembled
model, sets the subsystem activity accordingly, and then reassembles the model to take into account the
subsystem’s activity status.
56 Adams Car
Subsystems

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.

To toggle subsystem activity:


1. From the File menu, point to Manage Assemblies, and then select Toggle Subsystem Activity.
2. Press F1 and then follow the instructions in the dialog box help for Toggle Subsystem Activity.
3. Select OK.
If activating the subsystem, your template-based product does the following:
• Disassembles the assembly, which includes 'unassigning' communicators.
• Activates the subsystem, which means that it will now be considered a valid part of the assembly.
• Reassembles the assembly (with the activated subsystem now taking part), which includes re-
assigning the communicators.
If deactivating the subsystem, your template-based product does the following:
• Disassembles the assembly, which includes 'unassigning' communicators.
• Deactivates the subsystem, which means that it is not actually removed from the assembly, but
simply ignored.
• Reassembles the assembly (with the deactivated subsystem not considered), which includes re-
assigning the communicators.

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

To save a subsystem that is part of an assembly:


1. View the subsystem you want to save:
• From the View menu, select Subsystem.
• Set Subsystem to the subsystem you want to save.
• Select OK.
2. 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.

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.

Importing CAD files


CAD files can be imported and attached to parts in the subsystem. When the subsystem is saved, a reference
to the file(s) will be saved to the part definition. For more information see the example Importing CAD geometry
at the subsystem level.

Supported geometry formats:


 Parasolid (*.xmt_txt, *.x_t, *.xmt_bin, *.x_b)
 CATIAV4 (*.model, *.exp, *.session)
 CATIAV5 (*.CATPart, *.CATProduct)
 IGES (*.igs, *.iges)
 Inventor (*.ipt, *.iam)
 ACIS (*.sat, *.asat)
 ProE (*.prt, *.prt.*, *.asm, *.asm.*)
 SolidWorks (*.sldprt, *.sldasm)
 STEP (*.stp, *.step)
 Unigraphics (*.prt)
 JT (*.jt)
 Shell (*.shl)
Building Models 59
Assemblies

To attach CAD geometry to a subsystem part:


1. In the Standard Interface, from the File menu, select Import.
2. Set the File To Read option to a supported geometry format.
3. Press F1 and follow the instructions in the dialog box help for File Import.
4. Select OK.
When the subsystem is saved to disk, a new entry will be written for each geometry file attached to a
subsystem part.

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.

Getting Assembly Information


You can get detailed information about assemblies in the current session.

To get information about an assembly:


1. In the Standard Interface, from the File menu, point to Info, and then select Assembly.
2. Press F1 and then follow the instructions in the dialog box help for Assembly Info.
3. Select OK.

Creating Suspension Assemblies


You can create a suspension assembly from specified subsystems.

To create a suspension assembly:


1. In the Standard Interface, from the File menu, point to New, and then select Suspension Assembly.
2. Press F1 and then follow the instructions in the dialog box help for New Suspension Assembly.
3. Select OK.

Creating Full-Vehicle Assemblies


You can create a full-vehicle assembly from specified subsystems.

To create a full-vehicle assembly:


1. In the Standard Interface, from the File menu, point to New, and then select Full-Vehicle Assembly.
2. Press F1 and then follow the instructions in the dialog box help for New Full-Vehicle Assembly.
3. Select OK.

Creating Generic Assemblies


You can create a generic assembly from specified subsystems.

To create a generic assembly:


1. In the Standard Interface, from the File menu, point to New, and then select Generic Assembly.
2. Press F1 and then follow the instructions in the dialog box help for New Generic Assembly.
3. Select OK.
Building Models 61
Assemblies

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

view property files using the View File tool .


Learn about Modifying Component Property File.

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.

To open an existing template:


1. From the File menu, select Open.
2. Press F1 and then follow the instructions in the dialog box help for Open 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.

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.

Note: Do not save templates with names exceeding 240 characters

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:

For Adams Car:


1. Creating a template and saving it in ASCII format as explained in Creating Test-Rig Templates and Saving
Test-Rig Templates.
2. Modifying the ASCII template file to become an ASCII command file, which is now the test rig, as
explained in Converting Templates into Test Rigs.
68 Adams Car
Test-Rig Templates

3. Saving the ASCII command file into a binary file as described in Adding Test Rigs to Binaries.

Creating Test-Rig Templates


You create test-rig templates the same way you create regular templates.

To create a test-rig template:


1. From the File menu, select New.
2. Press F1 and then follow the instructions in the dialog box for New Template.
3. Select OK.

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.

Saving Test-Rig Templates


You can save test-rig templates to files, just as you would save regular templates. We recommend that you save
test rigs in ASCII format so you can hand edit them. Storing test-rigs in ASCII format also ensures portability
from one machine to another. It allows you, for example, to use the same file when building a site binary on
either a Windows or Linux machine.

To save a test-rig 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.
3. Depending on the template-based product you are using, continue as follows:
• If working in Adams Car go to Converting Templates into Test Rigs.

Converting Templates into Test Rigs


To convert templates into test rigs you must make the following modifications to your ASCII test-rig
template file generated from your template-based product:

Removing the Header Information


You must remove the header information that is added at the beginning of the ASCII template file because
the command file reader will not understand the information stored in this header and will output errors.
Building Models 69
Test-Rig Templates

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.

Modifying Adams View Variables


Templates and test rigs in template-based products have information that is stored in Adams View variables
to determine how the template is used. All templates, including test rigs, have three required variables: major
role, minor role, and model class. Test rigs, however, have an additional required Adams View variable called
test rig class.
When you create the test-rig template, your template-based product automatically creates the first three
variables. You must, however, manually create the last variable, the test rig class variable.
The following sections introduce the variables:
 Major Role
 Minor Role
 Model Class
 Test-Rig Class

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

To reference testrig_class from the Adams Car interface:


1. From the File menu, point to New, and then select Suspension Assembly.
2. From the pull-down menu for Suspension Test Rig option, select the Test Rig you want to use in
your assembly. To fill out the entire dialog box Press F1 and then follow the instructions in the dialog
box help for New Suspension Assembly.
3. Select OK.

Adding Test Rigs to Binaries in Adams Car


Adding a test rig to your private or site binary makes it available for use whenever you start a private or site
session. See Organizing Custom Code.
You should move the test rig you modified from the template table (templates.tbl) in your template-based
product databases to a directory that contains the source for the custom private or site binary file. Typically,
you will need to create custom analysis macros that work with the new test rig. All these files should be located
in the same directory structure.
For example, you could enter this command in the acar_build.cmd file to read the test rig:
file command read &
file=(eval(getenv("MDI_ACAR_SITE")//"/analysis/models/acme_4PostRig.cmd"))
When you add this command to the acar_build.cmd file, Adams Car reads in and stores the test rig in the
private or site binary, making the test rig available for use whenever you start an Adams Car private or site
session.
As an additional option, you can rename your test rig file from the .tpl extension to a .cmd extension to reflect
the fact the test rig is now a command file.
Learn about Creating and Modifying Macros.

Adding a Test Rig


When you add a test rig into an assembly, your template-based product disassembles the assembled model,
copies the test rig into the assembly, and then reassembles the model to include the new test rig.

To add a test rig:


1. From the File menu, point to Manage Assemblies, and then select Add Testrig.
2. Press F1 and then follow the instructions in the dialog box help for Add Testrig.
3. Select OK.

Your template-based product does the following:


 Disassembles the assembly, which includes 'unassigning' communicators.
 Copies the test rig under the existing assembly.
 Reassembles the assembly, which includes re-assigning the communicators.
72 Adams Car
Test-Rig Templates

Replacing the Test Rig


When you replace a test rig in an assembly with a new test rig, your template-based product disassembles the
assembled model, deletes the test rig, copies the new test rig into the assembly, and then reassembles the
model to include the new test rig.

To replace a test rig:


1. From the File menu, point to Manage Assemblies, and then select Replace Testrig.
2. Press F1 and then follow the instructions in the dialog box help for Replace Testrig.
3. Select OK.

Your template-based product does the following:


 Disassembles the assembly, which includes 'unassigning' communicators.
 Deletes the test rig from the existing assembly.
 Copies the new test rig underneath the existing assembly.
 Reassembles the assembly, which includes re-assigning the communicators.

Removing the Test Rig


When you remove a test rig from the assembly to which it belongs, your template-based product disassembles
the assembled model, deletes the test rig, and then (optionally) reassembles the model.

To remove a test rig:


1. From the File menu, point to Manage Assemblies, and then select Remove Testrig.
2. Press F1 and then follow the instructions in the dialog box help for Remove Testrig.
3. Select OK.

Your template-based product does the following:


 Disassembles the assembly, which includes 'unassigning' communicators.
 Deletes the test rig from the assembly.
 Optionally reassembles the assembly, which includes re-assigning the communicators.

Toggling Test Rig Activity


Toggles the activity status of an existing test rig. Your template-based product disassembles the assembled
model, sets the test rig activity accordingly, and then reassembles the model to take into account the test rig's
activity status.
When you set the test rig activity status to inactive, your template-based product ignores the test rig during
model assembly, and therefore some communicators may not find matches.
Note that compared to the Remove Testrig functionality, which deletes the test rig, the Toggle Testrig
Activity functionality only de-activates the test rig and all objects in it.
Building Models 73
Communicators

To toggle test rig activity:


1. From the File menu, point to Manage Assemblies, and then select Toggle Testrig Activity.
2. Press F1 and then follow the instructions in the dialog box help for Toggle Testrig Activity.
3. Select OK.

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

 Communicators in the Suspension Test Rig


 Communicators in the SDI Test Rig
 Communicators in the Suspension Parameter Measurement Machine (SPMM) Test Rig
 Matching Communicators with Test Rigs

Creating/Modifying Input Communicators


You can create or modify input communicators as explained next. You must be in template-builder mode to
do this.

To create/modify input communicators:


1. From the Build menu, point to Communicator, point to Input, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Input Communicator.
3. Select OK.

Creating/Modifying Output Communicators


You can create or modify output communicators as explained next. You must be in template-builder mode
to do this.

To create/modify output communicators:


1. From the Build menu, point to Communicator, point to Output, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Output Communicator.
3. Select OK.

Communicator Entity Class


The class of a communicator indicates the kind of information it exchanges. For example, communicators of
the class marker exchange a location and an orientation through a construction frame name and a part name.
The classes of communicators and the information that each class exchanges are listed in table Communicator
Entity Class. The classes apply to both input and output communicators.
In Adams Car, and Adams Driveline, communicators can be either single or be part of a symmetrical pair,
either left or right. The table below provides additional information about entity classes.

The class: Exchanges:


The following entity classes do not have symmetry and, therefore, are always single, by default:
Array Adams Solver array name.
Differential equation Differential equation name.
Motion Motion name.
Building Models 75
Communicators

The class: Exchanges:


Parameter Variables Parameter variable name.
Spline Spline name.
Solver variable Adams Solver variable name. You must use an Adams Solver variable, not an Adams
View variable. Unlike an Adams View variable, an Adams Solver variable's
computation occurs during analysis. Your template-based product generates Adams
Solver variables as state variables.
The following entity classes have symmetry:
Mount Part name to provide connections between subassemblies. As a shortcut, the
template-based products also automatically create input mount communicators
when you create a mount part.
Marker Creation of a marker output communicator results in the creation of a new marker
whose location is defined by a user-input construction frame and which is located
on a user-input part. The identity of this marker is passed through this
communicator to provide both location and part information. If the construction
frame is part of a symmetrical pair, the template-based products create an input
communicator for each construction frame in the pair.
Joint Joint name.
Joint-for-motion Joint name.
Bushing Bushing name.
Location The location of the named hardpoint or construction frame. If the hardpoint is part
of a symmetrical pair, the template-based products create two input
communicators, one for each hardpoint in the pair.
Part Part name.
Orientation The orientation of the named construction frame.
Real parameter A parameter variable name of the type real.
Integer parameter A parameter variable name of the type integer.

Communicator Minor Roles


Each communicator has a minor role. A minor role defines the communicator's position in the assembly. The
template-based products provide you with minor roles, as shown in the following table:
76 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.

Matching Communicators During Assembly


For a pair of communicators to exchange information during assembly, the communicators must:
 Have identical matching names.
Building Models 77
Communicators

 Be of opposite types (one input, one output).


 Be of the same symmetry type (left, right, or single).
 Be of the same class (exchange the same type of information).
 Have the same minor role or be assigned a role of any.
 Have the same subsystem index (defaults to inherit).
If all pieces of information match, your template-based product determines an input/output communicator
pair.
If an input communicator does not have a corresponding output communicator, your template-based
product returns a warning message, and, if the input communicator belongs to the class mount, the template-
based product assigns the mount part to ground. You can still analyze the model even if it does not have
matching communicators. In fact, you may find this helpful if you want to run an analysis of a subsystem
without attaching another subsystem to it.
Keep in mind that the matching name can contain more than one string. By default, the matching name is
derived from the communicator name, but the user can change the matching name and/or specify additional
matching names.
In Adams Car for example, the following pairs of input and output communicators match and exchange data
during assembly.
Sample of Matching Input and Output 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.

Displaying Communicator Information


You can display information about communicators in each template or test rig. The communicator information
includes the names of the communicators, their classes, and minor roles. You can choose to display all types
and classes of communicators in the templates and test rigs or display only a specified set of types and classes.

To display information about communicators:


1. From the Build menu, point to Communicator, and then select Info.
2. Press F1 and then follow the instructions in the dialog box help for Communicators Info.
3. Select OK.
Information window appears. It displays the communicator information for each template or test rig,
grouped by each class of communicator that you selected.

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.

Communicators in the Suspension Test Rig


The following tables describe the input and output communicators in the suspension test rig
(.__MDI_SUSPENSION_TESTRIG). In the tables, the notation:
 [lr] indicates that there is both a left and right communicator of the specified name, as in
ci[lr]_camber_angle.
 s indicates a single communicator, as in cis_steering_rack_joint.
Communicators in 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.

Output Communicators in Suspension Test Rig

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.

Communicators in the SDI Test Rig


The following tables describe the input and output communicators in the SDI test rig
(.__MDI_SDI_TESTRIG). In the tables, the notation [lr] indicates that there is both a left and right
communicator of the specified name.

Input Communicators in SDI Test Rig


Building Models 81
Communicators

Belongs to the From minor


The communicator: class: role: Receives:
cis_aero_drag_force solver_variable any The aerodynamic drag force from the body
template. It is used in Adams SmartDriver
simulations.
cis_aero_frontal_area parameter_real any Frontal area of the vehicle, used in aerodynamic
force calculations in SmartDriver.
cis_air_density parameter_real any Density of the air, used in aerodynamic force
calculations in SmartDriver.
cis_body_subsystem mount inherit Output from the body subsystem. It indicates
the part that represents the body.
cis_chassis_path_reference marker any Marker from the body subsystem. It is used to
measure path, roll, and sideslip error in a
constant radius cornering maneuver.
cis_clutch_displacement_ic solver_variable any The clutch initial displacement (wind-up due to
engine crankshaft torque at static equilibrium)
from the powertrain template.
cis_crankshaft_ratio parameter_real any Provided to Standard Driver Interface, but not
currently used.
cis_diff_ratio parameter_real any Real parameter variable for final drive ratio,
from the powertrain subsystem, used by
SmartDriver.
cis_downforce_coefficient parameter_real any Downforce coefficient, used in aerodynamic
force calculations in SmartDriver.
cis_downforce_brake_coefficien parameter_real any Downforce coefficient during braking, used in
t aerodynamic force calculations in SmartDriver.
cis_drag_coefficient parameter_real any Drag coefficient, used in aerodynamic force
calculations in SmartDriver.
cis_drag_brake_coefficient parameter_real any Drag coefficient during braking, used in
aerodynamic force calculations in SmartDriver.
cis_driver_reference marker any Marker from the body subsystem. It is used to
create the iso_eas marker on ground, which
provides the reference system for the driving
machine (so it should be oriented with Z up, X
forward, and Y to the left.) It is also used to
measure body displacement, velocity and
acceleration and distance traveled.
82 Adams Car
Communicators

Belongs to the From minor


The communicator: class: role: Receives:
cis_drive_torque_bias_front parameter_real any Nominal percentage of torque sent to the front
wheels. 1.0 = front wheel drive, 0.0 = rear wheel
drive, 0.5 = all-wheel drive. Used by
SmartDriver and the SVC event.
cis_engine_idle_speed parameter_real any Engine idle rpm, from engine or powertrain
subsystem. Used to set initial engine speed if
simulation begins in neutral or with clutch pedal
down. Defaults to 750.
cis_engine_map spline any Engine torque/speed/throttle map from engine
or powertrain subsystem. Used by Standard
Driver Interface,
cis_max_engine_braking_torque and
cis_max_engine_driving_torque are relied upon
if not available.
cis_engine_rpm solver_variable any Adams Solver variable for engine speed, in
revolutions per minute, from the powertrain
subsystem. Used by Standard Driver Interface.
cis_engine_speed solver_variable any Adams Solver variable for engine speed, in
radians per second, from the powertrain
subsystem. Used by Standard Driver Interface.
cis_engine_speed_limit parameter_real any Output from powertrain subsystem (maximum
engine rpm value, used for shifting strategy).
Defaults to 6500.
cis_engine_stall_speed parameter_real any Output from powertrain subsystem (minimum
engine rpm value, used for shifting strategy and
to limit initial engine speed setting when
appropriate). Defaults to 500.
cis_front_aero_location marker inherit Marker used to measure the distance from gyro
location to aero force location. Used by the
Standard Driver Interface.
cis_max_brake_value parameter_real any Output from brake subsystem (maximum brake
signal value).
cis_max_engine_braking_torqu solver_variable any Output from engine or powertrain subsystem,
e gives lower (braking) limit on available engine
torque at current engine speed.
cis_max_engine_driving_torqu solver_variable any Output from engine or powertrain subsystem,
e gives upper (driving) limit on available engine
torque at current engine speed.
Building Models 83
Communicators

Belongs to the From minor


The communicator: class: role: Receives:
cis_max_gears parameter_integer any Output from powertrain (maximum number of
allowed gears).
cis_max_rack_displacement parameter_real any Output displacement limits from steering
subsystem. Used by the Standard Driver
Interface.
cis_max_rack_force parameter_real any Output force limits from steering subsystem.
Used by the Standard Driver Interface.
cis_max_steering_angle parameter_real any Output angle limits from steering subsystem.
Used by the Standard Driver Interface.
cis_max_steering_torque parameter_real any Output from steering subsystem.
cis_max_throttle parameter_real any Output from powertrain (maximum value of
throttle signal).
cis_measure_for_distance marker any Marker used to measure the distance traveled in
the forward direction of the vehicle, from the
body subsystem.
cis_powertrain_type parameter_integer any Classification for powertrain (manual,
automatic and so on.) from powertrain
subsystem.
cis_steering_rack_joint joint_for_motion front Steering-rack translational joint from the
steering subsystem.
cis_steering_wheel_joint joint_for_motion front Steering-wheel revolute joint from the steering
subsystem.
cis_svs_trim_part part any
cis_transmission_efficiency parameter_real any Overall efficiency of driveline, used by
smartdriver to calculate target velocity profiles.
Can be specified by the powertrain subsystem,
defaults to 1.0.
cis_transmission_input_omega solver_variable any The transmission input speed variable from the
powertrain template.
cis_transmission_spline spline any Spline for transmission gears (output from
powertrain: reduction ratios for every gear).
ci[lr]_front_suspension_mount mount front The hub parts (wheel carriers) from suspension
templates (front and rear).
ci[lr]_rear_suspension_mount mount rear The hub parts (wheel carriers) from suspension
templates (front and rear).
ci[lr]_svs_ride_height_front marker front
ci[lr]_svs_ride_height_rear marker rear
84 Adams Car
Communicators

Belongs to the From minor


The communicator: class: role: Receives:
ci[lr]_tire_force_front force front The tire force from the wheel templates (front
and rear).
ci[lr]_tire_force_rear force rear The tire force from the wheel templates (front
and rear).
ci[lr]_wheel_center_front location front The location of the (left and right) wheel centers
from suspension templates (front).
ci[lr]_wheel_center_rear location rear The location of the (left and right) wheel centers
from suspension templates (rear).

Used to locate the gyro location (midpoint


between left and right wheel centers) for the
driving machine (a pitch and roll stabilized
point on the vehicle that should follow
prescribed paths for machine steering control
events.)
Building Models 85
Communicators

Output Communicators in SDI Test Rig

Belongs to the From minor


The communicator: class: role: Outputs:
cos_aero_pitch_angle parameter_real any Outputs parameter real used by aerodynamic
force UDE to calculate coefficients at that angle
cos_aero_pitch_angle_brake parameter_real any Outputs parameter real used by aerodynamic
force UDE to calculate coefficients at that angle
(braking)
cos_brake_demand solver_variable any Outputs brake demand used by conceptual
brake module.
cos_clutch_demand solver_variable any Outputs brake demand used by conceptual
powertrain module.
cos_initial_engine_rpm parameter_real any Outputs initial engine rpm used by conceptual
powertrain module.
cos_sse_diff1 diff any Outputs differential equation used by
conceptual powertrain module.
cos_std_tire_ref location any Outputs location of tire reference used by chassis
for ground height reference.
cos_throttle_demand solver_variable any Outputs throttle demand used by conceptual
powertrain module.
cos_transmission_demand solver_variable any Outputs transmission demand used by
conceptual powertrain module.

Communicators in the Suspension Parameter Measurement Machine


(SPMM) Test Rig
The following tables describe the input and output communicators in the SPMM test rig
(.__MDI_SPMM_TESTRIG).
In the tables, the notation:
 [lr] indicates that there is both a left and right communicator of the specified name, as in
ci[lr]_wheel_center_front
 s indicates a single communicator, as in cis_body_subsystem.
86 Adams Car
Communicators

Input Communicators in the SPMM Test Rig

Belongs to the From minor


The communicator class: role: Receives:
ci[lr]_suspension_mount_front mount front The hub parts (wheel carriers) from suspension
(front)
ci[lr]_suspension_mount_rear mount rear The hub parts (wheel carriers) from suspension
(front)
cis_body_subsystem mount any Output from the body subsystem. It indicates
the part that represents the chassis part.
cis_flexible_body mount any Output from the body subsystem. It indicates
the flexible part that represents the chassis part.

Note: Add matching name 'flexible_body'


in the output communicator name
'cos_body' or 'cos_body_subsystem'.
cis_steering_wheel_joint Joint_for_motio any Steering-wheel revolute joint from the steering
n subsystem.
cis_suspension_parameters_AR array front Suspension parameter array from the
RAY_front suspension subsystem (front)
cis_suspension_parameters_AR array rear Suspension parameter array from the
RAY_rear suspension subsystem (rear)
ci[lr]_bedplate_front_loc location front Location of the nodes on flexible chassis of
body subsystem. The spherical joints from test
rig attaches to the flexible body at that location.

(This communicator is only used for flexible


chassis subsystem)
ci[lr]_bedplate_rear_loc location rear Location of the nodes on flexible chassis of
body subsystem. The spherical joints from test
rig attaches to the flexible body at that location.

(This communicator is only used for flexible


chassis subsystem)
Building Models 87
Communicators

Output Communicators in SPMM Test Rig

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.

Matching Communicators with Test Rigs


When you create a template, you must meet the following conditions to ensure that an analysis will work
with your new template:
 The template must be compatible with other templates and with the test rigs, for example, the
.__MDI_SUSPENSION_TESTRIG. The template must also contain the proper output
communicators.
 If the template is a suspension template (for example, its major role is suspension), the template
must contain a suspension parameters array. The suspension parameters array identifies to the
suspension analysis how the steer axis should be calculated and whether the suspension is
independent or dependent.
For example, for a suspension template to be compatible with the suspension test rig, the suspension template
must contain either the mount or the upright output communicators. In the following table, the notation
[lr] indicates that there is both a left and right communicator of the specified name.

Output Communicators in Suspension Templates

The communicator: Belongs to the class: From minor role: Receives:


co[lr]_suspension_mount mount inherit suspension_mount
co[lr]_suspension_upright mount inherit suspension_upright
co[lr]_wheel_center location inherit wheel_center
co[lr]_toe_angle parameter_real inherit toe_angle
co[lr]_camber_angle parameter_real inherit camber_angle

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.

General Information About Components


 Creating Components
 Modifying Components
 Deleting Components
 About the Naming Convention

Information About a Particular Component


 Hardpoints
 Construction Frames
 Parts
 Markers
 Geometry
 Attachments
 Forces
 Wheels, Adjustable forces and Gears
 Actuators
 Condition Sensors
 Feedback Channels
 Data Elements, Requests and Variables
84 Adams Car
Introducing the Components

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.

To create arm geometry:


1. From the Build menu, point to Geometry, point to Arm, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Arm Geometry.
3. Select one of the following:
• OK if you want to execute the command and close the dialog box.
• Apply if you want to execute the command but keep the dialog box open so you can continue to
work in it.
• Cancel if you decide not to execute the command and close the dialog box.

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

Modifying Component Parameters


You can modify component parameters in either interface, as follows:
 In the Template Builder - After you create components in the Template Builder, you can modify
any of their parameters, as needed.
 In the Standard Interface - The standard user can reference an existing template by either opening
or creating a subsystem file. The standard user can modify only selected parameters in the Standard
Interface.
The following examples show how you can modify component parameters in either interface. You use the
same basic steps to modify any component’s parameters.

In Standard Interface, to modify arm geometry:


1. Right-click an arm geometry, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify Arm.
Working with Components 85
Introducing the Components

3. Select OK.

Note: You can only change a limited number of parameters in the Standard Interface.

In Template Builder, to modify arm geometry:


1. From the Build menu, point to Geometry, point to Arm, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Arm Geometry.
3. Select OK.

Modifying Component Property File


You can modify property files using either of the following:
 Any text editor - When working in any of the template-based products, you can open a text editor,
such as vi on Linux and Notepad on NT, display the property file referenced by the component you
want to change, modify any of the parameters as needed, and then save your changes.
 The Curve Manager - You can modify some property files as explained in Modifying Property Files Using
the Curve Manager.

Modifying Property Files Using a Text Editor


If you want to modify a property file using a text editor, you can find the location of the particular database
that a property file uses by following the steps outlined next.

To find the location of a database:


 From the Tools menu, point to Database Management, and then select Database Info. The
Information window appears, displaying the path of the database.

Modifying Property Files Using the Curve Manager


You can use the Curve Manager to modify a select set of property files.

To modify Adams Car property files:


1. From the screen, right-click the component you want to modify, for example a spring, point to the
component name, and then select Modify.
The Modify Spring dialog box appears.

2. Select the Curve Manager tool .

The Curve Manager appears.


3. Change any parameters as needed.
86 Adams Car
Introducing the Components

Replacing Instance Definition


Another way of modifying components is to change the definition of the component you are using with
another definition of the same component. For example, you can replace a coil spring with an air spring. The
following example shows how you can change a component's definition. You follow the same basic steps to
change the definition of other components.
Components currently supported include: air spring, bushing, damper, and spring, as well as application-
specific components.

Note: In Adams Car you can change the component definition only in the Standard Interface.

To change component definition:


1. In Standard Interface, right-click a component, point to its name, and then select Replace Instance.
2. Press F1 and then follow the instructions in the dialog box help for Replace Instance Definition.
3. Select OK.

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.

To delete components that do not have graphical representation:


1. From the Build menu, point to the component you want to delete, and then select Delete.
The appropriate Delete dialog box appears.
2. Fill in the dialog box as appropriate, and then select either of the following:
• OK if you want to execute the command and close the dialog box.
• Apply if you want to execute the command but keep the dialog box open so you can continue to
work in it.
Your template-based product does one of the following:
• Deletes the component.
• Checks if the component has dependencies, and if the component does have dependencies, it
informs you and gives you three options:
• Proceed with the delete command
• Highlight and list the dependents
Working with Components 87
Introducing the Components

• Cancel the delete command

To delete components that have graphical representation:


 Do one of the following:
• Right-click the component you want to delete from the screen, point to the component name,
and then select Delete.
• Complete steps 1 and 2, above.
Your template-based product does one of the following:
• Deletes the component.
• Checks if the component has dependencies, and if the component does have dependencies, it
informs you and gives you three options:
• Proceed with the delete command
• Highlight and list the dependents
• Cancel the delete command

About the Naming Convention


The template-based products use a naming convention to allow you to easily determine a component’s type
from its name. When you create a new component in the Template Builder, your template-based product
automatically adds a prefix based on the component type and symmetry. The first two letters of the prefix
indicate the component type. The third letter indicates the symmetric information of the entity. This letter
can be l, r, or s, indicating left, right, or single, respectively.
The exception to this rule is the prefix for geometry entities, where the first three letters are always gra. The
next three letters describe the type of geometry. These letters can be arm, cyl, ell, lin, and out, corresponding
to the following types of geometry: arm, cylinder, ellipse, link, and outline.
The following table lists the prefixes associated with the Template Builder entities. The list is sorted
alphabetically by prefix.

Prefix: Entity type:


af[lrs]_ Adjustable force
ar[lrs]_ Anti-roll bar
bg[lrs]_ Bushing (always active)
bk[lrs]_ Bushing (kinematically inactive)
bs[lrs]_ B-spline geometry
bu[lrs]_ Bumpstop (Adams Car only)
cd[lrs]_ Contact definition
cf[lrs]_ Construction frame
88 Adams Car
Introducing the Components

Prefix: Entity type:


ci[lrs]_ Input communicator
cl[lrs]_ Runtime clearance
co[lrs]_ Output communicator
cp[lrs]_ Contact parameter array
css_ Condition sensor
da[lrs]_ Damper (Adams Car only)
fb[lrs]_ Flexible body
fe[lrs]_ FE part
ff[lrs]_ User-function feedback channel
fr[lrs]_ Joint friction
ge[lrs]_ General part
gk[lrs]dif_ Gear differential (kinematically active)
gk[lrs]red_ Gear reduction (kinematically active)
gp[lrs]_ General parameter
gr[lrs]dif_ Gear differential (always active)
gr[lrs]red_ Gear reduction (always active)
graarm Arm geometry
gracyl_ Cylinder geometry
graell_ Ellipse geometry
gralin_ Link geometry
graout_ Outline geometry
gs[lrs]_ General spline
gv[lrs]_ General variable
hp[lrs]_ Hardpoint
ip[lrs]_ Interface part
jf[lrs]_ Joint force actuator
jk[lrs]_ Joint (kinematically active)
jm[lrs]_ Joint motion actuator
jo[lrs]_ Joint (always active)
lf[lrs]_ Leaf spring
loa_ Loading object
loacon_ Loading configuration
mo[lrs]_ Adams Machinery Motor
Working with Components 89
Hardpoints

Prefix: Entity type:


mt[lrs]_ Mount part
nr[lrs]_ Nonlinear rod
ns[lrs]_ Spring
pf[lrs]_ Point force actuator
ph[lrs]_ Hidden parameter variable
pt[lrs]_ Point torque actuator
pv[lrs]_ Parameter variable
re[lrs]_ Reboundstop (Adams Car only)
sw[lrs]_ Switch part
ti[lrs]_ Tire force (Adams Car only)
ue[lrs]_ User-defined entity
va[lrs]_ Variable actuator
wh[lrs]_ Wheel part (Adams Car only)

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

In Standard Interface, to modify a hardpoint:


1. From the Adjust menu, point to Hardpoint, and then select Modify.
90 Adams Car
Construction Frames

2. Press F1 and then follow the instructions in the dialog box help for Modify Hardpoint Location.
3. Select OK.

In Template Builder, to modify a hardpoint:


1. From the Build menu, point to Hardpoint, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify Hardpoint Location.
3. Select OK.

Modifying Several Hardpoints at a Time


If you want to modify several existing hardpoints at a time, you can use a table editor to do so.

In Standard Interface, to modify several hardpoints at a time:


1. From the Adjust menu, point to Hardpoint, and then select Table.
2. Press F1 and then follow the instructions in the dialog box help for Hardpoint Modification Table.
3. Select Apply.

In Template Builder, to modify several hardpoints at a time:


1. From the Build menu, point to Hardpoint, and then select Table.
2. Press F1 and then follow the instructions in the dialog box help for Hardpoint Modification Table.
3. Select Apply.

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

To create or modify a construction frame:


1. From the Build menu, point to Construction Frame, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Construction Frames.
3. Select OK.
Working with Components 91
Instrumentation

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).

Height (w.r.t. tire ref) Sensors


Height sensor will calculate the distance above the ground height or std tire reference. You must specify the
the part to which the sensor belongs to.
It also calculate Corrected height using reqsub 1139 (See Corrected Height Sensors).

Ride height Sensors


Ride Height sensor computes vertical distance between two locations. You must specify location on two parts
of which you need to calculate the distance.

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.

Tire Compression StringPots


Tire compression stringpots will add additional lumped mass to the model. These stringspots will always
connect the body to the unsprung mass at a wheel.
To add this stringpot, select tire compression laser as Yes while creating instrumentation object.
92 Adams Car
Parts

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.

Creating or Modifying Instrumentation


To create/modify Instrumentation:
1. From the Build menu, point to Instrumentation, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Instrumentation.
3. Select OK.

To modify an instrumentation in the Standard Interface:


1. In Standard Interface, right-click an Instrumentation from model browser (Outputs >
Instrumentation), point to its name, and then select Modify. The dialog box has the Instrumentation
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Instrumentation.
3. Select OK.

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.

Creating or Modifying a General Part

In Standard Interface, to create or modify a general part:


1. From the Adjust menu, point to General Part, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify General Part.
3. Select OK.

In Template Builder, to create or modify a general part:


1. From the Build menu, point to Parts, point to General Part, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify General Part.
3. Select OK.

Calculating the Mass of a General Part


You can calculate the mass based on material properties (steel, aluminum, and so on) or enter a material
density. The mass will be based on the volume of the associated geometry.

To calculate the mass of a general part:


1. Do one of the following:
• From the Build menu, point to Parts, point to General Part, and then select Modify.
• From create/modify dialog boxes, select .
.

Using the General Part Wizard


You can use the general part wizard to create simple geometry. Using the general part wizard allows the
Template Builder to automatically calculate mass and inertia properties. You can create either a link or an arm
and choose the material properties.

To use the general part wizard:


1. From the Build menu, point to Parts, point to General Part, and then select Wizard.
2. Press F1 and then follow the instructions in the dialog box help for General Part Wizard.
3. Select OK.
94 Adams Car
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.

In Standard Interface, to modify a flexible body:


1. If the displayed subsystem or assembly has a flexible part, from the Adjust menu, point to Flexible
Body, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify Flexible Body.
3. Select OK.

In Template Builder, to create or modify a flexible body:


1. From the Build menu, point to Parts, point to Flexible Body, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Flexible Body.
3. Select OK.

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.

In Standard Interface, to modify an FE Part:


1. If the displayed subsystem or assembly has an FE Part, from the Adjust menu, select FE Part.
2. Press F1 and then follow the instructions in the dialog box help for Modify FE Part.
Working with Components 95
Parts

3. Select OK.

In Template Builder, to create or modify an FE Part:


1. From the Build menu, point to Parts, point to FE Part, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify FE Part.
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.

In Standard Interface, to modify a nonlinear beam:


1. From the Adjust menu, select Nonlinear Rod.
2. Press F1 and then follow the instructions in the dialog box help for Modify Nonlinear Beam.
3. Select OK.

In Template Builder, to create or modify a nonlinear beam:


1. From the Build menu, point to Parts, point to Nonlinear Beam, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Nonlinear Beam.
3. Select OK.

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.

To create or modify a mount part:


1. From the Build menu, point to Parts, point to Mount, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Mount Part.
3. Select OK.

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.

Creating or Modifying Switch Parts

In Standard Interface, to modify a switch part:


1. From the Adjust menu, select Switch Part.
2. Press F1 and then follow the instructions in the dialog box help for Modify Switch Part.
3. Select OK.

In Template Builder, to create or modify a switch part:


1. From the Build menu, point to Parts, point to Switch, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Switch Part.
3. Select OK.

Removing Switch Parts

To remove a switch part:


1. From the Tools menu, select Remove Switch Part.
2. Press F1 and then follow the instructions in the dialog box help for Switch & Remove Switch Parts.
Working with Components 97
Markers

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.

To create or modify interface parts:


1. From the Build menu, point to Parts, point to Flexible Body, point to Interface Part, and then select
New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Interface Part.
3. Select OK.

Removing Interface Parts


To remove all interface parts from a subsystem, assembly or template:
1. From the Tools menu, select Remove Interface Parts.
2. Press F1 and then follow the instructions in the dialog box help for Remove Interface Parts.
3. Select OK.

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.

To create or modify a marker:


1. From the Build menu, point to Marker, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Marker.
3. Select OK.

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.

In Standard Interface, to modify arm geometry:


1. Right-click an arm geometry, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify Arm.
3. Select OK.

In Template Builder, to create or modify arm geometry:


1. From the Build menu, point to Geometry, point to Arm, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Arm Geometry.
3. Select OK.

Link and Cylinder Geometry


The link and cylinder geometry are very similar. The only differences exist in the method used to define the
geometry:
 The link geometry consists of a cylinder whose ends you define using two hardpoint locations and a
radius. You can use links to view the tie rods of certain suspensions.
Working with Components 99
Geometry

 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.

Creating or Modifying Link Geometry

In Standard Interface, to modify link geometry:


1. Right-click a link, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify Link.
3. Select OK.

In Template Builder, to create or modify link geometry:


1. From the Build menu, point to Geometry, point to Link, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Link Geometry.
3. Select OK.

Creating or Modifying Cylinder Geometry

To create or modify link geometry:


1. From the Build menu, point to Geometry, point to Cylinder, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Cylinder Geometry.
3. Select OK.

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.

To create or modify ellipsoid geometry:


1. From the Build menu, point to Geometry, point to Ellipsoid, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Ellipsoid Geometry.
100 Adams Car
Geometry

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.

To create or modify outline geometry:


1. From the Build menu, point to Geometry, point to Outline, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Outline Geometry.
3. Select OK.

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.

To create or modify B-spline geometry:


1. From the Build menu, point to Geometry, point to Bspline, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Bspline Geometry.
3. Select OK.
Working with Components 101
Attachments

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.

To create or modify a joint:


1. From the Build menu, point to Attachments, point to Joint, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Joint Attachment.
3. Select OK.

Working with Bushings


Bushings provide a six degree-of-freedom force relationship for connecting two components. The force is
applied between a marker on each component. The force depends on the relative displacement and the
relative velocity of the two markers.
The forces generated due to translational and rotational motion are entirely uncoupled from each other. In
the description of the bushing formulation that follows, you can apply the force dependencies, described next,
to either translational or rotational behavior. Therefore, a statement such as fi = h (relative displacements,
relative velocities) implies the following:
 Forces: fi = g (translational displacements, translational velocities)
 Moments: fi = h (angular displacements, angular velocities)
Learn about bushings:
 Creating and Modifying Bushings
 Stiffness Forces Computation
 Damping Forces Computation
 Bushing Specifications in the Adams Dataset (.adm)

Creating and Modifying Bushings


When working in Template Builder, you can create bushings and then modify them. When working in
Standard Interface, you can only modify and replace bushings. Learn about the Interface Modes. If you replace
a nonlinear bushing with any other bushing definition, the new property file will be added to the bushing's
property file list.

Nonlinear Bushings

To create a nonlinear bushing:


1. From the Build menu, point to Attachments, point to Bushing, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Bushing Attachment.
3. Select OK.
Working with Components 103
Attachments

To modify a nonlinear bushing in the Template Builder:


1. To display the modify dialog box, do one of the following:
 From the Build menu, point to Attachments, point to Bushing, and then select Modify. To load
the parameters for a specific bushing, you must specify the bushing you want to modify.
 Right-click a bushing, point to its name, and then select Modify. The dialog box has the bushing
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Bushing Attachment.
3. Select OK.

To modify a nonlinear bushing in the Standard Interface:


1. In Standard Interface, right-click a bushing, point to its name, and then select Modify. The dialog
box has the bushing parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Bushing.
3. Select OK.

Linear Bushings

To create a linear bushing:


1. In Standard Interface, right-click a bushing, point to its name, and then select Replace Instance.
2. Press F1 and then follow the instructions in the dialog box help for Replace Instance Definition.
3. Select OK.

To modify a linear bushing in the Standard Interface:


1. Right-click a bushing, point to its name, and then select Modify. The dialog box has the bushing
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Linear Bushing.
3. Select OK.

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.

FMU Input/Output Signal Convention


Adams sends six displacement and six velocity states to the FMU, and expects six force components to be
returned. These signals must be named according to the table below. All values are calculated in the bushing
reference frame as defined by the J marker of the bushing. This is defined in the Adams Car template.

Type Name Description


Input Displacement_X Relative Displacement in X direction of I part with respect to
J part
Input Displacement_Y Relative Displacement in Y direction of I part with respect to
J part
Input Displacement_Z Relative Displacement in Z direction of I part with respect to
J part
Input DisplacementAngular_X Relative Rotation about the X axis of I part with respect to J
part
Input DisplacementAngular_Y Relative Rotation about the Y axis of I part with respect to J
part
Input DisplacementAngular_Z Relative Rotation about the Z axis of I part with respect to J
part
Input Velocity_X Relative translational velocity in X direction of I part with
respect to J part
Input Velocity_Y Relative translational velocity in Y direction of I part with
respect to J part
Input Velocity_Z Relative translational velocity in Z direction of I part with
respect to J part
Input VelocityAngular_X Relative angular velocity about X axis of I part with respect to
J part
Input VelocityAngular_Y Relative angular velocity about Y axis of I part with respect to
J part
Input VelocityAngular_Z Relative angular velocity about Z axis of I part with respect to
J part
Output Force_X Force acting on I part in X direction
Output Force_Y Force acting on I part in Y direction
Working with Components 105
Attachments

Type Name Description


Output Force_Z Force acting on I part in Z direction
Output Torque_X Torque acting on I part about X axis
Output Torque_Y Torque acting on I part about Y axis
Output Torque_Z Torque acting on I part about Z axis

The resulting force formulation for the FMU bushing is as follows:


FX = t_preload_x + fx_scaling_factor × (-1 × FMU output 1)
FY = t_preload_y + fy_scaling_factor × (-1 × FMU output 2)
FZ = t_preload_z + fz_scaling_factor × (-1 × FMU output 3)
TX = r_preload_x + tx_scaling_factor × (-1 × FMU output 4)
TY = r_preload_y + ty_scaling_factor × (-1 × FMU output 5)
TZ = r_preload_z + tz_scaling_factor × (-1 × FMU output 6)

Note: A positive force acts to repel the I and J parts, resisting compression.

To create an FMU bushing:


1. In Standard Interface, right-click a bushing, point to its name, and then select Replace Instance.
2. Press F1 and then follow the instructions in the dialog box help for Replace Instance Definition.
3. Select OK.

To modify an FMU bushing in the Standard Interface:


1. Right-click a bushing, point to its name, and then select Modify. The dialog box has the bushing
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Bushing.
3. Select OK.

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.

To use bushings-in-series in the Standard Interface:


1. Right-click a bushing, point to its name, and then select Modify. The dialog box has the bushing
parameters already loaded.
106 Adams Car
Attachments

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.

Bushing Installation Angle


An initial bushing angle can be calculated for certain front and rear suspension bushings. This angle is
calculated based on the pvs_wheel_center_rise parameter. The pvs_wheel_center_rise parameter must be
present in the Parameters block in the subsystem file. For bushings where it is obvious how the vertical motion
of the wheel will create a torque on a bushing, the effective lever arm for that bushing with the wheel center
rise are used to calculate the angle. This angle represents the preload generated during assembly line
installation of a suspension. The wheel center rise sign convention is negative for rebound.
Example Bushing Installation Angle Calculation for Double Wishbone Suspension

To calculate the bushing installation angle required for a given wheel rise (r), the effective arm length (L) is
calculated.

The installation angle is calculated by taking the arctan of r/L.


Working with Components 107
Attachments

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:

Product Bushing model Installation angle support


Car ac_bushing Yes
Car ac_linear_bushing No
Driveline ac_f_d_bushing Yes
Ride ac_frequency_bushing Yes
Ride ac_general_bushing No
Ride ac_general_f_d_element No
Ride ac_hydro_bushing Yes

Note: The installation angle calculated due to wheel center rise will be overwritten, if Z angle
offset is specified in the subsystem.

About Bushing Property Files


The standard non-linear bushing component supports the following types of property files:
 TeimOrbit (TeimOrbit File Format) bushing property files (extension .bus) - Standard TeimOrbit
bushing property files correspond to nonlinear stiffness forces with linear damping.
 XML (XML File Format) bushing property file - The XML bushing property file enables data
sharing with other MSC Software applications, and allows greater flexibility and a wider range of
bushing formulation choices. In particular, the XML bushing property file supports various methods
and options for the calculation of force characteristics, as explained in Calculation of Force
Characteristics. You work with XML files in the Property File Editor.
108 Adams Car
Attachments

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.

Stiffness Forces Computation


The standard non-linear bushing force calculations are outlined below. In the expressions that follow:
 i, j k, l are indices whose integer values of 1 to 3 indicate application to the x, y, and z coordinate
directions, respectively
 All uppercase letters represent constants
The Transformed Displacement, q
Adams Solver computes the stiffness forces based on a bushing displacement vector, q, which is determined
by transformation to account for any inter-axial coupling. Therefore:

For uncoupled directions ( k > D ) , q is given by:


qk = rk

For coupled directions ( k ≤ D ) , q is given by:


q k = m ⋅ sgn ( r k )
Working with Components 109
Attachments

D
2
with m =  rl
l=1

and r k = Hk ⋅ xk – Qk
where the Adams internal variables are:

xk - Displacement of the modeled bushing in the k direction


rk - Displacement of the physical bushing in the k direction
qk - Ordinate (lookup point) in the stiffness force characteristic
D - Scalar magnitude of the bushing displacement vector

and the user-specified constants 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

For uncoupled directions ( k > D ) , the resulting force, f, is given by:


f k = G k – V k ⋅ y k ( q k' v k )

For coupled directions ( k ≤ D ) , f, is given by:


f k = G k – V k ⋅ w k ⋅ y k ( q k' v k )

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)

and the user-specified constants are:

Gk - Force offset (preload) for the kth direction (force_offset)


Vk - Vertical (force) scaling for the kth direction (stiffness_force_scale)

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.

Expressing the Stiffness Force Characteristic


You can use a number of formulations to express the stiffness force characteristic of the bushing, by
appropriately setting the integer value of stiffness_type (see above), and providing the necessary data in the
.adm file.
Learn how the Stiffness Force Characteristics are expressed in the .adm file.
Linear
The linear characteristic is straightforward, and is defined using a stiffness, k:

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:

qi - The i-direction component of the (transformed) bushing displacement

l - The lth stiffness for the ith direction


ki
l–1 l
l - The breakpoint where the stiffness changes between k i and ki
b
mi - The number of straight-line slopes that describe the characteristic

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:

Figure 1 Example Piecewise Linear Force-Displacement Characteristic

Smoothed Piecewise Linear


The smoothed piecewise linear definition is similar to the piecewise, but with smoothing across each change
in slope, such that the gradient of the force-displacement curve (for example, the stiffness) becomes
continuous:
112 Adams Car
Attachments

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):

q - The (transformed, scaled and offset) bushing displacement


kl - The lth stiffness
l–1 l
bl - The breakpoint (value of displacement) where the stiffness changes between ki and ki
e - The displacement over which each change in stiffness is smoothed to prevent discontinuities in
stiffness
m - The number of straight-line slopes that describe the underlying characteristic

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

Figure 2 Example Force-Displacement Characteristic for a Smoothed Piecewise Linear Bushing

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:

Ai - Horizontal (velocity) scaling for the ith direction (vel_scale)


Ei - Velocity offset for the ith direction (vel_offset)
Pi - Velocity saturation point (m/s) for the i direction (for hysteretic bushings only)
pi - Scaled and offset velocity in the i direction
x· i - Velocity (rate of change of model bushing displacement) in the i direction

vi - Transformed, and saturated x· i

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

Damping Forces Computation


Adams Solver computes the damping forces based on a transformed (scaled, and offset) bushing velocity
vector, p, defined as:

P i = A i ⋅ x· i – E i
where the Adams internal variables are:

x· i - Rate of change of the true bushing displacement, x


Pi - Scaled and offset bushing velocity (the point in the force lookup)

and the user-specified constants are:

Ai - Horizontal (velocity) scaling for the ith direction (vel_scale)


Ei - Velocity offset for the ith direction (vel_offset)
116 Adams Car
Attachments

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:

where the user-specified constant:


Bi - Is the vertical (force) scaling for the ith direction (damping_force_scale)

Expressing the Damping Force Characteristic


You can use several methods to specify the damping properties in each coordinate direction, as explained next.

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:

qi - The i-direction component of the (transformed) bushing displacement


- The lth stiffness for the ith direction
- Breakpoint where the stiffness changes between and

Note that is a necessary condition for all n.

A typical characteristic from this formulation will look similar to the following:
118 Adams Car
Attachments

Figure 3 Example Piecewise Linear Force-Velocity Characteristic

Stiffness Fraction ("k-fraction")


The stiffness fraction damping method simply ensures that the damping coefficient increases in proportion
to the local stiffness of the bushing at the current operating point.
The damping force in each direction is determined by first identifying the local stiffness as being the modulus
of the rate of change of the stiffness force in that direction with respect to a displacement in the same
direction. This stiffness magnitude is then multiplied by the k-fraction, k, (damping_value) and multiplied
by the appropriate component of the transformed velocity, p:

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.

Bushing Specifications in the Adams Dataset (.adm)


 Coupling Specification
 Stiffness Force Characteristic
 Damping Force Characteristic
Working with Components 119
Attachments

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:

ARRAY/id, NUM= stiffness_type, stiffness_value, stiffness_force_scale, …


damping_type, damping_value, damping_force_scale, …
force_offset, disp_offset, disp_scale, vel_offset, vel_scale

All of those parameters are required, and are described in detail in the following sections.

Stiffness Force Characteristic


You can use a number of formulations to express the stiffness force characteristic of the bushing, by
appropriately setting the integer value of stiffness_type (see above), and providing the necessary data in the
.adm file.

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

AKIMA Spline (stiffness_type = 2)


The nonlinear, AKIMA spline characteristic is defined using a single Adams AKIMA spline, specified by
setting stiffness_value equal to the Adams ID of the spline. That spline must be supplied in the dataset, but
can be shared among several directions and/or bushings.

Hysteretic Dual-Spline (stiffness_type = 3)


To specify this stiffness characteristic, the .adm file must include both a two-element array (whose integer ID
is placed in stiffness_value), of the form:
ARRAY/id, NUM = sid, P
where the terms are defined as:

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

and the associated Adams spline, of the form:


SPLINE/sid,
,X= [displacement_values]
,Y= -1.0, [force_neg_vel_values]
,Y= 1.0, [force_pos_vel_values]

Piecewise Linear (stiffness_type = 4)


When you select this stiffness type, you must provide an additional array in the .adm file, and you must set
the value of stiffness_value (see above) equal to the integer Adams ID of that additional array. That additional
array must be of the form:
ARRAY/id, NUMBERS = n, k(0), b(1), k(1), ... , b(n), k(n)
where:

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

Smoothed Piecewise Linear (stiffness_type = 5)


When you select this stiffness type, you must provide an additional array in the .adm file, and you must set
the value of stiffness_value (see above) equal to the integer Adams ID of this new array. For the smoother
piecewise characteristic, the new array must be of the form:
ARRAY/ID, NUMBERS = s, n, k(0), b(1), k(1), ... , b(n), k(n)
where:

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.

Damping Force Characteristic


For the stiffness characteristic, a number of methods exist for specifying the damping properties in each
coordinate direction:

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.

AKIMA Spline (damping_type = 2)


The nonlinear, AKIMA spline characteristic is defined using a single Adams AKIMA spline, specified by
setting damping_value equal to the Adams ID of the spline. The damping force characteristic is then
determined directly from this spline:
122 Adams Car
Attachments

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.

Piecewise Linear (damping_type = 3)


When you select this damping type, exactly as with the equivalent stiffness type, you must provide an
additional array in the .adm file, and you must set the value of damping_value (see above) equal to the integer
Adams ID of that additional array. That array must be of the form:
ARRAY/id, NUMBERS = n, k(0), b(1), k(1), ... , b(n), k(n)
where:

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.

Stiffness Fraction ("k-fraction") (damping_type = 4)


For the stiffness-fraction damping characteristic, the parameter damping_value should be set equal to the
required stiffness fraction, k.
Working with Components 123
Attachments

Working with Connectors


Connectors provide the Standard Interface user the flexibility to choose the attachment type: bushing, joint,
both, or neither.

Learn about connectors:


 Creating and Modifying Connectors
 About Connectors

Creating and Modifying Connectors


When working in Template Builder, you can create connectors and then modify them. When working in
Standard Interface, you can only modify connectors. Learn about the interface modes.

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.

To modify a connector in the Template Builder:


To display the modify dialog box, do one of the following:
 From the Build menu, point to Attachments, point to Connector, and then select Modify. To load
the parameters for a specific connector, you must specify the connector you want to modify.
 Right-click a connector, point to its name, and then select Modify. The dialog box has the
connector parameters already loaded.
 Press F1 and then follow the instructions in the dialog box help for Create/Modify Connector Attachment.
 Select OK.

To modify a connector in the Standard Interface:


1. Right-click a connector, point to its name, and then select Modify. The dialog box has the connector
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Connector.
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.

Working with Springs


A spring element defines a force-displacement relationship between two parts. The spring force acts on the
two parts at user-specified coordinates. The spring’s force-displacement properties, free length, number of
coils and other parameters are given in the designated property file.
Learn about springs:
 Creating and Modifying Springs
 About Linear Springs
 About Nonlinear Springs
 About Spring Property Files
Your template-based product models air springs as simple action-reaction forces between two parts. Each air
spring references an air-spring property file that tabulates spring force against trim load and deflection from
trim length. Trim load is the nominal load in the spring for a given trim length and internal pressure. Before
analysis, your template-based product reads the data from the referenced property file and stores it in a three-
dimensional SPLINE. During analysis, Adams Solver computes the air-spring force by interpolating the
SPLINE data using the Akima method.
Air springs include an auto-trim feature, where you can specify a desired trim height of the suspension and
the air spring's trim load is automatically adjusted during static equilibrium analysis to achieve the trim
height.
To use an air spring in a subsystem, select a coil spring and use the replace option from the shortcut menu to
replace the coil spring with an air spring.
Learn about air springs:
Working with Components 125
Forces

 Modifying Air Springs


 Auto Trim Load
 Calculation of Air-Spring Force
Your template-based product also models torsion beam spring as simple beam between two parts. Each
torsion beam spring reference a torsion spring property file that contains material properties, inner and outer
radius, and active length for the torsion spring. The finish angle, which is the bar windup required to achieve
the desired ride height, should be determined by adjusting the full vehicle model. The torsion bar active
lengths must be obtained from the spring supplier.
See Create/Modify Torsion Beam Spring for more information about torsion beam spring.

Creating and Modifying Springs


When working in Template Builder, you can create springs and then modify them. When working in
Standard Interface, you can only modify springs. Learn about the interface modes.

Nonlinear Springs

To create a nonlinear spring:


1. From the Build menu, point to Forces, point to Spring, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Spring.
3. Select OK.

To modify a nonlinear spring in the Template Builder:


1. To display the modify dialog box, do one of the following:
• From the Build menu, point to Forces, point to Spring, and then select Modify. To load the
parameters for a specific spring, you must specify the spring you want to modify.
• Right-click a spring, point to its name, and then select Modify. The dialog box has the spring
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Spring.
3. Select OK.

To modify a nonlinear spring in the Standard Interface:


1. In Standard Interface, right-click a spring, point to its name, and then select Modify. The dialog box
has the spring parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Spring.
3. Select OK.
126 Adams Car
Forces

Linear Springs

To modify a linear spring in the Standard Interface:


1. Right-click a spring, point to its name, and then select Modify. The dialog box has the spring
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Linear Spring.
3. Select OK.

About Linear Springs


Your template-based product (using the Adams Solver SPRINGDAMPER) calculates the spring force as
follows:
Spring Force = - K*(DM(I,J) - OffsetCalc)
where:
 K - The linear stiffness defined in the spring property file.
 DM - The instantaneous distance between the I and J coordinate references.
 OffsetCalc - Depends on the free length defined in the spring property file and in the spring install
methods.

Spring Install Methods


The three spring install methods are:
 Preload - The desired spring load at the current position of the I and J coordinate references.
 Installed Length - The installed length of the spring at the current position of the I and J coordinate
references.
 Use Hardpoints - The installed length of the spring equals the distance between the I and J coordinate
references.
When you submit the model to Adams Solver, the spring-damper statement that your template-based
product creates, has the form:
SPRINGDAMPER/id, I=I_id, J=J_id
, K=K
, C=0
, LENGTH=OffsetCalc
, FORCE=0
, TRANSLATIONAL

About Nonlinear Springs


Your template-based product (using the Adams Solver SFORCE) interpolates a force versus spring length or
spring deflection table using Akima's method.
If you are using a force versus length table, the force is calculated as follows:
Spring Force = AKISPL(OffsetCalc + DM(I, J), 0, Spline)
Working with Components 127
Forces

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.

Spring Install Methods


The three spring install methods are:
 Preload - The desired spring load at the current position of the I and J coordinate references.
 Installed Length - The installed length of the spring at the current position of the I and J coordinate
references.
 Use Hardpoints - The installed length of the spring equals the distance between the I and J coordinate
references.
When you submit the model to Adams Solver, the SFORCE statement that your template-based product
creates, has the form:
SFORCE/id, I=I_id, J=J_id
, FUNCTION=AKISPL(OffsetCalc + DM(I_id, J_id), 0, Spline)\
, TRANSLATIONAL

About Spring Property Files


The spring component supports the following types of Property Files:
 TeimOrbit linear-spring property files (extension .lsf). See TeimOrbit File Format. Learn more about
this file format with the help of Spring dialog box.
 TeimOrbit nonlinear-spring property files (extension .spr). Standard TeimOrbit nonlinear-spring
property files correspond to nonlinear, deflection-based spring formulation, as explained in About
Nonlinear Springs.
 XML spring property file (See XML File Format). The XML spring property file supports linear and
nonlinear force characteristics and allows you to choose between specifying force versus spring
deflection or spring length, as described in About Nonlinear Springs. You work with XML files in the
Property File Editor.

Modifying Air Springs

To modify an air spring in the Standard Interface:


1. In Standard Interface, right-click an air spring, point to its name, and then select Modify. The dialog
box has the air-spring parameters already loaded.
128 Adams Car
Forces

2. Press F1 and then follow the instructions in the dialog box help for Modify Spring.
3. Select OK.

Auto Trim Load


An Adams Solver differential equation sets an air spring's trim load. The differential equation calculates the
trim load that corresponds to the desired trim length during static equilibrium analyses. Its value is then
locked to the last value calculated during static analyses for all the subsequent transient simulations.
F = USER (1117, trimLength, Imarker, Jmarker)
where:
 1117 - Branch ID
 trimLength - The desired displacement, as specified in the property file, which you can edit using
the Property File Editor.
 I/J marker - The air spring's I and J markers of the SFORCE.

Calculation of Air-Spring Force


An Adams Solver SFORCE computes the air-spring force. The SFORCE function is:
force = AKSIPL((trimLength – DM (marker I, marker j)),
(trimLoad), splineID)
where:
 AKSIPL - Is the Adams Solver function that interpolates data using Akima’s method.
 trimLength - Is the distance between the upper and lower spring seats when the suspension is at trim
height. trimLength is a positive real value read from the air-spring property file.
 DM(marker I, marker J) - Is the distance between the upper and lower spring seats.
 TrimLoad is the load in the spring when the suspension is at trim height. The load corresponds to
the trim load you specified, or, if you select auto trim load, it corresponds to a differential equation.

Torsion Beam Springs


To create a torsion beam spring:
1. From the Build menu, point to Forces, point to Torsion Beam Spring, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Torsion Beam Spring.
3. Select OK.

To modify a torsion beam spring in the Template Builder:


1. To display the modify dialog box, do one of the following:
• From the Build menu, point to Forces, point to Torsion Beam Spring, and then select Modify.
To load the parameters for a specific spring, you must specify the spring you want to modify.
• Right-click a spring, point to its name, and then select Modify. The dialog box has the spring
parameters already loaded.
Working with Components 129
Forces

2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Torsion Beam Spring.
3. Select OK.

To modify a nonlinear spring in the Standard Interface:


1. In Standard Interface, right-click a spring, point to its name, and then select Modify. The dialog box
has the spring parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Torsion Beam Spring.
3. Select OK.

Working with Dampers


A damper defines the force-velocity relationship between two parts. The damper is defined as acting between
user-specified Coordinate Reference points on each part, and conforms to the force-velocity curve described in
the designated property file.
Learn about dampers:
 Creating and Modifying Dampers
 About Linear Dampers
 About Nonlinear Dampers
 About Struts

Creating and Modifying Dampers


When working in Template Builder, you can create dampers and then modify them. When working in
Standard Interface, you can only modify dampers. Learn about the interface modes.

Nonlinear Dampers

To create a nonlinear damper:


1. From the Build menu, point to Forces, point to Damper, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Damper.
3. Select OK.

To modify a nonlinear damper in the Template Builder:


 To display the modify dialog box, do one of the following:
• From the Build menu, point to Forces, point to Damper, and then select Modify. To load the
parameters for a specific damper, you must specify the damper you want to modify.
• Right-click a damper, point to its name, and then select Modify. The dialog box has the damper
parameters already loaded.
 Press F1 and then follow the instructions in the dialog box help for Create/Modify Damper.
 Select OK.
130 Adams Car
Forces

To modify a nonlinear damper in the Standard Interface:


1. Right-click a damper, point to its name, and then select Modify. The dialog box has the damper
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Damper.
3. Select OK.

Linear Dampers

To modify a linear damper in the Standard Interface:


1. Right-click a damper, point to its name, and then select Modify. The dialog box has the damper
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Linear Damper.
3. Select OK.

Struts

To replace a Damper with Strut in the Standard Interface:


See Replacing Instance Definition.

To modify a Strut in the Standard Interface:


1. Right-click a strut, point to its name, and then select Modify. The dialog box has the damper
parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Strut.
3. Select OK.

About Linear Dampers


In addition to the standard definition of a damper (based on an AKIMA spline interpolation of a force
velocity two-dimensional spline), Adams Car offers a linear-damper model. The linear-damper model allows
you to define a single damping term. The force exerted by the damper between the I and J parts at the desired
locations follows the well-known formula:
Force = -c dx/dt
where dx/dt is the time derivative of the radial relative displacement between marker I and marker J.

About Nonlinear Dampers


The force-velocity formula is based on:
 VR - Relative velocity of marker I with respect to marker J
 Damper property file
Force = akispl(VR(marker i, marker j),0, Spline)
Working with Components 131
Forces

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.

3. Select the Curve Manager tool .

4. Select the Properties tab.


5. Under Gas Preload, select one:
• None - No preload is added to the damper force calculations.
• Constant - A constant force is added to damper force calculations. A positive force acts to extend
the damper.
132 Adams Car
Forces

• 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.

Working with Bumpstops


A bumpstop defines a force-displacement relationship between two parts. The bumpstop acts between user-
specified coordinate reference points on each part, and conforms to the force-displacement properties
described in the designated property file.
The bumpstop force is activated when the distance between the two coordinate references falls below the
clearance defined for the bumpstop.
Two types of bumpstop are supported:
1. Internal: Line-of-sight, based on the SFORCE element. Use this type when the bumpstop is
constrained, as in a strut.
2. External: Distance to a plane, based on the VFORCE element. Use this type when the bumpstop is
not constrained radially.
The force-displacement formula is based on:
 Instantaneous distance between the user-specified coordinates defined on each part
 Impact length or clearance
 Bumpstop property file (polynomial or nonlinear stiffness with or without linear or nonlinear
damping).
Learn about bumpstops:
 Creating and Modifying Bumpstops
 Calculation of Force Characteristics
 About Bumpstop Property Files
 About Hammerstein Bumpstops

Creating and Modifying Bumpstops


When working in Template Builder, you can create bumpstops and then modify them. When working in
Standard Interface, you can only modify bumpstops. Learn about the interface modes.

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

To modify a bumpstop in the Template Builder:


1. To display the modify dialog box, do one of the following:
• From the Build menu, point to Forces, point to Bumpstop, and then select Modify. To load the
parameters for a specific bumpstop, you must specify the bumpstop you want to modify.
• Right-click a bumpstop, point to its name, and then select Modify. The dialog box has the
bumpstop parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Bumpstop.
3. Select OK.

To modify a bumpstop in the Standard Interface:


1. In Standard Interface, right-click a bumpstop, point to its name, and then select Modify. The dialog
box has the bumpstop parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Bumpstop.
3. Select OK.

Calculation of Force Characteristics


The force in a bumpstop 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 (XML File Format) bumpstop property file
supports various options for the three force components. For the Internal bumpstop method, the options
available for calculating elastic force (Felastic) are:
 polynomial - The formulation of the force is based on a third-order polynomial whose equation can
be expressed as follows:
Felastic = POLY(MAX(0, impact_length – DM (marker i, marker j)), 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(MAX(0, impact_length - DM(marker i, marker j)),
0,Spline)
The XML property file specifies the impact length (named "bumper height" in the XML editor). Therefore,
if you select an XML property file, the Clearance/Impact Length option in Car is disabled and the value from
the property file is used instead.
The elastic force becomes active only when the instantaneous distance between the markers on the two parts
is less than the impact length. The impact length term depends on the distance type. If you select Clearance,
the impact length becomes:
dmCalc - Clearance
where:
 Clearance - Value you specify
 dmCalc - Initial displacement computed between the I and J markers
The following figure shows the clearance and impact length.
134 Adams Car
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.

About Bumpstop Property Files


The bumpstop component supports the following types of property files:
 TeimOrbit (TeimOrbit File Format) bumpstop property files (extension .bum). Standard TeimOrbit
bumpstop property files correspond to nonlinear elastic forces with linear damping equal to 0
formulation. Learn more with Bumpstop dialog box help.
 XML (XML File Format) bumpstop property file. The XML bumpstop property file enables data
sharing with other MSC Software applications, and allows greater flexibility and a wider range of
bumpstop formulation choices. In particular, the XML bumpstop property file supports various
methods and options for the calculation of force characteristics, as explained in Calculation of Force
Characteristics. You work with XML files in the Property File Editor.

Hammerstein Bumpstops
To replace a Bumpstops with Hammerstein Bumpstop in the Standard Interface:
See Replacing Instance Definition.

To modify a Hammerstein Bumpstop in the Standard Interface:


1. In Standard Interface, right-click a Hammerstein Bumpstop, point to its name, and then select
Modify. The dialog box has the Hammerstein model's parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Hammerstein Bumpstop.
3. Select OK.
136 Adams Car
Forces

Hammerstein Property File Editor:


The parameter tab of the Property File Editor can be used to specify hammerstain model's inputs parameters
like Order and A, B, C, D matrixes.

Working with Reboundstops


A reboundstop defines a force-displacement relationship between two parts. The reboundstop acts between
user-specified coordinate reference points on each part, and conforms to the force-displacement curve
described in a designated property file. The reboundstop force is activated when the displacement between the
two coordinate references exceeds the defined clearance.
The force-displacement formula is based on:
 Instantaneous distance between the user-specified coordinates defined on each part
 Impact length or clearance
 Reboundstop property file (polynomial or nonlinear stiffness with or without linear or nonlinear
damping.)
Learn about reboundstops:
 Creating and Modifying Reboundstops
 Calculation of Force Characteristics
 About Reboundstop Property Files

Creating and Modifying Reboundstops


When working in Template Builder, you can create reboundstops and then modify them. When working in
Standard Interface, you can only modify reboundstops. Learn about the interface modes.
Working with Components 137
Forces

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.

To modify a reboundstop in the Template Builder:


1. To display the modify dialog box, do one of the following:
• From the Build menu, point to Forces, point to Reboundstop, and then select Modify. To load
the parameters for a specific reboundstop, you must specify the reboundstop you want to modify.
• Right-click a reboundstop, point to its name, and then select Modify. The dialog box has the
reboundstop parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Reboundstop.
3. Select OK.

To modify a reboundstop in the Standard Interface:


1. In Standard Interface, right-click a reboundstop, point to its name, and then select Modify. The
dialog box has the reboundstop parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for 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 following figure shows the clearance and impact length.

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.

About Reboundstop Property Files


The reboundstop component supports the following types of property files:
 TeimOrbit (TeimOrbit File Format) reboundstop property files (extension .reb) - Standard TeimOrbit
reboundstop property files correspond to nonlinear elastic forces with linear damping equal to 0
formulation. Learn more with Reboundstop dialog box help.
 XML (XML File Format) reboundstop property file - The XML reboundstop property file enables data
sharing with other MSC Software applications, and allows greater flexibility and a wider range of
reboundstop formulation choices. In particular, the XML reboundstop property file supports
various methods and options for the calculation of force characteristics, as explained in Calculation of
Force Characteristics. You work with XML files in the Property File Editor.

Working with Aerodynamics


Aerodynamics defines the aerodynamic forces and moments which act on a vehicle. Aerodynamics modeling
provides the sensitivities of a particular vehicle to wind gusts, drag, lift and side forces. This program requires
wind tunnel aerodynamic coefficient data for the vehicle being modeled and they must be taken according
to SAE J1594 conventions for Vehicle Aerodynamics Terminology.
The aerodynamics acts at user-specified coordinate reference points on the part, and conforms to the wind
angle-coefficients curve described in a designated property file. The aerodynamics force is always active if
defined unless you create a group to toggle its activity.
The two methods are provided for modeling aerodynamics. The different types are represented by different
property file classes. Aerodynamic property files are stored in the aero_forces.tbl subdirectory of a vehicle
database. The following property file types are supported:
 AeroDynamicForcesOnePointForceProperties
 AeroDynamicForcesTwoPointForceProperties
 AeroDynamicForcesOnePointForceProperties3d
 AeroDynamicForcesTwoPointForceProperties3d
The default location for the one-point aerodynamics property is:
 X=Midpoint between front and rear wheel centers
140 Adams Car
Forces

 Y=Midpoint between left and right wheel centers (front)


 Z=Vertical height of the front contact patch

Figure 4 One-Point Aerodynamic Force

The default location for the two-point aerodynamics property is:


 X= X Location of wheel centers (front and rear)
 Y=Midpoint between left and right wheel centers (front and rear)
 Z=Vertical height of the contact patch (front and rear)
Working with Components 141
Forces

Figure 5 Two-Point Aerodynamic Force

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

Creating and Modifying Aerodynamics


When working in Template Builder, you can create aerodynamics and then modify them. When working in
Standard Interface, you can only modify aerodynamics. Learn about the interface modes.

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.

To modify an aerodynamics in the Template Builder:


1. To display the modify dialog box, do one of the following:
From the Build menu, point to Forces, point to Aerodynamics, and then select Modify. To load the
parameters for a specific aerodynamics, you must specify the aerodynamics you want to modify.
2. Right-click a aerodynamics, point to its name, and then select Modify. The dialog box has the
aerodynamics parameters already loaded.
3. Press F1 and then follow the instructions in the dialog box help for Create/Modify Aerodynamics.
4. Select OK.

To modify an aerodynamics in the Standard Interface:


1. In Standard Interface, right-click a n aerodynamics, point to its name, and then select Modify. The
dialog box has the aerodynamics parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Aerodynamics.
3. Select OK.

Force Calculation
The aerodynamics force always acts on the part. Learn about implementation of aerodynamics modeling.

About Aerodynamics Property Files


The aerodynamics component supports the following types of property files:
XML (XML File Format) aerodynamics property file - The XML aerodynamics property file enables data sharing
with other MSC Software applications, and allows greater flexibility and a wider range of aerodynamics
formulation choices. In particular, the new XML aerodynamics property file supports various methods and
options for the calculation of aerodynamics force, as explained in aerodynamics modeling. You work with
XML files in the Property File Editor.
Working with Components 143
Forces

Working with Contact Definitions


A contact definition defines a force-displacement relationship between two parts. The contact definition acts
between user-specified geometries or flexible bodies, and conforms to the force-displacement properties
described in the associated Contact Parameter Array.
The contact force is activated when the distance between the contact pair reaches zero.
The force-displacement formula is based on:
 Instantaneous distance between the user-specified contact pair
 Contact parameters stored in an associated array.

Creating and Modifying Contact Definitions


When working in Template Builder, you can create contact definitions and then modify them. When
working in Standard Interface, you can only activate/deactivate contact definitions. You can also modify
contact parameters in Standard Interface. Learn about the Interface Modes.

To create a contact definition:


1. From the Build menu, point to Contact Definitions, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Contact Definition.
3. Select OK.

To modify a contact definition in the Template Builder:


To display the modify dialog box, do one of the following:
1. From the Build menu, point to Contact Definitions, and then select Modify. To load the parameters
for a specific contact definition, you must specify the contact definition you want to modify.
2. From the Model Browser, right-click a contact definition, and then select Modify. The dialog box has
the contact definition parameters already loaded.
3. Press F1 and then follow the instructions in the dialog box help for Create/Modify Contact Definition.
4. Select OK.

To modify contact parameters in the Standard Interface:


1. In Standard Interface, from the Model Browser, right-click a contact parameter array, point to its
name, and then select Modify. The dialog box has the contact parameters already loaded.
2. Press F1 and then follow the instructions in the dialog box help for Modify Contact Parameters.
3. Select OK.

To activate/deactivate a contact definition in the Standard Interface:


1. From the Adjust menu, point to Contacts, and then select Definition Table.
2. Press F1 and then follow the instructions in the dialog box help for Contact Definition Table.
3. Select OK.
144 Adams Car
Loading

Force Calculation
See section CONTACT in the Solver Statements guide.

Working with Runtime Clearances


A runtime clearance defines a distance measurement between user-specified geometries or flexible bodies.

Creating and Modifying Runtime Clearances


When working in Template Builder, you can create runtime clearances and then modify them. When
working in Standard Interface, you can only activate/deactivate runtime clearances. Learn about the Interface
Modes.

To create a runtime clearance:


1. From the Build menu, point to Runtime Clearances, and then select New.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Runtime Clearance.
3. Select OK.

To modify a runtime clearance in the Template Builder:


To display the modify dialog box, do one of the following:
1. From the Build menu, point to Runtime Clearances, and then select Modify. To load the parameters
for a specific runtime clearance, you must specify the runtime clearance you want to modify.
2. From the Model Browser, right-click a runtime clearance, and then select Modify. The dialog box has
the runtime clearance parameters already loaded.
3. Press F1 and then follow the instructions in the dialog box help for Create/Modify Runtime Clearance.
4. Select OK.

To activate/deactivate a runtime clearance in the Standard Interface:


1. From the Adjust menu, select Runtime Clearance.
2. Press F1 and then follow the instructions in the dialog box help for Runtime Clearance Table.
3. Select OK.

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

Creating or Modifying a Loading


In Standard Interface, to modify a loading:
1. From the Adjust menu, point to Loading, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify Loading.
3. Select OK.

In Template Builder, to create or modify a loading:


1. From the Build menu, point to Loading, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Loading.
3. Select OK.

Display and Set Activity of Several Loadings at a Time


If you want to display and set activity of several existing loadings at a time, you can use the Loading Table.

In Standard Interface, to display and set activity of several loadings at a time:


1. From the Adjust menu, point to Loading, and then select Table.
2. Press F1 and then follow the instructions in the dialog box help for Loading Table.

In Template Builder, to display and set activity of several loadings at a time:


1. From the Build menu, point to Loading, and then select Table.
2. Press F1 and then follow the instructions in the dialog box help for Loading Table.

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.

Creating or Modifying a Loading Configuration


In Template Builder, to create or modify a configuration:
1. From the Build menu, point to Loading, point to Configuration and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Loading Configuration.
3. Select OK.

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.

To create or modify a leaf spring:


1. From the Build menu, point to Leaf Spring, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Leaf Spring.
3. Select OK.

Wheels, Adjustable forces and Gears

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.

In Standard Interface, to modify a wheel:


1. Right-click a wheel, and then select Modify.
2. Press F1 and then follow the instructions in the dialog box help for Modify Wheel.
3. Select OK.

In Template Builder, to create or modify a wheel:


1. From the Build menu, point to Wheel, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Wheel.
3. Select OK.

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.

Adjustable force: Pattern 1: Pattern 2: Pattern 3:


Front left toe 100 100100 100100100
Front right toe 100 100100 100100100
Front left camber 010 010010 010010010
Front right camber 010 010010 010010010
Front left caster 001 001001 001001001
Front right caster 001 010001 010001001
Rear left toe 100 100100 100100100
Rear right toe 100 100100 100100100
Rear left camber 010 010010 010010010
Rear right camber 010 010010 010010010
Rear left caster 001 001001 001001001
Rear right caster 001 010001 010001001

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.

In Standard Interface, to modify an adjustable force:


1. From the Adjust menu, select Adjustable Force.
2. Press F1 and then follow the instructions in the dialog box help for Modify Adjustable Force.
3. Select OK.

In Template Builder, to create or modify an adjustable force:


1. From the Build menu, point to Adjustable Force, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Adjustable Force.
3. Select OK.

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

The reduction ratio is based on the following equation:


input motion = reduction_ratio * output motion
You can define the differential gear as being kinematically active, allowing the element to be turned on or off
depending on the type of analysis you are running: compliant or kinematic.

Note: A gear in Adams Car is a coupler in Adams View.

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.

To create/modify a joint-force actuator:


1. From the Build menu, point to Actuators, point to Joint Force, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Joint Force Actuator.
3. Select OK.

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.

To create/modify a point-force actuator:


1. From the Build menu, point to Actuators, point to Point Force, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Point Force Actuator.
3. Select OK.

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.

To create/modify a joint-motion actuator:


1. From the Build menu, point to Actuators, point to Joint Motion, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Joint Motion Actuator.
3. Select OK.
Working with Components 153
Actuators

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.

To create/modify a point-torque actuator:


1. From the Build menu, point to Actuators, point to Point Torque, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Point Torque Actuator.
3. Select OK.

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.

To create/modify a variable actuator:


1. From the Build menu, point to Actuators, point to Variable, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Variable Actuator.
3. Select OK.

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.

To set actuator function:


1. From the Build menu, point to Actuators, and then select Set Function.
2. Press F1 and then follow the instructions in the dialog box help for Actuator Set Function.
3. Select OK.
154 Adams Car
Anti-Roll Bar

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.

To set actuator activity:


1. From the Build menu, point to Actuators, and then select Set Activity.
2. Press F1 and then follow the instructions in the dialog box help for Actuator Set Activity.
3. Select OK.

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.

Figure 6 Simple Method Anti-Roll Bar

 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.

Figure 7 Beam Method Anti-Roll Bar


Working with Components 155
Anti-Roll Bar

 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.

Creating or Modifying an Anti-Roll Bar


In Standard Interface, to modify an Anti-Roll Bar:
1. From the Adjust menu and then select Anti-Roll Bar.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Anti-Roll Bar.
3. Select OK.

In Template Builder, to create or modify an Anti-Roll Bar:


1. From the Build menu, point to Anti-Roll Bar, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Anti-Roll Bar.
3. Select OK.

Anti-Roll Bar Profile Definition


Your Anti-Roll Bar profile can be defined using three methods:
 Table/Location
 Outline
 B-Spline

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.

Features: Graphical Representation


Right click on the row and select Create
as New Hardpoint.

Right click on cell of the coordinate


reference column and select Create.

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.

Use of Condition Sensors in Adams Car


Adams Car browses the assembly for condition sensor elements prior to each vehicle analysis and updates the
data element end_conditions_array with the derived list. At the beginning of the simulation, the Standard
Driver Interface (SDI) then uses the specified end condition measure string in the driver control file to
identify the associated variable class object in the dataset, that calculates the quantity the end condition sensor
should compare to the target value.
This architecture allows you to extend the provided set of standard end conditions. If, for example, a ramp-
steer like custom vehicle event should be ended when the turn radius falls short of a certain threshold, you
could:
 add a variable class element to calculate the desired turn radius
• variable name = .__MDI_SDI_TESTRIG.body_turn_radius
• function = (vx2 + vy2)1.5 / (vx*ay - vy*ax)
 add a condition sensor referencing the variable above
• label = "radius"
• variable = .__MDI_SDI_TESTRIG.body_turn_radius
• units = length
158 Adams Car
Feedback Channels

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

Creating or Modifying Condition Sensors


To create/modify condition sensors:
1. From the Build menu, point to Condition Sensors, and then select New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify Condition Sensor.
3. Select OK.

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.

Creating or Modifying User-Function Feedback Channel


To create or modify a user-function feedback channel:
1. From the Build menu, point to Feedback Channels, point to User Function, and then select
New/Modify.
Working with Components 159
Data Elements, Requests and Variables

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.

To set feedback channel function:


1. From the Build menu, point to Feedback Channels, and then select Set Function.
2. Press F1 and then follow the instructions in the dialog box help for Set Feedback Channel 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.

To set feedback channel offset:


1. From the Build menu, point to Feedback Channels, and then select Set Offset.
2. Press F1 and then follow the instructions in the dialog box help for Set Feedback Channel Offset.

Data Elements, Requests and Variables

General Data Elements


General data elements are elements whose values are stored in property files.
The general data elements group includes:
 General Parameter
 General Spline
 General Variable

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).

To create or modify a general parameter:


1. From the Build menu, point to General Data Elements, point to Parameter, and then select
New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify General Parameter.
3. Select OK.

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

To create or modify a general spline:


1. From the Build menu, point to General Data Elements, point to Spline, and then select
New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify General Spline.
3. Select OK.

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).

To create or modify a general variable:


1. From the Build menu, point to General Data Elements, point to Variable, and then select
New/Modify.
2. Press F1 and then follow the instructions in the dialog box help for Create/Modify General Variable.
3. Select OK.

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

 Real - Can contain both a real value and a units specification.


Regardless of the parameter variable type, you can choose to hide the parameter variable from the standard
user. When you designate a parameter variable as hidden, the standard user will not be able to access it using
the Modify Parameter Variable dialog box in the Standard Interface.
For the parameter variable of type integer, you can choose to add a Custom Macro command. This supports
execution of macro commands with no parameter or with three parameters, for example, subsystem name,
activity and error flag. You may have many parameters in the macro, however these should have default values
as this feature does not provide an automated way to communicate these parameters with the macro.
Here is an example of a macro that makes use of three parameters:
!
! $subsystem:t=model(car@subsystem@*)
! $active:t=integer:d=1
! $error_variable:t=variable:d=.ACAR.variables.errorFlag
!
!END_OF_PARAMETERS
!

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.

Set Design Options


When working in Template Builder, you can define design options with choices and values along with
dependent parameter variables. When working in Standard Interface, you can select the available choices
from the option menu. Learn about the Interface Modes.

To define design options in the Template Builder:


1. From the Build menu, point to Custom Gui, and then select Design Options.
2. Press F1 and then follow the instructions in the dialog box help for Define Design Options.
3. Select OK.

To set design options in the Standard Interface:


1. From the Adjust menu, select Design Options.
2. Press F1 and then follow the instructions in the dialog box help for Set Design Options.
164 Adams Car
Data Elements, Requests and Variables

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.

Conventions in Template Descriptions


For each template description, we provide the following:
 Overview - A brief description of the template.
 Template Name - The file name containing the template.
 Major Role - The major role of the template.
 Application - The types of analyses in which you can use the template.
 Description - A complete description of the template and its use.
 Limitations - Limitations of the template design that you should be aware of.
 Files Referenced - The property or MNF files that the template uses to define such entities as
bushings, springs, and flexible bodies.
 Topology - How the different entities of the template connect and how forces or torques are
transferred from one entity to another.
 Parameter Variables - The parameter variables that store key information in the template. For
example, in templates, parameter variables often store angles for a suspension or the orientation of
axes.
 Communicators - Communicators used in the template.
 Notes - Miscellaneous information about the template.
When we refer to communicator and parameter names, we often use the notation [lr] to indicate that there
is both a left and right communicator or parameter of the specified name.

About Designing Templates


Adams Car templates are parameterized models in which you define the topology of vehicle components.
Building a template means defining parts, how they connect to each other, and how the template
communicates information to other templates and the test rig.
At the template level, it is not crucial that you correctly define the parts, assign force characteristics, and assign
mass properties, because you can modify these values at the subsystem level. It is very important, however, to
164 Adams Car
Template Updates

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.

Powertrain Template Update


You should update powertrain templates by creating new output communicators to match the following
input communicators in the testrig used by the Driving Machine:
 testrig.cis_max_engine_driving_torque
 testrig.cis_max_engine_braking_torque
 testrig.cis_engine_speed
 testrig.cis_engine_map

Maximum engine driving and braking torques


For closed-loop machine control, the maximum engine driving and braking torques must be communicated
to the Driving Machine. The machine control uses these values in its feed forward computations when
determining the needed throttle and brake inputs to achieve a target longitudinal acceleration. The Driving
Machine expects powertrain templates to provide these torques as Solver Variables. The torques should
depend on the engine speed. You must add two output communicators to your powertrain template and the
corresponding entities that are output. The entities are data element solver variables that compute the
maximum driving and maximum braking torques the powertrain subsystem produces at the current engine
speed. Note that without this information machine control of the vehicle speed and/or longitudinal
acceleration will be unreliable.
In the powertrain.tpl and .powertrain_lt.tpl template files distributed in the shared car database, there are
Adams Solver VARIABLEs with functions computing the maximum powertrain torque (fully open throttle)
and maximum powertrain brake torque (closed throttle):
Working with Templates 165
Template Updates

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

Matching Name: engine_speed


Entity Type: solver_variable
Minor Role: inherit
Entity: engine_speed
The solver variable, engine_speed, represents the engine rotational velocity expressed in angular/time units
[rad/second]. In the powertrain template distributed in the shared car database , engine_speed is defined as
MAX(0,DIF(._powertrain.engine_omega)).
The __mdi_sdi_testrig references the output communicator you define and SmartDriver uses that
communicator in the smart_driver_controller_inputs_array. The SmartDriver controller input array
references various entities used to sense certain vehicle states. Adding the engine_speed communicator
enables the longitudinal controller so you can perform a constant-speed maneuver or any other type of closed-
loop machine control.

Aero Drag Force


If your vehicle model includes aerodynamic forces, then the drag force affects the longitudinal dynamics of
the vehicle. The feed-forward speed controller can account for the drag force when predicting the throttle
position needed to follow velocity or acceleration profile, if you create an output communicator that passes
the aerodynamic drag force to the __mdi_sdi_testrig. If your vehicle model does not include aerodynamic
forces, then you do not need to create an output communicator for the drag force.
The chassis template delivered in the shared car database, for example, has an aerodynamic force modeled
using a GFORCE. The GFORCE’s drag (longitudinal) force component is measured in a solver VARIABLE
named aero_drag_force with this function expression:
GFORCE(aero_forces,0,4,aero_drag_reference_marker)
Then, the aerodynamic drag is output to the __mdi_sdi_testrig using output communicator of type solver
variable:
Name: aero_drag_force
Matching Name: aero_drag_force
Entity Type: solver_variable
Minor Role: inherit
Entity: aero_drag_force
The chassis templates (_rigid_chassis_pickup.tpl, _rigid_chassis_bof.tpl, _rigid_chassis_bed_bof.tpl,
_rigid_chassis_two_body.tpl) delivered in the acar_concept database, for example has aerodynamic forces
modelled using a more detailed aerodynamics implementation.

Other Vehicle Parameters


Some sets of quantities that are used by the Adams SmartDriver lateral and longitudinal controllers cannot
be easily inferred from the vehicle model. These quantities are defined in the test rig as parameter variables
and are easily accessible. To modify vehicle parameters, display the Set Full-Vehicle Parameters dialog. From
the Simulate menu, point to Full Vehicle Analysis, and then select Set Full-Vehicle Parameters.
Working with Templates 167
Creating Topology for Your Templates

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 Topology for Your Templates


Topology in Adams Car consists of creating elements, such as hardpoints, parts, attachments, and parameters
that define subsystems, as explained next:
 Creating hardpoints - You first create hardpoints. Hardpoints are the Adams Car elements that define
all key locations in your model. They are the most elementary building blocks that you can use to
parameterize locations and orientations for higher-level entities. Hardpoint locations define most
parts and attachments. Hardpoints are only defined by their coordinate locations.
 Creating parts - Once you’ve defined hardpoints, you create parts and define them using the
hardpoints that you created. In this tutorial, you create two types of parts: General Parts, such as
control arm and wheel carrier, and Mount Parts.
168 Adams Car
Disc-Brake System

 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.

Figure 1 Disc-Brake System

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.

The parameter: Takes the value: Its units are:


front_brake_bias Real No units
front_brake_mu Real No units
front_effective_piston_radius Real mm
front_piston_area Real mm2
front_rotor_hub_wheel_offset Real mm
front_rotor_hub_width Real mm
front_rotor_width Real mm
max_brake_value Real No units
rear_brake_mu Real No units
rear_effective_piston_radius Real mm
rear_piston_area Real mm2
170 Adams Car
Disc-Brake System

The parameter: Takes the value: Its units are:


rear_rotor_hub_wheel_offset Real mm
rear_rotor_hub_width Real mm
rear_rotor_width Real mm

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_front_camber_angle parameter_real front
ci[lr]_front_rotor_to_wheel mount front
ci[lr]_front_toe_angle parameter_real front
ci[lr]_front_wheel_center location front
ci[lr]_front_suspension_upright mount front
ci[lr]_rear_rotor_to_wheel mount rear
ci[lr]_rear_suspension_upright mount rear
ci[lr]_rear_toe_angle parameter_real rear
ci[lr]_rear_camber_angle parameter_real rear
ci[lr]_rear_wheel_center location rear
cis_brake_demand solver_variable any
cos_max_brake_value parameter_real inherit
Working with Templates 171
Disc-Brake System

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:

 BrakeLinePressure is calculated as follows:


BrakeLinePressure = BrakeBias * BrakeDemand * 0.1
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.

Figure 2 Double-Wishbone Suspension

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.

The joint: Connects the part: To the part:


jklrev_lca gel_lower_control_arm ges_subframe
jolsph_lca_balljoint gel_upright gel_lower_control_arm2
jolsph_tierod_outer gel_tierod_outer gel_upright
jolcon_tierod_inner gel_tierod_inner mtl_tierod_to_steering
josfix_subframe_rigid ges_subframe mts_subframe_to_body
jklhoo_top_mount_kinematic gel_upper_strut mtl_strut_to_body
jolsph_uca_balljoint gel_upper_control_arm gel_upright
jolcyl_lwr_upr_strut gel_lower_strut gel_upper_strut
jklrev_uca gel_upper_control_arm mtl_uca_to_body
jklhoo_lwr_strut_kinematic gel_lower_strut gel_lower_control_arm
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
joltra_lca_split gel_lower_control_arm gel_lower_control_arm2
174 Adams Car
Double-Wishbone Suspension

The joint: Connects the part: To the part:


joltra_tierod_split gel_tierod_outer gel_tierod_inner
Hub Compliance on
jolsph_hub_compliance gel_spindle gel_upright
Hub Compliance off
jolrev_spindle_upright gel_spindle gel_upright

Parameters
Toe and camber variables define wheel spin axis, spindle part, and spindle geometry. The following table lists
the parameters in the template.

The parameter: Takes the value: Its units are:


phs_driveline_active Integer No units
phs_kinematic_flag Integer No units
pvs_hub_compliance_active Integer No units
pvs_subframe_active Integer No units
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_hub_compliance_offset Real mm

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_ARB_pickup location inherit
ci[lr]_strut_to_body mount inherit
ci[lr]_tierod_to_steering mount inherit
ci[lr]_tripot_to_differential mount inherit
ci[lr]_uca_to_body mount inherit
cis_chassis_reference marker inherit
Working with Templates 175
Flexible LCA Double-Wishbone Suspension

The communicator: Belongs to the class: Has the role:


cis_subframe_to_body mount inherit
co[lr]_arb_bushing_mount mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_droplink_to_suspension mount inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_tripot_to_differential location inherit
co[lr]_wheel_center location inherit
cos_driveline_active parameter_integer inherit
cos_engine_to_subframe mount inherit
cos_rack_housing_to_suspension_subframe mount inherit
cos_suspension_parameters_ARRAY array inherit

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.

Flexible LCA Double-Wishbone Suspension


Overview
The flexible LCA double-wishbone suspension template is similar to the standard Double-Wishbone Suspension.
In the flexible template, however, a flexible representation replaces the rigid body lower control arms.
176 Adams Car
Flexible LCA Double-Wishbone Suspension

Figure 3 Flexible LCA Double-Wishbone Suspension

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.

MNF files referenced


LCA_left_tet.mnf and LCA_right_tet.mnf.
Working with Templates 177
Flexible LCA Double-Wishbone Suspension

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.

Parameters, Communicators & Notes


Refer to the Double-Wishbone Suspension.
178 Adams Car
ISO Road Course

ISO Road Course


Overview
The ISO road course template represents a closed circuit with an ISO lane-change section.

Figure 4 ISO Road Course

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.

Figure 5 Track Template

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.

Figure 6 Leaf Spring

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.

The bushing: Connects the part: To the part:


bg[lr]_leaf_to_shackle leaf spring shackle
bg[lr]_leaf_to_frame leaf spring mtl_leaf_to_frame
bg[lr]_shackle_to_frame leaf spring mtl_shackle_to_frame

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_leaf_to_frame mount inherit
ci[lr]_shackle_to_frame mount inherit
co[lr]_leaf_to_axle mount inherit
184 Adams Car
Leafspring Suspension

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.

Figure 7 Leafspring Suspension

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.

The joint: Connects the part: To the part:


bg[lr]_hub_compliance ge[lr]_spindle ge[lr]_upright
bg[lr]_leaf_to_frame leaf spring mt[lr]_leaf_to_frame
bg[lr]_leaf_to_shackle leaf spring shackle
bg[lr]_shackle_to_frame leaf spring mt[lr]_shackle_to_frame
bg[lr]_shock_to_axle ge[lr]_axle ge[lr]_lower_shock_body
bk[lr]_shock_to_frame ge[lr]_upper_shock_body mt[lr]_shock_to_frame
jk[lr]hoo_top_mount_kinematic ge[lr]_upper_shock_body mt[lr]_shock_to_frame
jo[lr]cyl_lower_upper_strut ge[lr]_lower_shock_body ge[lr]_upper_shock_body
jo[lr]rev_axle_to_spindle ge[lr]_spindle ge[lr]_upright
jo[lr]rev_upright_to_axle ge[lr]_upright ge[lr]_axle
jo[lr]sph_hub_compliance ge[lr]_spindle ge[lr]_upright
jo[lr]sph_tie_rod_to_upright ges_tie_rod ge[lr]_upright
josfix_axle gel_axle ger_axle
josper_tie_rod_ori ges_tie_rod gel_upright

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

The parameter: Takes the value: Its units are:


phs_kinematic_flag integer no units
pv[lr]_camber_angle real degrees
pv[lr]_toe_angle real degrees
pvs_hub_compliance_active integer no units
pvs_hub_compliance_offset real mm
pvs_steerable_axle integer no units

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_leaf_to_frame mount inherit
ci[lr]_shackle_to_frame mount inherit
ci[lr]_shock_to_frame mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_leaf_to_axle mount inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount front
co[lr]_toe_angle parameter_real front
co[lr]_wheel_center location inherit
cos_strarm_to_spindle mount front
cos_suspension_parameters_ARRAY array inherit

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.

Figure 8 Loading System

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.

Figure 9 MacPherson Suspension

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.

The joint: Connects the part: To the part:


jklrev_lca gel_lower_control_arm ges_subframe
jolsph_lca_balljoint gel_upright gel_lower_control_arm
jolcyl_strut gel_upright gel_upper_strut
jolsph_tierod_outer gel_tierod gel_upright
jolcon_tierod_inner gel_tierod mtl_tierod_to_steering
jksfix_subframe_rigid ges_subframe mts_subframe_to_body
jklhoo_top_mount_kinematic gel_upper_strut mtl_strut_to_body
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
Hub Compliance on
jolsph_hub_compliance gel_spindle gel_upright
Hub Compliance off
jolrev_spindle_upright gel_spindle gel_upright
192 Adams Car
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.

The parameter: Takes the value: Its units are:


phs_driveline_active Integer No units
phs_kinematic_flag Integer No units
pvs_hub_compliance_active Integer No units
pv[lr]_toe_angle Real Degrees
pv[lr]_camber_angle Real Degrees
pv[lr]_drive_shaft_offset Real mm
pvs_hub_compliance_offset Real mm

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_ARB_pickup location inherit
ci[lr]_strut_to_body mount inherit
ci[lr]_tierod_to_steering mount inherit
ci[lr]_tripot_to_differential mount inherit
cis_subframe_to_body mount inherit
co[lr]_arb_bushing_mount mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_droplink_to_ suspension mount inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_tripot_to_differential location inherit
co[lr]_wheel_center location inherit
Working with Templates 193
Multi-Link Suspension

The communicator: Belongs to the class: Has the role:


cos_driveline_active parameter_integer inherit
cos_rack_housing_to_ suspension_subframe mount inherit
cos_suspension_parameters_ARRAY array inherit

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.

Figure 10 Multi-Link 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.

The joint: Connects the part: To the part:


jklsph_hub_tl gel_Upright gel_Trailing_Link
jklhoo_trailing_link_body gel_Trailing_Link mtl_trailing_link_body
jklrev_ula_sbf gel_upper ges_Subframe
joltra_dpr_upr_dpr_lwr gel_Damper_Upper gel_Damper_Lower
jklsph_dpr_lwr_tl gel_Damper_Lower gel_Trailing_Link
jklhoo_dpr_spring_seat_upper gel_Damper_Upper mtl_Spring_Seat_Upper
jksfix_sbf_body ges_Subframe mtl_body_sbf_front
jklsph_hub_ll gel_Upright gel_lateral
jklsph_hub_tr gel_Upright gel_Track_Rod
jklhoo_sbf_ll ges_Subframe gel_lateral
jklhoo_sbf_tr ges_Subframe gel_Track_Rod
jklsph_hub_ula gel_Upright gel_upper
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
Working with Templates 195
Multi-Link Suspension

The joint: Connects the part: To the part:


Hub Compliance on
jolsph_hub_compliance gel_spindle gel_upright
Hub Compliance off
jolrev_spindle_upright gel_spindle gel_upright

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.

The parameter: Takes the value: Its units are:


phs_driveline_active Integer No units
phs_kinematic_flag Integer No units
pvs_hub_compliance_active Integer No units
pvs_subframe_active Integer No units
pv[lr]_toe_angle Real Degrees
pv[lr]_camber_angle Real mm
pv[lr]_drive_shaft_offset Real mm
pvs_hub_compliance_offset Real mm

Communicators
The following table lists the communicators in the template.

The communicator: Belongs to the class: Has the role:


ci[lr]_body_sbf_front mount inherit
ci[lr]_body_sbf_rear mount inherit
ci[lr]_Spring_Seat_Upper mount inherit
ci[lr]_trailing_link_body mount inherit
ci[lr]_tripot_to_differential mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_tripot_to_differential location inherit
196 Adams Car
Parallel-Link Steering System

The communicator: Belongs to the class: Has the role:


co[lr]_wheel_center location inherit
cos_driveline_active parameter_integer inherit
cos_suspension_ parameters_ARRAY array inherit

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.

Parallel-Link Steering System


Overview
The parallel-link steering system template is essentially a four-bar mechanism consisting of a pitman arm,
center link, and idler arm.

Figure 11 Parallel-Link Steering

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.

The joint: Connects the part: To the part:


joshoo_column_intermediate ges_steering_column ges_intermediate_shaft
joshoo_intermediate_shaftinput ges_intermediate_shaft ges_input_shaft
josrev_steering_wheel ges_steering_wheel ges_column_housing
joscyl_steering_column ges_steering_column ges_column_housing
josfix_column_housing_to_housing_m ges_column_housing mts_steering_column_to_body
ount
jolsph_centerlink_arm ges_center_link gel_arm
jolrev_pitman_arm_steering_gear gel_arm swl_steering_gear_mount
josrev_ball_screw_steering_gear ges_ball_screw swl_steering_gear_mount
josrev_input_shaft_steering_gear ges_input_shaft swl_steering_gear_mount
jostra_rack_steering_gear ges_rack swl_steering_gear_mount
198 Adams Car
Parallel-Link Steering System

The joint: Connects the part: To the part:


josfix_steering_gear_housing ges_steering_gear_housing swl_steering_gear_mount
josper_centerlink_pitman_arm ges_center_link gel_arm
vfo_steering_assist ges_rack swl_steering_gear_mount
gksred_ball_screw_input_shaft_lock josrev_ball_screw_steering_ josrev_input_shaft_steering_
gear gear
grsred_steering_wheel_column_lock josrev_steering_wheel joscyl_steering_column
grsred_ball_screw_rack josrev_ball_screw_steering_ jostra_rack_steering_gear
gear
grsred_pitman_arm_rack jolrev_pitman_arm_steering jostra_rack_steering_gear
_gear

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_steering_gear_to_body mount inherit
ci[lr]_steering_gear_to_suspension_subframe mount inherit
cis_steering_column_to_ body mount inherit
co[lr]_tierod_to_steering mount front
cos_max_rack_ displacement parameter_real inherit
cos_max_rack_force parameter_real inherit
cos_max_steering_angle parameter_real inherit
cos_max_steering_torque parameter_real inherit
cos_steering_rack_joint joint_for_motion inherit
cos_steering_wheel_joint joint_for_motion inherit
Working with Templates 199
Pitman Arm Steering System

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.

Pitman Arm Steering System


Overview
The pitman arm steering system template is a simple steering system derived from a parallel-link design. It is
commonly used in trucks. It consists of a three-bar mechanism: pitman arm, draglink, and tie rod.

Figure 12 Pitman Arm Steering System

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.

The joint: Connects the part: To the part:


joshoo_column_intermediate ges_steering_column ges_intermediate_shaft
joshoo_intermediate_shaft_in ges_intermediate_shaft ges_input_shaft
put
josrev_steering_wheel ges_steering_wheel ges_column_housing
joscyl_steering_column ges_steering_column ges_column_housing
josfix_column_housing_to_h ges_column_housing mts_steering_column_to_body
ousing_mount
josrev_pitman_arm_steering_ mts_steering_gear_to_suspension_ ges_idle_arm
gear subframe
jossph_centerlink_arm ges_idle_arm ges_draglink
josrev_input_shaft_steering_g ges_input_shaft mts_steering_gear_to_suspension_
ear subframe
Working with Templates 201
Pitman Arm Steering System

The joint: Connects the part: To the part:


josrev_ball_screw_steering_ge ges_ball_screw mts_steering_gear_to_suspension_
ar subframe
jostra_rack_steering_gear ges_rack mts_steering_gear_to_suspension_
subframe
jossph_draglink_to_tierod ges_draglink ges_tierod
grsred_steering_wheel_colum josrev_steering_wheel joscyl_steering_column
n_lock
gksred_ball_screw_input_shaf josrev_ball_screw_steering_gear josrev_input_shaft_steering_gear
t_lock
grsred_pitman_arm_rack josrev_pitman_arm_steering_gear jostra_rack_steering_gear
grsred_ball_screw_rack josrev_ball_screw_steering_gear jostra_rack_steering_gear

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_steering_gear_to_suspension_subframe mount inherit
cis_steering_column_to_ body mount inherit
cos_tierod_to_steering mount front
cos_draglink_to_steering joint_for_motion inherit
cos_steering_wheel_joint joint_for_motion inherit

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 parameter: Takes the value: Its units are: Description:


phs_powertrain_type Integer No units Value =1, Manual
Value =2, Simple
Value =3, Automatic
Value = 4, Robotized
phs_kinematic_flag Integer No units When flag = 1, engine is rigidly
mounted to chassis; when flag = 0,
engine is mounted on bushings.
Set from the Adjust menu.
pvs_clutch_capacity Real Torque Maximum torque clutch can
sustain with zero slip speed.
pvs_clutch_close Real No units Value of clutch demand at which
clutch is fully closed. Value should
be less than pvs_clutch_open and
in the range of 0 and 1.
pvs_clutch_damping Real Torsional_damping Clutch damping torque per unit
of clutch slip speed.
Working with Templates 207
Powertrain System

The parameter: Takes the value: Its units are: Description:


pvs_clutch_open Real No units Value of clutch demand at which
clutch is open.
pvs_clutch_stiffness Real Torsional_stiffness Clutch torque developed per unit
of clutch slip.
pvs_clutch_tau Real Time Time constant for clutch slip
decay when clutch is open.
pvs_ems_gain Real No units Proportional gain used in EMS
idle speed control
pvs_ems_max_throttle Real No units Value of throttle demand that
corresponds to the maximum
capability of the EMS system
pvs_engine_idle_speed Real RPM Engine idle speed in RPM.
pvs_engine_inertia Real Inertia Engine rotational inertia. Must be
greater than zero.
pvs_engine_rev_limit Real RPM Maximum engine speed in RPM.
pvs_engine_stall_speed Real RPM Engine stall speed in RPM
pvs_final_drive Real No units Differential input shaft (pinion)
to ring gear ratio.
pvs_gear_downshift_[2- Real RPM Shift point values for
6] downshifting in gear 1-5.
pvs_gear_sport_[1-5] Real RPM Shift point values for upshifting in
gear 2-6 when throttle is higher
than Shift-Up Sport threshold.
pvs_gear_ratio_[1-6,R] Real No units Transmission input shaft to
output shaft ratio for gears 1
through 6 and reverse.
pvs_gear_upshift_[1-5] Real RPM Shift point values for upshifting in
gear 2-6 when throttle is lower
than Shift-Up threshold.
pvs_gear_upshift_thlds Real No units Throttle values to define economy
Shift-Up and sport Shift-Up Sport
shifting limits.
pvs_graphics_flag Integer No units 1 = include powertrain graphics; 0
= do not include powertrain
graphics
pvs_sportsmode_flag Integer No units 1 = use sports mode upshift
speeds; 0 = use standard upshift
speeds
208 Adams Car
Powertrain System

The parameter: Takes the value: Its units are: Description:


pvs_max_engine_power Real Power Max engine power for simplified
engine model corresponding to
100% throttle.
pvs_max_engine_torque Real Torque Max engine torque (cap at lower
speed) for simplified engine
model corresponding to 100%
throttle.
pvs_max_gears Integer No units Number of gear ratios in the
transmission.
pvs_max_throttle Real No units Value of throttle demand for
which throttle is fully open
(throttle demand = 0 is throttle
closed).
pvs_min_engine_torque Real Torque Min engine torque for simplified
engine model corresponding to
0% throttle.
pvs_oil_dump_residual Real No units Fraction of torque produced at a
speed ratio of zero ('oil dumped').
pvs_oil_dump_threshold Real No units Speed ratio at which torque
attenuation ('oil dump') is
initiated.
pvs_oil_dump_throttle_ Real No units Percentage of full throttle at which
off 'oil dump' is allowed.
pvs_shift_cycle_time Real Time Shifting cycle time for Automatic
and Robotized transmissions.
pvs_torque_tau Real Time Time that the system's step
response takes to reach 63.2% of
its final value. Applied to Simple
and Robotized engine model
Working with Templates 209
Powertrain System

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:

• Clutch model parameters:


210 Adams Car
Powertrain System

• Transmission model parameters:


Working with Templates 211
Powertrain System

2. Simple Proportional Torque


• Simple:
212 Adams Car
Powertrain System

3. Automatic Torque Converter


• Engine model parameters:
Working with Templates 213
Powertrain System

• Torque Converter model parameters:


214 Adams Car
Powertrain System

• Transmission model parameters:


Working with Templates 215
Powertrain System

4. Robotized Dual-Clutch
• Dual-Clutch model parameters:
216 Adams Car
Powertrain System

• Transmission model parameters:


Working with Templates 217
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

The communicator: Entity class: From minor role: Matching name:


ci[lr]_diff_tripot location inherit tripot_to_differential
ci[lr]_tire_force force inherit tire_force
cis_clutch_demand solver_variable inherit clutch_demand
Working with Templates 219
Powertrain System

The communicator: Entity class: From minor role: Matching name:


cis_engine_to_subframe mount inherit engine_to_subframe
cis_initial_engine_rpm parameter_real any initial_engine_rpm
cis_powertrain_to_body mount inherit powertrain_to_body
cis_sse_diff1 diff inherit sse_diff1
cis_throttle_demand solver_variable inherit throttle_demand
cis_transmission_demand solver_variable inherit transmission_demand

Output Communicators

The communicator: Entity class: To minor role: Matching name:


co[lr]_output_torque force inherit output_torque
co[lr]_tripot_to_differential mount inherit tripot_to_differential
cos_clutch_displacement_ic solver_variable inherit clutch_displacement_ic
cos_diff_ratio parameter_real inherit diff_ratio
cos_engine_map spline inherit engine_map
cos_engine_revlimit_rpm parameter_real inherit engine_revlimit_rpm
cos_engine_rpm solver_variable inherit engine_rpm
cos_engine_speed parameter_real inherit engine_speed
cos_engine_stall_rpm parameter_real inherit engine_stall_rpm
cos_max_engine_driving_torque solver_variable inherit engine_maximum_driving_
torque
cos_max_engine_braking_torque solver_variable inherit engine_maximum_braking
_torque
cos_max_gears parameter_integer inherit max_gears
cos_max_throttle parameter_real inherit max_throttle
cos_powertrain_gse gse inherit powertrain_gse
cos_powertrain_type parameter_integer inherit gse_powertrain_type
cos_transmission_input_omega solver_variable inherit transmission_input_omega
cos_transmission_spline spline inherit transmission_spline

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

Quad-Link Axle Suspension


Overview
The quad-link axle suspension template is an example of a dependent suspension model. The wheels are
mounted at either end of a rigid beam so the movement of one wheel is transmitted to the opposite wheel
causing them to steer and camber together. Solid beam axle suspensions are commonly used on the front of
heavy trucks, where high-load carrying capacity is required.

Figure 14 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.

The joint: Connects the part: To the part:


jklhoo_lower_link_frame gel_lower_link mtl_lower_link_frame
jklhoo_upper_link_frame gel_upper_link mtl_lower_link_frame
jklsph_upper_link_axle gel_upper_link ges_axle
jklsph_lower_link_axle gel_lower_link ges_axle
jolrev_knuckle_axle gel_knuckle ges_axle
josrev_bell_crank_axle ges_bell_crank ges_axle
jossph_draglink_pitman_arm ges_draglink mts_draglink_steering
joshoo_draglink_bell_crank ges_draglink ges_bell_crank
jossph_tierod_knuckle ges_tierod gel_knuckle
josinp_tie_rod_bell_crank ges_tierod ges_bell_crank
Hub Compliance on
jolsph_hub_compliance gel_hub gel_knuckle
Hub Compliance off
jolrev_bearing gel_hub gel_knuckle

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

The parameter: Takes the value: Its units are:


phs_kinematic_flag Integer No units
pvs_hub_compliance_active Integer No units
pv[lr]_toe_angle Real Degrees
pv[lr]_camber_angle Real Degrees
pvs_hub_compliance_offset Real mm

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_lower_link_frame mount inherit
ci[lr]_spring_upper_to_body mount inherit
ci[lr]_upper_link_frame mount inherit
cis_draglink_steering mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_wheel_center location inherit
cos_suspension_ parameters_ARRAY any inherit

Note: The integer parameter variables let you activate and deactivate the Hub Compliance. The
kinematic flag variable toggles between kinematic and compliant mode.

Rack and Pinion Steering System


Overview
The rack and pinion steering system is usually found in passenger cars. The pinion gear translates the rotary
motion of the steering wheel into the linear motion of the rack. The rack moves the tie rods back and forth
to steer the vehicle.
Working with Templates 223
Rack and Pinion Steering System

Figure 15 Rack and Pinion Steering System

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.

The attachment: Connects the part: To the part:


joshoo_column_intermediate ges_steering_column ges_intermediate_shaft
joshoo_intermediate_shaftinput ges_intermediate_shaft ges_steering_shaft
jostra_rack_to_rackhousing ges_rack ges_rack_housing
josrev_steering_wheel ges_steering_wheel mts_steering_column_to_body
josrev_pinion ges_pinion ges_rack_housing
joscyl_steering_column_to_body ges_steering_column mts_steering_column_to_body
josrev_steering_input_shaft ges_steering_shaft ges_rack_housing
jksfix_rigid_rack_housing_mount ges_rack_housing sws_rack_house_mount
The force: Connects the part: To the part:
steering_assist_vforce ges_rack ges_rack_housing
The reduction gear: Constrains the joint: To the joint:
gksred_input_shaft_pinion_lock josrev_steering_input_shaft josrev_pinion
grsred_steering_wheel_column_lock josrev_steering_wheel joscyl_steering_column_to_body
The following reduction gear is replaced by Adams Machinery gear elements in the
_rack_pinion_steering_MachineryGear templates:
grsred_pinion_to_rack josrev_pinion jostra_rack_to_rackhousing
Working with Templates 225
Front Driveline System

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.

The communicator: Belongs to the class: Has the role:


cis_rack_housing_to_ mount inherit
suspension_subframe
cis_rack_to_body mount inherit
cis_steering_column_to_ body mount inherit
co[lr]_tierod_to_steering mount front
cos_max_rack_ displacement parameter_real inherit
cos_max_rack_force parameter_real inherit
cos_max_steering_angle parameter_real inherit
cos_max_steering_torque parameter_real inherit
cos_steering_rack_joint joint_for_motion inherit
cos_steering_wheel_joint joint_for_motion inherit

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.

Front Driveline System


Overview
The front driveline system template provides an example model of a driveline for front-wheel drive (FWD)
vehicles.
226 Adams Car
Front Driveline System

Figure 16 Front Driveline System

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.

The joint: Connects the part: To the part:


josrev_diff_input_to_housing ges_diff_input mts_diff_housing_to_powertrain
jolrev_diff_output_to_housing gel_diff_output mts_diff_housing_to_powertrain
jorrev_diff_output_to_housing ger_diff_output mts_diff_housing_to_powertrain

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_tripot_to_differential location front
cis_diff_housing_to_powertrain mount inherit
cis_driveline_torque solver_variable inherit

Rear Driveline System


Overview
The rear driveline system template provides an example model of a driveline for rear-wheel drive (RWD)
vehicles.
228 Adams Car
Rear Driveline System

Figure 17 Rear Driveline System

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.

The joint: Connects the part: To the part:


josrev_diff_input ges_diff_input ges_diff_housing
jolrev_diff_output gel_diff_output ges_diff_housing
jorrev_diff_output ger_diff_output ges_diff_housing
joshoo_propshaft_at_diff ges_propshaft_rear ges_diff_input
joshoo_propshaft_input_to_ front ges_propshaft_input ges_propshaft_front
joscon_propshaft_front_to_ yoke ges_propshaft_front ges_slip_yoke
jostra_propshaft_rear_to_yoke ges_propshaft_rear ges_slip_yoke
josrev_propshaft_input_to_ trans ges_propshaft_input mts_propshaft_input_to_powertrain
jksfix_diff_housing_to_body ges_diff_housing mts_diff_housing_to_body
josinl_support_bearing_to_propshaft_fr ges_support_bearing ges_propshaft_front
ont
josori_support_bearing_orientation ges_support_bearing mts_propshaft_support_to_body
josinp_support_bearing_ location ges_support_bearing mts_propshaft_support_to_body
jksinl_support_bearing_to_ body ges_support_bearing mts_propshaft_support_to_body
grsdif_differential josrev_diff_input jolrev_diff_output
grsdif_differential josrev_diff_input jorrev_diff_output
grsdif_differential jolrev_diff_output jorrev_diff_output

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_tripot_to_differential location rear
cis_diff_housing_to_body mount inherit
cis_driveline_torque solver_variable inherit
cis_propshaft_input_to_ powertrain mount inherit
cis_propshaft_support_to_ body mount inherit
co[lr]_tripot_to_differential mount rear

Rigid Chassis
Overview
The rigid chassis template represents the base frame of a vehicle.

Figure 18 Rigid Chassis


Working with Templates 231
Rigid Chassis

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 parameter: Takes the value: Its units are:


pvs_aero_drag_active Integer No units
pvs_aero_frontal_area Real Area
pvs_air_density Real Density
pvs_drag_coefficient Real No units

Force function description


Adams Car expects air density and area parameter variables to be in model units.
As a result of an air stream interacting with the vehicle, forces and moments are imposed on the vehicle. Out
of the three forces and three moments, only the most relevant ones are modeled in the template. The
aerodynamic general force takes into consideration the drag force (longitudinal force) and torque (pitching
moment and torque along the y-axis of the vehicle, in the SAE coordinate system). In detail:
F = 0.5 x AirDensity x DragCoeff x Area x VX(chassis)2
T = F x DZ (RideHeight)
232 Adams Car
Rigid Chassis

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.

The communicator: Belongs to the class: Has the role:


cis_std_tire_ref location inherit
co[lr]_mbr_insul_fr mount inherit
co[lr]_mbr_insul_rr mount inherit
co[lr]_spring_to_body mount inherit
co[lr]_strut_to_body mount inherit
co[lr]_s_abs_upr_insul mount inherit
co[lr]_tierod_to_steering mount rear
co[lr]_trod mount inherit
co[lr]_tv_link mount inherit
co[lr]_uca_to_body mount any
co[lr]_upr_link_fr mount inherit
co[lr]_upr_link_rr mount inherit
co[lr]_upr_s_abs mount inherit
cos_aero_drag_force force inherit
cos_aero_frontal_area parameter_real inherit
cos_air_density parameter_real inherit
cos_body mount inherit
cos_body_subsystem mount inherit
cos_chassis_path_ reference mount inherit
cos_concept_to_body mount inherit
cos_diff_housing_to_body mount rear
Working with Templates 233
Rigid Chassis

The communicator: Belongs to the class: Has the role:


cos_drag_coefficient parameter_real inherit
cos_driver_reference mount inherit
cos_measure_for_distance mount inherit
cos_powertrain_to_body mount inherit
cos_propshaft_support_to_body mount rear
cos_rack_to_body mount inherit
cos_steering_column_to_ body mount inherit
cos_subframe_to_body mount inherit
cos_trim_part part inherit

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

Simple Anti-Roll Bar System


Overview
The simple anti-roll bar system template represents a bar fitted transversely to the suspension. The bar is made
out of steel or a user-defined material. The bar is installed in a vehicle to reduce the roll of the vehicle body
as the vehicle takes a corner. It increases suspension roll rate.

Figure 19 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.

The joint: Connects part: To part:


jo[lr]sph_droplink_ upper_bal ge[lr]_droplink mt[lr]_droplink_to_suspension
jo[lr]con_droplink_to_arb ge[lr]_droplink ge[lr]_arb
josrev_arb_rev_joint ger_arb gel_arb
arb_torsion_spring (rotational ger_arb gel_arb
spring)

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.

The parameter: Takes the value: Its units are:


pvs_torsional_stiffness Real variable Nmm/Degrees

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

The communicator: Belongs to the class: Has the role:


ci[lr]_arb_bushing_mount mount inherit
ci[lr]_droplink_to_suspension mount inherit
co[lr]_ARB_pickup location inherit

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

FE Part Anti-Roll Bar System


Overview
The FE Part anti-roll bar system template represents a bar fitted transversely to the suspension. The bar is
made out of steel or a user-defined material. The bar is installed in a vehicle to reduce the roll of the vehicle
body as the vehicle takes a corner. It increases suspension roll rate.

Figure 20 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.

The joint: Connects part: To part:


jo[lr]sph_droplink_ upper_ball ge[lr]_droplink mt[lr]_droplink_to_suspension
jo[lr]con_droplink_to_bar ge[lr]_droplink fes_arb

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_arb_bushing_mount mount inherit
ci[lr]_droplink_to_suspension mount inherit
co[lr]_ARB_pickup location inherit
Working with Templates 239
Tire System

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.

Figure 21 Tire System

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_camber_angle parameter_real inherit
ci[lr]_suspension_mount mount inherit
ci[lr]_toe_angle parameter_real inherit
ci[lr]_wheel_center location inherit
cis_driveline_active parameter_integer inherit
co[lr]_rotor_to_wheel mount inherit
co[lr]_wheel_orientation orientation rear
cos_tire_forces_array_left array inherit
cos_tire_forces_array_right array inherit

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

Torsion Bar Double-Wishbone Suspension


Overview
The torsion bar double-wishbone suspension template is a modified version of the standard Double-Wishbone
Suspension. In this template, however, a torsion bar spring replaces the coil spring.
Working with Templates 243
Torsion Bar Double-Wishbone Suspension

Figure 22 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.

The parameter: Takes the value: Its units are:


pv[lr]_tbar_stiffness Real Nmm/Degrees
pvs_tbar_preload Real Nmm

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

Trailing Arm Suspension


Overview
The trailing arm suspension template is one of the most simple and economical designs for independent
suspensions.

Figure 23 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.

The joint: Connects the part: To the part:


jklhoo_upr_strut_to_body mtl_strut_to_body gel_upper_strut
jklrev_arm_inner_ pivot gel_arm ges_subframe
jksfix_subframe_to_body_fixed ges_subframe mts_subframe_to_body
jklhoo_lwr_strut_to_arm gel_lower_strut gel_arm
jolcyl_lwr_upr_ strut gel_upper_strut gel_lower_strut
joltra_tripot_to_ differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_ int_jt gel_tripot gel_drive_shaft
Hub Compliance on
jolsph_hub_compliance gel_spindle gel_upright
Hub Compliance off
jolrev_spindle_ upright gel_spindle gel_upright

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

The parameter: Takes the value: Its units are:


phs_kinematic_flag Integer No units
pvs_hub_compliance_active Integer No units
pv[lr]_toe_angle Real Degrees
pv[lr]_drive_shaft_offset Real mm
phs_driveline_active Integer No units
pv[lr]_camber_angle Real Degrees
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.

The communicator: Belongs to the class: Has the role:


ci[lr]_spring_to_body mount inherit
ci[lr]_strut_to_body mount inherit
ci[lr]_tripot_to_differential mount inherit
cis_subframe_to_body mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_tripot_to_differential location inherit
co[lr]_wheel_center location inherit
cos_driveline_active parameter_integer inherit
cos_suspension_ array inherit
parameters_ARRAY

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

Twist Beam Suspension


Overview
The twist beam suspension is a dependent suspension model intended for use only as a rear suspension. It
does not include a panhard rod.

Figure 24 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.

The joint: Connects the part: To the part:


jklhoo_upr_strut_to_body mtl_strut_to_body gel_upper_strut
jolcyl_lwr_upr_strut gel_upper_strut gel_lower_strut
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
jolhoo_strut_to_beam gel_lower_strut ipl_damper_lwr
jklrev_beam_to_body ipl_beam_to_subframe mts_body
Hub Compliance on
jolsph_hub_compliance gel_spindle ipl_spindle_to_beam
Hub Compliance off
jolrev_spindle_to_beam gel_spindle ipl_spindle_to_beam

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

The parameter: Takes the value: Its units are:


phs_driveline_active Integer No units
phs_kinematic_flag Integer No units
pvs_hub_compliance_active Integer No units
pv[lr]_toe_angle Real Degrees
pv[lr]_camber_angle Real Degrees
pv[lr]_drive_shaft_offset Real mm
pvs_hub_compliance_offset Real mm

Communicators
The following table lists the communicators in the template.

The communicator: Belongs to the class: Has the role:


ci[lr]_spring_to_body mount inherit
ci[lr]_strut_to_body mount inherit
ci[lr]_tripot_to_differential mount inherit
cis_body mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_tripot_to_differential location inherit
co[lr]_wheel_center location inherit
cos_driveline_active parameter_integer inherit
cos_suspension_parameters_ARRAY array inherit

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.

Figure 25 Wheel Forces Template

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_camber_angle_front parameter_real front
ci[lr]_camber_angle_rear parameter_real rear
ci[lr]_spin_axis_front mount front
ci[lr]_spin_axis_rear mount rear
ci[lr]_toe_angle_front parameter_real front
ci[lr]_toe_angle_rear parameter_real rear
ci[lr]_wheel_center_front location front
ci[lr]_wheel_center_rear location rear
cis_Body mount inherit
cis_Body_fix mount inherit
cis_steering_wheel_joint joint_for_motion inherit
Working with Templates 253
Aarm_3link Suspension

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.

Figure 26 Aarm 3link

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.

The joint: Connects the part: To the part:


joltra_toe_split gel_toe_adjuster gel_tie_rod
jolrev_upright_to_axle gel_upright ges_axle
jolhoo_tierod_inner gel_tie_rod swl_tierod_connection
jolcyl_lwr_upr_strut gel_lower_strut gel_upper_strut
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
Hub Compliance Active
jolsph_hub_compliance gel_spindle gel_upright
Hub Compliance Inactive
jolrev_spindle_upright gel_spindle gel_upright

Parameters
The integer parameter variables allow you to activate and deactivate the various configuration options.
Working with Templates 255
Aarm_3link Suspension

The parameter: Takes the value: Its units are: Description


phs_driveline_active Integer No units 0 = No,

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_ shock_to_frame mount inherit
ci[lr]_ spring_to_frame mount inherit
cis panhard_to_body mount inherit
ci[lr]_tripot_to_differential mount inherit
ci[lr]_uca_to_frame mount inherit
ci[lr]_trailing_arm_to_body mount inherit
ci[lr]_rearsteer_rack_to_tierod mount inherit
co[lr]_rearsteer_rack_to_axle mount inherit
co[lr]_rearsteer_tierod_inner_loc location inherit
256 Adams Car
Aarm_3link Suspension

The communicator: Belongs to the class: Has the role:


cos_axle mount inherit
co[lr]_kingpin_marker marker inherit
co[lr]_trailing_arm_right mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_tripot_to_differential location inherit
co[lr]_wheel_center location inherit
cos_driveline_active parameter_integer inherit
cos_suspension_ parameters_ARRAY array inherit
Working with Templates 257
All-Wheel Drive Driveline System

All-Wheel Drive Driveline System


Overview
The all-wheel drive driveline system template provides an example model of a driveline for all-wheel drive
(AWD) vehicles. This is intended for use with suspension templates that do not contain drive shafts.

Figure 27 AWD Driveline System

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.

The joint: Connects the part: To the part:


jo[lr]con_rear_inner_CVJ ge[lr]_rear_halfshaft ge[lr]_rear_tripod
jo[lr]con_rear_outer_CVJ ge[lr]_rear_halfshaft mt[lr]_rear_spindle
jo[lr]tra_rear_diff_to_tripod ge[lr]_rear_diff_output ge[lr]_rear_tripod
josrev_center_diff_input ges_center_diff_input sws_center_diff_mount
Working with Templates 259
All-Wheel Drive (Viscous Coupling) Driveline System

All-Wheel Drive (Viscous Coupling) Driveline System


Overview
The all-wheel drive viscous coupling driveline system template provides an example model of a driveline for
all-wheel drive (AWD) vehicles. This is intended for use with suspension templates that do not contain drive
shafts.

Figure 28 AWD Viscous Coupling 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)

Anti-roll bar system (discrete flexible links)


The discrete flexible link anti-roll bar template represents a bar fitted transversely to the suspension. The bar
is made out of steel or a user-defined material. The bar is installed in a vehicle to reduce the roll of the vehicle
body as the vehicle takes a corner. It increases suspension roll rate.

Figure 29 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.

The joint: Connects part: To part:


jo[lr]sph_droplink_upper_ball ge[lr]_droplink mt[lr]_droplink_to_suspension
jo[lr]con_droplink_to_arb ge[lr]_droplink ge[lr]_arb

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_arb_bushing_mount mount inherit
ci[lr]_droplink_to_suspension mount inherit
co[lr]_ARB_pickup location inherit
Working with Templates 263
Central_link Suspension

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.

Figure 30 Central link Suspension

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.

The joint Connects the part: To the part:


joltra_toe_split gel_toe_adjuster mts_subframe_to_body
joltra_camber_split lower_lateral_link gel_camber_adjuster
josfix_subframe_rigid ges_subframe mts_subframe_to_body
jolcyl_lwr_upr_strut gel_lower_strut gel_upper_strut
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle

Hub Compliance Active


jolsph_hub_compliance gel_spindle gel_upright
Hub Compliance Inactive
jolrev_spindle_upright gel_spindle gel_upright

Parameters
The integer parameter variables allow you to activate and deactivate the various configuration options.
Working with Templates 265
Central_link Suspension

The parameter: Takes the value: Its units are: Description


phs_driveline_active Integer No units 0 = No,

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

The communicator: Belongs to the class: Has the role:


ci[lr]_strut_to_body mount inherit
ci[lr]_tripot_to_differential mount inherit
cis_subframe_to_body mount inherit
cis_chassis_reference marker inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_tripot_to_differential location inherit
co[lr]_wheel_center location inherit
cos_driveline_active parameter_integer inherit
cos_suspension_ parameters_ARRAY array inherit

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

Figure 31 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

 Caliper mounting angle is adjustable


 Calipers can be modeled as fixed or floating
 Completely parametric brake force calculation
 Curve of master cylinder pressure vs. brake demand stored in a property file
 Curve of rear brake line pressure vs. master cylinder pressure stored in a property file
 Plant Inputs/Outputs for connection to ABS/electronic braking controller

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.

The parameter: Takes the value: Its units are: Description:


brake_pressure_input_type Integer No units 1=pressure from spline

2=input from external


control system
front_brake_effective_radius Real length
front_brake_friction_coefficient Real No units
front_caliper_floating Integer No units 0=Fixed caliper

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

The parameter: Takes the value: Its units are: Description:


number_of_pistons_rear Integer No units
rear_brake_effective_radius Real length
rear_brake_friction_coefficient Real No units
rear_caliper_floating Integer No units 0=Fixed caliper

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_front_camber_angle parameter_real front
ci[lr]_front_rotor_to_wheel mount front
ci[lr]_front_toe_angle parameter_real front
ci[lr]_front_wheel_center location front
ci[lr]_front_suspension_ upright mount front
ci[lr]_rear_rotor_ro_wheel mount rear
ci[lr]_rear_suspension_ upright mount rear
ci[lr]_rear_toe_angle parameter_real rear
ci[lr]_rear_camber_angle parameter_real rear
ci[lr]_rear_wheel_center location rear
cis_brake_demand solver_variable any
cos_brake_bias parameter_real any
cos_max_brake_value parameter_real inherit
cos_max_front_brake_torque parameter_real any
cos_max_rear_brake_torque parameter_real any
Working with Templates 271
Disc-Brake System

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

where: right_front_brake_line_pressure is calculated as follows:

IF(pvs_brake_pressure_input_type - 2: right_front_brake_line_pressure_Spline,
right_front_brake_line_pressure_PINPUT, 0)

where: right_front_brake_line_pressure_Spline is calculated as follows:

AKISPL(brake_demand, 0, gss_master_cylinder_pressure)

and right_front_brake_line_pressure_PINPUT takes a signal from an optional external


controller.

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

where: the torque is always opposed to the direction of rotation.


272 Adams Car
Detailed Brake

Detailed Brake
Overview
This template is an enhanced version of Disc-Brake System template available in acar shared data base.

Figure 32 Brake System

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

2. Pad Location Method

Valve Gain Type


The simple brake system has 2 pressure valves, the vacuum booster and the proportioning valve.

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

Pad Location Method


Two location methods are provided: radius or XYZ.
For the radius method you supply the distance from the wheel center to the pad center. The brake torque is
calculated by multiplying this distance by the friction force. The following parameters are used for this
method:
Front Pad Radius and Rear Pad Radius
With the XYZ method you specify the actual geometric center of the brake pad. A force is applied at this
point, tangent to the line connecting the wheel center and the pad center. The force is applied in the XZ
plane.
274 Adams Car
Detailed Brake

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.

The parameter: Takes the value: Its units are: Description:


pvs_vacuum_booster_gain_meth Integer No units 0 = Bilinear
od
1 = Spline
pvs_proportioning_valve_gain_ Integer No units 0 = Bilinear
method
1 = Spline
pvs_rear_pad_location_method Integer No units 0 = radius

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

The parameter: Takes the value: Its units are: Description:


Pv[lr]_front_brake_factor Real No units Front Brake Factor (2*mu for
symmetric pad)
Pv[lr]_rear_brake_factor Real No units Rear Brake Factor (2*mu for
symmetric pad)
pvs_pv_initial_gain Real No units Proportioning Valve Initial Gain
pvs_pv_final_gain Real No units Proportioning Valve final Gain
pvs_pv_break_point Real No units Proportioning Valve Pressure
Break Point
pvs_vb_initial_gain Real No units Vacuum Booster Initial Gain
pvs_vb_final_gain Real No units Vacuum Booster final Gain
pvs_bv_break_point Real No units Vacuum Booster Pressure Break
Point

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.

Figure 33 Detailed Engine

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.

The parameter: Takes the value: Its units are: Description:


bore_spacing Real length distance between cylinder bore
centers
crankshaft_omega_time_constan Real time used to produce low-pass filtered
t RPM and torque state variables
downshift_RPM Real none engine RPM at which the driver
should downshift
engine_depth Real length used to size the engine block
graphic
engine_height Real length used to size the engine block
graphic
engine_idle_speed Real none engine RPM at idle
engine_offset_x Real length used to locate the engine block
graphic
engine_offset_y Real length used to locate the engine block
graphic
engine_offset_z Real length used to locate the engine block
graphic
278 Adams Car
Detailed Engine

The parameter: Takes the value: Its units are: Description:


engine_rev_limit Real none engine RPM at the rev limit
engine_stall_speed Real none engine RPM at stall
engine_width Real length used to size the engine block
graphic
idle_error_control Real none used in a feedback control on
engine idle speed
init_Crank_n1_angle Real angle angle of the 1st crankshaft throw
init_Crank_n2_angle Real angle angle of the 2nd crankshaft throw
init_Crank_n3_angle Real angle angle of the 3rd crankshaft throw
init_Crank_n4_angle Real angle angle of the 4th crankshaft throw
max_throttle Real none max throttle value
Piston_Diameter Real length used to convert combustion
pressure to force
TDC_Height Real length used to locate the piston forces
upshift_RPM Real none engine RPM at which the driver
should upshift

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

Double Wishbone Advanced Suspension


Overview
The double wishbone advanced suspension template is an enhanced version of the standard Double-Wishbone
Suspension.

Figure 34 Double-Wishbone 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

Design Option The joint: Connects the part: To the part:


LCA Single Ball Joint jolrev_lca gel_lower_control_arm sws_subframe_attachment_opti
Configuration on
jolhoo_lwr_strut_1 gel_lower_strut gel_lower_control_arm

LCA Dual Ball Joint jolhoo_link_2_inner gel_lca_link sws_subframe_attachment_opti


Configuration on
jolhoo_lca_link_2 gel_lower_control_arm sws_subframe_attachment_opti
on
jolsph_link_2_balljoint gel_lca_link_2 gel_upright
jolhoo_lwr_strut_2 gel_lower_strut gel_upright
Working with Templates 283
Double Wishbone Advanced Suspension

Design Option The joint: Connects the part: To the part:


LCA Dual Link with jolcyl_lca_compression_ gel_lower_control_arm sws_subframe_attachment_opti
compression Configuration inner on
jolsph_compression_inn gel_lca_compression_ba sws_subframe_attachment_opti
er r on
jolhoo_lwr_strut_3 gel_lower_strut gel_lower_control_arm
jolhoo_compression_ou gel_lca_compression_ba gel_lower_control_arm
ter r

LCA Dual Link with Tension jolcyl_lca_tension_inner gel_lower_control_arm sws_subframe_attachment_opti


strut Configuration on
jolsph_tension_inner gel_lca_tension_strut sws_subframe_attachment_opti
on
jolhoo_tension_outer gel_lca_tension_strut gel_lower_control_arm
jolhoo_lwe_strut_4 gel_lower_strut gel_lower_control_arm

Hub Compliance Active jolsph_hub_compliance gel_spindle gel_upright


Hub Compliance Inactive jolrev_spindle_upright gel_spindle gel_upright
UCA Single Ball Joint jolrev_uca gel_uca_front swl_uca_attachment_options
Configuration jolfix_uca_fix gel_uca_front gel_uca_rear
jolsph_uca_balljoint_fro gel_uca_front gel_upright
nt
284 Adams Car
Double Wishbone Advanced Suspension

Design Option The joint: Connects the part: To the part:


UCA Dual Ball Joint jolrev_uca_front gel_uca_front swl_uca_attachment_options
Configuration jolrev_uca_rear gel_uca_rear swl_uca_attachment_options
jolsph_uca_balljoint_rea gel_uca_rear gel_upright
r
jolsph_uca_balljoint_fro gel_uca_front gel_upright
nt

Torsion bar configuration jolfix gel_ mtl_torsionbar_bracket


_torsionbar_bracket_at_ torsionbar_crossmember
frame

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.

The parameter: Takes the value: Its units are: Description


pvs_lower_control_arm_confi Integer No units 1 = Single Ball Joint,
guration
2 = Dual Ball Joint,

3 = Dual Link with Compression,

4 = Dual Link with Tension Bar


pvs_upper_control_arm_confi Integer No units 1 = Single Ball Joint, 2 = Dual Ball
guration Joint
phs_subframe Integer No units 0 = None,

1 = Compliant ,

2 = Kinematic
Working with Templates 285
Double Wishbone Advanced Suspension

The parameter: Takes the value: Its units are: Description


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_torsionbar Integer No units 0 = Inactive,

1 = Active

Communicators
Refer to the Double-Wishbone Suspension.
286 Adams Car
Draglink Steering System

Draglink Steering System


The draglink and pitman arm steering system template is a simple steering system derived from the standard
Pitman Arm Steering System. It is commonly used in trucks. It consists of a three-bar mechanism: pitman arm,
draglink, and tie rod.

Figure 35 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.

The communicator: Belongs to the class: Has the role:


ci[lr]_tierod_outer location inherit
cis_steering_gear_to_suspension_subframe mount inherit
cis_steering_column_to_ body mount inherit
cos_draglink_to_right_steering_arm_orientation orientation inherit
cos_draglink_to_steering mount inherit
cos_max_steering_angle parameter_real inherit
cos_steering_rack_joint joint_for_motion inherit
cos_steering_wheel mount inherit
cos_steering_wheel_joint joint_for_motion inherit
cos_tierod_to_left_steering_arm_orientation orientation inherit
cos_tierod_to_steering mount inherit

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

Torsion Bar Double-Wishbone Suspension


Overview
This torsion bar double-wishbone suspension template is a modified version of the standard Torsion Bar Double-
Wishbone Suspension. In this template, however, 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".

Figure 36 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

Four-Wheel Drive Driveline System


Overview
The four-wheel drive driveline system template provides an example model of a driveline for four-wheel drive
(4WD) vehicles. This is intended for use with suspension templates that do not contain drive shafts.

Figure 37 4WD 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.

The joint: Connects the part: To the part:


jksinl_support_bearing_to_body ges_support_bearing mts_propshaft_support_to_body
jo[lr]con_front_inner_CVJ ge[lr]_front_halfshaft ge[lr]_front_tripod
jo[lr]con_front_outer_CVJ ge[lr]_front_halfshaft mt[lr]_front_spindle
jo[lr]rev_front_diff_output_to_housing ge[lr]_front_diff_output ges_front_diff_housing
jo[lr]rev_rear_diff_output_to_housing ge[lr]_rear_diff_output ges_rear_diff_housing
jo[lr]tra_front_diff_output_to_tripod ge[lr]_front_diff_output ge[lr]_front_tripod
joscon_propshaft_front_to_yoke ges_propshaft_front ges_slip_yoke
josfix_front_diff_mount ges_front_diff_housing sws_front_diff_mount
josfix_rear_diff_mount ges_rear_diff_housing sws_rear_diff_mount
joshoo_propshaft_at_rear_diff ges_propshaft_rear ges_rear_diff_input
joshoo_propshaft_input_to_front ges_propshaft_input ges_propshaft_front
josinl_support_bearing_to_propshaft_front ges_support_bearing ges_propshaft_front
josinp_support_bearing_location ges_support_bearing mts_propshaft_support_to_body
292 Adams Car
Four-Wheel Drive Driveline System

The joint: Connects the part: To the part:


josori_support_bearing_orientation ges_support_bearing mts_propshaft_support_to_body
josrev_front_diff_input_to_housing ges_front_diff_input ges_front_diff_housing
josrev_propshaft_input_to_trans ges_propshaft_input mts_propshaft_input_to_powertrain
josrev_rear_diff_input_to_housing ges_rear_diff_input ges_rear_diff_housing
jostra_propshaft_rear_to_yoke ges_propshaft_rear ges_slip_yoke

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.

The parameter Takes the value: Its units are: Description:


driveline_active String No units list of every driven suspension
minor role
jack_shaft_active Integer No units 0=no jack shaft

1=jack shaft active


jack_shaft_length Real length
propshaft_front_length Real length

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_front_spindle mount front
ci[lr]_front_tire_force force front
ci[lr]_front_wheel_center location front
Working with Templates 293
Four-Wheel Drive Driveline System

The communicator: Belongs to the class: Has the role:


ci[lr]_halfshaft_outer location front
ci[lr]_rear_tire_force force rear
cis_body mount inherit
cis_driveline_torque solver_variable inherit
cis_front_subframe mount front
cis_powertrain mount inherit
cis_propshaft_input_to_powertrain mount inherit
cis_propshaft_support_to_body mount inherit
cis_rear_axle mount rear
cis_rear_subframe mount rear
cis_transmission_output_location location any
cis_transmission_output_orientation orientation any
co[lr]_diff_output_location location rear
co[lr]_front_tripot_to_differential mount front
co[lr]_rear_diff_output mount rear
cos_diff_input joint inherit
cos_drive_torque_bias_front parameter_real any
cos_final_drive_ratio parameter_real any
cos_transmission_output_omega solver_variable any
294 Adams Car
Front Driveline System

Front Driveline System


Overview
This front driveline system template provides an example model of a driveline for front-wheel drive (FWD)
vehicles. This is intended for use with a suspension template that does not contain drive shafts.

Figure 38 Front Driveline System

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.

The joint: Connects the part: To the part:


jo[lr]con_inner_CVJ ge[lr]_halfshaft ge[lr]_tripod
jo[lr]con_outer_CVJ ge[lr]_halfshaft mt[lr]_spindle
jo[lr]rev_diff_output_to_housing ge[lr]_diff_output ges_diff_housing
jo[lr]tra_diff_to_tripod ge[lr]_diff_output ge[lr]_tripod
josfix_diff_housing ges_diff_housing sws_diff_mount
josrev_diff_input_to_housing ges_diff_input ges_diff_housing

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

The parameter: Takes the value: Its units are: Description:


driveline_active String No units list of every driven
suspension minor role
jack_shaft_active Integer No units 0=no jack shaft

1=jack shaft active


jack_shaft_length Real length
propshaft_front_length Real length

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_halfshaft_outer location inherit
ci[lr]_spindle mount inherit
ci[lr]_tire_force force front
ci[lr]_wheel_center location inherit
cis_driveline_torque solver_variable inherit
cis_body mount any
cis_powertrain mount any
cis_subframe mount front
cis_transmission_output_orientation orientation any
cos_diff_input joint inherit
cos_drive_torque_bias_front parameter_real any
cos_final_drive_ratio parameter_real any
cos_front_diff_housing mount any
cos_transmission_output_omega solver_variable any
Working with Templates 297
Front Driveline for Separate Transmission

Front Driveline for Separate Transmission


Overview
This front driveline template is based on the Front Driveline System above, but it does not contain a torque
actuator. Instead it relies on the torque being transmitted into the differential through a mount part.

Figure 39 Front Driveline System

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.

The joint: Connects the part: To the part:


jo[lr]con_inner_CVJ ge[lr]_halfshaft ge[lr]_tripod
jo[lr]con_outer_CVJ ge[lr]_halfshaft mt[lr]_spindle
jo[lr]rev_diff_output_to_housing ge[lr]_diff_output ges_diff_housing
jo[lr]tra_diff_to_tripod ge[lr]_diff_output ge[lr]_tripod
josfix_diff_housing ges_diff_housing sws_diff_mount
josrev_diff_input_to_housing ges_diff_input ges_diff_housing

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.

The parameter: Takes the value: Its units are: Description:


driveline_active String No units list of every driven suspension
minor role
jack_shaft_active Integer No units 0=no jack shaft

1=jack shaft active


jack_shaft_length Real length
propshaft_front_length Real length

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

The communicator: Belongs to the class: Has the role:


ci[lr]_halfshaft_outer location inherit
ci[lr]_spindle mount inherit
ci[lr]_tire_force force front
ci[lr]_wheel_center location inherit
cis_body mount any
cis_diff_input_location location any
cis_powertrain mount any
cis_subframe mount front
cis_transmission_output_orientation orientation any
cos_diff_input mount inherit
cos_diff_input_joint joint inherit
cos_drive_torque_bias_front parameter_real any
cos_final_drive_ratio parameter_real any
cos_front_diff_housing mount any
cos_transmission_output_omega solver_variable any
300 Adams Car
Rear Driveline System

Rear Driveline System


Overview
This rear driveline system template provides an example model of a driveline for rear-wheel drive (RWD)
vehicles. This may be used with a suspension template that does not contain axle shafts.

Figure 40 Rear Driveline System

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.

The joint: Connects the part: To the part:


jksinl_support_bearing_to_body ges_support_bearing mts_propshaft_support_to_body
jo[lr]con_halfshaft_to_spindle ge[lr]_halfshaft mt[lr]_spindle
jo[lr]con_halfshaft_to_tripod ge[lr]_front_halfshaft ge[lr]_tripod
jo[lr]rev_diff_output_to_housing ge[lr]_rear_diff_output ges_rear_diff_housing
jo[lr]tra_diff_output_to_tripod ge[lr]_rear_diff_output ge[lr]_tripod
joscon_propshaft_front_to_yoke ges_propshaft_front ges_slip_yoke
josfix_rear_diff_mount ges_rear_diff_housing sws_rear_diff_mount
joshoo_propshaft_at_diff ges_propshaft_rear ges_rear_diff_input
joshoo_propshaft_input_to_front ges_propshaft_input ges_propshaft_front
josinl_support_bearing_to_propshaft_front ges_support_bearing ges_propshaft_front
josinp_support_bearing_location ges_support_bearing mts_propshaft_support_to_body
josori_support_bearing_orientation ges_support_bearing mts_propshaft_support_to_body
josrev_propshaft_input_to_trans ges_propshaft_input mts_propshaft_input_to_powertrain
josrev_rear_diff_input_to_housing ges_rear_diff_input ges_rear_diff_housing
jostra_propshaft_rear_to_yoke ges_propshaft_rear ges_slip_yoke
302 Adams Car
Rear Driveline System

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.

The parameter: Takes the value: Its units are: Description:


driveline_active String No units list of every driven
suspension minor role
halfshafts_active Integer No units 0=no half shafts

1=half shafts active


propshaft_front_length Real length

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_halfshaft_outer location rear
ci[lr]_spindle mount rear
ci[lr]_tire_force force rear
ci[lr]_wheel_center location rear
cis_body mount any
cis_driveline_torque solver_variable inherit
cis_propshaft_input_to_powertrain mount inherit
cis_propshaft_support_to_body mount inherit
cis_rear_axle mount rear
cis_rear_subframe mount rear
Working with Templates 303
Engine and Transmission System

The communicator: Belongs to the class: Has the role:


cis_transmission_output_location location any
co[lr]_diff_output mount rear
co[lr]_diff_output_location location rear
cos_drive_torque_bias_front parameter_real any
cos_final_drive_ratio parameter_real any
cos_transmission_output_omega solver_variable any

Engine and Transmission System


Overview
This Engine and Transmission system is a modification of the Powertrain System in the Adams Car shared
database. The differential has been removed, so this template should be assembled with a driveline system.
This system models an engine and transmission that may be used for with combination of engine layout
(transverse front engine, longitudinal front engine, transverse rear engine and so on.) and driveline (FWD,
4WD, AWD and so on.).
304 Adams Car
Engine and Transmission System

Figure 41 Engine and Transmission System

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

Flexible Chassis System


Overview
The flexible chassis system represents a flexible chassis of unibody construction.

Figure 42 Flexible Chassis

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.

The communicator: Belongs to the class: Has the role:


cis_std_tire_ref location inherit
co[lr]_bedplate_front_loc location inherit
co[lr]_bedplate_rear_loc location inherit
co[lr]_mount_to_body mount any
cos_body mount inherit
cos_body_stake mount any
cos_chassis_path_reference mount inherit
cos_driver_reference mount inherit
cos_loading_to_body mount inherit
cos_measure_for_distance mount inherit
cos_steering_column_to_body mount inherit
cos_subframe_to_body mount inherit
308 Adams Car
Hotchkiss Suspension

Hotchkiss Suspension
Overview
The Hotchkiss suspension template is an enhanced version of the standard Leafspring Suspension.

Figure 43 Hotchkiss 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.

The joint: Connects the part: To the part:


jo[lr]tra_toe_split ge[lr]_toe_adjuster gev_tierod
jo[lr]hoo_rack_to_axle ge[lr]_tierod sw[lr]_tierod_connection
jo[lr]tra_tripot_to_differential ge[lr]_tripot mt[lr]_tripot_to_differential
jo[lr]con_drive_sft_int_jt ge[lr]_tripot ge[lr]_drive_shaft
jo[lr]con_drive_sft_otr ge[lr]_drive_shaft ge[lr]_spindle
jo[lr]fix_hub_to_upright ge[lr]_hub sw[lr]_upright
jo[lr]sph_hub_compliance_ns ge[lr]_hub sw[lr]_upright
jo[lr]tra_lower_upper_strut ge[lr]_lower_shock_body ge[lr]_upper_shock_body
jo[lr]fix_hub_to_axle ge[lr]_hub sw[lr]_upright
jo[lr]fix_mid_leaf_to_axle ges_axle ge[lr]_mid_leaf
jo[lr]rev_hub_to_spindle ge[lr]_hub ge[lr]_spindle
josper_panhard_to_axle ges_panhard_rod ges_axle
jo[lr]per_shock_to_frame ge[lr]_upper_shock_body mtl_shock_to_frame
jo[lr]fix_wft ge[lr]_spindle ge[lr]_wft
jo[lr]con_drive_sft_int_jt_comp ge[lr]_tripot ge[lr]_drive_shaft_inner
jo[lr]con_drive_sft_otr_jt_comp ge[lr]_drive_shaft_outer ge[lr]_spindle
310 Adams Car
Hotchkiss Suspension

Parameters
Toe and camber variables define the wheel spin axis, spindle part, and spindle geometry. The following table
lists the parameters in the template.

The parameter: Takes the value: Its units are: Integer


pvs_panhard_rod_active Integer No units 0 = Inactive,

1 = Active
pvs_trailing_arm_active Integer No units 0 = Inactive,

1 = Active
pvs_steerable_axle Integer No units 0 = Inactive,

1 = Active - Single Tierod

2 = Active - Split Tierod


phs_driveline_active Integer No units 0 = Inactive,

1 = Active
pvs_number_of_bumpstops Integer No units 0 = Inactive,

1 = Active with 1 bumpstop


pvs_number_of_reboundstops Integer No units 0 = Inactive,

1 = Active with 1 reboundstop


pvs_leafspring_type Integer No units 0 = Simple,

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

The parameter: Takes the value: Its units are: Integer


pvs_wft_offset Real Length
pv[lr]_halfshaft_length Real Length
pv[lr]_halfshaft_stiffness Real Stiffness

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_trailing_arm_to_body location inherit
ci[lr]_jounce_to_body mount inherit
ci[lr]_rebound_to_body mount inherit
ci[lr]_second_stage_to_frame mount inherit
ci[lr]_tripot_to_differential mount inherit
ci[lr]_rearsteer_rack_to_tierod mount inherit
cis_panhard_to_body mount inherit
cis_test_equipment_gyro marker inherit
co[lr]_kingpin_marker marker inherit
co[lr]_wheel_center_marker marker inherit
co[lr]_rearsteer_tierod_inner_loc location inherit
co[lr]_rearsteer_rack_to_axle mount inherit
co[lr]_outside_wheel_center location inherit
co[lr]_spring_marker_upper marker inherit
co[lr]_spring_marker_lower marker inherit
co[lr]_damper_i marker inherit
co[lr]_damper_j marker inherit
co[lr]_ride_height_ref marker inherit
co[lr]_tripot_to_differential location inherit
co[lr]_arb_bushing_mount mount inherit
cos_wheel_force_transducer parameter_integer inherit
cos_trailing_arm_right mount inherit
cos_trailing_arm_left mount inherit
312 Adams Car
Haltenburger Advanced Steering System

The communicator: Belongs to the class: Has the role:


cos_draglink_pitman_arm location inherit
cos_draglink_tierod location inherit
cos_axle_cm marker inherit
cos_driveline_active parameter_integer inherit

Haltenburger Advanced Steering System


Overview
Haltenburger advanced steering template is an extend version of the relay pitman advanced steering template.

Figure 44 Haltenburger Advanced Steering

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

Haltenburger Simple Steering System


Overview
Haltenburger simple steering template is an extend version of the relay pitman simple steering template.

Figure 45 Haltenburger Simple Steering

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

Integral Link Suspension


Overview
This template represents an independent suspension with integral link and coil spring.

Figure 46 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.

The joint: Connects the part: To the part:


jolrev_spindle_to_upright gel_spindle gel_upright
jolsph_hub_compliance gel_spindle gel_upright
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
jolsph_upper_ball_joints gel_uca_camber_adjuster gel_upright
jklsph_tierod_outer gel_upright gel_tierod_outer
joltra_uca_split gel_uca gel_uca_camber_adjuster
joltra_tierod_split gel_tierod_outer gel_tierod_inner
jklcon_tierod_inner gel_tierod_inner mtl_tierod_to_steering
jklrev_uca gel_uca swl_uca_attachment_options
jklsph_integral_link_to_lca gel_integral_link gel_lca
jolsph_integral_link_to_tierod gel_integral_link swl_integral_link_attachment_op
tions
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
318 Adams Car
Integral Link Suspension

The joint: Connects the part: To the part:


joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolhoo_upper_strut_to_body gel_upper_strut mtl_strut_to_body
jolcyl_lwr_to_upper_strut gel_lower_strut gel_upper_strut
jklrev_lca gel_lca ges_subframe
jolhoo_lower_strut_to_lca gel_lower_strut gel_lca
jklsph_lower_ball_joint gel_upright gel_lca

Parameters
Toe and camber variables define the wheel spin axis, spindle part, and spindle geometry. The following table
lists the parameters in the template.

The parameter: Takes the value: Its units are: Integer


phs_driveline Integer No units 0 = Inactive,

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

The parameter: Takes the value: Its units are: Integer


pvs_hub_compliance_offset Integer No units
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

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_ARB_pickup location inherit
ci[lr]_spring_to_body mount inherit
ci[lr]_strut_to_body mount inherit
ci[lr]_tierod_to_steering mount inherit
ci[lr]_tripot_to_differential mount inherit
ci[lr]_uca_to_body mount inherit
cis_subframe_to_body mount inherit
co[lr]_arb_bushing_mount mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_tripot_to_differential location inherit
co[lr]_wheel_center location inherit
cos_suspension_parameters_ARR array inherit
AY
320 Adams Car
MacPherson Suspension

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".

Figure 47 MacPherson Suspension

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

MacPherson Advanced Suspension


Overview
This template is an enhanced version of the MacPherson Suspension in the shared Adams Car database.

Figure 48 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

Design Option The joint: Connects the part: To the part:


LCA Single Ball Joint jolrev_lca gel_lower_control_arm sws_subframe_attachment_
Configuration options

LCA Dual Ball Joint jolhoo_lca_link_2_inner gel_lower_control_arm sws_subframe_attachment_


Configuration option

jolhoo_link_2_inner gel_lca_link_2 sws_subframe_attachment_


options

jolsph_lca_link_2_balljoint gel_lca_link_2 gel_upright


Working with Templates 325
MacPherson Advanced Suspension

Design Option The joint: Connects the part: To the part:


LCA Dual Link with jolcyl_lca_compression_inn gel_lower_control_arm sws_subframe_attachment_
compression Configuration er options

jolsph_compression_inner gel_lca_compression_bar sws_subframe_attachment_


options

jolhoo_compression_outer gel_lower_control_arm gel_lca_compression_bar

LCA Dual Link with jolsph_tension_inner gel_lca_tension_strut sws_subframe_attachment_


Tension strut Configuration options

jolcyl_lca_tension_inner gel_lower_control_arm sws_subframe_attachment_


options

jolhoo_tension_outer gel_lower_control_arm gel_lca_tension_strut

Hub Compliance Active jolsph_hub_compliance gel_spindle gel_upright

Hub Compliance Inactive jolrev_spindle_upright gel_spindle gel_upright

Parameters
The parameter below is additional to the MacPherson Suspension template.
326 Adams Car
MacPherson Advanced Suspension

The parameter: Takes the value: Its units are: Description


pvs_lower_control_arm_configur Integer No units 1 = Single Ball Joint,
ation
2 = Dual Ball Joint,

3 = Dual Link with Compression,

4 = Dual Link with Tensions Strut


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_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".

Figure 49 Multi-Link Suspension

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

Parallel-Link Steering System


Overview
This parallel-link steering system template is a modification of the standard Parallel-Link Steering System.

Figure 50 Parallel-Link Steering

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.

The joint: Connects the part: To the part:


jo[lr]sph_centerlink_arm ges_center_link ge[lr]_arm
joscyl_steering_wheel ges_steering_column mts_steering_column_to_body
josfix_steering_gear_housing ges_steering_gear_housing swl_steering_gear_mount
josfix_steering_wheel_to_column ges_steering_wheel ges_steering_column
josper_centerlink_pitman_arm ges_center_link gel_arm
josrev_ball_screw_steering_gear ges_ball_screw ges_steering_gear_housing
josrev_idler_arm_to_body ger_arm swr_steering_gear_mount
josrev_input_shaft_steering_gear ges_input_shaft ges_steering_gear_housing
josrev_pitman_arm_to_body gel_arm swl_steering_gear_mount
jostra_rack_steering_gear ges_rack ges_steering_gear_housing
josuni_column_intermediate ges_steering_column ges_intermediate_shaft
josuni_intermediate_shaftinput ges_intermediate_shaft ges_input_shaft
gksred_ball_screw_input_shaft_lock josrev_ball_screw_steering_ josrev_input_shaft_steering_
gear gear
grsred_ball_screw_rack josrev_ball_screw_steering_ jostra_rack_steering_gear
gear
grsred_pitman_arm_rack josrev_pitman_arm_steering jostra_rack_steering_gear
_gear
330 Adams Car
Parallel-Link Steering System

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_steering_gear_to_body mount inherit
ci[lr]_steering_gear_to_suspension_subframe mount inherit
cis_steering_column_to_ body mount inherit
co[lr]_tierod_to_steering mount front
cos_max_rack_ displacement parameter_real inherit
cos_max_rack_force parameter_real inherit
cos_max_steering_angle parameter_real inherit
cos_max_steering_torque parameter_real inherit
cos_steering_rack_joint joint_for_motion inherit
cos_steering_wheel_joint joint_for_motion inherit

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.

Figure 51 Powertrain Advanced System

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:

The parameter: Takes the value: Its units are: Integer


phs_engine_mounts Integer No units 2 = two engine mounts,
3 = three engine mounts
4 = four engine mounts
5 = five engine mounts
pvs_roll_restrictor Integer No units 0 = Inactive,
1 = Active
pvs_roll_restrictor_2 Integer No units 0 = Inactive,
(second roll restrictor) 1 = Active
pvs_engine_orientation Integer No units 0 = Transverse,
1 = Longitudinal
Working with Templates 333
Powertrain Simple Traction

Powertrain Simple Traction


Overview
The powertrain simple traction template provides torque directly to the four wheels. The proportion of the
torque applied to front and rear wheels will depend on drive bias (pvs_drive_torque_bias_front) ratio.

Figure 52 Powertrain Simple Traction System

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.

The parameter: Takes the value: Its units are:


pvs_drive_torque_bias_front Real No units
phs_throttle_I_gain* Real No units
phs_throttle_P_gain* Real No units
phs_throttle_scale* Real No units

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

Quad-Link Axle Advanced Suspension


The quad-link axle advanced suspension template is an enhanced version of the standard Quad-Link Axle
Suspension.

Figure 53 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:

The joint: Connects the part: To the part:


joshoo_right_knuckle_tierod_hooke ges_tierod ger_knuckle
jossph_tierod_knuckle ges_tierod ger_knuckle

Parameters
The quad-link axle advanced suspension template includes additional parameter variables beside those
described in the Quad-Link Axle Suspension template.

The parameter: Takes the value: Its units are: Integer


phs_kinematic_flag Integer No units 0 = Inactive,
1 = Active
pvs_hub_compliance Integer No units 0 = Inactive,
1 = Active
pvs_four_link_control_a Integer No units 0 = UCA Inactive
rm_configurations 1 = UCA Left and Right
2 = UCA Left Only,
3 = UCA Right Only,
4 = LCA Single Piece
338 Adams Car
Quad-Link Axle Advanced Suspension

The parameter: Takes the value: Its units are: Integer


pvs_four_link_type Integer No units 0 = Basic,
1 = Panhard Rod
2 = Watts Link
3 = Multi-link
pvs_steerable_axle Integer No units 0 = Inactive,
1 = Active
pvs_number_of_bumpst Integer No units 0 = None,
ops 1 = Bumpstop One Only
pvs_number_of_reboun Integer No units 0 = None,
dstops 1 = Reboundstop One Only
pv[lr]_toe_angle Real Degrees
pv[lr]_camber_angle Real Degrees
Pv[lr]_hub_compliance Real mm
_offset

Communicators
The following table lists the additional input and output communicators beside those described in the Quad-
Link Axle Suspension template.

The communicator: Belongs to the class: Has the role:


cis_tierod_steering mount inherit
cis_panhard_to_body mount inherit
cos_draglink_connection mount inherit
Working with Templates 339
Rack and Pinion Steering System

Rack and Pinion Steering System


Overview
This rack and pinion steering system is a modification of the standard Rack and Pinion Steering System.

Figure 54 Rack and Pinion Steering System

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

Rack and Pinion Advanced Steering System


Overview
The rack and pinion advanced steering template is an enhanced version of the standard Rack and Pinion Steering
System.
Working with Templates 341
Rack and Pinion Advanced Steering System
342 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

The joint: Connects the part: To the part:


josinl_steering_column ges_steering_column mts_steering_column_to_body

josrev_dummy_to_steering_column ges_steering_column_complian ges_steering_column


ce_dummy

josrev_intermediate_shaft_upper_to ges_intermediate_shaft_upper ges_intermediate_shaft_lower


_lower

josrev_ishaft_lower_to_ishaft_lower_ ges_intermediate_shaft_lower ges_intermediate_shaft_lower_


dummy dummy

josrev_steering_wheel_to_aux_colu ges_steering_wheel ges_aux_steering_column


mn

josuni_aux_steering_column_to_du ges_aux_steering_column ges_steering_column_complian


mmy ce_dummy

josuni_aux_steering_column_to_stee ges_aux_steering_column ges_steering_column


ring_column

josuni_ishaft_upper_to_steering_col ges_intermediate_shaft_upper ges_steering_column


umn

josuni_steering_shaft_to_ishaft_lowe ges_steering_shaft ges_intermediate_shaft_lower_


r_dummy dummy

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

pvs_intermediate_shaft_compliance Integer No units 0= None, 1=Lash, 2= Linear, 3=


Nonlinear
pvs_lower_u_joint_friction Integer No units 0 = Inactive, 1 = Active
344 Adams Car
Rack and Pinion Advanced Steering System

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

pvs_steering_column_to_body_dam Real torsion_da Column to Body Viscous


ping mping Damping
pvs_steering_wheel_friction Integer No units 0 = Inactive, 1 = Active

pvs_torsion_bar_method Integer No units 1=Linear, 2=Linear Using Stop


Angle, 3=Geometry,
4=Geometry Using Stop Angle,
5=Nonlinear
pvs_u_joint_phase_angle_1 Real angle U-Joint phasing angle 1

pvs_u_joint_phase_angle_2 Real angle U-Joint phasing angle 2

pvs_u_joint_phasing Integer No units 0 = Inactive, 1 = Active

pvs_upper_u_joint_friction Integer No units 0 = Inactive, 1 = Active

Communicators
Refer to the Rack and Pinion Steering System.
Working with Templates 345
Rack and Pinion Tilt 3 Universal Joint Steering System

Rack and Pinion Tilt 3 Universal Joint Steering System


Overview
The rack and pinion tilt 3 universal joint steering template is an enhanced version of the standard Rack and
Pinion Steering System and Rack and Pinion Advanced Steering System.
346 Adams Car
Rack and Pinion Tilt 3 Universal Joint Steering System
Working with Templates 347
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

The joint: The joint: To the part:


joscon_tilt_inner_to_steering_column ges_steering_tilt_inner_shaft ges_steering_column_inner_shaft

joscyl_ishaft_lower_to_ishaft_lower_slider ges_intermediate_shaft_lower ges_ishaft_lower_slider

joscyl_upper_ishaft_dash_seal sws_dash_seal_attach ges_dash_seal_dummy


josfix_dash_seal_to_body ges_dash_seal_dummy mts_steering_column_to_body
josfix_isolator_upper ges_isolator_upper_dummy ges_ishaft_upper_compliance
josfix_lower_isolator ges_isolator_lower_dummy ges_intermediate_shaft_lower
josfix_steering_colum_outer_shaft_to_bo ges_steering_column_outer_shaf mts_steering_column_to_body
dy t
josfix_steering_tilt_outer_to_body ges_steering_tilt_outer_shaft mts_steering_column_to_body
josinl_steering_column ges_steering_column_outer_shaf ges_steering_column_inner_shaft
t
josrev_ishaft_upper_compliance ges_intermediate_shaft_upper ges_ishaft_upper_compliance
josrev_steering_column_compliamce_to_i ges_steering_column_complianc ges_steering_column_inner_shaft
nner_shaft e
josrev_steering_wheel ges_steering_wheel ges_steering_tilt_outer_shaft
josrev_steering_wheel_to_tilt_inner_shaft ges_steering_wheel ges_steering_tilt_inner_shaft

josuni_column_intermediate ges_isolator_upper_dummy ges_steering_column_compliance


josuni_ishaft_lower_slider_to_steering_sh ges_ishaft_lower_slider ges_steering_shaft
aft
josuni_ishaft_upper_to_isolator_lower ges_intermediate_shaft_upper ges_isolator_lower_dummy

josuni_steering_tilt_to_steering_column ges_steering_tilt_inner_shaft ges_steering_column_inner_shaft

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

The parameter: Takes the value: Its units are: Description


pvs_column_tilt_joint Integer No units 1 = Constant velocity, 2
= Universal
pvs_dash_seal_compliance Integer No units 0 = Inactive, 1 = Active
pvs_dash_seal_friction Integer No units 0 = Inactive, 1 = Active
pvs_lower_intermediate_shaft_compliance Integer No units 0= Inactive, 1=Linear,
2=Nonlinear
pvs_isolator_lower Integer No units 0 = Inactive, 1 = Active
pvs_middle_u_joint_friction Integer No units 0 = Inactive, 1 = Active
pvs_upper_intermediate_shaft_compliance Integer No units 0= Inactive, 1=Linear,
2=Nonlinear
pvs_isolator_upper Integer No units 0 = Inactive, 1 = Active
pvs_u_joint_phase_angle_3 Real angle U-Joint phasing angle 3

Communicators
Refer to the Rack and Pinion Steering System.
350 Adams Car
Rack and Pinion Tilt Bracket Steering System

Rack and Pinion Tilt Bracket Steering System


Overview
The rack and pinion tilt bracket steering template is an enhanced version of the standard Rack and Pinion
Advanced Steering System.
Working with Templates 351
Rack and Pinion Tilt Bracket Steering System
352 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

The joint: Connects the part: To the part:


joscyl_intermediate_shaft_for_tilt_ ges_intermediate_shaft_upper ges_intermediate_shaft_lower
bracket
joscyl_steering_wheel_aux_colum ges_steering_wheel ges_aux_steering_column
n_for_tilt_bracket

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.

Rack and Pinion Simple four Wheel Steering System


Overview
The rack and pinion simple four wheel steering template is an modified version of the standard Rack and Pinion
Advanced Steering System. In which steering column is simplified and rear steer mechanism is added.
354 Adams Car
Rack and Pinion Simple four Wheel Steering System

Figure 55 Rack and Pinion Simple four Wheel Steering

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.

The joint: Connects the part: To the part:


jostra_rearsteer_rack_to_rackhouse ges_rearsteer_rack ges_rearsteer_rack_housing
josrev_rear_actuator_to_housing ges_rear_steering_actuator ges_rearsteer_rack_housing

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.

The communicator: Belongs to the class: Has the role:


cil_rearsteer_tierod_inner_loc location rear
cil_wheel_center_marker_rear marker rear
cil_kingpin_marker_rear marker rear
cil_rearsteer_rack_to_axle mount rear
cil_wheel_center_front_loc location front
cil_body_ref mount inherit
cis_steering_wheel_loc location front
cis_steering_wheel mount front
cis_body_at_steering_wheel_ref mount inherit
col_rearsteer_tierod_inner mount rear
cos_front_to_rear_coupler joint for motion rear
cos_pseudo_velocity solver variable inherit

Relay and Pitman Advanced Steering System


Overview
The relay and pitman advanced steering template is an modified version of the standard Rack and Pinion
Advanced Steering System in which steering column is kept as it is and rack and pinion mechanism is replaced
by relay rod mechanism and also have an options to activate pitman arm.
Working with Templates 357
Relay and Pitman Advanced Steering System

Figure 56 Relay Rod Advanced Steering


358 Adams Car
Relay and Pitman Advanced Steering System

Figure 57 Relay Rod Advanced Steering Construction


Working with Templates 359
Relay and Pitman Advanced Steering System

Figure 58 Pitman Arm Advanced Steering


360 Adams Car
Relay and Pitman Advanced Steering System

Figure 59 Pitman Arm Advanced Steering Construction

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.

The joint: Connects the part: To the part:


josrev_housing_to_input_shaft ges_steering_shaft ges_gear_housing
josfix_worm_to_input_shaft ges_worm_shaft ges_steering_shaft
jksfix_housing_to_body ges_gear_housing mts_body
josrev_sector_shaft_to_gear_housing ges_sector_shaft ges_gear_housing
josrev_worm_to_gear_housing ges_worm_shaft ges_gear_housing
jostra_piston_to_gear_housing ges_gear_piston ges_gear_housing
362 Adams Car
Relay and Pitman Advanced Steering System

Topology for Relay Rod Mechanism

Design Option The joint: Connects the part: To the part:


Relay josfix_pitman_to_sector ges_pitman_arm_relay ges_sector_shaft
_relay
joshoo_draglik_to_pitm ges_draglink ges_pitman_arm_relay
an
jostra_draglink_to_toe_ ges_draglink ges_toe_adjuster_dragli
adjuster nk
jossph_toe_adjuster_dra ges_toe_adjuster_dragli mts_strarm_to_spindle
glink_to_tierod nk

Pitman josfix_pitman_to_sector ges_pitman_arm_pitma ges_sector_shaft


_pitman n
jossph_center_link_to_ ges_center_link ges_pitman_arm_pitma
pitman n
joshoo_center_link_to_i ges_center_link ges_idler_arm
dler
ues_idler_to_body ges_idler_arm sws_idle_connection_att
achment_options

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

pvs_sector_shaft_friction Integer No units 0= Inactive, 1=Active

pvs_piston_friction Integer No units 0= Inactive, 1=Active


Working with Templates 363
Relay and Pitman Advanced Steering System

Takes the
The parameter: value: Its units are: Description
pvs_idler_arm_friction Integer No units 0= Inactive, 1=Active

pvs_shaft_compliance Integer No units 0= Off, 1 = On

pvs_worm_lead Integer No units -1 = Left hand lead,


1 = Right hand lead
pvs_steering_gear_type Integer No units 1=Relay, 2=Pitman

pvs_shaft_compliance_stiffness Real torsion_stiffness Torsional stiffness for sector


shaft compliance
pvs_shaft_compliance_damping Real torsion_damping Torsional damping for sector
shaft compliance
pvs_shaft_compliance_stop_angle Real Angle Stop angle for sector shaft
compliance
pvs_gear_ratio Real No units Steering gear ratio (Degrees of
SWA per degree of pitman arm
rotation)
pvs_piston_to_sector_shaft_scale Real No units Piston to sector shaft coupler
ratio
pvs_worm_shaft_to_piston_scale Real No units Worm to gear piston coupler
ratio

Communicators
Communicators additional to the Rack and Pinion Advanced Steering System template are listed below:

The communicator: Belongs to the class: Has the role:


ci[lr]_wheel_center Location inherit
ci[lr]_toe_angle Parameter real inherit
ci[lr]_camber_angle Parameter real inherit
cis_strarm_to_spindle Mount inherit
364 Adams Car
Relay and Pitman Simple Steering System

Relay and Pitman Simple Steering System


Overview
The relay and pitman simple steering template is an modified version of the standard Relay and Pitman Advanced
Steering System. In which steering column is simplified.

Figure 60 Relay Rod Simple Steering

Figure 61 Pitman Arm Simple Steering


Working with Templates 365
Relay Pitman Tilt 3 Universal Joint Steering System

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.

Relay Pitman Tilt 3 Universal Joint Steering System


Overview
The Relay Pitman tilt 3ujoint steering 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.
366 Adams Car
Relay Pitman Tilt 3 Universal Joint Steering System

Figure 62 Relay rod tilt 3ujoint steering


Working with Templates 367
Relay Pitman Tilt 3 Universal Joint Steering System

Figure 63 Relay rod tilt 3ujoint steering topology


368 Adams Car
Relay Pitman Tilt 3 Universal Joint Steering System

Figure 64 Pitman tilt 3ujoint steering


Working with Templates 369
Relay Pitman Tilt 3 Universal Joint Steering System

Figure 65 Pitman tilt 3ujoint steering topology


370 Adams Car
Relay Pitman Tilt 3 Universal Joint 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.

Rigid Chassis Body on Frame


Overview

Figure 66 Rigid Chassis Body on Frame

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:

The joint: Connects the part: To the part:


josfix_frame_to_body ges_body ges_frame

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:

The parameter: Takes the value: Its units are: Description


pvs_number_of_body_ Integer No units 0 = None
mounts
1-9 = No of body
mounts

Communicators
Additional communicators to the Rigid Chassis template are listed below

The communicator: Belongs to the class: Has the role:


co[lr]_body_mount_generic mount inherit

Rigid Chassis Body and Bed on Frame


Overview
The rigid chassis body and bed on frame is a modified version of Rigid Chassis Body on Frame. In this template,
the body is divided into two parts.
Working with Templates 373
Rigid Chassis Body and Bed on Frame

Figure 67 Rigid Chassis Body and Bed on Frame

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:

The joint: Connects the part: To the part:


josfix_frame_to_bed ges_bed ges_frame
josfix_frame_to_body ges_body ges_frame

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

The parameter: Takes the value: Its units are: Description


pvs_number_of_bed_m Integer No units 0 = None
ounts
1-9 = No of bed mounts
pvs_number_of_body_ Integer No units 0 = None
mounts
1-9 = No of body mounts

Communicators
Refer to the Rigid Chassis Body on Frame.
Working with Templates 375
Rigid Chassis Convertible

Rigid Chassis Convertible


Overview
The rigid chassis convertible is a modified version of the Rigid Chassis template.

Figure 68 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

Rigid Chassis Crossover


Overview
The rigid chassis crossover is a modified version of the Rigid Chassis template.

Figure 69 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

Rigid Chassis Pickup


Overview

Figure 70 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:

The joint: Connects the part: To the part:


josfix_payload_to_body ges_payload ges_chassis

Parameters
Refer to the Rigid Chassis template.

Force function description


Adams Car expects air density and area parameter through property file in fixed standard units, that is, kg/m3
for air density and m2 for area.
As a result of an air stream interacting with the vehicle, forces and moments are imposed on the vehicle. All
forces and moments are modeled in the template. Depending on the aerodynamic parameters supplied
through property file required force and moment are calculated. In detail:
2
F ( drag ⁄ side ⁄ lift ) = 0.5 × AirDensity × Coefficient ( drag ⁄ side ⁄ lift ) × Area × VX ( chassis )
2
T ( pitch ⁄ yaw ⁄ roll ) = 0.5 × AirDensity × Coefficient ( drag ⁄ side ⁄ lift ) × Area × VX ( chassis ) × Wheelbase
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. For the moment
equation, a characteristic length is required to achieve dimensional consistency in the equation. So, the
vehicle wheelbase is used.

Communicators
Additional communicators to the Rigid Chassis template are listed below:

The communicator: Belongs to the class: Has the role:


ci[lr]_aero_force_front location front
ci[lr]_aero_force_rear location rear
cis_aero_pitch_angle parameter_real inherit
cis_aero_pitch_angle_brake parameter_real inherit
co[lr]_body_mount_generic mount inherit
cos_downforce_coefficient parameter_real inherit
Working with Templates 381
Rigid Chassis Pickup

The communicator: Belongs to the class: Has the role:


cos_downforce_brake_coefficient parameter_real inherit
cos_drag_brake_coefficient parameter_real inherit
cos_front_aero_location marker inherit
382 Adams Car
Rigid Chassis Two Body

Rigid Chassis Two Body


Overview
The rigid chassis two body template is an extended version of the Rigid Chassis template.

Figure 71 Rigid Chassis Two Body

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:

The joint: Connects the part: To the part:


Torsion Configuration
bgs_chassis_front_to_chassis_rear_1 ges_body_front ges_body_rear
josrev_chassis_front_to_chassis_rear_1 ges_body_front ges_body_rear
Torsion and Lateral Bending Configuration
bgs_chassis_front_to_chassis_rear_2 ges_body_front ges_body_rear
joshoo_chassis_front_to_chassis_rear_2 ges_body_front ges_body_rear
Torsion, Vertical and Lateral Bending Configuration
bgs_chassis_front_to_chassis_rear_3 ges_body_front ges_body_rear
jossph_chassis_front_to_chassis_rear_3 ges_body_front ges_body_rear

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

The parameter: Takes the value: Its units are: Description


pvs_body_compliance Integer No units 1 = Torsion Only,

2 = Torsion and Lateral Bending,

3 = Torsion and Vertical and Lateral


Bending

Communicators
Refer to the Rigid Chassis.
384 Adams Car
Rigid Chassis Sedan

Rigid Chassis Sedan


Overview
The rigid chassis sedan is a modified version of the Rigid Chassis template.

Figure 72 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

Rigid Chassis Subcompact


Overview
The rigid chassis subcompact is a modified version of the Rigid Chassis template.

Figure 73 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.

SAE 3-Link Leaf Spring


Overview
The SAE 3-link 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.

Figure 74 SAE 3-link Leaf Spring

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.

The bushing: Connects the part: To the part:


bg[lr]_leaf_at_shackle shackle rear_leaf
bg[lr]_leaf_at_frame front_leaf mt[lr]_leaf_to_frame
bg[lr]_shackle_at_frame shackle mt[lr]_shackle_to_frame
tj[lr]_front_torsional front_leaf mid_leaf
tj[lr]_rear_torsional rear_leaf mid_leaf

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_leaf_to_frame mount inherit
ci[lr]_shackle_to_frame mount inherit
ci[lr]_second_stage_to_frame mount inherit
co[lr]_leaf_to_axle mount inherit
Working with Templates 389
Semi-Trailing Arm Advanced Suspension

Semi-Trailing Arm Advanced Suspension


Overview
The semi trailing arm advanced suspension template is based on the version of Semi Trailing Arm Rear
Suspension from Adams Car. The trailing arm suspension template is one of the most simple and economical
designs for independent suspensions

Figure 75 Semi Trailing Arm Suspension

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.

The joint: Connects the part: To the part:


jklrev_arm_inner_pivot gel_trailing_arm gel_camber_adjuster
joltra_toe_split gel_toe_adjuster gel_camber_adjuster
joltra_camber_split gel_camber_adjuster sws_subframe_attachment_options
josfix_subframe_rigid ges_subframe mts_subframe_to_body
jklhoo_top_mount_kinematic gel_upper_strut swl_damper_upper_attachment_option
s
jolcyl_lwr_upr_strut gel_lower_strut gel_upper_strut
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
jklhoo_lwr_strut_kinematic gel_lower_strut gel_trailing_arm
Hub Compliance Active
jolsph_hub_compliance gel_spindle gel_upright
Hub Compliance Inactive
jolrev_spindle_upright gel_spindle gel_upright

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

The parameter: Takes the value: Its units are: Description


phs_subframe Integer No units 0 = None,

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.

The parameter: Takes the value: Its units are:


pvs_gear_ratio_1-5 Real none
pvs_max_gears Integer none
pvs_transmission_efficiency Real none
pvs_trans_damping Real torsion_damping
pvs_trans_stiffness Real torsion_stiffness

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

Solid Axle Suspension


Overview
The solid axle suspension is a dependent suspension model intended for use only as a rear suspension. It does
not include springs or any locating arms. It should be assembled with another template such as the Leaf Spring
system.

Figure 76 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.

The joint: Connects the part: To the part:


jk[lr]con_lower_shock ge[lr]_lower_shock ges_axle_housing
jk[lr]_upper_shock ge[lr]_upper_shock mt[lr]_shock_to_frame
jo[lr]cyl_shock ge[lr]_upper_shock ge[lr]_lower_shock
jo[lr]fix_diff_output_to_axle mt[lr]_diff_output ge[lr]_axle
jo[lr]fix_leaf_to_axle mt[lr]_leaf_to_axle ges_axle_housing

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.

The parameter: Takes the value: Its units are:


phs_kinematic_flag Integer No units

Communicators
The following table lists the Communicators in the template.
396 Adams Car
Solid Axle Suspension

The communicator: Belongs to the class: Has the role:


ci[lr]_diff_output mount any
ci[lr]_diff_output_location location rear
ci[lr]_leaf_to_axle mount inherit
ci[lr]_shock_to_frame mount inherit
ci[lr]_tire_force force inherit
co[lr]_lddrv_outside_whl_mount mount inherit
co[lr]_lddrv_suspension_mount mount inherit
co[lr]_lddrv_upright_mount mount inherit
co[lr]_ride_height_ref marker inherit
co[lr]_wheel_center location inherit
cos_diff_housing mount inherit
cos_diff_input_location location inherit
cos_suspension_parameters_ARRAY array inherit
Working with Templates 397
Solid Axle Trailing Arm Suspension

Solid Axle Trailing Arm Suspension


Overview
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.

Figure 77 Solid Axle Trailing Arm 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.

The joint: Connects the part: To the part:


jo[lr]cyl_shock ge[lr]_upper_shock ge[lr]_lower_shock
cn[lr]_lower_shock ge[lr]_lower_shock ges_axle
cn[lr]_damper_upper ge[lr]_upper_shock mt[lr]_shock_to_frame
jo[lr]per_damper_upper ge[lr]_upper_shock mt[lr]_shock_to_frame
jo[lr]rev_hub_compliance_to_hub ge[lr]_hub_compliance ge[lr[_hub
Hub Compliance off
jo[lr]fix_hub_compliance ge[lr[_hub ges_axle
Hub Compliance on
jo[lr]sph_hub_compliance ge[lr[_hub ges_axle

Parameters
The following table lists the parameters in the template. These integer parameter variables allow you to
activate and deactivate the various configuration options.

The parameter: Takes the value: Its units are:


phs_kinematic_flag Integer No units
pvs_hub_compliance Integer No units
pvs_panhard_rod Integer No units
pvs_number_of_bumpstops Integer No units
pvs_number_of_reboundstops Integer No units
pv[lr]_toe_angle Real No units
pv[lr]_camber_angle Real No units
pvs_hub_compliance_offset Real No units
Working with Templates 399
Solid Axle Trailing Arm Suspension

Communicators
The following table lists the Communicators in the template.

The communicator: Belongs to the class: Has the role:


ci[lr]_shock_to_frame mount inherit
ci[lr]_spring_to_body mount inherit
ci[lr]_trailing_arm_to_body mount inherit
cis_body mount inherit
ci[lr]_ARB_pickup location inherit
co[lr]_arb_bushing_mount force inherit
co[lr]_droplink_to_suspension mount inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
cos_axle marker inherit
cos_suspension_parameters_ARRAY array inherit
co[lr]_wheel_center location inherit
400 Adams Car
Stabilizer Bar system

Stabilizer Bar system


The stabilizer bar system is the advanced version of Anti-roll bar system (discrete flexible links). Additional design
option is added to switch droplink bar with spring damper.

Figure 78 Stabilizer bar system

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.

The joint: Connects the part: To part


cn[lr]_droplink_external ge[lr]_droplink mt[lr]_droplink_to_suspension
cns_droplink_to_single_bar_[left/right] ge[lr]_droplink ars_[1/7]_stabilizer bar

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.

The parameter: Takes the value: Its units are: Description


phs_droplink_active Integer No units 0 = Link in form of Spring damper

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:

The communicator: Belongs to the class: Has the role:


co[lr]_arb_droplink_joint joint inherit
co[lr]_arb_droplink_joint bushing inherit
402 Adams Car
Trailer

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

Design Option The joint: Connects the part: To the part:


Trailer Axle josfix_axle_simple gel_axle1 ger_axle1
Configuration: Solid jostra_trailer_body_sim ges_trailer_body gel_axle1
Axle ple_to_axle
josfix_axle2_simple gel_axle2 ger_axle2
jostra_trailer_body_sim ges_trailer_body gel_axle2
ple_to_axle2
Trailer Axle ue[lr]_axle1_to_trailer_ ge[lr]_axle1 ges_trailer_body
Configuration: Trailing body_adv
Arm with Torsion Spring ue[lr]_axle2_to_trailer_ ge[lr]_axle2 ges_trailer_body
body_adv

Trailer Axle jo[lr]sph_axle1_to_traile gel_axle1 ges_trailer_body


Configuration: Trailing r_body_adv
Arm with Bushing jo[lr]sph_axle2_to_traile gel_axle2 ges_trailer_body
r_body_adv
bg[lr]_axle1_trailer_bod gel_axle1 ges_trailer_body
y_adv
bg[lr]_axle2_trailer_bod gel_axle2 ges_trailer_body
y_adv
Hitch Configuration: josfix_trailer_body_to_c ges_trailer_body mts_body
Standard, Goose Neck hassis_lock
& Fifth Wheel

Hitch Joint Method:


Lock
Hitch Configuration: jossph_trailer_body_to_ ges_trailer_body mts_body
Standard & Goose Neck chassis

Hitch Joint Method:


Kinematic
Hitch Configuration: bgs_trailer_body_chassis ges_trailer_body mts_body
Standard & Goose Neck

Hitch Joint Method:


Compliance
Working with Templates 405
Trailer

Design Option The joint: Connects the part: To the part:


Hitch Configuration: josrev_trailer_body_to_f ges_trailer_body ges_fifth_wheel_head
Fifth Wheel ifth_wheel_head
josrev_fifth_wheel_head ges_fifth_wheel_head ges_fifth_wheel_head_s
Hitch Joint Method:
_to_head_support upport
Kinematic
josrev_fifth_wheel_head ges_fifth_wheel_head_s mts_body
_support_to_chassis upport
josfix_fifth_wheel_head ges_fifth_wheel_head_s mts_body
_support_to_chassis_no upport
_x_rot
Hitch Configuration: bgs_trailer_body_to_fift ges_trailer_body ges_fifth_wheel_head
Fifth Wheel h_wheel_head
bgs_fifth_wheel_head_t ges_fifth_wheel_head ges_fifth_wheel_head_s
Hitch Joint Method:
o_head_support upport
Compliant
bgs_fifth_wheel_head_s ges_fifth_wheel_head_s mts_body
upport_to_chassis upport
Load Equalizer jo[lr]rev_trailer_spring_ nr[lr]_1_trailer_spring_ mts_body
bar_to_chassis bar
pf[lr]_spring_bar_force nr[lr]_2_trailer_spring_ ges_trailer_body
bar
ns[lr]_spring_bar_to_tra nr[lr]_2_trailer_spring_ ges_trailer_body
iler_body bar
Number of Trailer Cargo josfix_trailer_body_to_c ges_trailer_body ges_cargo_1
Parts argo_1
josfix_trailer_body_to_c ges_trailer_body ges_cargo_2
argo_2
josfix_trailer_body_to_c ges_trailer_body ges_cargo_3
argo_3
josfix_trailer_body_to_c ges_trailer_body ges_cargo_4
argo_4
Hub Compliance jolsph_hub_compliance gel_spindle gel_axle1
bgl_hub_compliance gel_spindle gel_axle1
jolsph_hub_compliance gel_spindle_axle2 gel_axle2
_axle2
bgl_hub_compliance_ax gel_spindle_axle2 gel_axle2
le2
406 Adams Car
Trailer

Design Option The joint: Connects the part: To the part:


Damper jolcyl_shock gel_upper_shock gel_lower_shock
bgl_lower_shock_to_axl gel_lower_shock gel_axle1
e
bgl_upper_shock_to_bo gel_upper_shock ges_trailer_body
dy
jolcyl_shock_axle2 gel_upper_shock_axle2 gel_lower_shock_axle2
bgl_lower_shock_to_axl gel_lower_shock_axle2 gel_axle2
e_axle2
bgl_upper_shock_to_bo gel_upper_shock_axle2 ges_trailer_body
dy_axle2

Parameters
These integer parameter variables allow you to activate and deactivate the various configuration options.

The parameter: Takes the value: Its units are: Description


pvs_number_of_trailer_axles Integer No units 1 = One

2 = Two
pvs_trailer_body_configuration Integer No units 1 = Simple

2 = Advanced
pvs_trailer_axle_configurations Integer No units 0 = Solid Axle

1 = Trailing Arm with


Torsion Spring

2 = Trailing Arm with


Bushing
pvs_hitch_joint_method Integer No units 0 = Lock

1 = Kinematic

2 = Compliance
pvs_hitch_configuration Integer No units 1 = Standard

2 = Goose Neck

3 = Fifth Wheel
Working with Templates 407
Trailer

The parameter: Takes the value: Its units are: Description


pvs_fifth_wheel_motion Integer No units 1 = No X Rotation

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:

The communicator: Belongs to the class: Has the role:


cis_body mount inherit
cos_number_of_trailer_axles parameter_integer inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_wheel_center location inherit
co[lr]_outside_wheel_center location inherit
co[lr]_suspension_upright mount inherit
co[lr]_suspension_mount mount inherit
co[lr]_toe_angle_axle2 parameter_real inherit
co[lr]_camber_angle axle2 parameter_real inherit
408 Adams Car
Trailer Wheels Dual

The communicator: Belongs to the class: Has the role:


co[lr]_wheel_center axle2 location inherit
co[lr]_outside_wheel_center axle2 location inherit
co[lr]_suspension_upright axle2 mount inherit
co[lr]_suspension_mount axle2 mount inherit
cos_suspension_parameters_ARRAY array inherit
cos_suspension_parameters_ARRAY_axle2 array inherit

Trailer Wheels Dual


Overview
This template represents two axles with dual wheel arrangement and is compatible with trailer template. It
uses the tire property file and supports three basic functions:
 Supports vertical load
 Develops longitudinal forces for acceleration and braking
 Develops lateral forces for cornering

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.

The communicator: Belongs to the class: Has the role:


cis_number_of_trailer_axles parameter_integer inherit
ci[lr]_camber_angle parameter_real inherit
ci[lr]_outside_wheel_center location inherit
ci[lr]_suspension_upright mount inherit
ci[lr]_suspension_mount mount inherit
ci[lr]_toe_angle parameter_real inherit
ci[lr]_wheel_center location inherit
ci[lr]_camber_angle_axle2 parameter_real inherit
410 Adams Car
Trailer Wheels Dual

The communicator: Belongs to the class: Has the role:


ci[lr]_outside_wheel_center_axle2 location inherit
ci[lr]_suspension_upright_axle2 mount inherit
ci[lr]_suspension_mount_axle2 mount inherit
ci[lr]_toe_angle_axle2 parameter_real inherit
ci[lr]_wheel_center_axle2 location inherit
co[lr]_outside_tire_force force inherit
co[lr]_tire_force force inherit
co[lr]_outside_tire_force_axle2 force inherit
co[lr]_tire_force_axle2 force inherit
Working with Templates 411
Trailing Arm Advanced Suspension

Trailing Arm Advanced Suspension


Overview
The trailing arm advanced suspension template is a converted version of SLA Trailing Arm Rear Suspension from
Adams Car. It's a combination of Double Wishbone Advanced Suspension and Trailing Arm Suspension.

Figure 79 Trailing Arm Suspension

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.

The joint: Connects the part: To the part:


jklsph_lca_front_balljoint gel_lca_front_toe_adjuster gel_upright
jklsph_lca_rear_balljoint gel_upright gel_lower_control_arm2
joltra_lca_split gel_lca_rear gel_lower_control_arm2
jklsph_uca_outer gel_caster_adjuster_ubj gel_upright
joltra_lca_toe_split gel_lca_front_toe_adjuster gel_lca_front
josfix_subframe_rigid ges_subframe mts_subframe_to_body
jklhoo_top_mount_kinematic gel_upper_strut mtl_strut_to_body
jolcyl_lwr_upr_strut gel_lower_strut gel_upper_strut
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
jklhoo_lwr_strut_kinematic gel_lower_strut gel_upright
jklhoo_lca_front_inner gel_lca_front sws_subframe_attachment_optio
ns
jklhoo_lca_rear_inner gel_lca_rear sws_subframe_attachment_optio
ns
jklhoo_uca gel_upper_control_arm swl_uca_attachment_options
joltra_uca_caster_split gel_camber_adjuster_ubj gel_caster_adjuster_ubj
joltra_ubj_camber_split gel_upper_control_arm gel_camber_adjuster_ubj

The following table maps the trailing arm configuration.


Working with Templates 413
Trailing Arm Advanced Suspension

Design Option The joint: Connects the part: To the part:


3 Beam jolsph_trailing_arm_bea nrl_1_trailing_arm mtl_trailing_arm_to_body
m_body
jolfix_trailing_arm_beam nrl_4_trailing_arm gel_upright
_upright

Torsion spring jolsph_trailing_arm_bod gel_trailing_arm mtl_trailing_arm_to_body


y
uel_trailing_arm gel_trailing_arm gel_upright
(revolute joint in the
torsional spring ude)

Upper-Lower Upright jolsph_trailing_arm_bod gel_trailing_arm mtl_trailing_arm_to_body


y
jolsph_trailing_arm_upri gel_trailing_arm gel_upright
ght_lower
jolsph_trailing_arm_upri gel_trailing_arm gel_upright
ght_upper

Upper-Lower Control jolsph_trailing_arm_bod gel_trailing_arm mtl_trailing_arm_to_body


Arms y
jolsph_trailing_arm_lca_ gel_trailing_arm gel_lca_front
front
jolsph_trailing_arm_uca gel_trailing_arm gel_upper_control_arm

Hub Compliance jolsph_hub_compliance gel_spindle gel_upright


Active
Hub Compliance jolrev_spindle_upright gel_spindle gel_upright
Inactive
414 Adams Car
Trailing Arm 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 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,

4 = Upper-Lower Control Arms

Communicators
Communicators additional to the Double-Wishbone Suspension template are listed below

The communicator: Belongs to the class: Has the role:


ci[lr]_trailing_arm_to_body mount inherit
Working with Templates 415
Twist Beam Suspension

Twist Beam Suspension


Overview
The twist beam suspension is a dependent suspension model intended for use only as a rear suspension. It
does not include a panhard rod or drive shafts. It is a parametric model, unlike the standard Twist Beam
Suspension which relies on a Modal Neutral File.

Figure 80 Twist Beam Suspension

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.

The joint: Connects the part: To the part:


jk[lr]hoo_upr_strut_to_body mt[lr]_strut_to_body ge[lr]_upper_strut
jo[lr]con_lower_strut_to_trailing_arm ge[lr]_lower_strut nr[lr]_4_trailing_arm
jo[lr]cyl_lwr_upr_strut ge[lr]_upper_strut ge[lr]_lower_strut
Hub Compliance on:
jo[lr]sph_hub_compliance ge[lr]_spindle nr[lr]_4_trailing_arm
Hub Compliance off:
jo[lr]rev_spindle ge[lr]_spindle nr[lr]_4_trailing_arm

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.

The parameter: Takes the value: Its units are:


phs_kinematic_flag Integer No units
pv[lr]_toe_angle Real Angle
pv[lr]_camber_angle Real Angle
pvs_hub_compliance_active Integer No units
pvs_hub_compliance_offset Real Length
Working with Templates 417
Twist Beam Advanced Suspension

Communicators
The following table lists the communicators in the template.

The communicator: Belongs to the class: Has the role:


ci[lr]_spring_to_body mount inherit
ci[lr]_strut_to_body mount inherit
cis_body mount inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_ride_height_ref marker inherit
co[lr]_suspension_mount mount inherit
co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_wheel_center location inherit
cos_suspension_parameters_ARRAY array inherit

Twist Beam Advanced Suspension


Overview
The trailing arm advanced suspension template is an enhanced version of the standard Twist Beam Suspension.

Figure 81 Twist Beam Advanced Suspension


418 Adams Car
Twist Beam Advanced Suspension

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.

The joint: Connects the part: To the part:


jolrev_spindle gel_spindle gel_pod
jossph_panhard_body ges_panhard_rod mts_body
joshoo_panhard_axle ges_panhard_rod sws_panhard_rod_attachment
jklhoo_top_mount_kinematic gel_upper_strut swl_damper_upper_attachment_options
jolcyl_lwr_upr_strut gel_lower_strut gel_upper_strut
joltra_tripot_to_differential gel_tripot mtl_tripot_to_differential
jolcon_drive_sft_int_jt gel_tripot gel_drive_shaft
jolcon_drive_sft_otr gel_drive_shaft gel_spindle
Working with Templates 419
Twist Beam Advanced Suspension

The joint: Connects the part: To the part:


jklhoo_lwr_strut_kinematic gel_lower_strut swl_damper_lower_attachment_options
joshoo_panhard_axle ges_panhard_rod sws_panhard_rod_attachment
jossph_panhard_body ges_panhard_rod mts_body

The following table maps the twist beam configurations.

Connects the part:To the


Design Option The joint: Connects the part: part:
2-piece twist with 1 beam jolsph_twist_arm_3pi nrl_1_twist_arm mts_body
trailing arm ece_kinematic
jolfix_axle_to_pod gel_axle gel_pod
jolfix_twist_arm_to_t nrl_2_twist_arm gel_trailing_arm
rail

3-piece twist with 1 beam jolsph_twist_arm_3pi nrl_1_twist_arm mts_body


trailing arm ece_kinematic
jolsph_axle_middle_t ges_axle_middle gel_axle
o_axle
jolfix_axle_to_pod gel_axle gel_pod
jolfix_twist_arm_to_t nrl_2_twist_arm gel_trailing_arm
rail
420 Adams Car
Twist Beam Advanced Suspension

Connects the part:To the


Design Option The joint: Connects the part: part:
Beam twist with 1 beam jolsph_twist_curved_ nrl_1_trailing_arm_fr mts_body
trailing arm arm_kinematic ont
jolfix_twist_beam_to swl_axle_attachment_ nrl_1_twist_beam
_trailing options
jolfix_trailing_arm_fr gel_trailing_arm nrl_2_trailing_arm_front
ont

Arm and half axle jolsph_twist_arm_bo gel_trailing_arm mts_body


dy_kinematic
jossph_trailing_arm_ gel_trailing_arm ger_trailing_arm
center
jolfix_trailing_arm_to gel_trailing_arm gel_pod
_pod

Curved beam twist with 1 jolsph_twist_curved_ nrl_1_trailing_arm_fr mts_body


beam trailing arm arm_kinematic ont
jolfix_twist_beam_to swl_axle_attachment_ nrl_1_twist_beam
_trailing options
jolfix_trailing_arm_fr gel_trailing_arm nrl_2_trailing_arm_front
ont
Working with Templates 421
Twist Beam Advanced Suspension

Connects the part:To the


Design Option The joint: Connects the part: part:
2-piece twist with 2 beam jolsph_twist_curved_ nrl_1_trailing_arm_fr mts_body
trailing arm arm_kinematic ont
jolfix_axle_to_pod gel_axle gel_pod
jolfix_trailing_arm_fr gel_trailing_arm nrl_2_trailing_arm_front
ont
jolfix_trailing_arm_re gel_trailing_arm nrl_1_trailing_arm_rear
ar

3-piece twist with 2 beam jolsph_twist_curved_ nrl_1_trailing_arm_fr mts_body


trailing arm arm_kinematic ont
jolsph_axle_middle_t ges_axle_middle gel_axle
o_axle
jolfix_axle_to_pod gel_axle gel_pod
jolfix_trailing_arm_fr gel_trailing_arm nrl_2_trailing_arm_front
ont
jolfix_trailing_arm_re gel_trailing_arm nrl_1_trailing_arm_rear
ar

Beam twist with 2 beam jolsph_twist_curved_ nrl_1_trailing_arm_fr mts_body


trailing arm arm_kinematic ont
jolfix_twist_beam_to swl_axle_attachment_ nrl_1_twist_beam
_trailing options
jolfix_trailing_arm_fr gel_trailing_arm nrl_2_trailing_arm_front
ont
jolfix_trailing_arm_re gel_trailing_arm nrl_1_trailing_arm_rear
ar
422 Adams Car
Twist Beam Advanced Suspension

Connects the part:To the


Design Option The joint: Connects the part: part:
Curved beam twist with 2 jolsph_twist_curved_ nrl_1_trailing_arm_fr mts_body
beam trailing arm arm_kinematic ont
jolfix_twist_beam_to swl_axle_attachment_ nrl_1_twist_beam
_trailing options
jolfix_trailing_arm_fr gel_trailing_arm nrl_2_trailing_arm_front
ont
jolfix_trailing_arm_re gel_trailing_arm nrl_1_trailing_arm_rear
ar

Flexible body jolrev_twist_beam_to fbs_twist_beam mts_body


_body
jolfix_twist_beam_to fbs_twist_beam gel_pod
_pod

Spindle Compliance Active jolsph_spindle_compl gel_trailing_arm gel_pod


iance
(for design Option 1,2,3,5)
Spindle Compliance Active jolsph_spindle_compl nrl_2_trailing_arm_r gel_pod
iance_2piece ear
(for design Option 6,7,8,9)
Spindle Compliance jolfix_trailing_arm_to gel_trailing_arm gel_pod
Inactive _pod

(for design Option 1,2,3,5)


Working with Templates 423
Twist Beam Advanced Suspension

Connects the part:To the


Design Option The joint: Connects the part: part:
Spindle Compliance jolfix_trailing_arm_re nrl_2_trailing_arm_r gel_pod
Inactive ar_to_pod ear

(for design Option 6,7,8,9)


Hub Compliance Active jolsph_hub_complian gel_spindle gel_pod
ce
Hub Compliance Inactive jolrev_spindle_uprigh gel_spindle gel_pod
t

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

Takes the Its units


The parameter: value: are: Description
pvs_twist_beam_configuration Integer No units 1 = 2 piece twist with 1 beam trailing arm

2 = 3 piece twist with 1 beam trailing arm

3 = Beam twist with 1 beam trailing arm

4 = Arm and half axle

5 = Curved beam twist with 1 beam trailing


arm

6 = 2 piece twist with 2 beam trailing arm

7 = 3 piece twist with 2 beam trailing arm

8 = Beam twist with 2 beam trailing arm

9 = Curved beam twist with 2 beam trailing


arm

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

Twin I-Beam Suspension System


Overview
The twin I-beam suspension template is a variation of the swing axle concept, where the left and right axle
pivots are on opposite sides of the centerline.

Figure 82 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.

The joint: Connects the part: To the part:


jo[lr]rev_camber_adjustment ge[lr]_camber_adjuster ge[lr]_caster_adjuster
jo[lr]rev_caster_adjustment ge[lr]_caster_adjuster ge[lr]_I_beam_axle
jo[lr]rev_hub_spindle ge[lr]_hub_compliance ge[lr]_spindle
jo[lr]rev_kingpin ge[lr]_spindle ge[lr]_camber_adjuste
r
jo[lr]tra_lower_to_upper_shock ge[lr]_lower_shock ge[lr]_upper_shock
jo[lr]per_damper_top_mount ge[lr]_upper_shock mt[lr]_damper_to_bo
dy
jostra_toe_adjustment_constraint_left gel_toe_adjuster mts_tierod
jostra_toe_adjustment_contraint_right ger_toe_adjuster mts_draglink
Hub Compliance on
jo[lr]sph_hub_compliance ge[lr]_hub_compliance ge[lr]_spindle
Hub Compliance off
jo[lr]rev_hub_spindle ge[lr]_hub_compliance ge[lr]_spindle

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

The parameter: Takes the value: Its units are:


*phs_kinematic_flag integer no units
phs_dual_bumpstops integer no units
phs_dual_springs integer no units
phs_dual_dampers integer no units
phs_dual_rebound_stops integer no units
pvs_hub_compliance integer no units
pvs_wheel_center_rise real length
pv[lr]_toe_angle real angle
pv[lr]_camber_angle real angle
pv[lr]_hub_compliance_offset real length

*Kinematic mode only affects hub compliance in this template.

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.

The communicator: Belongs to the class: Has the role:


ci[lr]_bumpstop_to_body mount inherit
ci[lr]_damper_to_body mount inherit
ci[lr]_radius_arm_to_frame mount inherit
ci[lr]_rebound_stop_to_body mount inherit
ci[lr]_spring_to_body mount inherit
cis_draglink mount inherit
cis_draglink_to_steering_arm_orientation orientation inherit
cis_left_axle_to_frame mount inherit
cis_right_axle_to_frame mount inherit
cis_test_equipment_gyro marker inherit
cis_tierod mount inherit
cis_tierod_to_steering_arm_orientation orientation inherit
co[lr]_camber_angle parameter_real inherit
co[lr]_suspension_mount mount inherit
428 Adams Car
Twin I-Beam Suspension System

The communicator: Belongs to the class: Has the role:


co[lr]_suspension_upright mount inherit
co[lr]_toe_angle parameter_real inherit
co[lr]_wheel_center location inherit
cos_suspension_ parameters_ARRAY any inherit

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).

Setting Request Activity


By default, requests for each element type are active. You can, however, deactivate requests for a certain
element type. Activity changes can be saved to the subsystem file(s).

To set request activity:


1. From the Standard Interface's Tools menu, select Requests, then Request Activity.
2. Press F1 and then follow the instructions in the dialog box help for Toggle Request Activity.
3. Select OK.

Storing Request Activity


To store the Requests activity for a non-standard object (for example, bushing, spring, damper and so on),
you can take advantage of group activity using parameter variables, which are stored in subsystem files.

To store request activity in Template Builder:


1. Create a parameter variable to store the activity of the request as a 1 for active, 0 for inactive.
For example, pvs_request_activity.
2. Create a group with command language:
Tools -> Command Navigator, group -> create. See Group Create.
3. Add your requests to the group.
4. For the expr_active parameter of the group (1 = active, 0 = inactive), create a function that uses the
parameter variable in step 1.
The commands might look as follows:
group create &
group_name = ._my_template.my_request_activity
objects_in_group = ._my_template.request0, &
._my_template.request1, &
._my_template.request2, &
._my_template.request3, &
expr_active = (pvs_request_activity)
350 Adams Car
Requests

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

 0 = returns displacement outputs


 1 = returns velocity outputs
 2 = returns acceleration outputs
 3 = returns side_slip_angle
imarker = ID of I marker
jmarker = ID of J marker
rmarker = ID of reference marker
scale = To set the scaling factor for translational velocities (and is not used for other
output types).

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

Request File Output


Column Number Output for request type = 0: (Angles in radians,
longitudinal/lateral/vertical components are in the reference frame of
jmarker)
1. Chassis Displacements- longitudinal
Reviewing Results 351
Requests

2. Chassis Displacements- lateral


3. Chassis Displacements- vertical
4. Chassis Displacements- roll
5. Chassis Displacements- pitch
6. Chassis Displacements- yaw
Column Number Output for request type = 1: (Translational velocity in KPH (or MPH),
Angular velocity in radians/s, all components are in the reference frame of
the rmarker)
1. Chassis Velocities - longitudinal
2. Chassis Velocities - lateral
3. Chassis Velocities - vertical
4. Chassis Velocities - roll
5. Chassis Velocities - pitch
6. Chassis Velocities - yaw
Column Number Output for request type = 2: (Translational acceleration in G's,
Rotational acceleration in radians/s/2, all components are in the reference
frame of the rmarker)
1. Chassis Accelerations- longitudinal
2. Chassis Accelerations- lateral
3. Chassis Accelerations- vertical
4. Chassis Accelerations - roll
5. Chassis Accelerations - pitch
6. Chassis Accelerations - yaw
Column Number Output for request type = 3: (Angle in radians)
1. Vehicle Statistics- side_slip_angle
2. (not used)
3. (not used)
4. (not used)
5. not used)
6. (not used)

Notes on Input and Output


1. Note that chassis displacements are provided in the reference frame of the j marker (ground), while
velocities and accelerations are provided in the reference frame of the reference marker (typically on
the body.)
352 Adams Car
Plot Configuration Files

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


You can plot the results of an analysis using the standard functionality in Adams PostProcessor. To help you
manage your plots, however, your template-based product provides plot configuration files that define a series
of plots.
For information on Adams PostProcessor, see the Adams PostProcessor online help.
Learn more about plot configuration files:
 About Plot Configuration Files
 Creating Plots Using a Plot Configuration File
 Creating Plot Configuration Files
 Format of Plot Configuration Files
 Example Plot Configuration File

About Plot Configuration Files


Plot configuration files tell your template-based product:
 Which plots to create
 The layout of each page and the plots to be displayed on that page
 General settings and preferences, such as titles, labels, horizontal and vertical spacings, scaling,
legend text and its attributes, axes positions and their attributes
 The mathematical expressions to be displayed for the plot axes
 The primary and secondary grid attributes for each plot
 The presentation of the plot,that is, whether it should show actual curves or the curve data in tabular
format
 The text/images to be displayed for the header/footer of each page
 The date and analysis stamp related details
Reviewing Results 353
Plot Configuration Files

 The Note and Spec Line related details


The files now support multiple plots per page, and each plot can contain multiple axes. You can cross-plot
multiple analyses of the same type using one plot configuration file.
If you do not want Adams PostProcessor to auto-increment curve color and curve style (for example, because
you want them assigned as you have specified in the plot configuration file), then you need to turn off
automatic assignment of these attributes. From the Adams PostProcessor text menu select Edit →
Preferences and go to the Curves tab. From there un-check "Auto Color" and "Auto Style" as shown below:

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.

Creating Plots Using a Plot Configuration File


After you've run an analysis, you can view the series of plots defined in a plot configuration file. If your plot
configuration file contains customization command keywords and it has created the plots and curves, you
can have your template-based product invoke the macro that contains a command keyword in its user-entered
command.
The plot configuration file specifies a subtitle for your plots. In addition, in the File Import dialog box you
can:
 Add a title to all the plots.
 Plot results of multiple analyses on one plot using the Cross Plotting option.
 Change the look of your plot, such as fonts and size, using the Execute Custom Macros option. To
use this option, you must have a macro that defines the commands to be executed.

To view the plots defined in a plot configuration file:


1. From the Review menu, select Postprocessing Window or press F8.
354 Adams Car
Plot Configuration Files

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.

Creating Plot Configuration Files


You can create a plot configuration file containing all of the pages currently in Adams PostProcessor or only
a selected set of pages. Your template-based product stores the configuration files in the plot_config table of
your default writable database. Learn about Setting the Writable Database.

To create a plot configuration file:


1. From the Review menu, select Postprocessing Window or press F8.
2. Create and configure plots as desired, including specifying labels and spacing. For example, you can
create a set of plots and add subtitles to all of them that describe the type of analysis with which the
plots are associated.
3. Customize plots to suit your requirements. For example, you can assemble multiple plots on the same
page by changing the page layout. To change the page layout, from the View menu, point to Page
and then select Page Layouts. This will display the Page Layouts dialog box. Select the desired layout.
4. Change the appearance of the plot if you would like to see the curve data in tabular format. To change
the plot to tabular format, click on the associated plot and check the checkbox for Table shown at the
bottom left. This setting is saved in the plot configuration file and the plot will be seen in the tabular
format when this file is imported in future.
5. Add Notes or Spec Lines to the plot. To do this, from the Plot menu, select Create Note or Create
Spec Line. On the respective dialog box, specify the data for the Note or Spec Line.
Reviewing Results 355
Plot Configuration Files

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.

Format of Plot Configuration Files


Plot configuration files consist of three data blocks:
 Page Data Block
 Plot Data Block
 Plot-Curve Data Block

Page Data Block


The Page data block has the following structure:
PAGE_LAYOUT
NUMBER_OF_PLOTS
PAGE_NAME
HEADER/FOOTER
356 Adams Car
Plot Configuration Files

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.

Plot Data Block


The plot data block has the following structure:
INDEX
NAME
TIME_LOWER_LIMIT
TIME_UPPER_LIMIT
LEGEND (subblock)
PLOT_BORDER (subblock)
PRIMARY_GRID (subblock)
SECONDARY_GRID (subblock)
LEGEND_BORDER (subblock)
GRAPH_AREA (subblock)
SPEC_LINE (subblock)
NOTES (subblock)
PLOT_AXES_FORMAT (subblock)
PLOT_AXES_LABELS (subblock)
PLOT_AXES_TICS (subblock)
PLOT_AXES_NUMBERS (subblock)
CURVE_ATTRIBUTE_ORDER
COMMAND
CURVE_ATTRIBUTE_ORDER:This section will be present in plt file, if a plot contains multiple curves
representing the exact same quantity and using the exact same expression then, for those curves, only one
curve is saved to the .plt file, and the order in which curve attributes are applied to curves is stored per plot.

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.

Plot-Curve Data Block


The plot-curve data block has the following structure:
NAME
PLOT
VERTICAL_AXIS
HORIZONTAL_AXIS
HORIZONTAL_EXPRESSION
HORIZONTAL_COMPONENT
VERTICAL_EXPRESSION
VERTICAL_COMPONENT
Y_UNITS
X_UNITS
Reviewing Results 357
Plot Configuration Files

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.

Example Plot Configuration File


The following is an example of an Adams Car plot configuration file:
$--------------------------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'plt'
FILE_VERSION = 2.0
FILE_FORMAT = 'ASCII'
$-----------------------------------------------------------------------PAGE
[PAGE]
PAGE_LAYOUT = 11.0
NUMBER_OF_PLOTS = 1.0
PAGE_NAME = 'my_page'
HEADER_LEFT_LINES = 1.0
HEADER_LEFT_LINE_0_TEXT = 'Header Left'
HEADER_LEFT_TEXT_FONT_SIZE = 7.0
HEADER_LEFT_COLOR = 788529153.0
FOOTER_RIGHT_LINES = 1.0
FOOTER_RIGHT_LINE_0_TEXT = 'Footer Right'
FOOTER_RIGHT_TEXT_FONT_SIZE = 15.0
FOOTER_RIGHT_COLOR = 788529232.0
$-----------------------------------------------------------------------PLOT
[PLOT]
INDEX = 0.0
NAME = 'my_plot'
TIME_LOWER_LIMIT = 0.0
TIME_UPPER_LIMIT = 0.0
(LEGEND)
358 Adams Car
Plot Configuration Files

{placement location fill grow_left grow_down font}


'bottom right' 156.8,10.6 1 TRUE FALSE 7
(PLOT_BORDER)
{color line_style line_weight}
'BLACK' 'solid' 1.0
(PRIMARY_GRID)
{color line_style line_weight}
'SILVER' 'solid' 0.5
(SECONDARY_GRID)
{color line_style line_weight}
'SILVER' 'solid' 0.5
(LEGEND_BORDER)
{color line_style line_weight} '
BLACK' 'solid' 1.0
(GRAPH_AREA)
{minX minY maxX maxY auto_graph_area}
8.5989 8.1158 159.3194 88.3882 yes
(SPEC_LINE)
{name color style location thickness}
'new_spec_line' 'Coral' 'dotdash' 10.0,10.0 1.0
(NOTES)
{name type color placement alignment location font autopos autogenerate
numStrings}
'my_analysis' 'analysis' 'BLACK' 'horizontal' 'center_top' 8.6,3.2 7 no yes 1
STRING_1_TEXT = 'Analysis: test1_parallel_travel'
{name type color placement alignment location font autopos autogenerate
numStrings}
'my_date' 'date' 'BLACK' 'horizontal' 'center_top' 159.3,3.2 7 no yes 1
STRING_1_TEXT = '15:52:54 11-MAY-98'
{name type color placement alignment location font autopos autogenerate
numStrings}
'subtitle' 'subtitle' 'BLACK' 'horizontal' 'center_bottom' 84.0,89.5 7 no no
1
STRING_1_TEXT = 'Subtitle Strimg'
{name type color placement alignment location font autopos autogenerate
numStrings}
'header' 'table header' 'BLACK' 'horizontal' 'center_bottom' 0.0,0.1 1 no yes
1
STRING_1_TEXT = 'Subtitle Strimg'
{name type color placement alignment location font autopos autogenerate
numStrings}
'my_NOTE' 'note' 'BLACK' 'vertical' 'left_top' 95.4,58.7 10 yes no 1
STRING_1_TEXT = 'Note String'
(PLOT_AXES_FORMAT)
{axis_name type color placement scaling offset primary limits}
'vaxis' 'vertical' 'BLACK' 'left' 'linear' 0.0 yes 0.000000,0.000000
'haxis' 'horizontal' 'BLACK' 'bottom' 'linear' 0.0 yes 0.000000,0.000000
(PLOT_AXES_LABELS)
{axis_name label color placement alignment font autopos offset location}
'vaxis' 'No Units' 'BLACK' 'vertical' 'center_bottom' 7 0 9.4 -0.8,48.3
'haxis' 'Time (sec)' 'BLACK' 'horizontal' 'center_top' 7 0 5.0 84.0,3.2
(PLOT_AXES_TICS)
{axis_name auto_divisions use_divisions divisions increments minor_divisions
color}
'vaxis' 'yes' 'yes' 4 5.000 2 'BLACK'
'haxis' 'yes' 'yes' 3 5.000 2 'BLACK'
(PLOT_AXES_NUMBERS)
{axis_name trailing_zeros decimal_places scientific_range font color}
'vaxis' 0 4 -4,5 7.0 'BLACK'
'haxis' 0 4 -4,5 7.0 'BLACK'
Reviewing Results 359
Report Templates

$---------------------------------------------------------------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 and Metrics


The Adams Car Report Dictionary
The Adams Car Report Dictionary is a .csv file which contains the definition for the Channels and Metrics
available to report templates. The standard Adams Car Report Dictionary can be found in the "acar"
subdirectory of your Adams installation.
Each line in acar_report_dictionary.csv defines an entity which can be used in a report template. The type of
entity is indicated in the first column of the row.

Channels
Channels are the conduit between the results of an analysis and the reporting framework. They are defined
as follows:

Column Name Description


1 Type Channel
2 Name The name with which you'll reference this channel in report
templates and Metrics
3 Component Name The name of a result set component
4 Units (optional) Indicates the units of the results data
5 Description (optional) A description of what this Channel represents

For example, Channels representing normal tire forces could be defined as follows:

Type Name Component Name Units Description


Channel lftforce_normal til_wheel_tire_forces.normal_front N LF Tire Force, normal
Channel rftforce_normal tir_wheel_tire_forces.normal_front N RF Tire Force, normal
Channel lrtforce_normal til_wheel_tire_forces.normal_rear N LR Tire Force, normal
Channel rrtforce_normal tir_wheel_tire_forces.normal_rear N RR Tire Force, normal

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:

Column Name Description


1 Type Metric
2 Name The name with which you'll reference this Metric in report
templates
3 Description (optional) A description of what the Metric represents
4 Compute Function Python command that processes the input data
5 Input Channels An ordered list of Channels
6 Units (optional) Indicates the units of the output

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:

Type Name Description Compute Function Input Channels


Metric total_tire_force_normal Total tire forces sum([last({}),last({}), lftforce, rftforce,
last({}),last({})]) lrtforce, rrtforce
Metric left_tire_force_normal Sum of left tire sum([last({}),last({})]) lftforce, lrtforce
forces
Metric right_tire_force_normal Sum of right tire sum([last({}),last({})]) rftforce, rrtforce
forces

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

Column Name Description


1 Type Metric
2 Name The name with which you'll reference this Metric in report
templates
3 Description (optional) A description of what the Metric represents
4 Compute Function print_table({}, [{}, {}], increment=_)
5 Input Channels An ordered list of Channels. The first listed Channel is used as the
independent Channel. The remaining Channels are used as
independent Channels
6 Units (optional) Indicates the units of the output

Note that the Compute Function must be formatted like


print_table({}, [{}, {}], increment=0.1)
You may specify an increment of your choice. The increment indicates the interval size at which to sample
the independent data.
The following is an example of a TableMetric:

Type Name Description Compute Function Input Channels


TableMetric handling_table Handling print_table({}, [{}, {}], chassis_accel_lat,
variables increment=0.1) steering_wheel_angle,
steering_wheel_torque_
testrig,
chassis_roll_angle,
chassis_vel_yaw

3. PolyMetric
A PolyMetric computes a fitted polynomial approximating the relationship between a pair of data sets. They
are defined as follows:

Column Name Description


1 Type PolyMetric
2 Name The name with which you'll reference this Metric in report
templates
3 Description (optional) A description of what the Metric represents
Reviewing Results 363
Report Templates

Column Name Description


4 Y Channel The dependent data Channel
5 X Channel The independent data Channel
6 Order The maximum order of polynomial to compute. Must be between
zero and the length of the result sets.

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:

Column Name Description


1 Type CustomMetric
2 Name The name with which you'll reference this Metric in report
templates
3 Description (optional) A description of what the Metric represents
4 Compute Function Python command that processes the input data
5 Input Channels An ordered list of Channels
6 Units (optional) Indicates the units of the output
7 Unused
8 Python File The name of the Python script containing your code
364 Adams Car
Report Templates

Example Report Template


The following is an example of an Adams Car report template:
=====================================================================
= FULL VEHICLE ANALYSIS RESULTS =
=====================================================================

*** INITIAL CONDITIONS ***

Left Front Tire Load = {{lftforce_normal.first}}


Right Front Tire Load = {{rftforce_normal.first}}
Left Rear Tire Load = {{lrtforce_normal.first}}
Right Rear Tire Load = {{rrtforce_normal.first}}
Front Axle Load = {{front_axle_load}}
Rear Axle Load = {{rear_axle_load}}
Total Vehicle Weight = {{total_vehicle_weight}}
Weight Distribution (% Front) = {{weight_distribution_front}}
Initial Vehicle Velocity = {{chassis_velocity}}

A report generated from this report template would look like the following:
=====================================================================
= FULL VEHICLE ANALYSIS RESULTS =
=====================================================================

*** INITIAL CONDITIONS ***

Left Front Tire Load = 3159.3016 (N)


Right Front Tire Load = 3145.1024 (N)
Left Rear Tire Load = 4345.7306 (N)
Right Rear Tire Load = 4331.2971 (N)
Front Axle Load = 6304.4040 (N)
Rear Axle Load = 8677.0278 (N)
Total Vehicle Weight = 14981.4318 (N)
Weight Distribution (% Front) = 42.0815 (%)
Initial Vehicle Velocity = 69.9958 (km/h)

Report File: test_dlc.rpt


Analysis File: test_dlc.res
Channel Dictionary: C:\Program
Files\MSC.Software\Adams\2021\acar\acar_report_dictionary.csv
Template File: C:/Program
Files/MSC.Software/Adams/2021/acar/shared_car_database.cdb\report_tem
plates.tbl\full_generic.rtp

Date Created: 2019-04-10 17:20:04

User Name: tpeters


Running Analyses
Using Adams Car to analyze a virtual prototype is much like ordering a test of a physical prototype. You
specify the virtual prototype by opening or creating an assembly that contains the appropriate components,
or subsystems, that make up the prototype. For example, you create suspension assembly containing
suspension and steering subsystems and the suspension test rig.
In Adams Car, you can run suspension, full-vehicle, component and general actuation analyses.

Running Suspension Analyses


You perform suspension analyses, which in Adams Car are quasi-static equilibrium analyses, to learn how a
suspension controls the wheel motions and transmits load from the wheels to the chassis. To perform a
suspension analysis, you first create or open a suspension assembly that contains the selected subsystems and
the test rig. To create a suspension assembly, you can select any subsystem that has either a suspension or a
steering major role.
Using Adams Car, you can:
 Easily modify the topology and the properties of the components of your suspension.
 Run a standard set of suspension and steering maneuvers.
 View suspension characteristics through plots. Learn about suspension characteristics.
For a suspension analysis, you can specify inputs to:
 Move the wheels through bump-rebound travel and measure the toe, camber, wheel rate, roll rate,
side-view swing-arm length, and other characteristics.
 Apply lateral load and aligning torque at the tire contact path and measure the toe change and lateral
deflection of the wheel.
 Rotate the steering wheel from lock to lock and measure the steer angles of the wheels and the
amount of Ackerman, which is the difference between the left and right wheel steer angles.
 Set the position at which initial vertical setup takes place (useful for adjustable - for more
information please see the tutorial Adding the vertical setup mode of Adams Car Suspension Testrig.)
You specify the inputs to the analysis by typing them directly into an analysis dialog box or by selecting a
loadcase file that contains the desired inputs.
During the analysis, the test rig articulates the suspension assembly in the specified number of steps and
applies the inputs you specified. At each step, Adams Car calculates over 38 suspension characteristics, such as
toe and camber angle, track change, wheel-base change, wheel rate (vertical stiffness), and fore-aft wheel
center stiffness. You can plot these characteristics and use them to determine how well the suspension controls
the motions of the wheels. Based on the results, you can alter the suspension geometry or spring rates and
analyze the suspension again to evaluate the effects of the alterations.
The following figure shows an overview of the suspension analysis process.
362 Adams Car
Running Suspension Analyses

Setting up Suspension Analyses


Before you submit a suspension analysis, you must set the Suspension Parameters that Adams Car uses when
calculating suspension characteristics.

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.

To set up suspension analyses:


1. From the Simulate menu, point to Suspension Analysis, and then select the analysis you want to set
up.
2. Enter the vertical wheel travel and the other parameters needed to control the analysis.
3. Optionally, select one or more loadcase files (.lcf) from an Adams Car database. Loadcase files are text
files that contain the vertical wheel travel and other parameters needed to control a suspension
analysis. If you regularly perform several kinds of suspension analyses using the same ranges of travel,
you should consider creating loadcase files for these. You can then submit all the analyses without
having to reenter travel parameters each time.
As you perform an analysis for which you did not create a loadcase file, Adams Car temporarily creates
one for you and deletes it after the analysis.
4. Specify the number of Solution Steps in the analysis.
5. 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

To set up a compliance analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Compliance.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Compliance.
3. Select OK.

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.

To set up a loadcase analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select External Files.
2. Enter the necessary parameters as explained in the dialog box help for External Files.
3. Select OK.

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.

To set up a wheel-envelope analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select External Files.
2. Specify one or more wheel-envelope input files that define the vertical wheel and steering inputs.
364 Adams Car
Running Suspension Analyses

3. Press F1 and then follow the instructions in the dialog box help for External Files.
4. Select OK.

Frame Compliance Analysis


A frame compliance is a half vehicle (front or rear) event. This event moves each body attachment (one at a
time) 1 mm in xyz directions. You can use the result of this analysis to construct a compliance matrix (see
Definition of Compliance Matrix) for the suspension to help determine where local body compliance most affects
system performance.
To set up a frame compliance analysis:
1. From the Simulate menu, point to Suspension Analysis, and then select Frame Compliance.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Frame
Compliance.
3. Select OK.

Roll & Vertical Force Analysis


A roll and vertical force analysis sweeps the roll angle while holding the total vertical force constant. The total
vertical force is the sum of the vertical forces on the left and right wheels. You can specify the total vertical
force used by the left and right actuators to move the wheels.
In contrast to the opposite wheel-travel analysis, the roll and vertical force analysis allows the wheels to seek
their own vertical position.

To set up a roll & vertical force analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Roll & Vertical Force.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Roll & Vertical
Force.
3. Select OK.

Static Load Analysis


Depending on the type of load you input, the static load analysis applies static loads to the spindle and the
tire contact patches between the specified upper and lower load limits. A static load analysis requires a
suspension subsystem.

To set up a static load analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Static Load.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Static Loads.
3. Select OK.
Running Analyses 365
Running Suspension Analyses

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.

To set up a steering analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Steering.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Steering.
3. Select OK.

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.

Opposite Wheel-Travel Analysis


An opposite wheel-travel analysis moves the left and right wheel through equal, but opposite, vertical
amounts of travel to simulate body roll. The left and right wheels move over the specified jounce and rebound
travel, 180o out of phase with each other. You specify the parameters to define the vertical wheel travel and
the fixed steer value when you submit the analysis.

To set up an opposite wheel-travel analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Opposite Wheel Travel.
2. Enter the necessary parameters as explained in the dialog box help for Opposite Wheel Travel Analysis.
366 Adams Car
Running Suspension Analyses

3. Select OK.

Parallel Wheel-Travel Analysis


A parallel wheel-travel analysis keeps the left wheel and right wheel heights equal, while moving the wheels
through the specified bump and rebound travel.

To set up a parallel wheel-travel analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Parallel Wheel Travel.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Parallel Travel.
3. Select OK.

Single Wheel-Travel Analysis


A single wheel-travel analysis moves one wheel, either the right or left, through the specified jounce and
rebound travel while holding the opposite wheel fixed in a specified position.

To set up a single wheel-travel analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Single Wheel Travel.
2. Enter the necessary parameters as explained in the dialog box help for Single Wheel-Travel Analysis.
3. Select OK.

Static Vehicle Characteristics (SVC) Analysis


Static Vehicle Characteristics (SVC) refers to a set of Adams utility subroutines (CONSUB) which compute
Static Vehicle Characteristics (SVC) for automobile or light truck suspensions at static equilibrium. For a
half-vehicle, SVC computes only suspension characteristics. See Static Vehicle Characteristics (SVC) help.
A CONSUB controls this analysis. For more information on CONSUB, see Welcome to Adams Solver
Subroutines.

To set up a Static Vehicle Characteristics (SVC) analysis:


1. From the Simulate menu, point to Suspension Analysis and then select Static Vehicle
Characteristics.
2. Press F1 and then follow the instructions in the dialog box help for Suspension Analysis: Static Vehicle
Characteristics.
3. Select OK.

Computation of Suspension and Steering Characteristics


During suspension analyses, Adams Car computes 38 different characteristics. The suspension and steering
characteristics that Adams Car computes are based on the suspension geometry, the suspension compliance
matrix, or both. Suspension geometry refers to the position and orientation of suspension parts relative to
Running Analyses 367
Running Suspension Analyses

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

Definition of Compliance Matrix


The compliance matrix for a system, [C], is defined as the partial derivatives of displacements with respect to
applied forces:
[C] = [&part;X/&part;F]
If a system is assumed to be linear, the compliance matrix can be used to predict the system movement due
to force inputs:
{ ΔX } = [ C ] { ΔF }

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.

Steer Axis Computation


Adams Car needs the steer axis of a suspension to compute suspension characteristics, such as caster angle,
kingpin inclination, scrub radius, and caster moment arm or caster trail. When you create a suspension
template in Adams Car, you must select the method Adams Car will use to compute the steer axis and provide
the necessary input information.
Adams Car offers two methods for calculating suspension steer axes:
 Geometric Method
 Instant Axes Method
Both methods give accurate results, but the instant axis method is more general, because it can be used when
the steer axis cannot be determined geometrically, such as in a five-link suspension. Currently, for a new
suspension template the default is the geometric method.
Running Analyses 369
Running Suspension Analyses

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.

Instant Axes Method


Using the instant axes method, Adams Car calculates the left and right steer axes from the suspension's
compliance matrix. While the calculation is performed numerically, it is best described in physical terms. To
calculate the steer axis at a given suspension position, Adams Car first locks the spring travel and applies an
incremental steering torque or force in all directions (3 forces and 3 torques). Then, from the resulting
translation and rotation of the wheel carrier parts, Adams Car calculates the instant axis of rotation for each
wheel carrier. The instant axes of rotation are the steer axes.
To use the instant axes method, you must identify a part and a hardpoint where Adams Car should lock the
spring travel. Adams Car locks the spring travel by locking the vertical motion of the part you identify at the
chosen hardpoint location. You can use any part and hardpoint, provided that locking the vertical motion of
that part at that location locks the spring travel. For example, in suspensions using coil or leaf springs, a good
choice is the lower spring seat (such as, the part and hardpoint where the spring acts on the suspension). For
a double wishbone suspension sprung by a torsion bar on the lower control arm, choose the lower control
arm at its connection to the wheel carrier. Locking the vertical motion of the lower control arm at this
location eliminates rotation in the torsion bar. Do not choose the wheel center location and wheel carrier. If
you do, Adams Car calculates inaccurate steer axes.
In almost all suspensions, the wheel center lies outboard of the steer axis and the steer axis is angled rearward
(caster angle > 0) and inward (kingpin inclination > 0) relative to vertical. When the wheels are steered (for
example, rotated about the steer axis), the motion of the wheel centers has a vertical component. Locking the
vertical motion of the wheel carrier at the wheel center eliminates this vertical component and gives an
inaccurate steer axis.
When no steering subsystem is present, the steer axis that the instant axis method calculates is typically
inaccurate for a steerable suspension because the inner tie rods attach to ground and are not free to move
laterally. Therefore, when a steering subsystem is present, the motion Adams Car excites by applying an
aligning torque to the wheel carrier is not comparable to the steering motion.

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).

To set up a dynamic analysis:


1. From the Simulate menu, point to Suspension Analysis, and then select Dynamic.
2. Enter the necessary parameters as explained in the dialog box help for Suspension Analysis: Dynamic.
3. Select OK.

Example Suspension Loadcase File


In Adams Car, you can use loadcase files to specify different types of suspension analyses. The following is an
example loadcase file.
$-----------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'lcf'
FILE_VERSION = 4.0
FILE_FORMAT = 'ASCII'
$-----------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
ANGLE = 'degrees'
FORCE = 'newton'
MASS = 'kg'
TIME = 'second'
$
$Generation Parameters: (Do Not Modify!)
$ loadcase = 1
$ nsteps = 10
$ bump_disp = 100.00 rebound_disp = -100.00
$ steering_input = angle
$ stat_steer_pos = 0.00
$
$-----------------------------------------------mode
[MODE]
STEERING_MODE = 'angle'
VERTICAL_MODE = 'length'
$-----------------------------------------------data
[DATA]
$COLUMN: input type: type of input data: side:
$ (c1) wheel z disp / force left
Running Analyses 371
Running Suspension Analyses

$ (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 force / 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}
-100.0000 -100.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-80.0000 -80.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-60.0000 -60.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-40.0000 -40.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-20.0000 -20.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.000
20.0000 20.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
40.0000 40.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
60.0000 60.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
80.0000 80.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
100.0000 100.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

Example Wheel-Envelope Input File


The following is an example of a wheel-envelope input file (.wen) that you can use to control a wheel-
envelope analysis.

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

Example Wheel-Envelope Output File


A wheel-envelope output file (.wev) contains a header and a data table, as explained next.
The first three lines comprise the header and contain the following information, in this order:
 Type of file
 Adams dataset title
 Date and time of file creation
The table that follows the header contains the following information:
 The first column shows the solution step number
 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
Running Analyses 373
Output of Suspension Analyses

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
... .......

Output of Suspension Analyses


Adams Car analyses output the following general suspension characteristics for all suspensions. To learn more
about different characteristics, see section Computation of Suspension and Steering Characteristics.
 Aligning Torque - Steer and Camber Compliance
 Camber Angle
 Caster Angle
 Dive Braking/Lift Braking
 Fore-Aft Wheel Center Stiffness
 Front-View Swing Arm Length and Angle
 Kingpin Inclination Angle
 Kingpin Location
 Lateral Force - Deflection, Steer, and Camber Compliance
 Lift/Squat Acceleration
 Percent Anti-Dive Braking/Percent Anti-Lift Braking
 Percent Anti-Lift Acceleration/Percent Anti-Squat Acceleration
 Ride Rate
 Ride Steer
 Roll Camber Coefficient
 Roll Caster Coefficient
 Roll Center Location
 Roll Steer
 Side-View Angle
374 Adams Car
Output of Suspension Analyses

 Side-View Swing Arm Length and Angle


 Suspension Roll Rate
 Toe Angle
 Total Roll Rate
 Wheel Rate
For steered suspensions, Adams Car analyses also output the following steering characteriscs:
 Ackerman
 Ackerman Angle
 Ackerman Error
 Caster Moment Arm (Mechanical Trail)
 Ideal Steer Angle
 Outside Turn Diameter
 Percent Ackerman
 Scrub Radius
 Steer Angle
 Steer Axis Offset
 Turn Radius

Aligning Torque - Steer and Camber Compliance

Note: This help file is shared by several Adams products.

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

Request Names  alt_steer_compliance.left


 alt_steer_compliance.right
 alt_camber_compliance.left
 alt_camber_compliance.right
Method alt_steer_compliance.left = C(6,6) + C(6,12)
alt_steer_compliance.right = C(12,6) + C(12,12)
alt_camber_compliance.left = C(4,6) + C(4,12)
alt_camber_compliance.right= -C(10,6) + C(10,12)

Figure 1 Aligning Torque Loading for Steer and Camber Compliances

Camber Angle

Note: This help file is shared by several Adams products.

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 ( Ŝ°Ẑ )

Figure 2 Camber Angle

Caster Angle

Note: This help file is shared by several Adams products.

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

Inputs  Steer (kingpin) axis unit vectors - left and right


 Road vertical unit vector (z)
 Road longitudinal unit vector (x)
Method Adams uses the direction cosines in the x- and the z-directions of the kingpin axis
to calculate caster angle, such that:

sx = steer_axis road_x_axis
sz = steer_axis road_z_axis
caster_angle = rtod * arctan(sx/sz)

Figure 3 Caster Angle

Dive Braking/Lift Braking

Note: This help file is shared by several Adams products.

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

Inputs  Compliance matrix


 Fraction of braking applied at this axle
 Loaded tire radius
 Tire stiffness
 Whole vehicle CG height
 Total vehicle weight
 Wheelbase
Method Adams first computes the longitudinal force percentage due to braking:

Fleft = Fright = Brake Ratio / 2.0


and then the vertical force percentange due to weight transfer:

Wleft = Wright = Whole vehicle CG height/ (2 x


Wheelbase)
For rear anti-lift, the weight transfer is a negative value.

These are forces at each wheel per unit total braking force.

Vertical deflections due to the vertical force are:

Zwleft = Wleft x C(3,3) + Wright x C(3,9)


Zwright = Wleft x C(9,3) + Wright x C(9,9)
Vertical deflections due to tractive forces are as follows, where Rl is the loaded radius
of the tire:

ZFleft = Fleft [C(3,1) - Rl x C(3,5)] +


Fright[C(3,7) - Rl x C(3,11)]
ZFright = Fleft [C(9,1) - Rl x C(9,5)] +
Fright[C(9,7) - Rl x C(9,11)]
The dive is:

dive.left = (ZFleft + ZWleft + Wleft / Kt) Vehicle


Weight
dive.right = (ZFright + ZWright + Wright / Kt)
Vehicle Weight

Fore-Aft Wheel Center Stiffness

Note: This help file is shared by several Adams products.


Running Analyses 379
Output of Suspension Analyses

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)

Front-View Swing Arm Length and Angle

Note: This help file is shared by several Adams products.

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.

The magnitude of the swing-arm length is limited to a maximum of 1000 meters.


Units Length; Angle
Request Names  fr_view_swing_arm_angle.left
 fr_view_swing_arm_angle.right
 fr_view_swing_arm_length.left
 fr_view_swing_arm_length.right
Inputs Compliance matrix
380 Adams Car
Output of Suspension Analyses

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 ) )

Figure 4 Instant Center Front View (Lateral, Vertical)

Kingpin Inclination Angle

Note: This help file is shared by several Adams products.

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

Inputs Kingpin axis unit vectors - left and right


Method Adams uses the direction cosines in the y-direction and the z-direction of the kingpin
axis to calculate the kingpin inclination angle:
–1
kingpin_incl_angle.left = tan ( DCOSY ⁄ DCOSZ )
–1
kingpin_incl_angle.right = tan ( – DCOSY ⁄ DCOSZ )

Figure 5 Kingpin Angle (Ø is the Kingpin Angle)

Kingpin Location

Note: This help file is shared by several Adams products.

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

Inputs  Compliance matrix or kingpin axis markers


 Wheel center position
Method Adams uses one of two methods to compute the kingpin location. Ideally, if the user
selects the Steer Axis Calculation method Instant Axis, Adams will use the compliance
matrix to find the kingpin location. This method uses a small steering input and finds
the location on the wheel that doesn’t translate when steering about the kingpin axis.

T = wheel center translation vector

A = wheel center orientation vector

R = vector from wheel center to kingpin axis

wcpos = wheel center position

kpps = kingpin position

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.

Lateral Force - Deflection, Steer, and Camber Compliance

Note: This help file is shared by several Adams products.


384 Adams Car
Output of Suspension Analyses

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

Inputs  Compliance matrix


 Tire radius - loaded
Method When the force is applied at the tire contact patch, Adams computes the deflection due to
both the lateral force at the wheel center and the moment created around the wheel center.
The total compliances are:

lat_force_defl_compliance.left = +[C(2,2) + Rl x C(2,4) + C(2,8) + Rl x C(2,10)]

lat_force_defl_compliance.right = +[C(8,2) + Rl x C(8,4) + C(8,8) + Rl x C(8,10)]

lat_force_steer_compliance.left = +[C(6,2) + Rl x C(6,4) + C(6,8) + Rl x C(6,10)]

lat_force_steer_compliance.right = +[C(12,2) + Rl x C(12,4) + C(12,8) + Rl x C(12,10)]

lat_force_camber_compliance.left = +[C(4,2) + Rl x C(4,4) + C(4,8) + Rl x C(4,10)]

lat_force_camber_compliance.right = -[C(10,2) + Rl x C(10,4) + C(10,8) + Rl x C(10,10)]

Figure 6 Lateral Force Loading for Deflection, Steer, and Camber Compliances

Lift/Squat Acceleration

Note: This help file is shared by several Adams products.

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

Request Names Front suspensions:

 lift.left
 lift.right
Rear suspensions:

 squat_acceleration.left
 squat_acceleration.right
Inputs Compliance matrix

Suspension parameters array:

 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:

Fleft = Fright = -drive_ratio / 2.0


The vertical forces at the tire contact patch due to weight transfer are:

VWleft = VWright = - cg_height / (2 * Wheelbase)


Live axles also react to the drive torques (input torque to the differential pinion and
the left and right output torque from the differential). Given the longitudinal
tractive forces, the input torque (TI) to the differential is:

TI = tire_loaded_radius * abs(Fleft + Fright) / axle_ratio


And the vertical force at the tire contact patches due to the drive torque is:

VTleft = -VTright = TI / Track


The left and right output torque from the differential is:

TOleft = - tire_loaded_radius * Fleft


TOright = - tire_loaded_radius * Fright
The vertical deflections of the suspension due to drive torque are:

ZDleft = VTleft * C(3,1) + TOleft * C(3,5) + VTright


* C(3,7) + TOright * C(3,11) + VTleft /
tire_stiffness
ZDright = VTleft * C(9,1) + TOleft * C(9,5) +
VTright * C(9,7) + TOright * C(9,11) + VTright /
tire_stiffness
Independent suspensions do not react to the drive torques. Therefore,

ZDleft = ZDright = 0.0


The vertical deflections of the suspension due to tractive forces are:

ZFleft = Fleft * C(3,1) + Fright * C(3,7)


ZFright = Fright * C(9,7) + Fleft * C(9,1)
The vertical deflections of the suspension due to weight transfer forces are:

ZWleft = VWleft C(3,3) + VWright C(3,9) + VWleft /


tire_stiffness
ZWright = VWleft C(9,3) + VWright C(9,9) + VWright /
tire_stiffness
Finally, the lift/squat per G of acceleration is:

lift.left / squat_acceleration.left = (ZDleft + ZFleft + ZWleft) * sprung_mass * Ag

lift.right / squat_acceleration.right = (ZDright


+ ZFright + ZWright) * sprung_mass * Ag
388 Adams Car
Output of Suspension Analyses

Percent Anti-Dive Braking/Percent Anti-Lift Braking

Note: This help file is shared by several Adams products.

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

Inputs Compliance matrix

Vehicle parameters array:

 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:

Fleft = Fright = sprung_mass * Ag * brake_ratio / 2


The brake torques reacted that the suspension reacts to are:

BTleft = loaded_tire_radius * Fleft


BTright = loaded_tire_radius * Fright
The weight transfer forces that the suspension reacts to are:

WTleft = sprung_mass * Ag * cg_height / wheelbase /


2
WTright = sprung_mass * Ag * cg_height / wheelbase
/ 2
The brake forces and torques that cause the suspension deflections are:

ZBleft = Fleft * C(3,1) + Fright * C(3,7) + BTleft *


C(3,5) + BTright * C(3,11) + Fleft / tire_stiffness
ZBright = Fleft * C(9,1) + Fright * C(9,7) + BTleft *
C(9,5) + BTright * C(9,11) + Fright / tire_stifness
The weight transfer forces that cause the suspension deflections are:

ZWleft = WTleft * C(3,3) + WTright * C(3,9) + WTleft


/ tire_stiffness
ZWright = WTleft * C(9,3) + WTright * C(9,9) +
WTright / tire_stiffness
Finally, the percent anti-dive and percent anti-lift are:

anti_dive_braking.left = anti_lift.left = 100 *


ZBleft / ZWleft
anti_dive_braking.right = anti_lift.right = 100 *
ZBright / ZWright
390 Adams Car
Output of Suspension Analyses

Percent Anti-Lift Acceleration/Percent Anti-Squat Acceleration

Note: This help file is shared by several Adams products.

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.

For front suspensions, percent anti-lift is positive when deflections caused by


tractive forces and drive torques act to compress or jounce the suspension. For
rear suspensions, percent anti-squat is positive when the deflections caused by the
tractive forces and drive torques act to extend or rebound the suspension.
Units %
Request Names Front suspensions:

 anti_lift.left
 anti_lift.right
Rear suspensions:

 anti_squat.left
 anti_squat.right
Running Analyses 391
Output of Suspension Analyses

Inputs Compliance matrix

Suspension parameters array:

 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:

Fleft = Fright = -drive_ratio / 2.0


The vertical forces at the tire contact patch due to weight transfer are:

VWleft = VWright = - cg_height / (2 * Wheelbase)


Live axles also react with the drive torques (input torque to the differential pinion
and output torque from the differential). Given the longitudinal tractive forces,
the input torque (TI) to the differential is:

TI = tire_loaded_radius * abs(Fleft + Fright) /


axle_ratio
And the vertical force at the tire contact patches due to the drive torque is:

VTleft = -VTright = TI / Track


The left and right output torque from the differential is:

TOleft = - tire_loaded_radias * Fleft


TOright = - tire_loaded_radias * Fright
The vertical deflections of the suspension due to drive torque are:

ZDleft = VTleft * C(3,1) + TOleft * C(3,5) +


VTright * C(3,7) + TOright * C(3,11) + VTleft /
tire_stiffness
ZDright = VTleft * C(9,1) + TOleft * C(9,5) +
VTright * C(9,7) + TOright * C(9,11) + VTright /
tire_stiffness
Independent suspensions do not react to the drive torque. Therefore,

ZDleft = ZDright = 0.0


The vertical deflections of the suspension due to tractive forces are:

ZFleft = Fleft * C(3,1) + Fright * C(3,7)


ZFright = Fright * C(9,7) + Fleft * C(9,1)
The vertical deflections of the suspension due to weight transfer forces are:

ZWleft = VWleft C(3,3) + VWright C(3,9) + VWleft /


tire_stiffness
ZWright = VWleft C(9,3) + VWright C(9,9) + VWright
/ tire_stiffness
The left and right percent anti-lift for front suspensions and percent anti-squat for rear
suspensions are:

anti_lift.left / anti_squat.left = 100 *


(ZFleft + ZDleft) / ZWleft
anti_lift.right / anti_squat.right =100 *
(ZFright + ZDright) / ZWright
Running Analyses 393
Output of Suspension Analyses

Ride Rate

Note: This help file is shared by several Adams products.

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.

Ks = Wheel rate (see Wheel Rate)


Kt = Vertical tire rate
Ktotal = Ks x Kt / (Ks + Kt)

Ride Steer

Note: This help file is shared by several Adams products.

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

Inputs Compliance matrix


Method Change in Wheel Orientation
Using the compliance matrix, Adams first calculates the change in wheel orientation
(W) due to unit forces applied at both wheel centers:

Wl/dF = C(4, 3) - C(4, 9) , C(5, 3) - C(5, 9) , C(6, 3)


- C(6, 9)
Wr/dF = C(10, 3) - C(10,9) , C(11, 3) - C(11, 9) ,
C(12, 3) - C(12,9)

Change in Wheel-Center (Spin) Vector Orientation


The change in the left wheel-center (spin) vector (d(wcvl)) and the right wheel (spin)
vector (d(wcvr) are vectors of partial derivatives given by the cross product of the
change in wheel orientation with the wheel-center vector:

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:

d(steer_anglel)/d(wcvl) = (-1.0 / ( syl**2 +


sxl**2 ) ) { syl, -sxl, 0 }
d(steer_angler)/d(wcvr) = (-1.0 / ( syr**2 +
sxr**2 ) ) { syr, -sxr, 0 }
where:

sxl = wcvl o x; The x component of the left wheel-


center (spin) vector
syl = wcvl o y; The y component of the left wheel-
center (spin)
vector\sxr = wcvr o x; The x component of the
right wheel-center (spin) vector
syr = wcvr o y; The y component of the right
wheel-center (spin) vector
The change in steer angle due to unit vertical forces at both wheel centers is computed
by the chain rule:

d(steer_anglel) /dF = ( -d(steer_anglel)/d(wcvl)


) o ( d(wcvl) / dF )
d(steer_angler)/dF = ( -d(steer_angler)/d(wcvr) )
o ( d(wcvr) / dF )
Running Analyses 395
Output of Suspension Analyses

Change in Wheel-Center Vertical Travel


The change in wheel-center vertical travel (dz) due to unit vertical forces applied at
both wheel centers is:

dzl /dF = { C(3,3) + C(3,9) }


dzr /dF = { C(9,3) + C(9,9) }
Using the chain rule one final time, the ride steer is:

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.

Roll Camber Coefficient

Note: This help file is shared by several Adams products.

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

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:

DZ = C(3,3) - C(3,9) - C(9,3) + C(9,9) + 2/Kt


The vehicle roll angle is the rotation of the line through the tire contact patches:

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:

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:

roll_camber_coefficient = (Av - Ac) / Av = 1 - Ac / Av

Figure 7 Roll Camber


Running Analyses 397
Output of Suspension Analyses

Roll Caster Coefficient

Note: This help file is shared by several Adams products.

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:

DZ = C(3,3) - C(3,9) - C(9,3) + C(9,9) + 2/Kt


The vehicle roll angle is the rotation of the line through the tire contact
patches:

Av = DZ / track
The rotational compliance at the wheel center due to the vertical force is:

Ac = C(5,3) - C(5,9) (left side)


= C(11,3) - C(11,9) (right side)
The roll caster is then:

roll_caster_coefficient = Ac / Av

Roll Center Location

Note: This help file is shared by several Adams products.


398 Adams Car
Output of Suspension Analyses

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

Inputs  Compliance matrix at contact patches


 Contact patch location
Method Adams applies unit vertical forces (perpendicular to the road) at the tire
contact and measures the resulting contact patch displacements in the vertical
and lateral direction (front view). Adams projects lines perpendicular to the
contact patch displacements for both the left and right patches. The roll center
lies at the intersection of these lines.

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.

Figure 8 Roll Center Location (Front View)

Roll Steer

Note: This help file is shared by several Adams products.


400 Adams Car
Output of Suspension Analyses

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.

Change in Roll Angle


The change in roll angle is:

d(roll_angle)/d(roll_moment) = ( C(3,3) - C(3,9) -


C(9,3) + C(9,9) + 2.0/Kt ) / Track
Change in Wheel-Center Spin Vector Orientation
The changes in orientation of the left wheel (Wl) and of the right wheel (Wr) due to a
unit upward force at the left contact patch and a unit downward force at the right
contact patch are:

Wl = { C(4, 3) - C(4, 9) , C(5, 3) - C(5, 9) , C(6,


3) - C(6, 9) }
Wr = { C(10, 3) - C(10,9) , C(11, 3) - C(11, 9) ,
C(12, 3) - C(12, 9) }
The change in the left wheel-center (spin) vector (d(wcvl)) and the right wheel (spin)
vector (d(wcvr) are vectors of partial derivatives:

d(wcvl)/d(roll_moment) = Wl x wcvl
d(wcvr)/d(roll_moment) = 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:

d(steer_anglel)/d(wcvl) = (-1.0 / ( syl**2 + sxl**2


) ) { syl, -sxl, 0 }
d(steer_angler)/d(wcvr) = (-1.0 / ( syr**2 + sxr**2
) ) { syr, -sxr, 0 }
where:

sxl = wcvl o x; The x component of the left wheel-


center (spin) vector
syl = wcvl o y; The y component of the left wheel-
center (spin) vector
sxr = wcvr o x; The x component of the right wheel-
center (spin) vector
syr = wcvr o y; The y component of the right wheel-
center (spin) vector
402 Adams Car
Output of Suspension Analyses

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

Note: This help file is shared by several Adams products.

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

Side-View Swing Arm Length and Angle

Note: This help file is shared by several Adams products.


Running Analyses 403
Output of Suspension Analyses

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.

The magnitude of the swing-arm length is limited to a maximum of 1000 meters.


Units Length, Angle
Request Names  side_view_swing_arm_angle.left
 side_view_swing_arm_angle.right
 side_view_swing_arm_length.left
 side_view_swing_arm_length.right
404 Adams Car
Output of Suspension Analyses

Inputs Compliance matrix


Method The change in vertical and longitudinal position and the side view rotation of the
left wheel center due to a unit vertical force at the left wheel center is:

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:

side_view_swing_arm_length.left = (DX left 2 + DZ left 2)1/2 / DØ left

side_view_swing_arm_angle.left = tan-1 (DX left / DZ left)

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:

side_view_swing_arm_length.right = (DXright 2 + DZright 2) 1/2 / DØ right

side_view_swing_arm_angle.right = tan-1 (DXright / DZ right)

Figure 9 Instant Center Side View (Fore and Aft, Vertical)

Suspension Roll Rate

Note: This help file is shared by several Adams products.


Running Analyses 405
Output of Suspension Analyses

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

Figure 10 Roll Rate - Suspension

Toe Angle

Note: This help file is shared by several Adams products.


406 Adams Car
Output of Suspension Analyses

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:

toe_angle.left = tan-1 (DCOSX/DCOSY)


toe_angle.right = tan-1 (-DCOSX/DCOSY)

Figure 11 Toe Angle


Running Analyses 407
Output of Suspension Analyses

Total Roll Rate

Note: This help file is shared by several Adams products.

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

The roll rate is:


2
total_roll_rate = T/Ø = track ⁄ ΔZ

Total Track

Note: This help file is shared by several Adams products.


408 Adams Car
Output of Suspension Analyses

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 tire contact point lies at the intersection of two lines:

 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:

 In vehicle coordinates, the left and right road planes remain


perpendicular to the vehicle's vertical axis, but lie at different heights. If
you run an opposite wheel-travel using vehicle coordinates, the left and
right road planes remain un-rolled (flat) relative to the vehicle body
(ground in a suspension analysis).
 In ISO coordinates, the left and right road planes form one plane that
rotates about the vehicle's longitudinal axis to simulate rolling of the
suspension relative to the road. If you run an opposite wheel-travel
analysis using ISO coordinates, the right road plane and left road plane
are identical, as if the suspension was rolled relative to a flat road. The
total_track (distance between tire contact points) projected onto the
right road plane is foreshortened, and therefore, is less than the total
track output.
Also, the distance from the road plane to the wheel center depends on the tire
deflection, which depends on the tire stiffness and the force required to deflect
the suspension to a given position.
Units Length
Request Names  total_track
Running Analyses 409
Output of Suspension Analyses

Inputs  Contact patch positions


Method The following is the equation used to compute total track:

T = ABS (ROAD (COMP, CPPLEFT) - ROAD (COMP, CPPRIGHT))


where:
 ROAD is a data structure filled with a series of kinematic characteristics
of the suspension. ROAD (Y,CPPLEFT) returns, for example, the Y
component of the left contact patch position.
 CPP represents the instantaneous coodinates of contact points obtained
as described above.

Wheel Rate

Note: This help file is shared by several Adams products.

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.

wheel_rate.left = 1 / (C(3,3) + C(3,9))


wheel_rate.right = 1 / (C(9,3) + C(9,9))

Ackerman

Note: This help file is shared by several Adams products.

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

Request Names  ackerman.left


 ackerman.right
Inputs Steer angle (see Steer Angle)
Method Adams Car computes Ackerman by subtracting the right steer angle from the left
steer angle:

ackerman = Right steer angle – Left steer angle

Ackerman Angle

Note: This help file is shared by several Adams products.

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

Inputs  Turn radius (see Turn Radius)


 Wheelbase
Method ackerman_angle = tan-1(Wheel Base/Turn Radius)

Figure 12 Ackerman Angle

Ackerman Error

Note: This help file is shared by several Adams products.

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

Request Names  ackerman_error.left


 ackerman_error.right
Inputs  Steer angle (see Steer Angle)
 Ideal steer angle (see Ideal Steer Angle)
Method ackerman_error.left = (left steer angle - left ideal steer angle)

ackerman_error.right = (right steer angle - right ideal steer angle)

Caster Moment Arm (Mechanical Trail)

Note: This help file is shared by several Adams products.

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:

Rsr = Rs - (Rs o k)/(s o k) s


Next, Adams Car finds a unit vector (l) directed rearward along the line of
intersection between the wheel plane and the road plane:

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:

caster_moment_arm = (Rp - Rkr) o l

Figure 13 Caster Moment Arm and Scrub Radius


414 Adams Car
Output of Suspension Analyses

Ideal Steer Angle

Note: This help file is shared by several Adams products.

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))]

ideal_steer_angle.right = tan-1 [Wheel Base/(Turn Radius -Rp(right))]


Note  Right turns give positive angles and turn radii
 Rp(left) < 0
 Rp(right) > 0
 |Inside wheel's ideal steer angle| > |outside wheel's ideal steer angle|

Outside Turn Diameter

Note: This help file is shared by several Adams products.

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

Inputs  Turn radius (see Turn Radius)


 Track width
 Wheelbase
Method outside_turn_radius = 2.0 [(| Turn Radius | +Track/2)2 + (Wheel Base) 2]1/2

Percent Ackerman

Note: This help file is shared by several Adams products.

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

ideal_ackerman = Right ideal steer angle - Left ideal steer angle

percent_ackerman = 100 x Ackerman/Ideal Ackerman

Scrub Radius

Note: This help file is shared by several Adams products.

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

Request Names  scrub_radius.left


 scrub_radius.right
Running Analyses 417
Output of Suspension Analyses

Inputs  Kingpin axis position (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)
Method 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:

Rsr = Rs - (Rs o k)/(s o k) s


Next Adams Car finds the projection (m) of the wheel-center axis (w) onto the road
plane

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:

scrub_radius = (Rp - Rkr) o m

Figure 14 Caster Moment Arm and Scrub Radius


418 Adams Car
Output of Suspension Analyses

Steer Angle

Note: This help file is shared by several Adams products.

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:

steer_angle.left = tan-1 (-DCOSX/|DCOSY|)


steer_angle.right = tan-1 (DCOSX/|DCOSY|)
Running Analyses 419
Output of Suspension Analyses

Steer Axis Offset

Note: This help file is shared by several Adams products.

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.

u_lon = ( wcv x kpv ) / | wcv x kpv |


and:

u_lat = ( kpv x u_lon ) / | kpv x u_lon |


Note that u_lat is the projection of the wheel-center vector (wcv) onto the plane
perpendicular to the kingpin axis.

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:

steer_axis_offset.off_left = sqrt( lon_left2 +


lat_left2 )
steer_axis_offset.off_right = sqrt( lon_right2 +
lat_right2 )

Figure 15 Steer Axis Offset (Top View)


Running Analyses 421
Output of Suspension Analyses

Request Statements Offset:


REQUST/id, FUNCTION=USER(900,44,characteristics_input_array_id)\

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

Note: This help file is shared by several Adams products.

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

Inputs  Steer angle (see Steer Angle)


 Track width
 Wheelbase
 Wheel-center orientations - left and right
Method Adams Car determines the inside wheel by checking the sign of the steer
angles. It computes turn radius using the inside tire orientation.

Left turn:

turn_radius.left = - [Wheel Base (DCOSY/DCOSX) +


Track/2]
Right turn:

turn_radius.right = [Wheel Base x (DCOSY/DCOSX) +


Track/2]

Working with the Suspension Test Rig


Adams Car uses the suspension test rig, named .__MDI_SUSPENSION_TESTRIG, in all its suspension
analyses. When you create a suspension assembly, Adams Car assembles the suspension test rig with the
selected suspension and steering subsystems.
The suspension test rig inputs excitation as motions and forces to the suspension and steering subsystems.
The excitations are made up of one or more of the following:
 Displacement for wheel bump and rebound vertical travel
 Roll and vertical force
 Steering travel at the steering wheel or rack
 Forces or torques at the steering wheel or rack
 Forces and torques at the contact patch and the hub
Learn about the suspension test rig:
 Benefits of Using the Suspension Test Rig
 Structure of Suspension Test Rig

Benefits of Using the Suspension Test Rig


You can use the suspension test rig to:
 Include a deflecting tire in your suspension simulations so that suspension characteristics output by
Adams Car are more accurate.
 Swap a deflecting tire with a semi-rigid tire.
 Specify additional loads acting through the tire on the suspension, in particular:
• Lateral cornering force at the contact patch
Running Analyses 423
Working with the Suspension Test Rig

• Lateral damage force and damage radius (point of application of force)


• Traction force acting at the wheel center (note that the traction torque is not reacted by the
suspension)
• Braking force at the contact patch (creates a brake torque on the suspension)
• Overturning moment at the contact patch
• Aligning torque at the contact patch
 Drive your suspension with a set of closed-loop controllers to vary:
• Wheel-center displacements
• Contact patch displacements
• Wheel vertical forces
 Perform roll angle sweeps at constant total vertical force (sum of vertical force on the left and right
wheels)
 Include dual wheels as needed.

About Dual Wheels:


The __MDI_SUSPENSION_TESTRIG test rig allows you to model dual tires (wheels) in your suspension
assembly.
You can activate or deactivate dual wheels through Set Suspension Parameters dialog box from Simulate >
Suspension Analysis > Set Suspension Parameters.
The "Dual Wheel Offset" field is used to specify the lateral offset for the placement of the outside wheel from
inside wheel center. The mass, inertia and tire properties (that is, tire radius, stiffness and so on) of the inside
wheel part (tire) will be set to the outside wheel part (tire).
When dual wheels are active, tire forces (reactions) gets distributed on inside and outside wheels.
424 Adams Car
Working with the Suspension Test Rig

Structure of Suspension Test Rig


You assemble your suspension and steering subsystems with the suspension test rig. Then, using the resulting
assembly, you simulate different suspension motions and loadcases to determine how your suspension
performs. To help you to assess the performance of your suspension, Adams Car calculates about forty
characteristics, such as toe angle, camber angle, caster trail, roll center height, and aligning torque camber
compliance.
When you assemble your suspension subsystem to the suspension test rig, the suspension arms, struts, links,
and subframe that normally mount to the body, mount to ground. The test rig includes wheels and tires that
mount to the suspension hubs. The test rig drives the suspension motion by tables that contact the tires,
pushing the suspension up through the tires. Finally, if you include a steering subsystem, the test rig couples
to the rack and the steering wheel to drive steering motion.
When you submit a suspension analysis you can request the test rig to control the wheel center or the tire
contact patch positions. In some cases the test rig may not be able to achieve a desired position because the
suspension travel is limited, for example, by a bumper. In such a case, the vertical actuators saturate, meaning
they reach the maximum force they can apply. The forces and displacements the test rig can apply to the
Running Analyses 425
Working with the Suspension Test Rig

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.

Suspension Test Rig Tire


The suspension test rig includes left and right wheel and tire UDE instances that are compatible with Adams
Tire. The test rig tables contact these tires to drive the suspension's vertical travel. These tires also apply the
contact patch loads (read from the loadcase spline) to the suspension. The suspension test rig sets the
simulation type string to ”SUSPENSION” to inform Adams Tire you are performing a suspension analysis.

About RIGID_WHEEL and LIVE_TIRE


When working with these tires you can modify them to select either of the following:
 RIGID_WHEEL - The tire transmits both compression and tension force allowing the test rig to
pull the suspension into rebound.
426 Adams Car
Working with the Suspension Test Rig

 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

Running Full-Vehicle Analyses


You can take previously created suspension subsystems and integrate them with other subsystems to create a
full-vehicle assembly. You can then perform various analyses on the vehicle to test the design of the different
subsystems and see how they influence the total vehicle dynamics. All of the analyses, except for the data-
driven analyses, use the .__MDI_SDI_TESTRIG, and are therefore based on the Driving Machine. You can also
examine the influence of component modifications, including changes in spring rates, damper rates, bushing
rates, and anti-rollbar rates, on the total vehicle dynamics.
Each type of analysis you perform requires a minimum set of subsystems: front and rear suspension
subsystems, front and rear wheel subsystems, one steering subsystem, and one body subsystem. Before you
can create an assembly and perform an analysis in Adams Car, you must open or create the minimum set of
subsystems required.
Using Adams Car, you can:
 Easily modify the geometry and the properties of the components of your subsystems.
 Select from a standard set of vehicle maneuvers to evaluate handling characteristics of your virtual
prototype.
 View the vehicle states and other characteristics through plots.
You can specify inputs to the analysis by typing them into an analysis dialog box or by selecting a driver
control file that contains the desired inputs.
After specifying the prototype assembly and its analysis, Adams Car, like your company's testing department,
applies the inputs that you specified and records the results. To understand how your prototype behaved
during the analysis, you can plot the results. After viewing the results, you might modify the prototype and
analyze it again to see if your modifications improve its behavior.
The following figure shows an overview of the full-vehicle analysis process.
428 Adams Car
Running Full-Vehicle Analyses

Setting up Full-Vehicle Analyses


Before you set up a full-vehicle analysis, you must assemble and check the vehicle, as explained next:
 Assembling a Vehicle
 Checking a Vehicle
 Setting up the Analysis

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.

To check the test rig:


1. From the File menu, point to Info, and then select Assembly.
2. In the Assembly Name text box, enter the name of your assembly.
3. Select OK.
Adams Car displays the Information window, with the test rig name listed at the top of the window.
Running Analyses 429
Running Full-Vehicle Analyses

Setting up the Analysis

To set up full-vehicle analyses:


1. From the Simulate menu, point to Full-Vehicle Analysis, and then select the analysis you want to set
up.
2. Enter the parameters needed to control the analysis.
3. Typically, each transient analysis can be preceded by a quasi-static prephase analysis before running
the transient analysis on your full-vehicle assemblies. A quasi-static prephase analysis consists of a
straight analysis or a skidpad analysis, depending on the type of analysis you selected. If you do not
select the quasi-static option, Adams Car performs a SETTLE analysis.
For more information about the different quasi-static setup method keywords (such as SETTLE and
STRAIGHT), see Structure of Event Files.
4. For dialog box help, select F1.
5. Select OK.

Controlling Full-Vehicle Analyses


If you are an experienced Adams Car user and you want to perform some non-standard full-vehicle analyses,
such as studying the linear behavior of your vehicle between two mini-maneuvers, you can use an Adams
Solver control subroutine (Eventxxx) to do so.
When you run a full-vehicle analysis, Adams Car writes a number of files to the current working directory
(as defined by File -> Select Directory). These files contain important information about the details of the
maneuver. In particular, two files are important in defining the scope of the maneuver. These are the Adams
Solver control file (.acf ) and the event file (.xml). See Working with Event Files (.xml).
The following shows the typical contents of an .acf:
file/model=test_step
preferences/solver=F77
output/nosep
control/ routine=abgVDM::EventInit,
function=user(3,1,10,0,2,5,7,17)
control/ routine=abgVDM::EventRunAll, function=user(0)
!
stop
In the .acf, note the following line:
control/ routine=abgVDM::EventInit,
function=user(3,1,10,0,2,5,7,17)
This line calls an Adams Car-specific control subroutine (a consub). The consub sets up and initializes the
full-vehicle analysis. It does the following:
 Reads the event file (or converts the TeimOrbit .dcf file into XML)
 Performs a number of static analyses based on the content of the DcfStatic class in the event file
430 Adams Car
Running Full-Vehicle Analyses

 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

Running with External Adams Solver


How you run Adams Solver depends on the platform you are on:
• On Windows - The location of your .acf, .adm, and event files is important. Open a DOS shell
(from the Start menu, point to Programs, point to Accessories, and then select Command
Prompt) and change directory to the location where your files are stored (cd temp\run).
• On Linux - Open a shell and change directory to the location of your files (cd
/usr/home/user/temp/run).

To run external Adams Solver:


 Issue the command:
adamsxx acar ru-solver filename.acf
where:
 xx corresponds to the version of Adams that you are using
 filename.acf is the name of your acf file

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.

To set up a Dynamic Loadcase analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Durability Events, and then select
Dynamic Loadcase.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Dynamic
Loadcase.
3. Select OK.

Event Set and Event Browser


Event UDE
The event UDE is the user-defined element stored in the database that provides access to the event objects
which are displayed in the event browser. All event sets are stored in the special library: .EVENT_SETS. The
event UDE stores this information for the definition of the event:
 Assembly reference - model to be used for the analysis
 Variant reference - variant to the used for the analysis
 Event set - Event set parent which stores the event
 Macro reference - This is an object reference to the event type that the event should use for the
analysis
In addition to the parameters for the basic UDE, each event has additional parameters that are stored in the
database. These parameters can be modified interactively by the user and can be displayed by doing an "info"
on the event UDE:
Running Analyses 433
Running Full-Vehicle Analyses

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

Event Browser Interface


The Event Browser provides a simple interface for accessing and operating on event set and event UDE
instances. It displays graphically all the event sets and event instances in the current session. Users can use
right mouse button popup menus to interact with the event instances. The event browser is a floating

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:

 Defined - Event is defined but has not be executed yet

 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:

Open-Loop Steering Events


Adams Car provides a wide range of open-loop steering analyses. In open-loop steering analyses, the steering
input to your full vehicle is a function of time.
The open-loop steering analyses include:
 Drift Analysis
 Fish-Hook Analysis
 Frequency Response Analysis
 Grist Mill Analysis
 Hands Free Analysis
 Impulse-Steer Analysis
 J-Turn Analysis
 On Center Analysis
 Parking Effort Analysis
 Ramp-Steer Analysis
 Single Lane-Change Analysis
 Sine with Dwell Analysis
 Step Steer Analysis
 Swept Steer Analysis
 Swept-Sine Steer Analysis
 Turn Diameter Analysis

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.

To set up a drift analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Drift.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Drift.
3. Select OK.

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.

To set up a fish-hook analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Fish Hook.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Fish Hook.
3. Select OK.

Frequency Response Analysis


The goal of a frequency response analysis is to provide steering input that spans the entire frequency range of
a human driver, roughly 0 to 3 Hz. The event determines either the steering wheel angle (SWA) required
attaining a certain lateral acceleration (typically 0.3 g) at a given speed or you can specify SWA directly.
The sinusoidal amplitude either determined by the event or specified by user for the steering input. The
frequencies are varies from zero to the maximum attainable (approximately 3.0 Hz). The most important
quantities to be measured are:
 Lateral acceleration
Running Analyses 437
Running Full-Vehicle Analyses

 Yaw rate
 Roll angle
 Steering wheel torque
 Steering wheel angle

To set up a frequency response analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Frequency Response.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Frequency
Response.
3. Select OK.

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.

Grist Mill Analysis


You use a grist mill analysis to evaluate the wheel loads and tire characteristics in a large steering angle steady
state condition.
A grist mill 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 grist mill analysis by driving the vehicle at a constant speed, with
a steering ramped from zero to a specified value.
The most important factors for this evaluation are:
 Steady state wheel loads
 Wheel moments
 Rolling radius
 Slip angle
 Inclination angle

To set up a grist mill analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Grist Mill.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Grist Mill.
3. Select OK.
438 Adams Car
Running Full-Vehicle Analyses

Hands Free Analysis


You use a hands free analysis to evaluate transient handling properties of a vehicle at limit handling
conditions.
A hands free 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 hands free analysis by driving the vehicle at a constant speed,
with a sinusoidal steering input and deactivating steering input at a specified input angle.
The time at which to start the free hand event is based on the angle at which the steering input needs to be
deactivated and the frequency of the steering input.
The most important factors for this evaluation are:
 Lateral acceleration.
 Steering wheel angle/torque.
 Yaw rate.
 Roll Angle

To set up a hands free analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Hands Free.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Hands Free.
3. Select OK.

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.

To set up a impulse-steer analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Impulse Steer.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Impulse Steer.
3. Select OK.

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

To set up a J-Turn analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select J-Turn.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: J-Turn.
3. Select OK.

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.

To set up an on center analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select On Center.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: On Center.
3. Select OK.

Parking Effort Analysis


You use a parking effort analysis to evaluate the steering effort required for zero speed or low speed.
A parking effort 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 parking effort analysis by driving the vehicle at a zero or low
speed, with specified steering input. The maneuver provides a basis for evaluating a parking effort.
The most important factors for this evaluation is: steering-wheel torque.

To set up a parking effort analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Parking Effort.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Parking Effort.
440 Adams Car
Running Full-Vehicle Analyses

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.

To set up a ramp-steer analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Ramp Steer.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Ramp Steer.
3. Select OK.

Single Lane-Change Analysis


During a single lane-change analysis, the steering input goes through a complete sinusoidal cycle over the
specified length of time. The steering input can be:
 Length, which is a motion applied to the rack of the steering subsystem.
 Angle, which is angular displacements applied to the steering wheel.
 Force applied to the rack.
 Torque applied to the steering wheel.

To set up a single lane-change analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Single Lane Change.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Single Lane
Change.
3. Select OK.

Sine with Dwell Analysis


During a sine with dwell analysis, the steering input goes through a sinusoidal cycle of specified frequency
with specified dwell time after 75-percentage completion of the sinusoidal cycle. The steering input is an
angle that is angular displacement applied to the steering wheel and is varies based on the specified increment
of steering wheel angle. The number of tests run changes based on the specified inputs.
The most important factors for this evaluation are:
 Steering-wheel angle
 Lateral displacement
 Peak yaw rate
During a sine with dwell analysis, a quasi-static phase sets up the vehicle at the desired initial conditions and
then a steering wheel angle is applied.
Running Analyses 441
Running Full-Vehicle Analyses

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.

Step Steer Analysis


A step steer analysis yields time-domain transient-response metrics. The most important quantities to be
measured are:
 Steering-wheel angle
 Yaw rate
 Vehicle speed
 Lateral acceleration
During a step steer analysis, Adams Car increases the steering input from an initial value to a final value over
a specified time.

To set up a step steer analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Step Steer.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Step Steer.
3. Select OK.

Swept Steer Analysis


In swept steer analysis, steering inputs at the steering wheel let you measure a vehicles directional response
characteristics under quasi-steady state turning condition. This provides a basis for evaluating a vehicle
understeer gradient, roll gradient, steering sensitivity, lateral load transfer distribution.
The most important factors for this evaluation are:
 Steering-wheel angle
 Lateral acceleration
 Yaw rate
 Roll angle
During a swept steer analysis, Adams Car drive down a straight road at a constant speed and then a steering
wheel angle is slowly applied until a specified lateral acceleration level is reached. For additional information
refer, Swept Steer.
442 Adams Car
Running Full-Vehicle Analyses

To set up a swept steer analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Swept Steer.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Swept Steer.
3. Select OK.

Swept-Sine Steer Analysis


Sinusoidal steering inputs at the steering wheel let you measure frequency-response vehicle characteristics.
This provides a basis for evaluating a vehicle transitional response, the intensity and phase of which varies
according to the steering frequency. The most important factors for this evaluation are:
 Steering-wheel angle
 Lateral acceleration
 Yaw rate
 Roll angle
During a swept-sine steer analysis, Adams Car steers the vehicle from an initial value to the specified
maximum steer value, with a given frequency. It ramps up the frequency of the steering input from the initial
value to the specified maximum frequency with the given frequency rate.

To set up a swept-sine steer analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Swept-Sine Steer.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Swept-Sine
Steer.
3. Select OK.
Running Analyses 443
Running Full-Vehicle Analyses

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.

The most important factors for this evaluation are:

 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.

Turn Diameter Analysis


In turn diameter analysis, by using user defined or default inside and outside or single locations, let you
measure the turn diameter of the vehicle.
The request "turn_diameter" created during analysis helps you measures the diameter for the inside, outside,
and/or user-defined reference point for the turning circle.
The analysis applies a step function based on the specified steering amplitude or rack travel, and holds this
value as the vehicle maneuvers through a circle.

To set up a turn diameter analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Open-Loop Steering Events, and
then select Turn Diameter.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Turn Diameter.
3. Select OK.

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.

The cornering analyses include:


 Braking-In-Turn Analysis
 Constant-Radius Cornering Analysis
 Cornering with Steer Release Analysis
 Lift-off Turn-in Analysis
 Power-off Cornering Analysis
 Throttle-On-In-Turn Analysis

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.

To set up a braking-in-turn analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Cornering Events, and then select
Braking-In-Turn.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Braking-In-
Turn.
Running Analyses 445
Running Full-Vehicle Analyses

3. Select OK.

Constant-Radius Cornering Analysis


For constant-radius cornering analysis, the Driving Machine drives your full vehicle down a straight road,
turns onto a skidpad, and then gradually increases velocity to build up lateral acceleration. One common use
for a constant radius cornering analysis is to determine the understeer characteristics of the full vehicle.

To set up a constant-radius cornering analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Cornering Events, and then select
Constant Radius Cornering.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Constant-
Radius Cornering.
3. Select OK.

Cornering with Steer Release Analysis


The vehicle performs a dynamic constant-radius cornering to achieve the prescribed conditions (radius and
longitudinal velocity or longitudinal velocity and lateral acceleration). After the steady state prephase, the
steering wheel closed-loop signal is released, simulating a release of the steering wheel. The analysis focuses
primary on the path deviation, yaw characteristics, steering-wheel measurements, roll angle, roll rate, and
side-slip angle.

To set up an analysis of cornering with steer release:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Cornering Events, and then select
Cornering w/Steer Release.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Cornering Steer
Release.
3. Select OK.

Lift-off Turn-in Analysis


This analysis examines path and directional deviations caused by suddenly lifting the throttle pedal during
cornering and applying an additional ramp steering input. Typical results collected from the lift-off turn-in
analyses include lateral acceleration, variations in turn radius, and yaw angle as a function of longitudinal
deceleration. Adams Car drives the vehicle through two distinct phases:
 Cornering pre-phase: Adams Car uses quasi-static calculations to set the vehicle at the correct initial
conditions for the desired lateral acceleration at the given radius.
 Lift-off turn-in: The steer is ramped from the last value of the previous mini-maneuver at the desired
rate. The throttle signal is set to zero; the clutch can be engaged or disengaged.

To set up a lift-off turn-in analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Cornering Events, and then select
Lift-Off Turn-In.
446 Adams Car
Running Full-Vehicle Analyses

2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Lift-Off Turn-
In.
3. Select OK.

Power-off Cornering Analysis


The purpose of this maneuver is to determine the power-off effect on course holding and directional behavior
of a vehicle, whose steady-state circular path is disturbed only by power-off. The Driving Machine drives the
vehicle through two distinct phases:
 An initial quasi-static setup that achieves the initial conditions.
 A power-off event where the throttle signal is stepped down from the value of the previous mini-
maneuver to zero.
The lateral acceleration and skidpad radius define the initial conditions. Note that the significance of the
results decreases with the skidpad radius. After reaching the initial steady-state driving conditions, the
steering signal is kept constant and the accelerator pedal is released with a step signal profile. The release of
the accelerator pedal is considered as the moment of power-off initiation, which you can define.
Typical results collected from power-off cornering analyses include variations in the heading direction and
longitudinal deceleration, as well as side-slip angle, yaw angle, and gradient.

To set up a power-off cornering analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Cornering Events, and then select
Power-off Cornering.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Power-Off
Cornering.
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.

To set up a braking-in-turn analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Cornering Events, and then select
Throttle-on-In-Turn.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Throttle-On-
In-Turn.
3. Select OK.

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.

The straight-line-behavior analyses include:


 Acceleration Analysis
 Brake Drift Analysis
 Braking Analysis
 Braking on Split μ Analysis
 Cross Wind Analysis
 Maintain Analysis
 Power-off Straight Line Analysis
 Steady State Drift Analysis
 Straight Line Drive Ride Analysis

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

To set up an acceleration analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Acceleration.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Acceleration.
3. Select OK.

Brake Drift Analysis


During a brake drift analysis, the Driving Machine lets you specify a longitudinal deceleration (closed loop).
You can vary side to side front brake split (brake bias) and road bank angle. You can also specify either free
or locked steering. The brake drift analysis helps you to determine:
 Camber, caster and toe change for insight into the tire wear performance of the vehicle
 Front and rear dive/lift to identify antidive/antisquat performance during braking
 Brake drift (vehicle lateral displacement) from the time the brakes are applied to the completion of
the simulation

To set up a brake drift analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Brake Drift.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Brake Drift.
3. Select OK.

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.

To set up a braking analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Braking.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Braking.
3. Select OK.

Braking on Split μ Analysis


During a braking on split μ analysis, the Driving Machine ramps the brake input from zero at your input rate
while the left and right tires are on road segments with different road friction. You can also specify either free
or locked steering. The braking on split μ test analysis helps you study the behavior of active brake, damper
and traction controllers in a vehicle.
Running Analyses 449
Running Full-Vehicle Analyses

To set up a braking on split μ analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Braking on Split μ.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Braking on
Split μ.
3. Select OK.

Cross Wind Analysis


This analysis allows you to examine operating behavior and directional deviations caused by the effect of
crosswind during a straight-line analysis. You need to specify proper aerodynamic coefficients into the
aerodynamic force.
The most important factors for this evaluation are:
 Steering wheel torque
 Lateral acceleration
 Yaw rate
 Roll angle
During a cross wind analysis, Adams Car drives down a straight road at a constant speed and then a cross
wind is applied for user specified distance or duration manually or by using wind file.

To set up a cross wind analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Events, and then
select Cross Wind
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Cross Wind.
3. Select OK.

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.

To set up a maintain analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Maintain.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Maintain.
3. Select OK.
450 Adams Car
Running Full-Vehicle Analyses

Power-off Straight Line Analysis


This analysis allows you to examine operating behavior and directional deviations caused by suddenly lifting
off the throttle pedal during a straight-line analysis. Typical results collected from the power-off straight-line
analysis include variations in heading direction and longitudinal deceleration. Optionally, you can depress
the clutch during the throttle lift-off. In this case, you specify the duration that it takes to depress the clutch.
The Driving Machine drives the vehicle through two distinct phases:
 Quasi-static setup - The vehicle is set up in a straight line, to reflect the initial longitudinal velocity
condition.
 Power-off event - The throttle signal is stepped down, from the value of the initial set mini-
maneuver, to zero.

To set up a power-off straight line analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Power-off Straight Line.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Power-Off
Straight Line.
3. Select OK.

Steady State Drift Analysis


During a steady state drift analysis, the Driving Machine lets you specify a vehicle velocity. You can vary
conicity force and torque, plysteer force and torque scale factor. You can also specify road bank angle. This
analysis allows you to examine vehicle drift and suspension geometry changes during a straight line drive
maneuver. The steady state drift test analysis helps you to determine:
 Camber, caster and toe change for insight into the tire wear performance of the vehicle
 Lateral vehicle drift (vehicle lateral displacement)
 Steering wheel torque and angle
 Left and right front lateral force change

To set up a steady state drift analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Steady State Drift.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Steady State
Drift.
3. Select OK.

Straight Line Drive Ride Analysis


This very similar to straight line maintain analysis. During a straight line drive ride analysis, the Driving
Machine controls the throttle signal to maintain a constant longitudinal velocity, or holds the throttle
demand constant (open loop, relative), or holds the throttle demand off (open loop, absolute). You can
specify either free, locked, or straight-line steering. A straight line drive ride analysis helps you study the drive
Running Analyses 451
Running Full-Vehicle Analyses

controller behavior for the properties of your vehicle model, and identify transient effects not active during
static vehicle set-up pre-phase.

To set up a straight line drive ride analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Straight-Line Behavior, and then
select Straight Line Dive Ride.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Straight Line
Drive Ride.
3. Select OK.

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

Double Lane Change


During an ISO lane change analysis, a longitudinal controller maintains the chassis velocity to the desired
value, and a lateral controller module acts on the steering system to maintain the vehicle on the desired ISO
lane-change path.
Adams Car uses an external file to define the path for the maneuver: iso_lane_change.dcd defines the trace
of the desired path on the x-y plane.

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.

To set up an ISO lane change analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Course Events, and then select
ISO Lane Change.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Double Lane
Change.
3. Select OK.
452 Adams Car
Running Full-Vehicle Analyses

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.

To set up a 3D road analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Course Events, and then select 3D
Road.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: 3D Road.
3. Select OK.

Roll Stability Events


Adams Car provides a range of events to analyse roll stability and simulate roll-over use cases.
The roll stability analyses include:
 Embankment
 Ramp (Corkscrew)
 Tilt Table Analysis
 Sand Bed Analysis

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.

To set up an Embankment analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Roll Stability Events, and then
select Embankment.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Embankment.
3. Select OK.
Running Analyses 453
Running Full-Vehicle Analyses

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.

To set up a Ramp (corkscrew) analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Roll Stability Events, and then
select Ramp (Corkscrew).
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Ramp
(corkscrew).
3. Select OK.

Tilt Table Analysis


During the tilt table analysis, the vehicle is dynamically or quasi-statically tilted about the roll axis until the
user specified tire force threshold is reached. A motion is applied to the tilt table to move the right side up or
down. If the right side of the tilt table moves down, the right front wheel is constrained using an In line
Primitive Joint (removes 2 translational DOFs), and the right rear wheel is constrained using an In plane
Primitive Joint (removes 1 translational DOF). If the right side of the tilt table moves up the left wheels are
constrained. This will prevent the vehicle from sliding in longitudinal and lateral direction. Also, each tire is
constrained by a Perpendicular Primitive Joint to prevents the wheels from spinning (static solution). This
test is used to estimate a vehicle's aggregate CG height and rollover point.
This event requires a full vehicle assembly with the Tilt Table Testrig.

To set up a Tilt Table analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Roll Stability Events, and then
select Tilt Table Analysis.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Tilt Table.
3. Select OK.

Sand Bed Analysis


The simulation starts with a quasi static till one second. During this time the table is adjusted to the tilt angle.
After one second the analysis continues with the lateral initial velocity of the vehicle and ends at 2.5 seconds
or a roll angle greater than 89 Degree. Using a model with the Tilt Table Testrig is required to run the
simulation. Sandbed analysis helps you study the vehicle reactions to sliding down laterally and rolling over.

To set up a Sand Bed analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Roll Stability Events, and then
select Sand Bed (lateral).
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Sand Bed
(lateral).
454 Adams Car
Running Full-Vehicle Analyses

3. Select OK.

Soft soil road types


The soft soil road types (soft soil, loose sand, lete sand for the embankment analysis and loose sand for the
sand bed analysis) are only functional in combination with the FTire tire model.
More details about the pressure-sinkage and shear strength parameters for the various soil types used in FTire
and based on the Bekker formulation can be found in the following reference: S.G. Mao, Ray P.S. Han,
"Nonlinear complementarity equations for modeling tire-soil interaction - An incremental Bekker
approach", Journal of Sound and Vibration 312 (2008) 380-398.
More information about the Cosin soft-soil models can be found in the Cosin Road Modeling
Documentation at http://www.cosin.eu/res/cosinroad.pdf.

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.

To set up a file-driven analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, and then select File Driven Events.
2. Enter an Output Prefix.
3. If necessary, select a new Road Data File.
Press F1 for more detailed information on any of the selections in this dialog box.
4. Right-click in the Driver Control Files text box and select an XML Event file from the file selection
dialog box.
5. Select OK.

Working with Event Files (.xml)


You use event files (.xml) to describe the maneuvers you want the Driving Machine to perform.
Event files (.xml) describe how you want the Driving Machine to drive your vehicle during a maneuver. The
event file instructs the Driving Machine how fast to drive the vehicle, where to drive the vehicle (for example,
on a 80 m radius skidpad), and when to stop the maneuver (for example, when lateral acceleration = 8 m/s2).
Event files specify the kinds of controllers the Driving Machine should use for each of the available control
signals (steering, throttle, brake, gear, and clutch). An event file can reference other files, primarily driver
control data files (.dcd), to obtain necessary input data, such as speed versus time. Learn about referencing .dcd
files.
Running Analyses 455
Running Full-Vehicle Analyses

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

Creating Event Files


Before you can run a Driving Machine full-vehicle analysis, you must create (or use) an event file that contains
one or more mini-maneuvers.

To set up Driving Machine mini-maneuvers:


1. From the Simulate menu, point to Full-Vehicle Analysis, and then select Event Builder.
The Event Builder dialog box has four major sections.
• File name, initial speed and gear, and units used in a selected field (shown at the bottom of the
dialog box).
• Static Set-up and Gear Shifting Parameters.
• Mini-maneuver parameters on tabs for each of the five control signals with open-loop Control
Value, plus an additional tab for Conditions to end a mini-maneuver.
• Closed-loop parameters (used when a control signal has its Control Method set to machine.
2. From the File menu, select New.
3. Enter the file name in the text box and click OK. The name appears in the Event File text box with
a .xml extension. Initial default values appear in other text boxes.
4. If required, you can modify the initial Speed and Gear.
5. If required, you can modify values specified in the Static Set-up tab (for more information, see dialog
box help for Event Builder).
6. Select the Gear Shifting Parameters tab. If required, you can modify values specified on this tab (for
more information, see dialog box help for Event Builder).
7. If required, you can modify Machine Control control actions in the Trajectory Planning Parameter
tab and Machine Control longitudinal and lateral PID Controller gains in the PID's Speed & Path
and PID's Steering Output Parameters tabs (for more information, see dialog box help for Event
Builder).
8. For MINI_1 (the default initial mini-maneuver), make selections for each of the control signal tabs
(Steering, Throttle, Braking, Gear, and Clutch). Enter the necessary parameters as explained in the
dialog box help for Event Builder to create the mini-maneuver.
456 Adams Car
Running Full-Vehicle Analyses

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.

Using Event Files


After you use the Event Builder to create or modify an event file, you use that event file to run a file-driven analysis.

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

Label Shows the actuator alias (not editable).


Active Sets the activity of the current actuator for the active mini-maneuver.
Actuator Adams Car populates this option menu with all the user-defined actuators available in the
active model. Selecting an actuator from the list will populate the other fields with the
current setting for that particular actuator.

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

Expression Function expression for the currently selected actuator.

You can define functions of absolute time (for example, 1e5*HAVSIN(TIME,0,0,1,1)) or


reference the value of a condition sensor in your expression by using #condition_sensor#
(for example, 1e5*HAVSIN(#time#,0,0,1,1) for using the mini-maneuver time).

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.

Specifying an Actuator Type


When defining the steering control for a mini-maneuver, you must specify an actuator type. You use the
actuator type to specify whether the Driving Machine steers the vehicle at the steering wheel or steering rack
and whether the Driving Machine uses a force or motion. For example, when you set Actuator Type to
rotation, the Driving Machine steers using a motion on the steering wheel.
The actuator type you select for steering determines how the Driving Machine interprets the units of other
parameters associated with the steering signal. For example, if you set Actuator Type to torque, the Driving
Machine interprets the amplitude argument for an open-loop sinusoidal input as torque (with units of
length*force). If you set Actuator Type to rotation, however, the Driving Machine interprets the amplitude
as an angle.
Arguments

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.

Specifying a Control Method


When defining any mini-maneuver, you must specify a control method for each control signal.
Arguments
 Open
 Machine
 SmartDriver
Open Control Method
The Driving Machine output for the control signal is a function of time, and you must specify the function
using the Control Type argument.
You cannot switch from an open-loop control mini maneuver to a SmartDriver mini maneuver. You can,
however, switch from SmartDriver in a preceding mini maneuver to open-loop control in a subsequent mini
maneuver.
Machine Control Method
Setting Control Method to machine specifies the vehicle path, speed profile, and other parameters used by
machine control.
If you set machine control for gear and clutch, you must also supply the maximum and minimum engine
speed. Machine control up-shifts to keep engine speed less than maximum and down-shifts to keep engine
speed greater than minimum.
If you set Control Method to machine for steering, then you should specify the target path, using the Steer
Control argument.
460 Adams Car
Running Full-Vehicle Analyses

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

Steer Control You can select one of the following:

 ay_s_map/ay_t_map - To define these closed-loop steering conditions, you can use a


Table/Plot editor that you access by selecting the Table Editor button.
 file -
• File Name - Enter the name of a file that contains the path data.
• Lat. Path Offset - Allows driving at the specified lateral path offset (unit of length) to the
path as provided by the road data file (for .xml, .rdf, .crg, .rgr file formats).
 path_map - To define this closed-loop steering condition, you can use a Table/Plot editor that
you access by selecting the Table Editor button. To define this closed-loop steering condition,
you can use a Table/Plot editor that you access by selecting the Table Editor button.
 skidpad -
• Entry Distance - Specifies the length of the straight path preceding the turn. Note that all
paths are relative to the position of the vehicle at the end of the preceding mini-maneuver.
If the preceding mini-maneuver was a skidpad and you want the vehicle to continue on the
same circle in the current mini-maneuver, then specify zero (0) for Entry Distance.
• Radius - Specifies the radius of the skidpad.
• Turn Direction - Specifies which way the vehicle turns when traveling forward.
 straight - The vehicle travels forward from its current position along the tangent of the path
from the preceding mini-maneuver. If the vehicle was under open-loop steering control in the
preceding mini-maneuver, then the vehicle travels forward in the direction of its current
velocity. You don't need to specify additional arguments.
Running Analyses 463
Running Full-Vehicle Analyses

Speed Control You can select one of the following:

 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.

SmartDriver Control Method


When you set Control Method to SmartDriver, you must also specify the Control Mode, the task, course file,
as well as the maximum driving, braking, and turning accelerations.
Arguments

Task Select one of the following:

 user_defined - Set your own vehicle limits.


 vehicle_limits - Use the maximum vehicle limits.
Course File Displays the name of a .xml or .drd file that describes the path over which the
Driving Machine or Adams SmartDriver drive the vehicle.
Select to choose a course file.

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.

Specifying a Control Type


For any of the control signals (steering, throttle, braking, and so on), when you set Control Method to open,
Adams Car enables the Control Type option.
Arguments

constant The Driving Machine inputs a constant signal to your vehicle model.

 Control Value - Enter a real number.


data_driven Specifies that the control signal comes from a driver control data file (.dcd), which you
specify. The Driving Machine opens the .dcd file and reads the appropriate data.

 Dcd Filename - Enter the name of a .dcd file.


data_map Lets you specifies a series of discrete values as a function of time. Click the Open Loop
Demand Map button that appears to enter values and view a plot of the values you enter.

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.

 Function - Enter a time-based function. For example:


C20.0*SIN(2*PI*TIME)
where TIME is the simulation time.
Running Analyses 467
Running Full-Vehicle Analyses

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:

Let T1 = ( TIME - START_TIME ) / DURATION/2.0


Let T2 = ( TIME - (START_TIME + DURATION/2.0) ) / DURATION/2.0
IF ( T1 < 0.0 ):
OUTPUT = 0.0
IF ( 0 < T1 < 1.0 ):
OUTPUT = MAXIMUM_VALUE * ( 3.0 - 2.0*T1)*T1*T1
IF ( T1 > 1.0 and T2 < 1.0 )
OUTPUT = MAXIMUM_VALUE( 1.0 - (3.0 -2.0*T2)*T2*T2 )
IF ( T2 > 1.0 );
OUTPUT = 0.0

The following plot illustrates the IMPULSE function:


468 Adams Car
Running Full-Vehicle Analyses

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:

If ( time < START_TIME ) input = INITIAL_VALUE


if ( time > START_TIME ) then
input = INITIAL_VALUE + ( time - START_VALUE) * RAMP_VALUE

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:

Let T1 = (TIME - START_TIME) / CYCLE_LENGTH / 100.0


Let T2 = (TIME - (START_TIME + 0.99*CYCLE_LENGTH)) / CYCLE_LENGTH
/ 100.0
IF ( T1 < 0.0 ):
OUTPUT = INITIAL_VALUE
IF ( 0 < T1 < 1.0 ):
OUTPUT = INITIAL_VALUE + AMPLITUDE *
SIN( 2.0*PI*(TIME - START_TIME)/ CYCLE_LENGTH) * (3.0 -
2.0*T1)*T1*T1
IF ( T1 > 1.0 and T2 < 0.0 )
OUTPUT = INITIAL_VALUE + AMPLITUDE *
SIN( 2.0*PI*(TIME - START_TIME)/ CYCLE_LENGTH)
IF ( T1 > 1.0 and 0.0 < T2 < 1.0 )
OUTPUT = INITIAL_VALUE + AMPLITUDE *
SIN( 2.0*PI*(TIME - START_TIME)/ CYCLE_LENGTH) (1.0 - (3.0 -
2.0*T2)*T2*T2)
IF ( T2 > 1.0:
OUTPUT = INITIAL_VALUE

The following plot illustrates the SINE function:


470 Adams Car
Running Full-Vehicle Analyses

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)

Note that START_TIME is relative to the beginning of the mini-maneuver.


Running Analyses 471
Running Full-Vehicle Analyses

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:

Specifying a Control Mode


If you set Control Method to open, you must also define the Control Mode as either absolute or relative. If
Control Method is not open, Control Mode is always absolute. With all open-loop maneuvers, the value of
the preceding mini maneuver is used as the starting point for the next mini-maneuver. This is irrespective of
whether you set Control Mode to relative or absolute. For example, your vehicle is driving on a skid pad at
30 mph, with 20o of steering wheel, when the first mini-maneuver is finished. The steering-wheel angle for
the next mini maneuver will be 20o.
You can set Control Mode for the following open-loop control types:
472 Adams Car
Running Full-Vehicle Analyses

 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

Then, the end condition is satisfied if:


5 - 0.1 < Lateral acceleration < 5 + 0.1
474 Adams Car
Running Full-Vehicle Analyses
Running Analyses 475
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

Type Quantity that is measured. Can be:

 curvature - Curvature of the vehicle trajectory


 distance - Total distance traveled by the vehicle during a mini-maneuver
 engine_speed - Angular velocity of the engine crankshaft in number of
revolutions per minute (rpm)
 lat_accel - Vehicle lateral acceleration
 lat_dis - Vehicle lateral displacement with respect to the global reference system
 lat_velocity - Vehicle lateral velocity
 loc_accel - Vehicle longitudinal acceleration
 lon_dis- Vehicle longitudinal displacement with respect to the global reference
system.
 pitch_angle - Angular displacement about the vehicle's lateral axis
 pitch_rate - Time derivative of pitch angle
 rack_tra_vel - Time derivative of rack displacement
 rack_travel - Displacement in the steering rack joint
 radius - Radius of vehicle trajectory
 roll_angle - Angular displacement about the vehicle's longitudinal axis
 roll_rate - Time derivative of vehicle roll angle
 side_slip_ang - Angle between the ground-plane projections of the vehicle's
longitudinal axis and its velocity vector
 stee_ang_vel - Time derivative of steering angle
 steering ang - Angular displacement in the steering-wheel joint
 time - Simulation time
 user_defined - Allows you to create your own user-defined condition sensor.
In the .xml event file, the dcf:DcfEndCondition -> userString holds the name
of the condition sensor.
 velocity - Vehicle longitudinal velocity
 vert_accel - Vertical acceleration of driver reference frame with respect to origo
marker
 vert_dis - Vehicle vertical displacement with respect to the global reference
system
 vert_velocity - Vehicle vertical velocity with respect to the global reference
system
 yaw_accel - Angular acceleration about the vehicle's vertical axis
 yaw_angle - Angular displacement about the vehicle's vertical axis
 yaw_rate - Angular velocity about the vehicle's vertical axis
Running Analyses 477
Running Full-Vehicle Analyses

Test  == - Equal to trigger value


 >> - Greater than the trigger value
 << - Less than the trigger value
 |==| - Absolute type value is equal to the trigger value
 |<<| - Absolute type value is less than the trigger value
 |>>| - Absolute type value is greater than the trigger value
Trigger Value The value against which the measure is tested to determine if the end condition is
satisfied. Except for ENGINE_SPEED, which uses RPMs, you must specify the value
in modeling units as defined in the event file.
Error The allowed difference between measure and value that still satisfies the test. Error must
be positive and be specified in modeling units as defined in the event file (except
engine_speed, which is in RPMs). For example, if the cells of the table are:
Filter Time The test must be satisfied continuously over the filter time to satisfy the end condition.
filter time must be positive.
Delay Time Once the end condition is satisfied, delay the end of the mini-maneuver by delay time.
Group Name You specify a name to group conditions together. All conditions having the same group
name must be satisfied simultaneously to end a mini-maneuver. For example, you might
specify two end conditions:

 Longitudinal velocity equal to 20 m/s


 Lateral acceleration greater than 5 m/s/s Then you place the specified end
conditions in the group mygroup. To end the mini-maneuver, the longitudinal
velocity must be 20 m/s and the lateral acceleration must be greater than 5
m/s/s.
Condition Type Select a condition type:

 abort - When met, it causes the simulation to stop.


 end - When met, it causes the simulation to proceed to the next mini-
maneuver, if one is defined.
 info - Not yet implemented
 warning - Not yet implemented

Specifying Linear Analyses


Linear Analyses specify linearization type analyses that should be performed at the end of the mini-maneuver.
The event file supports any number of linear analyses of each of the four available types and all of the available
options and arguments that are documented in the Adams Solver documentation.
The Linear tab of the Event Builder shows one linear analysis at a time in Property Editor mode. To add linear
analyses or view other defined linear analyses, click the button to the left of the linear analysis name to enter
Table Editor mode. In Table Editor mode, you can see all defined linear analyses, add new linear analyses,
478 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:

 Eigen Solution - calculate eigenvalues and eigenvectors


 ABCD Matrices - export state matrices
 MKB Matrices - export MKB matrices*
 BDF Export - export to Nastran*
Include Damping Dissipative effects can be included or excluded for Eigen Solution and MKB
Matrices*
Include Vectors Eigen Solution can calculate eigenvalues only, or both eigenvalues and
eigenvectors.
Output Filename Specify file name/prefix for ABCD Matrices, MKB Matrices* and BDF Export*
Format Specify exported file format for ABCD Matrices and MKB Matrices*, can be:

 Matlab - produce files suitable for Matlab import.


 MatrixX - produce files suitable for MatrixX import.
BDF Type Specify type of BDF export, 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:

 Modes - select by mode number


 Frequency - select by natural frequency*
Use View Names Tables can identify model elements using only Solver ids, or using Solver ids and
View names*
Precision Specify number of significant digits in values in tables*
Start Mode Select modes starting with this mode number
End Mode Select modes ending with this mode number
Start Frequency Select modes with natural frequencies in the range Start Frequency - End
Frequency*
Running Analyses 479
Running Full-Vehicle Analyses

End Frequency (see above)


PINPUT Specify the PINPUT statement to use when exporting ABCD or MKB* Matrices
POUTPUT Specify the POUTPUT statement to use when exporting ABCD or MKB*
Matrices
PSTATE* Specify the PSTATE statement to use for Eigen Solution or when exporting
ABCD or MKB* Matrices
RM* Specify the MARKER statement to use for Eigen Solution or when exporting
ABCD or MKB* Matrices
Config. File* Specify the name of a configuration file to use for BDF Export

* - these arguments are supported only in the C++ solver.

Referencing .dcd Files


You can reference driver control data (.dcd) files through XML event files to specify data for the method of
control of the vehicle. When referencing .dcd files, event files can obtain two types of data:
 Open-loop data - Includes steering-wheel angle, throttle position, brake pressure, gear, and clutch
position tabulated against time or distance traveled.
 Closed-loop data - Uses data from the dcd file to fix the vehicle path and speed for a mini-
maneuver. Examples of closed-loop data are the vehicle position {x, y} versus time (t) or path {x, y}
versus distance traveled (s). Closed-loop data can also include vehicle speed and lateral acceleration
which the Machine Control integrates to determine the desired vehicle path and speed.
You reference .dcd files in your event files by selecting Machine for Steering/Throttle and Braking and
browsing your databases for dcd files in the File Name text box. That is, using the file option for Machine
Control means that you want to obtain control data from a .dcd file.

Example Event Files


In Adams Car, XML became the default file format for Driving Machine analyses. Although Adams Car still
supports driver control files (.dcf ), it now automatically converts them to .xml. The .xml files are referred to
as event files. Although the contents of the two files types look different, they contain the same event
information. You work with .xml files through the Event Builder.
In the shared Adams Car database, we provide files in both .dcf and .xml format. These files are stored in the
driver_controls.tbl directory/table.

Static and Quasi-Static Analyses


Static and Quasi-static analyses find dynamic equilibrium solutions for your full vehicle at increasing,
successive values of lateral and/or longitudinal acceleration. Static and Quasi-static analyses, in contrast to
open-loop and closed-loop analyses, do not include transient effects and solve very quickly. For example, in
a quasi-static analysis, a change in lateral acceleration from 0.1g to 0.5g does not show the lateral acceleration
or yaw rate overshoot that a similar open-loop and closed-loop analysis might show.
480 Adams Car
Running Full-Vehicle Analyses

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

Quasi-Static Constant-Radius Cornering Analysis


You perform a constant radius cornering analysis to evaluate your full vehicle's understeer and oversteer
characteristics. The constant radius cornering analysis holds the turn radius constant and varies the vehicle
velocity to produce increasing amounts of lateral acceleration.
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, such as gear shifting.
 Can be useful when exploring the limit handling characteristics of the vehicle due to a combination
of both the longitudinal and lateral acceleration.
 Differs from the constant-velocity cornering analysis in that the turn radius is fixed and the longitudinal
velocity varies.
A CONSUB controls this analysis. For more information on CONSUB, see Welcome to Adams Solver
Subroutines.
You can, for example, use the plot configuration file, mdi_fva_ssc.plt, in the shared Adams Car database to
generate the plots that are typically of interest for this analysis. Otherwise, in Adams PostProcessor, you can
create your own plots by selecting the desired requests and components.

To set up a constant-radius cornering analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Static and Quasi-Static
Maneuvers, and then select Constant-Radius Cornering.
2. Enter the necessary parameters as explained in the dialog box help for Quasi-Static Constant Radius
Cornering.
3. Select OK.

Quasi-Static Constant-Velocity Cornering Analysis


You perform a constant velocity cornering analysis to evaluate your full vehicle's understeer and oversteer
characteristics. The constant velocity cornering analysis holds the vehicle velocity constant and varies the turn
radius to produce increasing amounts of lateral acceleration. The input parameters for this analysis are similar
to the steady-state cornering analysis except that you specify the vehicle longitudinal velocity instead of the
turn radius.
Running Analyses 481
Running Full-Vehicle Analyses

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.

To set up a constant-velocity cornering analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Static and Quasi-Static
Maneuvers, and then select Constant-Velocity Cornering.
2. Enter the necessary parameters as explained in the dialog box help for Quasi-Static Constant Velocity
Cornering.
3. Select OK.

Quasi-Static Force-Moment Analysis


You perform a force-moment analysis to evaluate the stability and handling characteristics of your vehicle
model. During the analysis, Adams Car drives the vehicle at constant longitudinal speed and performs a series
of analyses at different side-slip angles and steer angles. The analysis:
 Represents a typical test in which the vehicle is constrained on a model flat-belt tire tester.
 Is based on the assumption that most of the stability and control characteristics can be obtained
from a study of the steady-state force and moments acting on the vehicle.
You can present the results of a quasi-static force-moment analysis in tabular form or as diagrams and plots
representing the computed forces and moments from the simulated test. The diagram created from the forces
and moments acting on the vehicle is a portrait of the vehicle-maneuvering potential for specific operating
conditions.
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.
482 Adams Car
Running Full-Vehicle Analyses

A CONSUB controls this analysis. For more information on CONSUB, see Welcome to Adams Solver
Subroutines.

To set up a force-moment analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Static and Quasi-Static
Maneuvers, and then select Force-Moment Method.
2. Enter the necessary parameters as explained in the dialog box help for Quasi-Static Force-Moment Method.
3. Select OK.

Quasi-Static Straight-Line Acceleration Analysis


A quasi-static straight-line acceleration analysis uses the static solver to perform multiple static analyses with
each increasing time step representing an increase in straight line acceleration/deceleration. This technique
uses a force-moment method to balance the static forces to 0 at each time step. This method provides a
quicker solution than the dynamic analysis but doesn't include transient effects.
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, and choose the
deceleration method of "throttle off", only engine braking will be used to control the deceleration. If you
choose "braking", the throttle will be used initially until the additional power of the brakes is required to
control deceleration.

To set up a straight-line acceleration analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Static and Quasi-Static
Maneuvers, and then select Straight-Line Acceleration.
2. Enter the necessary parameters as explained in the dialog box help for Quasi-Static Straight-Line
Acceleration.
3. Select OK.

Static Equilibrium Analysis


A static equilibrium analysis uses the static solver to perform a single static analysis at one of several possible
vehicle states.
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 initially until the additional power of the brakes is required to control deceleration.

To set up a static equilibrium analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Static and Quasi-Static
Maneuvers, and then select Static Equilibrium.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Static
Equilibrium.
Running Analyses 483
Running Full-Vehicle Analyses

3. Select OK.

Adams SmartDriver Analysis


The Adams SmartDriver analysis lets you run an analysis described in an existing event file (.xml). You can
drive the vehicle at the acceleration limits or some percentage of those limits.

To set up an Adams SmartDriver analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, and then select Adams SmartDriver.
2. Press F1 and then follow the instructions in the dialog box help for Full-Vehicle Analysis: SmartDriver.
3. Select OK.

Static Vehicle Set-Up Analysis


The Static Vehicle Set-Up analysis lets you set realistic suspension alignment, cross-weight ride height and
wheel rate adjustment.

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.

3. Ride Height Adjustment


Ride height adjustment can be performed only if the vehicle uses supported spring types (ac_spring,
ac_linear_spring, ac_airspring, ac_truck_airspring) at all four corners. The user specifies a desired ride height
at each corner, along with the maximum number of iterations, the ride height tolerance, and the spring
preload scale factor. Note that with airsprings, they must be set to a fixed trim/preload. Automatic trim
loading would interfere with ride height adjustment.
To achieve desired ride height, the user has to pre-define the four corner markers that will be used to measure
ride height relative to the ground. The desired heights of these markers are entered and adjustment is
performed in a loop by modifying spring preloads until the sum of the ride height errors is less than the corner
height tolerance.
Since only three of the four spring preloads need to be varied to achieve proper ride height, the user has the
option of specifying which spring is ignored (or which two are averaged).

4. Wheel Rate Adjustment


Wheel rate adjustment can be performed only if the vehicle uses supported spring types (ac_spring,
ac_airspring, ac_truck_airspring) at all four corners. To achieve the desired wheel rate, adjustment is
performed in a loop by modifying spring scale factors until the sum of the wheel rate errors is less than the
wheel rate tolerance.
Since only three of the four spring scale factors need to be varied to achieve proper wheel rate, the user has
the option of specifying which spring is ignored (or which two are averaged).

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.

To set up a Static Vehicle Set-Up analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, and then select Vehicle Set-Up and Static
Vehicle Set-Up.
2. Press F1 and then follow the instructions in the dialog box help for Full-Vehicle Analysis: Static Vehicle
Set-Up.
3. Select OK.

Centerline spacing for SmartDriver simulations


When running a Full Vehicle - SmartDriver simulation one can opt for the vehicle to follow the centerline of
the road when selecting the Course Type '3D Spline, CRG or RGR Road'.
Running Analyses 485
Running Full-Vehicle Analyses

The spacing of the centerline points depends on the type of road:


1. Road files with extension .crg or .rgr:
For a CRG type of road (extension .crg) and RGR road with extension .rgr, the spacing in between
the points is 1 meter.
2. Road files with extension .rdf:
3D Spline roads or rdf files referring to a .rgr file will take the points for the centerline as defined in
the [DATA_POINTS] section.
486 Adams Car
Running Full-Vehicle Analyses

Virtual Test Drive


The "VIRES Virtual Test Drive" application (https://vires.com) is used for the development and testing of
advanced driver assistance and active safety systems, leading to solutions for automated driving.
This Adams Full Vehicle simulation dialog feature allows to prepare and develop an Adams Car full vehicle
for use as a plant in the VTD simulation environment. First a full vehicle model needs to be assembled that
can perform vehicle analysis maneuvers in real time.
The solver settings for the 'Adams as a Plant' simulation in VTD are important:
 The Fixed Time Step Solver needs to be used (with C++ Solver only).
 A basic interfacing frequency of 100 Hz is advised, implicating that the time step is 0.01 sec.
 By increasing the hratio factor, the model can run smaller solver steps.
 SMP (multi-threading) is supported.
No selection for the road is required because VTD will provide Adams with the road geometry on-line.
Currently tire models can use the 'one point of contact' interface only.
In addition VTD will provide the Adams model of the steering, braking, throttle and gear (forward or
backward) input; Adams will return the position and velocities of the vehicle body and wheels.
The model items and user subroutines required for the interface to VTD are part of the SDI Testrig Design
Option. (Driving Machine State). When submitting a simulation for VTD, there is no need to change the
Design Option, it will be set by the simulation submit macro.
Running Analyses 487
Running Full-Vehicle Analyses

Two simulation modes are available:


 Interactive: Adams Car will prepare the model files and then start a simulation. In this mode the
user has to start VTD manually before the Adams simulation is started. VTD should use the correct
settings in order to interface with Adams Solver. VTD may run at a different platform than Adams
Solver. The connection in between Adams and VTD is using the UPD RDB interface of VTD.
 Files_only: Adams Car will produce an FMU that can be imported into VTD.
488 Adams Car
Running Full-Vehicle Analyses

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.

Suspension Parameter Measurement Machine (SPMM) Analysis


You perform a SPMM analysis to measure Kinematic and Compliance (K&C) characteristics of vehicle due
to suspension and steering system geometries, and compliances due to suspension springs, anti-roll bars,
elastomeric bushes and component deformations.
SPMM applies known displacement, force and torque inputs and measure the quasi-statics suspension
characteristics that are important to ride and handling.
By performing SPMM tests, you can make design changes to achieve performance targets and obtain
important vehicle suspension parameters.
In Suspension Parameter Measurement Machine (SPMM), you can do below sub-events:
 Vertical Motion
 Roll Motion
 Steer Motion
 Compliance
 Aligning Torque

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.

Figure 16 SPMM Testrig

To set up a Suspension Parameter Measurement Machine analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Kinematic and Compliance, and
then select Suspension Parameter Measurement Machine.
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Suspension
Parameter Measurement Machine.
3. Select OK.

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

To view standard SPMM plots:


SPMM event creates plot configuration files (.plt) in your working directory with combination of output
prefix and sub-events name (For example, '<output_prefix >_vertical_spmm.plt' for 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 SPMM sub-events. The creation of plot configuration files per
sub-event is as follows:

Sub-Event Plot Configuration File


Vertical <output_prefix>_vertical_spmm.plt
Roll < output_prefix >_roll_spmm.plt
Steer < output_prefix >_steer_spmm.plt
Compliance:
Longitudinal acceleration with brake torque < output_prefix >_long_<cp/wc>_accel_spmm.plt
off (contact_patch / wheel center)
Longitudinal braking with brake torque on < output_prefix >_long_<cp/wc>_brake_spmm.plt
(contact_patch / wheel center)
Lateral Parallel without trail < output_prefix >_lat_par_spmm.plt
Lateral Parallel with trail < output_prefix >_lat_par_trail_<trail_value>_spmm.plt
Lateral Opposite < output_prefix >_lat_opp_spmm.plt
Aligning:
Aligning Parallel < output_prefix >_par_aligning_spmm.plt
Aligning Opposite < output_prefix >_opp_aligning_spmm.plt

To view plots in the postprocessor, import "< output_prefix >_spmm_import.cmd".

To import each .plt file separately follow following steps:


1. Go to Postprocessing Window.
2. From the File menu, point to Import and then select Plot Config File
3. Enter the necessary parameters as explained in help for Creating Plots Using a Plot Configuration File.
4. Select OK.

To generate and view standard SPMM Report:


The report for SPMM 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.
The SPMM report displays detailed information about vehicle K&C characteristics of vehicle.
When you simulate Suspension Parameter Measurement Machine event, the report file with extension
<test_name>_spmm_rep.dat file will be generated in your working directory.
Running Analyses 491
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.

Roll stiffness is calculated as:

Roll Stiffness = (( Σwheel rate * track2 ) / 4) * dtor


Roll Steer (Per Degree)* Change in toe angle per unit change in roll angle
Roll Steer Change in toe angle per unit change in vertical displacement of the wheel
center
Roll Camber w.r.t. Change in wheel inclination angle with respect to chassis per unit change in
Chassis (Per Degree) vehicle roll angle
Roll Camber (Per Change in wheel inclination angle per unit change in vehicle roll angle
Degree)*
Roll Camber The rate of change in wheel inclination angle per unit change in vertical
displacement of the wheel center
Steering Wheel Torque vs Change in steering wheel torque per unit change in roll angle
Roll Angle
STEER TEST:
Rack Travel @ steering Value of maximum rack travel reached at given steering input
input
Max Steer Angle Maximum steer angle of inner and outer wheel at given steering input in left
@steering input (Left turn
Turn)
Max Steer Angle Maximum steer angle of inner and outer wheel at given steering input in right
@steering input (Right turn
Turn)
Full lock Angle Maximum steer angle of inner and outer wheel at given parameter
@pvs_max_rack_disp pvs_max_rack_displacement in left turn. This will be displayed if rack travel
(Left Turn) reaches specified rack travel in parameter variable
pvs_max_rack_displacement.
494 Adams Car
Running Full-Vehicle Analyses

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

To view SPMM Animations:


SPMM animation can be viewed as the continuous animation or a separate animation for each sub-events.
By default, continuous animation is loaded when you select Review > Animation Controls… after the
simulation. To view any sub-events animation, select the desired analysis in the analysis field of Animation
Controls… dialog box.

To use flexible chassis with SPMM setup:


SPMM supports flexible chassis when created using following methods:
1. In Template Builder: Flexible chassis can be added into default 'rigid_chassis.tpl' or
'rigid_chassis_lt.tpl'. It can be done by making rigid ges_chassis part to a flexible ges_chassis_flex part
and modifying bedplate location hardpoints (hp[lr]_bedplate_front_loc and
hp[lr]_bedplate_rear_loc) to the appropriate interface node location. However, in the case where user
creates chassis template from scratch, user needs to add the hardpoints and input communicators as
defined in the default template.
2. Subsystem level (Standard Interface): Using Adjust > General Part > Rigid to flex user can swap
existing rigid chassis to flex chassis and then modify the bedplate location hardpoints to the desired
location.
3. Assembly level (Standard Interface): Using File > Manage Assemblies > Replace Subsystem user can
replace existing rigid chassis subsystem with the flexible chassis subsystem.
4. Assembly level (Standard Interface): Using Adjust > General Part > Rigid to Flex currently this is not
supported at the assembly level.

To use Engine On/Off and ARB On/Off options:


SPMM sub-events can be simulated with Engine On/Off and ARB On/Off option.
When Engine On/Off option is toggled to 'On' under the sub-events those events will run with additional
events, that is, the first event will run with Engine 'On' and the second will run with Engine 'Off'. During
this process steering boost force is deactivated.
Similarly, when ARB On/Off option is toggled to 'On' under the sub-events. All events will run with ARB
'On', followed by Engine On/Off if that option is selected. After that, only those events will run with ARB
'Off', followed by Engine On/Off if that option is selected. During this process ARB droplink joint/bushing
(whichever is communicated and active) is deactivated.
For Engine On/Off and ARB On/Off to work, you need to add following output communicator to respective
templates as shown in below table.
496 Adams Car
Running Full-Vehicle 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)

Kinematic and Compliance (KnC) Static/Dynamic Analysis


KnC Static and Dynamic analysis is the derivative of SPMM analysis. In KnC analysis vertical and roll
motion actuation are carried out by actuating Wheel part instead of body as in SPMM as shown in following
chart.

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

Figure 17 KnC Testrig

To set up a Kinematic and Compliance analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Kinematic and Compliance, and
then select KnC (Static) or KnC (Dynamic).
2. Enter the necessary parameters as explained in the dialog box help for Full-Vehicle Analysis: Kinematic and
Compliance (Static / Dynamic).
3. Select OK.

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.

To view standard KnC plots


KnC event creates plot configuration files (.plt) in your working directory with combination of output prefix
and sub-events name (for example, '<output_prefix >_vertical_kcse.plt' for static vertical motion sub-event
498 Adams Car
Running Full-Vehicle Analyses

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:

Sub-Event Plot Configuration File


Vertical <output_prefix>_vertical_[d]kcse.plt
Roll < output_prefix >_roll_[d]kcse.plt
Steer < output_prefix >_steer_[d]kcse.plt
Compliance:
Longitudinal acceleration with < output_prefix >_long_<cp/wc>_accel_d]kcse.plt
brake torque off depending upon
powertrain role. For front, rear
and any role, only front, rear and
all wheel brakes are released
respectively. (contact_patch /
wheel center)
Longitudinal braking with brake < output_prefix >_long_<cp/wc>_brake_ [d]kcse.plt
torque on (contact_patch / wheel
center)
Lateral Parallel without trail < output_prefix >_lat_par _[d]kcse.plt
Lateral Parallel with trail < output_prefix >_lat_par_trail_<trail_value>_[d]kcse.plt
Lateral Opposite < output_prefix >_lat_opp_compliance_[d]kcse.plt
Aligning:
Aligning Parallel < output_prefix >_par_aligning_[d]kcse.plt
Aligning Opposite < output_prefix >_opp_aligning_[d]kcse.plt

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

Static Vehicle Characteristics (SVC) Analysis


Static Vehicle Characteristics (SVC) refers to a set of Adams utility subroutines (CONSUB) which compute
Static Vehicle Characteristics (SVC) for automobile or light truck suspensions at static equilibrium. For a full
vehicle, SVC calculates characteristics for the front and rear suspension as well as general vehicle
characteristics such as ground reactions and mass properties. For more details, see Static Vehicle Characteristics
(SVC) help.
A CONSUB controls this analysis. For more information on CONSUB, see Welcome to Adams Solver
Subroutines.

To set up a Static Vehicle Characteristics (SVC) analysis:


1. From the Simulate menu, point to Full-Vehicle Analysis, point to Static and Quasi-Static
Maneuvers and then select Static Vehicle Characteristics.
2. Press F1 and then follow the instructions in the dialog box help for Full-Vehicle Analysis: Static Vehicle
Characteristics.
3. Select OK.

SmartDriver Setting Template


The SmartDriver Setting Template file (basically an .xml event file without events) is used to set default values
for Event files. The default values are used when:
 converting .dcf format Event files to .xml format Event files.
 creating new Event files using the Event Builder.
You can use environment variable MSC_SD_DEFAULT_XML to set the path to a custom SmartDriver Setting
Template file (.smartdriver.xml). If MSC_SD_DEFAULT_XML is not set, the SmartDriver Setting Template file
path search order is as follows:
1. Home directory ($HOME\.smartdriver.xml)
2. \<Adams Installation>\<platform>\ ($topdir\$MDI_CPU\.smartdriver.xml)

Using the Driving Machine


You use the Driving Machine to perform full-vehicle analyses. The Driving Machine drives your virtual vehicle
according to your instructions much like a test driver would drive an actual vehicle. The Driving Machine
steers the vehicle, applies the throttle and brake, and shifts gears (using the clutch). You can instruct the
Driving Machine to switch between open- and closed-loop (Machine Control and SmartDriver) control
during a simulation.
Using open-loop control, the Driving Machine can, for example, input a swept-sinusoid to the steering or
play back recorded steering, throttle, brake, gear, and clutch signals as input to your virtual vehicle. This lets
you use data acquired in real tests as input to your virtual vehicle.
Using Machine Control, which replaced DriverLite, the Driving Machine can, for example, steer a vehicle
around a skid-pad, while gradually increasing speed. You use Machine Control to have the vehicle follow a
500 Adams Car
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

Learn more about the Driving Machine:


 What You Can Do with the Driving Machine
 How You Benefit from Using the Driving Machine
 Steps in Using the Driving Machine
 Creating Paths for Driving Machine
 Data Flow in Driving Machine
 Template Updates
 Limitations to the Driving Machine
502 Adams Car
Using the Driving Machine

What You Can Do with the Driving Machine


Using the Driving Machine, you can:
 Input the vehicle path {x, y} and speed, and use closed-loop, Machine Control, to steer a vehicle
along a path or follow a desired velocity or both (the table, Closed-Loop Data in .dcd Files, lists all
potential inputs).
 Input a variety of open-loop functions, such as swept-sine and impulse, to the steering, throttle, or
brake.
 Input recorded steering, throttle, brake, gear, and clutch signal to your model.
 Stop a simulation, switch controllers, and change output-step size based on reaching a target lateral
acceleration, longitudinal velocity, or distance traveled.
 With the optional Adams SmartDriver closed-loop control, you can specify a desired vehicle
performance level, such as 100% or 50%, and input a path and speed as you would for Machine
Control.

How You Benefit from Using the Driving Machine


When working with the Driving Machine, you have the following benefits:
 You save the time you previously needed to set proper gains for closed-loop controllers. The Driving
Machine incorporates proprietary control algorithms from MSC Software.
 You shorten simulation times by ending simulations based on targets for lateral acceleration,
longitudinal velocity, and distance traveled.
 You gain flexibility in how you input vehicle paths and desired velocity profiles, choosing from
recorded data stored in external files or parametrically generated paths and profiles based on a few
simple inputs.

Steps in Using the Driving Machine


Follow these steps to use the Driving Machine:
1. Assemble a full-vehicle model with the .__MDI_SDI_TESTRIG test rig or open an existing full-vehicle
assembly.
2. Do either of the following:
• Use a predefined analysis (from the Simulate menu, point to Full-Vehicle Analysis, and then
point and select the predefined analysis you want).
• Create your own event file to perform your specific set of simulations (from the Simulate menu,
point to Full-Vehicle Analysis, and then select Event Builder).
Running Analyses 503
Using the Driving Machine

Tips on Creating Paths for Driving Machine


Applies to Machine Control and SmartDriver
The following are tips for creating paths for the Driving Machine.

Remove Excess Noise


The TARGET path used by the steering controller is defined by fitting the path data referenced in the event
file. The TARGET path will pass through every point in the path data.Therefore, any irregularities included
in the path description, such as the noise coming from telemetry data, are seen by the steering controller and
can produce a quickly changing steering input. To minimize noise in the steering torque you may want to
preprocess the path data to remove noise and/or add corner cutting, and then store the resulting path in a
.dcd file.

Path Point Spacing


The suggestion previously described here regarding path spacing no longer applies (as of version 2011), except
if/when the environment variable MSC_SD_USE_SPLINE is set (to zero) to revert to pre-2011 behavior.

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:

Path Translational Path Rotational


Steer Control Input Transformation Transformation
Driver Control Data File (.dcd) X X
Driver Road Data File (.drd) X
Road Data File (.rdf, .xml, .crg, .rgr)
Event (.xml) X X

To override the default behaviour, set environment variable MSC_SD_ALLOW_PATH_TRANSFORM to:


0: forces no transformation
1: forces a transformation to be performed
504 Adams Car
Using the Driving Machine

Data Flow in Driving Machine


When you submit a simulation using the Driving Machine, Adams Car generates an Adams Solver command
file (.acf ), an Adams Solver dataset file (.adm), and an XML event file. The .acf file instructs Adams Car Solver
to read the dataset file and event file (using abgVDM::EventInit CONSUB). It also instructs Adams Car
Solver to perform maneuvers described in the event file (using abgVDM::EventRunAll CONSUB). Adams
Car Solver then provides the standard output files: .msg, .res, .gra, and .out.
The event file (.xml) describes the maneuver you want to perform as a list of mini-maneuvers. The event file
can reference one or more driver control data (.dcd) files. Driver control data files contain either closed-loop
or open-loop data. An example of closed-loop data is vehicle path and speed (the table, Closed-Loop Data in .dcd
Files, lists all potential inputs). Open-loop data are steering, throttle, brake, gear, and/or clutch signals versus
time.
The following figure summarizes the data flow specific to the Driving Machine.
Running Analyses 505
Using the Driving Machine

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.

Limitations of the Driving Machine


The Driving Machine has the following limitations:
 It can only accurately steer a vehicle when positive steer inputs steer the vehicle to the left.
 It can only drive the vehicle within the vehicle's limits of lateral and longitudinal acceleration, and
longitudinal velocity.

Working with Driver Control Data Files (.dcd)


You use driver control data (.dcd) files to specify:
 The closed-loop data, such as path and speed you want a vehicle to follow.
 The open-loop data, which is the steering, throttle, brake, gear, and clutch signals versus time you
want to input to a vehicle.
To use a .dcd file, you must reference it from an event file (.xml).
Driver control data files contain data for use by the Driving Machine. To instruct the Driving Machine to
use the data from a .dcd file, you must reference the file in an event file (.xml). An excerpt from a .xml showing
a reference to a .dcd file looks like the following:
(STEERING)
METHOD = 'OPEN'
CONTROL_TYPE = 'DATA_DRIVEN'
FILE_NAME = 'my_data.dcd'
Driver control data files hold two types of data:
 Open-loop data - Data that is played back as input to the vehicle without concern for how fast or
where the vehicle goes. Such data includes: steering-wheel angle, throttle, brake, gear, and clutch
signals. Examples of open-loop data include steering-wheel angle versus time, and throttle position
versus time.
 Closed-loop data - Data that specifies exactly where and how fast the vehicle should go. An example
of closed-loop data is vehicle x and y position versus time. You can specify closed-loop data in several
forms. For example, curvature and velocity versus distance traveled, or lateral acceleration and
longitudinal acceleration versus time. You specify the type of data using the SPEED_CONTROL
and STEERING_CONTROL arguments in the .dcd file.
506 Adams Car
Using the Driving Machine

Learn about .dcd files:


 Structure of .dcd Files
 Specifying Closed-Loop Data
 Creating .dcd Files
 Example .dcd File

Structure of Event Files


Event files contain the following type of information:
 Name of Event File
 Speed
 Gear Number
 Static Setup
 Gear Shifting Parameters
 Mini-Maneuvers for the Experiment

Name of Event File


When you assign a name to the event file, Adams Car automatically generates a file with extension .xml in
the working directory and updates the Event File text box with the file name you entered.

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.

Structure of .dcd Files


Driver control data (.dcd) files use a TeimOrbit File Format similar to other Adams Car property files. Driver
control data files must contain these data blocks:
 MDI_HEADER block - Identifies the file as a .dcd file and provides version information.
 UNITS block - Identifies the units of the data contained in the .dcd file.
The driver control data file must also contain at least one of two data blocks:
 OPEN_LOOP block - Specifies the steering, throttle, brake, gear, and clutch inputs to the vehicle.
 CLOSED_LOOP block - Specifies the path or the speed of the vehicle, or both.

Note: Driver control data files can contain both open-loop and closed-loop blocks.

Specifying Closed-Loop Data


When reading the following specification you should observe the following rules:
 [ ] = Data block
 ( ) = Sub-block
 { } = Data header
 || = Options, and means OR
 && = And
The nomenclature is:
 lon_vel = Vehicle longitudinal velocity
 lon_acc = Vehicle longitudinal acceleration
 lat_acc = Vehicle lateral acceleration
 distance = Arc-length or distance traveled along the path
 curvature, k=1/radius
 x = X position of vehicle relative to ISO-Earth Axis System
 y = Y position of vehicle relative to ISO-Earth Axis System
 { } = Set of inputs
The following table summarizes the closed-loop data that a .dcd file can contain:
 The columns represent speed-control options from the driver parameters array.
510 Adams Car
Using the Driving Machine

 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.

Closed-Loop Data in .dcd Files

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

Creating .dcd Files


You can use the sample .dcd files that we provide or you can create your own .dcd files.

To create .dcd files:


1. You can use one of three methods to create .dcd files:
• Run a physical or virtual test and record the data that you obtain from the five actuator application
areas.
• In a text editor, modify the sample .dcd files that we provide for you.
• Create a .dcd file using a text editor and following the specifications and format shown in
Specifying Closed-Loop Data and Example .dcd File Architecture.
2. Save the file and reference it when running File-Driven Analyses.

Example .dcd File


The following shows the architecture of a .dcd file and all the options you can set for a .dcd file. It contains
options, logic, and general rules that you must follow when creating a .dcd file.
[MDI_HEADER]
FILE_NAME = filename.dcd
FILE_TYPE = 'dcd'
FILE_VERSION = 1.0 FILE_FORMAT = 'ASCII'
(COMMENTS)
{comment_string}
'Any comment'
Running Analyses 511
Using the Driving Machine

[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.

Example corresponding to $ 2 Case{none,lon_vel}:


.....
[CLOSED_LOOP]
STEERING_CONTROL = 'NONE'
SPEED_CONTROL = 'LON_VEL'
ORDINAL = 'TIME'
(DATA)
512 Adams Car
Using the Driving Machine

{ 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
.....

Example corresponding to $ 7 Case{curvature,lon_vel}:


.....
[CLOSED_LOOP]
STEERING_CONTROL = 'CURVATURE'
SPEED_CONTROL = 'LON_VEL'
ORDINAL = 'DISTANCE'
(DATA)
{ DISTANCE, CURVATURE, LON_VEL }
0.0 0.000 27.777
1.0 0.002 27.777
2.0 0.004 27.777
3.0 0.006 27.776
4.0 0.008 27.775
5.0 0.010 27.774
6.0 0.010 27.773
7.0 0.010 27.774
8.0 0.010 27.774
9.0 0.010 27.774
10.0 0.010 27.774
11.0 0.010 27.774
12.0 0.010 27.774
13.0 0.010 27.774

Machine Control Basics


Machine Control is a vehicle controller that you can use to simulate the control actions of a driver. You
simulate the actions of a driver by operating the steering, pedals, and gears of a simulated vehicle.
Machine Control determines control actions such that a simulated vehicle can follow meaningful
combinations of a specified path along a 2D or 3D road, a specified curvature, a specified lateral acceleration,
a specified longitudinal velocity and a specified longitudinal acceleration. Machine Control's control action
combines a reference trajectory planner and a model-predictive controller (MPC), sometimes known as a
feed-forward plus feedback controller.
At the trajectory planning stage, your targets for the vehicle and driver behavior and some basic parameters
describing the characteristics of the simulated vehicle are taken into account, and a realistic trajectory that
most closely satisfies your targets is identified (for example, path, speed, and acceleration).
Machine Control uses simple mathematical models of vehicle dynamics, such as a bicycle model, a particle
model, and a kinematic drivetrain model, to estimate the necessary control actions, such as the steering angle
and throttle position. Machine Control applies these estimated controls as inputs to the simulated vehicle in
a feed-forward manner, such that approximately correct control actions are applied without delay.
Running Analyses 513
Using the Driving Machine

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

Feed-Forward Lateral Control


Global axes, x-y, local axes, X-Y,

vehicle path and global yaw angle, θ

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

(X,Y) Global position of the vehicle


(VX, VY) Velocities of the vehicle relative to vehicle-fixed axes
θ Global heading of the vehicle

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

Simplification of a vehicle to the bicycle model

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.

Feed-Forward Longitudinal Control


To control either the velocity or acceleration of the simulated vehicle such that they match the reference, a
particle model, a simple aerodynamic drag model, and a kinematic drivetrain model are used to predict the
relationship between the wheel torque and the acceleration response of the vehicle.
The force or torque required to accelerate or decelerate the vehicle is expressed as a wheel torque, that the
engine and brakes must apply to one or more wheels. The magnitude of the required torque is computed
from the vehicle drag, inertia and (optionally) tire rolling resistance.
Tw = Tinertial + Taero-drag+ Trolling-resistance
where:
∂V ref
T inertial = m e ⋅ ------------- ⋅ R eq = m e ⋅ a ref ⋅ R eq
∂t

1 2
T aero – drag = --- ρ A C D AVref R eq
2
Running Analyses 517
Using the Driving Machine

where:

Tw Total net wheel torque required to follow the reference


Tinertial Component that is required to accelerate the vehicle inertia
Taero-drag Required to overcome aerodynamic resistance
me Mass of the vehicle
aref Target (reference) vehicle acceleration
Vref Target (reference) vehicle speed
Req Average rolling radius of the wheels
ρA Density of air
CD Nominal drag coefficient of the vehicle
A Frontal area of the vehicle

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:

g Current gear selection


g' Revised gear selection
w min Minimum engine speed allowed before a downshift is triggered
w max Maximum engine speed allowed before an up-shift is triggered
g min Highest available gear, or the number of available gears

Note: Driving Machine will not shift into neutral.


518 Adams Car
Using the Driving Machine

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.

Longitudinal Trajectory Planning


The longitudinal trajectory planning essentially consists of constructing either a target velocity against
distance traveled along the track centerline, or a target acceleration against distance traveled, according to
your description of the target (for example, acceleration against distance traveled, velocity against time).

Feedback Control

Yaw Rate Feedback


The yaw rate feedback component of the controller corrects for the difference between the yaw rate response
of the simulated vehicle and that of the bicycle model. Errors between the yaw rate reference and the yaw rate
of the simulated vehicle are quickly corrected, such that the simulated vehicle follows the intended trajectory
as closely as possible, even if the feed-forward control identified from the bicycle model is significantly in
error.
The yaw rate error is determined by considering the curvature that would result if the current yaw rate were
a steady-state value, and is corrected using a feedback controller, whose output is also fed into the steering
angle.
Yaw rate feedback can be used when following a specified path or specified curvature.
520 Adams Car
Using the Driving Machine

Lateral Displacement Feedback (Path Distance Compensation)


The connecting contour approach does not include any term to correct for steady-state lateral displacement
error. This is preferred in most situations, because the resulting control actions tend to be more realistic and
robustly stable. Once the vehicle is close to the target path, an additional controller acting on the distance L0
(path_distance) adjusts the lateral displacement of the vehicle:
t

δ LDC = K LDC ⋅  f LDC ⋅ L 0 dt


0
where fLDC is a flag indicating whether the lateral displacement controller is activated, that is whether the
lateral displacement error Lo is small:

f LDC = step5 ( abs ( L 0 ), L 0 crit, 1.0, a LDC ⋅ L 0crit, 0.0 )


Note that in the above,
 Positive Lo indicates a vehicle to the left of the target path, requiring a positive steering correction.
 KLDC defaults to 1.0 and can be modified by setting MSC_SD_PDC_I_GAIN to the desired value.
 aLDC defaults to 1.0 and can be modified by setting MSC_SD_PDC_ROLL_OFF_RATIO to a value
greater than or equal to 1.0
 L0crit defaults to 0.1m and can be modified by setting pathDistanceCompensationTolerance
in the event file or in the Trajectory Planning tab of the Event Builder.

Longitudinal Velocity Feedback


Errors in longitudinal velocity are compensated using a PID controller:

where the velocity error is:


Ve = Vref(s) - Vactual
where:

s Distance along the reference path


Vref(s) Reference velocity
Vactual = Vx Longitudinal component of the vehicle velocity
Running Analyses 521
Using the Driving Machine

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:

where aw = 0 when saturation of the available torque is detected, aw = 1 otherwise.

Computation of Controls

Summation of Feed-Forward and Feedback Terms


Simple summation of the feed-forward and feedback terms gives the total demand from the lateral and
longitudinal controllers (steer angle and net wheel torque):

Mapping Net Wheel Torque Demand to Control Actions


Once the required total net wheel torque, Tw has been estimated, basic knowledge of the brake system and
driveline are used to identify the necessary control actions (throttle and brake) that must be applied, such that
the vehicle delivers the required net wheel torque.
The range of available net wheel torque is related to the available engine torque and the gearing of the vehicle.
Neglecting driveline inertia, the ratio of the gearbox and the differential defines the relationship between the
net wheel torque (Tw), and the engine torque (Te), at any instant:

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:

we Current engine speed (supplied as an input to Machine Control)


Minimum engine output torque (from the user engine map)
Maximum engine output torque (from the user engine map)
Rd Mean differential (final drive) ratio (from the basic vehicle knowledge)
Rg Gearbox ratio (from the basic vehicle knowledge)

The maximum brake torque, TB, is assumed to be constant.

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).

To define these limits, you can do either of the following:


 Supply a detailed nonlinear engine map, relating throttle to engine torque,
Running Analyses 523
Using the Driving Machine

(therefore, adding a third dimension to the figure above)


 Supply only the maximum and minimum engine torques,

and choose Machine Control to employ a linear model of throttle response:

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

Control Modulation During Gearshift and Wheel-lift Events

Throttle and clutch modulation during gear-shifting


During a gear-change, the control actuation is open-loop, except for the optional closed-loop rpm control as
the clutch is re-engaged. In the following plots, which show the form of the control actions, the origin of the
time base is set to be the instant of triggering the gearshift event (see Gear Shifting).
The action of the clutch is determined, and the throttle signal, computed by the feedback and feed-forward
controllers, is modulated according to the following parameters:
 Gear change time (not the time of the whole event, but the time for which the clutch is not fully
engaged)
 Clutch raise and fall time
526 Adams Car
Using the Driving Machine

 Throttle raise and fall time


 DT1 (the delay between clutch disengagement and throttle release)
 DT2 (the delay between that start of clutch re-engagement and start of throttle reapplication)
The following plot shows the influence of the parameters DT1 and DT2:

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 clutch raise time:


Running Analyses 529
Using the Driving Machine

 Changing clutch fall time:


530 Adams Car
Using the Driving Machine

 Changing throttle raise time:


Running Analyses 531
Using the Driving Machine

 Changing throttle fall time:


532 Adams Car
Using the Driving Machine

 Changing DT1:
Running Analyses 533
Using the Driving Machine

 Changing DT2:
534 Adams Car
Using the Driving Machine

RPM control during clutch re-engagement


During a gear change, between the time when the new gear is selected and the clutch is fully engaged, the
engine RPM we can optionally be controlled in a feedback sense, by another classical PID controller with
anti-windup. The error on which this controller acts is:
werror = we - wt
where wt is the transmission RPM with which the engine must be synchronized to avoid jerk when the clutch
is re-engaged.
This controller acts on the throttle input only.
Running Analyses 535
Controlling Analysis Output Files

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.

Controlling Analysis Output Files


Your template-based product lets you control the type and content of files an analysis outputs. You can specify
whether an analysis outputs a graphics file or results file. Graphics files contain time-dependent data
describing the position and orientation of each part in the model. Results files contain a basic set of state
variable information that Adams Solver calculates during a simulation.
Your template-based product automatically reads the files that an analysis outputs.
536 Adams Car
Controlling Analyses Using CONSUBs

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.

To specify analysis output files:


1. From the Settings menu, point to Solver, and then select Output Files.
The Output Files dialog box appears.
2. Select the types of files you want to output.
3. Select OK.

Controlling Analyses Using CONSUBs


Adams Car makes extensive use of the CONTROL command and associated CONSUB user subroutines to
perform specific analysis tasks in Adams Solver. These include moving suspension models from the design
position to full jounce while suppressing output and running quasi-static steady-state analyses like constant
radius cornering. If you customize Adams Car or if you want to better understand the contents of the Adams
Command Files (.acf ) that Adams Car writes, then the table below describing the purpose of these
CONSUBS along with the links to further documentation of the input parameters, will be of use to you.

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

See Move Suspension to Initial Position.


1010 Fixed Body Equilibrium. This is also know as a "settle" analysis.
1020 Static Steady-State Straight Line Equilibrium and Static Steady State Acceleration/Braking. Note in
Adams Car the auxiliary column joint is not used.
1021 Quasi-Static Steady-State Straight Line Acceleration/Braking Equilibrium. This sweeps the longitudinal
acceleration between 0 and an ending value.
1030 Static Steady-State Cornering Equilibrium
1031 Quasi-Static Steady-State Cornering Equilibrium
Running Analyses 537
Running Component Analyses

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

See Controlling Full-Vehicle Analyses for more information.

Running Component Analyses

Tire Test Rig


The Tire Test Rig application offers the possibility to analyze specific tire responses in a test rig with a single
tire under any conditions with any excitations. Tire load or wheel axle height can be defined, as well as the
tire forward velocity, rotational velocity, steering and camber angle. The roads can be flat or provided with a
cleat, can be fixed to ground and can be moving according to the user's specification.

Starting the Tire Test Rig in Adams Car:


1. Select Simulate → Component Analysis → Tire Testrig. This will open the Tire Testrig dialog box
as shown below.
538 Adams Car
Running Component Analyses

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.

Tire Test Rig Inputs


The Test Rig different tab’s and their respective options are explained below:
540 Adams Car
Running Component Analyses

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

Input Options Explanation


Road Type flat_road A 2D flat road will be used
flat_with_cleat A 2D flat road with a cleat (plank) positioned at a location (Time
to Cleat) x (Initial long. Velocity) is used. For the Initial long.
Velocity definition, see the Kinematics tab.

The 'Height', 'Length' and the 'Angle' of the cleat can be


specified. The 'Angle' is the angle in between the plank's x-axis
with the road's x-axis.
drum_with_cleat A 2D drum road with a cleat (plank) positioned at a location
(Time to Cleat) x (Initial long. Velocity) is used. For the Initial
long. Velocity definition, see the Kinematics tab.

The 'Height', 'Length' and the 'Angle' of the cleat can be


specified. The 'Angle' is the angle in between the plank's x-axis
with the road's x-axis.
user_defined Any Adams road property file can be selected
Road ground The road will be fixed to ground, no movements of the road.
Movement cambered_road In the 'Road Motion' cell an Adams (Motion displacement)
function expression can be defined to specify a rotational
movement of the road around the Test Rig's x-axis. The rotation
axis of the camber motion is located at zero road height.
forward_moving_road In the 'Road Motion' cell an Adams (Motion displacement)
function expression can be defined to specify a forward
movement of the road along the Test Rig's x-axis.
lateral_moving_road In the 'Road Motion' cell an Adams (Motion displacement)
function expression can be defined to specify a lateral movement
of the road along the Test Rig's y-axis.
upward_moving_road In the 'Road Motion' cell an Adams (Motion displacement)
function expression can be defined to specify an upward
movement of the road along the Test Rig's z-axis.
542 Adams Car
Running Component Analyses

3. Kinematics

Input Options Explanation


Initial. Long. - The initial forward velocity of the wheel with respect to ground at the
Velocity start of the simulation
Tire Radius - The tire unloaded radius, required to position the wheel exact at the
tire radius distance above the road at the beginning of the simulation.

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

Input Options Explanation


Wheel Spin free_rolling No rotational motion will be applied to the wheel (free rolling).
Motion long_slip_sweep A rotational motion will be applied to the wheel starting at the
negative 'Longitudinal Slip Sweep Amplitude' value towards the
positive 'Longitudinal Slip Sweep Amplitude' at the end of the
simulation.

The slip value is based on the 'Initial Long. Velocity' and the 'Tire
Radius'.

Note: This is true only when the 'Constant Velocity' in the


Vertical/Longitudinal tab is equal to the 'Initial Long. Velocity'.
Small offsets of the Slip Sweep amplitude may occur due to
differences in loaded and effective radius modeling in the
tire model.
disp_motion A rotational displacement motion that is applied to the wheel can be
defined at the right of the drop down box.
vel_motion A rotational velocity motion that is applied to the wheel can be defined
at the right of the drop down box.

4. Vertical/Longitudinal
544 Adams Car
Running Component Analyses

Input Options Explanation


Vertical force A vertical load/force expression, for a vertical force on the wheel center,
can be defined in the cell at the right of this drop down box. For a
constant vertical load value the 'Static Load' input box can be used.

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

Input Options Explanation


Slip Angle sweep A sine rotational motion is applied along the vertical axis of the wheel
(at the wheel center). A static steer angle and the amplitude of the
sweep can be specified. One complete sine period will be performed
over the duration of the simulation.
user_function An Adams expression can be specified for the rotational motion of the
wheel around the vertical axis.
Inclination sweep A sine rotational motion is applied along the longitudinal axis (x-axis)
of the wheel (at the wheel center). A static steer angle and the
amplitude of the sweep can be specified. One complete sine period will
be performed over the duration of the simulation.
user_function An Adams expression can be specified for the rotational motion of the
wheel around the longitudinal axis.

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

Input Options Explanation


Vertical - The preload force of the spring in between the wheel center and the ground
Preload
Stiffness - The stiffness rate of the spring in between the wheel center and the ground
Damping - The damping rate of the spring in between the wheel center and the ground

Tire Test Rig Units


User can select and set the preferred unites for the Test Rig inputs by selecting Settings → Units from the
Tire Testrig dialog box.
Running Analyses 547
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

Running Tire Test Rig Parallel Simulations


For increasing the test rig response, the tire test rig simulations can be run in parallel mode. When clicking
on Settings - Solver Settings, one can specify the maximum parallel simulations.

Tire Test Rig PPT plots


When all tire testrig simulations have been finished, they will be loaded into the Adams Postprocessor and a
set of plots will be created according to the default tire_testrig.plt file. The user may define his own specific
set of plots by selecting his own plot file in the Settings → Plot File as shown below.

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

Running the Tire Test Rig in batch


When creating a set of tire testrig simulations and saving the database with ‘Save’ or ‘Save As’, the set of
simulations will be saved in .xml format.

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_*")))

Output of Full Vehicle Analyses


Adams Car outputs a default or selected subset of the following result sets for all full vehicle analyses:
 Driver Demands
 SSE Outputs
 Driving Machine Monitor
 Driving Machine Longitudinal
 Driving Machine Path
 Vehicle Mass Properties
 Corner Heights
The descriptions are formatted as follows:

Result Set Name


Request Name: request description
Component Name component description

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

driver_demands: Driver Demands throttle/brake/gear/clutch


throttle:

brake:
gear_position:
Running Analyses 551
Output of Full Vehicle Analyses

clutch:

steering_motion_demands: Steering Demands steering_angle/steering_rack_disp


steering_angle:
steering_rack_disp:

steering_force_demands: Steering Demands steering_torque/steering_force


steering_torque:

steering_force:

SSE Outputs

sse_mmm_request: Quasi-Static States yaw_moment/Flat/Flon


yaw_moment: residual yaw moment
lateral_force: residual lateral force in stake
longitudinal_force: residual longitudinal force in stake

Driving Machine Monitor

smart_driver_monitor: Target Vx/Accx - Path S/Dist/Curv - MnvID


target_vx:

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:

smart_driver_monitor_2: Target Accy


target_ay:

Driving Machine Longitudinal


This request is inactive by default, activate it if desired.

smart_driver_monitor_3:Driving machine throttle/brake control quantities (1/2)


ffwd_target_ax: target_ax as modified for use in throttle/brake controller
feedforward calculation
ffwd_torque: throttle/brake controller feedforward signal
(inertia,gravity,aero and rolling resistance)
552 Adams Car
Output of Full Vehicle Analyses

PID_torque: throttle/brake controller PID compensation signal (based on


Vx or Ax error, as appropriate)
unsat_torque: throttle brake controller combined feedfoward and feedback
signal
max_driving_torque:

min_driving_torque:

smart_driver_monitor_4: Driving machine throttle/brake control quantities (2/2)


max_braking_torque:

sat_torque: throttle brake controller saturated combined feedfoward and


feedback signal
driving_torque: throttle brake controller signal allocated to throttle
braking_torque: throttle brake controller signal allocated to brakes
mapped_throttle: throttle brake controller throttle mapped from driving
torque

Driving Machine Path


This request is inactive by default, activate it if desired.

smart_driver_monitor_5: Path Point X/Y/Z - path distance at preview point


path_point_X: global x coordinate of point on the path nearest projection
of gyro pt on road surface
path_point_Y: global y coordinate of point on the path nearest projection
of gyro pt on road surface
path_point_Z: global z coordinate of point on the path nearest projection
of gyro pt on road surface
preview_path_distance: distance from preview point to the nearest point on the
path, projected on the road surface

Vehicle Mass Properties

vehicle_mass_properties: Vehicle mass properties cm_location/mass


CM_X: Aggregate cm X location
CM_Y: Aggregate cm Y location
CM_Z: Aggregate cm Z location
MASS: Aggregate mass
vehicle_mass_properties_2: Vehicle mass properties inertias
IXX: Aggregate Ixx at aggregate cm
IYY: Aggregate Iyy at aggregate cm
IZZ: Aggregate Izz at aggregate cm
Running Analyses 553
Output of Full Vehicle Analyses

IXY: Aggregate Ixy at aggregate cm


IXZ: Aggregate Ixz at aggregate cm
IYZ: Aggregate Iyz at aggregate cm

Corner Heights

corner_heights: Vehicle corner heights


FL:

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.

Model Fidelity Reduction on Anti-Roll Bars


The model Fidelity feature allows to reduce the Adams Car Anti-Roll Bar component in your Adams Car
assembly from a higher-fidelity Beam or FE-Part method to a lower-fidelity (and, thus, faster solving) Simple
method.
When selecting Tools → Model Reduction → Anti-Roll Bars a wizard will be launched that will guide you
through the reduction process.
In the Select Anti-Roll Bar page, you need to select the Adams Car Anti-Roll Bar component in your
assembly that you want to convert from Beam or FE-Part to the Simple Anti-Roll Bar.

Note: This Fidelity tool only supports the Adams Car Anti-Roll Bar component.
542 Adams Car
Model Fidelity Reduction on Anti-Roll Bars

The basis of the approach is:


1. The original Anti-Roll Bar including connections in your assembly is copied to a temporary Adams
Car model.
2. A user-specified excitation is applied to this Anti-Roll Bar model to produce Force - Deflection
characteristics.
3. An equivalent linear torsional spring stiffness is calculated for the Simple method using the data from
previous step (2).
4. The original Anti-Roll bar in your assembly is replaced by the Simple Anti-Roll Bar using the
computed stiffness from previous step (3)
At Define Test page, you need to enter the Bump and Rebound travel values used to perform a wheel-travel-
like analysis (only applied to one side of the Anti-Roll Bar).
Model Fidelity Reduction 543
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

Model Fidelity Reduction on Tires


The Model Fidelity feature allows to reduce the tire model(s) used in your Adams Car assembly from a higher-
fidelity modeling method to a lower-fidelity (and, thus, faster solving) method.
When selecting Tools → Model Reduction → Tires, a wizard will be launched that will guide you through
the reduction process.
Model Fidelity Reduction 545
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:

PAC2002 3D Enveloping Contact vs. Single Point Follower


The 3D Enveloping Contact will resemble the non-linear tire road contact for short wavelength obstacles but
will put a high calculation load to the Solver. If simulations are performed at rather smooth road or the exact
peak loads on the tire are less important, selecting the One Point contact is a good option.
546 Adams Car
Model Fidelity Reduction on Tires

PAC2002 3D Enveloping Contact Number of Cams


In case the 3D Enveloping Contact is used, the reduction of the number of Cams in the Enveloping will
reduce calculation time considerably without a large fidelity reduction. The accuracy of lateral force response
on short wave road inclination changes will mainly suffer from this reduction.

PAC2002 3D Enveloping Contact Number of Contact Threads


By increasing the number threads that can be used for the 3D Enveloping (apart from the threads for C++
Solver), the 3D Enveloping contact will be faster. However, when running C++ Solver in SMP (multi-
threaded mode) the benefit of this option will be low.

PAC2002 with or without Belt Dynamics


For having the correct high frequency response of a tire on a road with short wavelength obstacles, the inertia
and stiffness effects of the tire belt are important, but increase simulation times. At rather smooth roads
switching off the belt dynamics can be interesting for increasing simulation efficiency.

PAC2002 Steady-state (no transient) versus Transient


In case the forward speed of the vehicle in the simulation is large ( > 30 m/s) the impact of the first order tire
transient (relaxation lengths) is low, by switching them off the calculation load for solver will be reduced
(small effect).

PAC2002 local tire solver


A tire model has some differential equations to solve, in particular when using belt dynamics. By default,
those states are solved by the Adams Solver via the GSE interface. The local tire solver can take care of
calculating these states instead without the use of the GSE. In particular, in cases with a large number of states
(that is, belt dynamics) and small solver time step this option is beneficial.
The Select Tire of the wizard the options available (depend on the selected tire property file) are for the tire
models dynamic response:
 No Transient
 Transient
 Belt dynamics
For the road contact, one can choose in between 'One Point' contact and '3D Enveloping Contact'.
The Tire Data and Fitting page, the tire property file needs to be converted by the Tire Data Fitting Tool.
Model Fidelity Reduction 547
Model Fidelity Reduction on Tires

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.

Tire and Driving Machine features for


faster simulations
Adams Car provides features such as the PAC2002 local tire Solver and Driving Machine design options for
open loop events, with the aim of reducing run times in case of real-time applications.

PAC2002 local Tire Solver for faster simulations.


The PAC2002 tire model has differential equations to solve. By default, those states are solved by the Adams
Solver via the General State Equation (GSE) as part of the Standard Tire Interface (STI). A fast local tire
solver can take care of calculating these states instead without the use of the GSE. To activate the High
Performance mode of the PAC2002 tire in Adams Car, right-click on the wheel, select Modify and set High
Performance to 'yes' as shown below (repeat this step for each set of wheels).

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).

Driving Machine Design Options for faster simulations


(Open Loop events only)
In Open Loop vehicle events, all Driving Machine inputs are provided are constants or provided by the user
and the controlMethod in the .xml event file is set to 'Open' for the steering, throttle, brake, gear and clutch
actuators. Design options have been introduced to de-activate Adams Solver components that are connected
to the Driving Machine and thus speed up the simulation. This is especially important for Real-Time
applications utilizing the Fixed Step Integrator.
The Driving Machine uses the Discrete General State Equation (DGSE). For Open Loop events the driver
response does not need to be computed and de-activating the DGSE and other Solver components connected
to the Driving Machine will make the simulation go faster. It should be noted that some parts of the Driving
Machine still need to be part of the model to allow event based simulations.
To set these design options from the Adams Car GUI, select Adjust → Design Options and choose for
Subsystem Name the testrig connected to the assembly (for example, Demo_sedan.testrig). Following three
design options are available for Driving Machine State:
Tire and Driving Machine features for faster simulations 555
Driving Machine Design Options for faster simulations (Open Loop events only)

 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.

Management Tasks by User Type

This type of user: Can:


Standard user  Create and set up private databases in which to store files, such as subsystems
and property files, with which you are working.
 Make copies of files in your private database or copy the entire database to
share with other users.
 Configure the operation of your template-based product for your private use.
Expert user  Perform the same tasks as a standard user.
 Publish a template so all users can use it.
Site manager  Set up site databases in which general project information is stored.
 Define the access that users can have to functionality.
 Set up a custom version of your template-based product and configure its
operation.
 Assigns access to common databases to allow read and write permissions for
standard and expert users.

To access management tools:


Your access to management tools depends on your user access:
 Standard users - You can access your template-based product's tools that let you manage your
private database. The tools are under the Tools menu.
 Expert user - You can access the management tools from the Tools menu.
542 Adams Car
About Database Management

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.

About Database Management


The template-based products define assemblies using several different files. The files define the topology,
dynamic element characteristics, analysis information, and more. Your template-based product stores these
files in hierarchical databases.
The template-based products provide two types of default databases:
 Private database for each user - A private database is for your personal use. You can store and
retrieve data from your private database. In addition, you can share your private database with
others. If a private database does not exist, your template-based product creates the private database
at the beginning of a session.
 Shared database for all users - A shared database provides all users with access to standard, accurate
data. To prevent loss of data or the storing of inaccurate data in a shared database, standard users can
only retrieve data from a shared database. Typically, only the site manager has the permissions
necessary to create files in a shared database. An example of a shared database is distributed with
your template-based product, and it is usually placed in the installation directory.
Learn more about databases:
 Database Structure
 About the Database Search List

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.

About the Database Search List


During startup, your template-based product stores any databases that are defined in your private, site, and
shared configuration files in its search list. The databases in the search list are the only databases that appear in
dialog boxes when you select to display databases and files, such as subsystem or property. For example, when
you want to change the database to which you can write files, your template-based product only displays those
databases in its search list in the dialog box.
Your template-based product searches the databases in its search list using a search order that you can modify.
You can change the databases in the search list and their search order either by using the menus or by editing
the configuration files directly. All configuration files can define the databases, including the private, site, and
shared configuration files.
For your template-based product to be able to store a database in its search list, the file system to which the
database points must be accessible on the current file system of the computer.
Learn about setting up the search list and the order in which databases are searched.
544 Adams Car
Managing Databases

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

Creating Databases During a Session


You can create a new database anytime during a session. When you create a database, your template-based
product adds it to its search list and places the database at the lowest level in its database search order. Your
template-based product also creates database tables within the new database according to the table
information stored in your private, site, and shared configuration files. Learn about search order.

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.

Setting the Writable Database


You can set up one of your active databases as the repository for templates, subsystems, and property files.
This database is called your default writable database. The default writable database is defined in your private
configuration file, but you can change it at anytime during a session. You can select any database in the search
Configuring Your Product 545
Setting Up the Search List and Order

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.

Managing Tables in a Database


You can add your own tables to a database. You use the configuration files to define the tables that you want
to include in a database. Learn more about configuration files and table definitions in them.

Creating Tar Files of Databases


On Linux, you can create a tar file of any database that is listed in the search list. When you create a tar file
of a database, your template-based product groups together all of the database's subdirectories and files into
one tar file. It then writes the tar file to the default writable database using the name database_name.tar, where
database_name is the name of the database you saved.
Saving a database as a tar file is an efficient way to save a snapshot of the current state of a database or to
transfer the database to an external file system. You can easily transfer the databases through e-mail or through
a file transfer protocol (ftp) process.
As you create a tar file, you can select to encode and compress the database using standard Linux compression
and encoding techniques.

To create a tar file of a database in Linux:


1. From the Tools menu, point to Database Management, and then select Bundle Database.
2. Press F1 and then follow the instructions in the dialog box help for Bundle Database.
3. Select OK.

Setting Up the Search List and Order


As explained in About the Database Search List, your template-based product stores in its search list, all the
databases currently defined in your configuration files. When you request a file from the databases, your
template-based product uses a defined search order to search the databases for the requested file.
546 Adams Car
Setting Up the Search List and Order

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:

variable set variable_name=do_search &


integer_value=(putenv("MDI_CDB_SEARCH","yes"))
For more information, see the Adams Car release notes.

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

About Search Order


During a session, you can have many databases listed in the search list. Your template-based product assigns
to each database in the search list a numerical value representing its place in the search order. For example, if
there are three databases in your search list, your template-based product numbers them 1, 2, and 3, with 1
representing the first database it searches.
When you request a file, such as a property file, your template-based product searches the databases in the
specified search order. It first tries to open the file as specified. If the filename has a database alias, your
template-based product expands it to a full file system path.
If your template-based product cannot find the file in the specified database, it begins searching the other
databases in its search list in the search order. Your template-based product begins with the first database in
the search order. It continues through all the databases in the search order until it finds a matching filename.
Your private configuration file sets the search order of these databases, but you can change it at anytime
during a session.
Note that in many cases changing the database search order can cause your template-based product to find a
different file. For example, if two databases contain a file with the same name but with different data,
changing the search order may change which file your template-based product uses. You may find this helpful
in many cases, but it can produce unintended results when you change the search order without realizing that
you can access different files. The database search order is also important if you specify the database path
incorrectly.
To avoid using the search order to find a file, which can result in longer searches and unintended results, you
can specify the database name (its alias) directly in the associated property file to ensure that your template-
based product searches the correct database.
You can look at the search order of the databases in the search list using the Database Info command, as
shown in Viewing Database and Table Information. Your template-based product displays the current list of
Configuring Your Product 547
Setting Up the Search List and Order

databases, showing the search order level of each database in the first column. Learn about displaying database
information.

Adding Databases to the Search List


As you are working with your template-based product, you can add databases to the current search list. Your
template-based product adds the databases to the end of the search order. Learn about changing the search order.

To add a database to the search list:


1. From the Tools menu, point to Database Management, and then select Add to Search.
2. Press F1 and then follow the instructions in the dialog box help for Add Database to Search.
3. Select OK.

Removing Databases from the Search List


You can remove a database from the search list so that your template-based product does not search for files
in it. Removing a database from the search list does not remove the database from the file system.
If you want to remove the current default writable database from the search list, you must first specify another
database as the default writable database.

To remove a database from the search list:


1. From the Tools menu, point to Database Management, and then select Remove from Search.
2. Press F1 and then follow the instructions in the dialog box help for Remove Database From Search.
3. Select OK.

Changing the Search Order


You can change the order in which your template-based product searches databases for files. Learn about search
order.

To change the search order:


1. From the Tools menu, point to Database Management, and then select Change Search Order.
2. Press F1 and then follow the instructions in the dialog box help for Change Database Search Order.
3. Select OK.
548 Adams Car
Saving and Publishing Database Information

Saving and Publishing Database Information

Viewing Database and Table Information


You can view the current set of databases in the search list. The information includes the database names, file
system paths, and levels in the current search order. You can also view the table structure of the current
writable database.

To view database information:


1. From the Tools menu, point to Database Management, and then select Database Info.
2. View the database information, and then select Close.

To view the tables in the writable database:


 From the Tools menu, point to Database Management, and then select Table Info.
 View the table information, and then select Close.

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.

About Configuration Files


Your template-based product's configuration file contains information that your template-based product
reads during startup to correctly initialize the session. Your template-based product looks for the following
configuration files when it starts up: shared, site (if it exists), and private configuration files, in that order.
The private configuration file contains personal settings that are then merged with the general settings
defined in the shared or site configuration file. Together, the settings define your work environment. The
shared and private configuration files are required, while the site configuration file is optional. You use the
site configuration file only if you want to set up a custom version that all users can access.
To personalize the settings in the configuration files, you edit the configuration file using a text editor. You
can, however, use the menus to set up the databases without having to directly edit the configuration files.
Learn about managing databases.
Each of the configuration files is explained in the next topics:
 About Private Configuration Files
 About Site Configuration File
 About Shared Configuration File
 About Plugin Configuration Files

About Private Configuration Files


As an expert or standard user, you have your own private configuration file with a default name of .acar.cfg.
Your template-based product accesses this file at the beginning of every session. The private configuration file
is found at $HOME/.acar.cfg, where $HOME is the location of your home directory.

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.

About the Site Configuration File


If you create a site configuration file, you call it <your_product_name>.cfg, and place it in the template-based
product site repository. You can have only one site configuration file for a site installation of your template-
based product. The site configuration file provides settings common to users at a particular site. See Organizing
Custom Code to learn about the location of the site repository.
For example, your company may have engineers working across a network, each wanting to access some
common information, such as files and variables. You could set up the site configuration file so that when
they run the site version, each engineer's session is configured to access the common information.
We recommend that only the site manager changes the site configuration file. You should make any personal
modifications using private configuration files.

About the Shared Configuration File


The shared configuration file is called <your_product_name>.cfg, and is generally found in the installation
directory. See your system administrator for location details.
Only one shared configuration file exists for an installation of your template-based product. The shared
configuration file contains predefined information common to all users.
Configuring Your Product 551
About Configuration Files

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.

About Plugin Configuration Files


Many plugins that work with the Template Builder have their own shared and site configuration files.
Your template-based product follows the same logic for processing the plugin configuration files as it does for
any other configuration file.

Format of Configuration Files


A configuration file is divided into the blocks listed below. An example of the blocks in a configuration file
are shown in figure Configuration File Blocks. In the example, ! indicates comments.
 Environment Variables - The first block in a configuration file sets up the environment of your
template-based product. For example, it identifies the type of user associated with the configuration
file. It also sets the mode in which your template-based product starts, Standard Interface or
Template Builder, and any other environment settings.
 Databases - The second block defines the databases in which users store files, the order in which
your template-based product searches databases, and the database to which files are written by
default.
 Table Directories - The third block defines the list of personal table directories. For example, you
could create a table in which to store examples.
 Property Files - The fourth block contains a listing of default property files. When a dialog box
requires a property file, it automatically knows to load the desired files if you enter property files in
the property file block. You usually define property files in the shared configuration file. If you enter
values in your private configuration file, your template-based product overrides the shared files with
your personal property files.
 Test Rigs - The fifth block defines the default test rig for a given assembly class. When a dialog box
requires a test rig, it automatically knows to load the desired test rigs. You usually define test rigs in
the shared configuration file.

Configuration File Blocks


!-------------------------------------------------------------------!
!*************** Adams X Configuration File *************** !
!-------------------------------------------------------------------!
!-------------------------------------------------------------------!
! - List of personal environment variables
!-------------------------------------------------------------------!
ENVIRONMENT MDI_ACAR_USERMODE expert
!-------------------------------------------------------------------!
! - List of personal database directories
! Database name Path of Database
!-------------------------------------------------------------------!
DATABASE private /usr/private.cdb
DATABASE staff /staff/private.cdb
552 Adams Car
Setting Up the Environment Through 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

Setting Up the Environment Through Configuration Files


To work efficiently with your template-based product, you must set a standard set of environment variables
in a configuration file. The environment variable has the following format:
ENVIRONMENT VARIABLE_NAME VARIABLE_VALUE
We've set up default environment variables in the shared configuration file, but we recommend that you
redefine them in the private or site configuration file to customize the work environment of your template-
based product. You can also define your own environment variables for use with user-written subroutines or
macros. See a list of Environment Variables.
Learn about the standard environment entries that you can set and how to create your own environment
variables:
 Setting User Access
 Accessing Adams View
 Setting Defaults and Display of the Welcome Dialog Box
 Replacing the Image on the Welcome and Exit Dialog Boxes
 Setting Up Side Preferences
 Setting the Orientation of the Global Reference Frame
 Managing Result File Output
 Setting the Default Template Save Format
 Redefining Environment Variables
 Defining Your Own Environment Variables
 Editing Files Using a Text Editor
Configuring Your Product 553
Setting Up the Environment Through Configuration Files

Setting User Access


You use the MDI_ACAR_USERMODE keyword in your private configuration file to set your user access, which
determine you access to the Template Builder and other development tools (learn About User Access). Your
private configuration file is found at $HOME/.acar.cfg, where $HOME is the location of your home
directory.

Note: The private configuration file is not located in the installation directory. Never change the
acar.cfg file located in the installation.

You can set USERMODE to:


 STANDARD - User can only access the Standard Interface.
 EXPERT - User can access the Template Builder and create and modify templates. User can access
the Template Builder and other development tools that are located under the Tools menu. Expert
users can use the MDI_ACAR_PLUS_AVIEW keyword in the private configuration file to access
Adams View. Learn about accessing Adams View.
To change the value of this keyword, you must edit the private configuration file (.acar.cfg) using a text editor
and modify the corresponding string. The following gives you expert access:
! Desired user mode (standard/expert)
ENVIRONMENT MDI_ACAR_USERMODE EXPERT
When you start a new session, your template-based product reflects the changes to the private configuration
file.

Accessing Adams View


If you are an expert user, you can use the MDI_ACAR_PLUS_AVIEW environment variable in the private
configuration file to obtain access to Adams View.
MDI_ACAR_PLUS_AVIEW has the following format:
ENVIRONMENT MDI_ACAR_PLUS_AVIEW (yes, no)

To access Adams View:


1. Set MDI_ACAR_PLUS_AVIEW to yes.
2. From the Tools menu, select Adams View Interface.

To return to your template-based product:


 From the Tools menu, point to Select Mode, and then select the interface mode to which you want
to return: Standard Interface or Template Builder.
554 Adams Car
Setting Up the Environment Through Configuration Files

Setting Full Vehicle Solver Preference/Solver Preference


You can set your solver preferences, either from the settings menu or in your private configuration file.
See Solver Selection dialog box help.

Setting HHT Integrator Preferences


If using Adams Solver (C++), you can also set a preference for using the HHT integrator as the the default
integrator, as explained next.

To set HHT integrator preference:


1. In a text editor, such as Jot or Notepad, open .acar.cfg in your home directory.
2. Add the following line to set HHT as the default integrator:
ENVIRONMENT MDI_AENG_HHT_ERROR 1e-5
This sets the HHT integrator as the default integrator with a default error tolerance of 1e-5 when
using Adams Solver (C++).
3. Start a new session.

Setting Defaults and Display of the Welcome Dialog Box


Setting Defaults
You can use the MDI_ACAR_INITMODE environment variable to set the default selection in the Welcome
dialog box when the user has expert-user access. MDI_ACAR_INITMODE has the following format:
ENVIRONMENT MDI_ACAR_INITMODE (template_builder, standard_interface)
In Adams Driveline for example, if you set MDI_ACAR_INITMODE to standard_interface, the Welcome
dialog box sets the selection of Standard Interface as the default, as shown next.
Configuring Your Product 555
Setting Up the Environment Through Configuration Files

Setting the Display


You can use the MDI_ACAR_MODEPROMPT environment variable to set your template-based product
so that it does not display the Welcome dialog box at start up. MDI_ACAR_MODEPROMPT has the
following format:
ENVIRONMENT MDI_ACAR_MODEPROMPT (yes, no)
Setting it to yes displays the Welcome dialog box; setting it to no turns off the display of the Welcome dialog
box.

Replacing the Image on the Welcome and Exit Dialog Boxes


You can replace the image on the Welcome and Exit dialog boxes with another image.

To replace the image:


1. Create a color X pixmap image (.xpm) with a size of approximately 197 x 192 pixels.
2. Copy the new pixmap file to a designated directory.
3. Add the following entry in your .acar configuration file:
ENVIRONMENT MDI_ACAR_LOGO_BMP <your_directory/filename>

Setting Up Side Preferences


You can use the MDI_ACAR_SIDE_PREF environment variable to define the preferred side for creation.
When you set the side preferences:
 The creation dialog box in the Template Builder sets the default type based on the side preference
you set.
 The guesses in the pop-up menus in dialog boxes only contain left and single or right and single
entities based on the side preference. Your template-based product does this to limit the number of
guesses.
The MDI_ACAR_SIDE_PREF environment variable has the following format:
ENVIRONMENT MDI_ACAR_SIDE_PREF (right, left)

Setting the Orientation of the Global Reference Frame


You can set the orientation of the global reference frame using direction cosines. You use either of the
following environment variables to define the orientation:
ENVIRONMENT MDI_ACAR_VEHICLE_REAR 1,0,0
ENVIRONMENT MDI_ACAR_VEHICLE_LEFT 0,-1,0

Managing Result File Output


Result files include all the simulation output from an analysis. The following environment variable sets the
default attribute of whether the result file is output during the analysis. If the assembled model contains
556 Adams Car
Setting Up the Environment Through Configuration Files

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)

Setting the Default Template Save Format


You can set the default template save format for your template-based product with an environment variable.
The possible values are one of binary, ascii, or eds, with the default being binary.
ENVIRONMENT MSC_ACAR_TPL_SAVE_FORMAT (binary, ascii, eds)
On startup the value affects the variable:
.ACAR.variables.template_default_save_format
which can be changed in the session to control the format from inside the template-based product session.

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.

Setting Property File Preferences


Property files can be read at different times during the modeling process. You can control when property files
are read using the variable MSC_ACAR_READ_PROPERTY_FILES:
ENVIRONMENT MSC_ACAR_READ_PROPERTY_FILES (1,2,3)
 1 = read property files at analysis submission

 2 = read property files during subsystem open/update and object modify


 3 = read property files at analysis submission, subsystem open/update and object modify

Redefining Environment Variables


We've set up default environment variables in the shared configuration file, but we recommend that you
redefine them in the private or site configuration file to customize the work environment of your template-
based product.
Configuring Your Product 557
Setting Up the Environment Through Configuration Files

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.

Defining Your Own Environment Variables


You can define your own environment variables in the private and site configuration files for use with user-
written subroutines or macros. For example, you can define a variable named debug_mode in your private or
site configuration file. Then, in your own macros, you can query for the value of debug_mode, and execute
some instructions depending on its value. The example below shows a portion of the macro that would query
for the value of debug_mode:
IF condition =(getenv("debug_mode")=="yes")
default command echo=on
END
.
.
.
To define your own environment variables, use the format below. Your template-based product initializes the
variables at startup
ENVIRONMENT VARIABLE_NAME VARIABLE_VALUE
For the previous example, you would use the following:
ENVIRONMENT debug_mode yes

Editing Files Using a Text Editor


You can use an environment variable, MDI_ACAR_USE_EDITOR, to edit files from within your template-

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

Managing Databases Through Configuration Files


You can use two environment variables to manage your template-based product's databases in the
configuration file:
 DATABASE - Sets up databases.
 DEFAULT_WRITE_DB - Sets the default writable database.
You can place DATABASE entries in the private, site, or shared configuration files. The
DEFAULT_WRITE_DB, however, is reserved for the private and site configuration files.
Note that you can also set up databases through menus, as explained in Managing Databases. You may find it
more convenient to use the menus.
Learn more about managing databases through configuration files:
 Setting Up Databases
 Specifying Default Writable Database

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.

Specifying Default Writable Database


You can specify the database that you want to use as the database to which all files are written. You use the
environment variable DEFAULT_WRITE_DB to define the default writable database. The
DEFAULT_WRITE_DB environment variable has the following format:
DEFAULT_WRITE_DB DB_NAME
The environment variable defines the initial database that you want as the default location for writing files.
Usually, you define the default writable database in your private configuration file, although you can set the
writable database in any configuration file. You can change it during the session as explained in Setting the
Writable Database. Note that you will need permission to write to the file system location to which the
DEFAULT_WRITE_DB points.
Configuring Your Product 559
Managing Tables Through Configuration Files

Managing Tables Through Configuration Files


As explained in Database Structure, a template-based product's database is comprised of a number of directories
or tables in which you store files. In addition to the standard set of table directories, you can create your own
tables.
Generally, you only add table directories to the databases defined in your private configuration file. As the
site manager, you may decide to add tables for general use in the site configuration file.
Learn more about creating tables and the standard table entries:
 Creating Tables
 Standard TABLE Directory Entries

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:

 TABLE_CLASS - A string identifying the table.


 TABLE_NAME - The name that you want used to access the table.
 TABLE_EXTENSION - The three-character extension of files stored in the table. Your template-
based product only recognizes files in the table that have the extension that you specify.
For example, the following creates a table that stores aerodynamic forces:
TABLE aeroforces /staff/my_name/my_db.cdb/aeroforces.tbl aer
Adding the table definition shown above in the configuration file causes your template-based product to
recognize and correctly access files stored in that particular database table.
560 Adams Car
Managing Tables Through Configuration Files

Standard TABLE Directory Entries


The TABLE directory entries in the shared configuration file are briefly explained in the following table:

The entry: Defines tables for:


TABLE assembly Assembly files that list the subsystems that make up Adams
assemblies.tbl asy Car assemblies.
TABLE template templates.tbl tpl Template files that define the topology and major role (for
example, suspension or steering) of Adams Car models.
TABLE subsystem subsystems.tbl sub Subsystem files that contain information unique to the
specific instance of the template the subsystem file
references.
TABLE aero_force aero_forces.tbl aer Aero_force files that contain wind-force mappings.
TABLE bushing bushings.tbl bus Bushing files that define a six degree-of-freedom force
relationships between user-specified locations on two parts.
TABLE linear bushing bushings.tbl lbf Bushing files that define a six degree-of-freedom force
relationship between user-specified locations on two parts,
using constant coefficients for each of the six degrees of
freedom.
TABLE bumpstop bumpstop.tbl bum Bumpstop files that define a force-displacement
relationship between user-specified locations on two parts.
TABLE damper dampers.tbl dam Damper files that define a force-velocity relationship
between user-specified locations on two parts.
TABLE linear damper dampers.tbl ldf Damper files that define the linear damping force
relationship between user-specified locations on two parts,
using a constant damping coefficient.
TABLE flex_body flexbodys.tbl mnf Files that define flexible body representations usually
through modal neutral files.
TABLE powertrain powertrains.tbl pwr Powertrain files that define the engine speed-torque
relationship at different throttle positions.
TABLE differential differentials.tbl dif Differential files that define the slip speed-torque
characteristics of a differential.
TABLE reboundstop reboundstops.tbl reb Rebound stop files that define a force-displacement
relationship between user-specified locations on two parts.
TABLE shell_graphic shell_graphics.tbl shl Shell graphic files.
TABLE spring Spring files that define a force-displacement relationship
springs.tbl spr between user-specified locations on two parts.
Configuring Your Product 561
Managing Tables Through Configuration Files

The entry: Defines tables for:


TABLE linear spring springs.tbl lsf Spring files that define the linear elastic force relationship
between user-specified locations on two parts, using a
constant stiffness coefficient.
TABLE steering_assist steering_assists.tbl ste Steering_assist files that contain torsion bar data relating
torsion bar deflection to both torque and pressure.
TABLE tire Tire files that define data needed to characterize tire
tires.tbl tir behavior (a tire model).
TABLE road Road files that define roads that the contact algorithms in
roads.tbl rdf the Adams Tire module use.
TABLE driver_controls Driver control files that contain maneuver descriptions for
driver_controls.tbl dcf the Driving Machine. Also includes XML event files. For
additional information, see Note in Using the Driving Machine.
TABLE driver_data Driver data files that contain data for the Driving Machine.
driver_data.tbl dcd
TABLE driver_loadcase driver_loadcases.tbl Driver loadcase files that contain driving signals used in a
dri data-driven, full-vehicle analysis. The driver loadcase
specifies inputs to the vehicle.
TABLE loadcase loadcases.tbl lcf Loadcase files that contain data used in suspension analyses.
TABLE suspension_curve Suspension curves used in the Conceptual Suspension
suspension_curves.tbl scf Modeling module.
TABLE wheelenv wheel_envelopes.tbl wen Wheel-envelope files that contain location vector
information that represents the wheel-center location and
orientation in space. They are used for wheel-envelope
analyses.
TABLE plot_config plot_configs.tbl plt Plot configuration files that define a suite of plots to be
automatically generated after completion of an analysis.
TABLE driver_road driver_roads.tbl drd Adams Driver road definitions.
TABLE driver_knowledge Adams Driver knowledge file. (Obsolete).
driver_knowledge.tbl kno
TABLE driver_input driver_inputs.tbl din Adams Driver input files used in an Adams Driver full-
vehicle analysis. (Obsolete).

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

Managing Property Files Through Configuration Files


A PROPFILE environment variable in the configuration file assigns a default property file used when creating
the following entity types: bumpstop, bushing, damper, reboundstop, spring, and tire.
A PROPFILE environment variable in a configuration file has the following format:
PROPFILE PROPFILE_CLASS PROPFILE_NAME
where:

 PROPFILE_CLASS is a string that identifies the property file.


 PROPFILE_NAME is the name of the property file.
For example:
PROPFILE bushing mdids://shared/bushings.tbl/mdi_0001.bus
You can define the property files in the private, site, or shared configuration files.

Managing Test Rigs Through Configuration Files


A TESTRIG environment variable in the configuration file assigns a default test rig to a particular class of
assemblies.
A TESTRIG environment variable in a configuration file has the following format:
TESTRIG TESTRIG_CLASS TESTRIG_NAME
where:

 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.

Note: You save interface objects and macros in custom binaries.

 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.

Customizing the Interface


All of the menus, windows, and dialog boxes that you see in your template-based product are interface objects
that you can modify easily. Most of the interface customization that you'll do involves creating new dialog
boxes, modifying existing ones, or modifying menus and push buttons. Learn about saving changes to interface
objects.
A template-based product stores the interface objects in its modeling database along with all the other
modeling objects (such as parts, models, and markers). You access the interface objects through the Database
Navigator. The objects have a defined hierarchy, which you can also view through the Database Navigator.
You use the Adams View Dialog-Box Builder to access and edit the interface objects that you can include in
a dialog box, such as labels, fields, and buttons.
For an overview of all aspects of customizing an Adams product interface, including menus, and using the
Dialog-Box Builder, see the Adams View online help.
Learn more about customizing the interface:
 Naming Conventions
 Using Libraries
 Creating and Modifying Dialog Boxes
 Customizing the Model Browser
 Creating and Modifying Macros
 Creating Dialog Boxes for Templates
 Adding a Minor Role
 Adding a Major Role
 Creating Menus for Template Builder
 Automatically Loading Interface Changes
 Saving Interface Changes

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:

Product name: Library name:


Adams Car .ACAR

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

Product name: File name:


Adams Car acar_build.cmd

Learn more about those files.


Libraries can also be nested. For example:
library create library_name=.MY_LIBRARY.variables
library create library_name=.MY_LIBRARY.variables.torques

Creating and Modifying Dialog Boxes


The template-based products use dialog boxes to provide you with an easy way to input data or perform
operations. A dialog box is usually an entry point to a custom or standard macro. The dialog box collects data
from you, manipulates it, and then communicates the data to a macro or to an Adams View function, which
performs an operation using the data. Learn about macros.
Although you can set up a dialog box so that commands perform a particular task within the dialog box, we
recommend that you use the dialog box as an entry point to a macro or a set of macros. By making the dialog
box an entry point to a macro, you:
 Are consistent with the standard dialog boxes in template-based products.
 Take advantage of the Adams powerful macro language programming.
Note that we supply many examples of how to code dialog boxes. You can find those examples in their
respective libraries. For example, acar.dboxes.
The next topics explain more about creating dialog boxes. For a general overview of creating and editing
dialog boxes in Adams products, see the Adams View online help, under the Customize tab.
 Dialog Box Objects
 Layout and Sizing of Dialog Boxes
 Commands in Dialog Boxes
 Dialog Box Error Handling
 Start, Execute, and Finish Commands
 OK, Apply, and Cancel Buttons
When you have finished modifying your dialog boxes, review the options for saving your changes and having
them automatically included in your own version of your template-based product. Learn about saving dialog
boxes.

Accessing Dialog Box Programming Tools


You use the Dialog Box command on the Tools menu to create and modify dialog boxes. Learn about the
Dialog-Box Builder.
To view, change, and create dialog boxes, you must have expert user access to your template-based product.
Learn about Setting User Access.
Customizing Your Product 573
Customizing the Interface

Dialog Box Objects


Dialog boxes are a combination of different interface objects that you can modify using the Dialog-Box
Builder. These include the following:
List of Common Dialog Box Objects

The objects: Are:


Containers Subregions in a dialog box that can hold objects.
Text boxes Boxes in which you can enter information.
Pull-down menus Menus that display a list of options from which you can select only one
option.
Radio boxes Toggles that set a state or mode. You can only select one state or mode.
Toggle buttons (Check boxes) Toggles that indicate an active state. You can select more than one state.
Push buttons Buttons that execute a command or set a state.
Sliders A continuous range of possible values from which you can select one
value.

The following figure shows some of the different objects. Learn more about Interface objects.

Layout and Sizing of Dialog Boxes


When you create dialog boxes, always try to minimize the amount of screen area that they take up. To be
consistent with the other dialog boxes in your template-based product, you should use the size specifications
listed in tables Standard Interface Dialog Box Specifications and Template Builder Dialog Box Specifications. The
specifications also include where on the screen dialog boxes should appear, so they always appear in the same
location on the screen.
574 Adams Car
Customizing the Interface

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.

Standard Interface Dialog Box Specifications

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

Template Builder Dialog Box Specifications

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

Commands in Dialog Boxes


All of the objects in dialog boxes can execute commands when a user acts on the object. For example, a button
can execute a command when a user pushes on it, and an option choice can execute a command when a user
Customizing Your Product 575
Customizing the Interface

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

Dialog Box Error Handling


Each dialog box that you create should have a variable, named errorFlag, that represents the error condition
of the dialog box. You should use the start commands of a dialog box to create the variable and set its initial
value to zero or no error condition, as shown next:
variable set variable_name=$_self.errorFlag int=0
You should also reference the variable in the OK command that executes the dialog box.
For information on:
 Variables, see Using Local Variables.
 $_self, see Using Commands in Dialog Boxes.
 OK command, see OK, Apply, and Cancel Buttons.

Start, Execute, and Finish Commands


You can assign start, execute, and finish commands to higher-level objects, such as containers, and to the
dialog box itself. The commands are described below. Learn more about Using Commands in Dialog Boxes.
 Start commands - Your template-based product automatically executes start commands associated
with a particular interface object when that object is displayed. The start commands ensure, for
example, that the dialog box is displayed properly based on the display parameters.
You should use the start commands to set an errorFlag variable to an initial value of zero, or no error
condition, as shown next:
variable set variable_name=$_self.errorFlag int=0
Template Builder dialog boxes usually have two possible startup parameters, which you should set up
in the start commands when a dialog box is displayed. The states are:
• mode - Mode has two states, which represent the creation or modification states of a dialog box.
The states are create and modify.
• object - Object used with the state modify.
An example of using the states in a start command for Adams Car:
interface dialog display dialog=.ACAR.dboxes.dbox_tem_dam &
parameters="modify", ".template1.dal_ride_damper"
 Execute commands - The execute commands of a dialog box usually work with OK and Apply
buttons. You should limit the execute commands to calling macros because we recommend that you
use dialog boxes as a front-end to macros. Using dialog boxes as input mechanisms to macros
ensures consistency and upgradeability.
 Finish commands - Your template-based product automatically executes finish commands when an
object is no longer displayed. You use them to clean up after a macro, delete unnecessary objects,
such as temporary variables, and so on.

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

To clear the text boxes of a dialog box:


 You can use the command:
for var=$_self.loopobj
object(eval(db_children($_self,"graphic_interface_field")))
interface field set
field=(eval($_self,"graphic_interface_field")))
string="" execute=no
end
Learn more at Using Commands in Dialog Boxes.

OK, Apply, and Cancel Buttons


Each dialog box in your template-based product has three standard buttons:
 OK - Executes the commands associated with the dialog box, and if it executes the command
successfully, it exits the dialog box.
 Apply - Executes the commands associated with the dialog box but leaves the dialog box open so
that you can execute the command again.
 Cancel or Close - Exits the dialog box without executing a command or executing only a selected
command. Only dialog boxes that have an Apply button have a Close button.
Button Size
To keep your dialog boxes consistent with the dialog boxes of your template-based product, you should always
keep the size of these buttons to 25 pixels high and 76 pixels wide.
Error Handling
Make sure that the commands associated with the OK button reference the dialog box error variable
(errorFlag). By referencing the error variable you ensure that the dialog box will not be closed if an errorFlag
was set during the execution of the dialog box commands. Because the following commands are generic, you
can use them to reference the errorFlag with any dialog box:
interface dialog execute dialog=$_parent undisplay=no
if condition=(!$_parent.errorFlag)
interface dialog undisplay dialog=$_parent
end
Learn about error handling in dialog boxes.

Customizing the Model Browser


Model Browser support is available in the Adams Car and Adams Driveline.
To customize the Model Browser in the Adams Car:
1. On the View menu, point to Toolbox and Toolbars. Tool Settings dialog box appears as shown
below:
578 Adams Car
Customizing the Interface

2. For more information about the Model Browser and settings, see Model Browser section.

Working with Assemblies


If an assembly is loaded in Adams Car or Adams Driveline, you can display any of its subsystem by either:
 Double-clicking it in the Subsystems folder in the Model Browser.
 Selecting the subsystem from the drop down menu at the top of the Model Browser.

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

Creating and Modifying Macros


A macro is a collection of single commands that enable you to perform a series of actions during a session.
You write commands using the Adams View command language.
You can modify the existing macros or add customized macros to your template-based product so your users
work smarter in their template-based product. For example, in Adams Car you can write a macro to perform
a particular full-vehicle analysis. By implementing the macro, a user only needs to enter the requested values
for the analysis in a dialog box and push a button. The button executes the macro, which performs the full-
vehicle analysis.
You can use macros to:
 Automate repetitive procedures.
 Build general-purpose extensions, such as custom analyses, to your template-based product.
See an example of creating a macro. Although this is an Adams Car example, you can use the general concepts to
create a macro for any template-based product.
For a complete overview of creating macros, see About Creating Macros.
Learn more about adding macros to your template-based product:
 Accessing Macro Programming Tools
 Viewing Existing Macros
 Using Parameters
 Using the Echo Command
 Using Local Variables
580 Adams Car
Customizing the Interface

 Macro Error Handling


When you have finished modifying your macros, review the options for saving your changes and having them
automatically included in your own version of your template-based product. Learn about saving macros.

Accessing Macro Programming Tools


You use the Macro command on the Tools menu to create and modify macros. For information on the Macro
command, see Editing and Creating Macros Using the Macro Editor.
To view, change, and create macros, you must have expert user access to your template-based product. Learn
about Setting User Access.

Viewing Existing Macros


Because macro programming is so well developed in your template-based product, you may find it helpful to
look at existing macros. Once you find a macro that most closely meets your needs, use it as the basis of
customization.
As you look at the existing analysis macros within your template-based product, notice that all of them have
the same basic structure.

To view existing macros:


1. From the Tools menu, point to Macro, point to Edit, and then select Modify.
The Database Navigator appears.
2. Select a macro to view.
The Macro Editor appears with the macro commands of the selected macro in the Commands text area.

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

Using the Echo Command


The command echo=on, which is the default, is a very helpful command because it lets you review the full
log of the macro execution in the command window or echoed in the acar log file.
To use the echo command, you can add the following line at the top of your macro:
default command echo=on
You will find it very helpful for debugging purposes.

Using Local Variables


You can create Adams View variables to be used in your macros. A variable is storage location that can contain
data. Once you define a variable, you can use it in any parameter, macro, or function in your template-based
product.
You can define a variable as a child of any modeling object, including a macro. Defining a variable as a child
of a macro is helpful in macro programming when you need to create auxiliary Adams View variables, such
as variables that call an Adams View function or that act as a return variable from a called macro. Being able
to create these variables as children of the macro results in a cleaner macro.
As a child of the macro object, the variable inherits the object's name. Therefore, the text $_SELF evaluates
to the name of the parent object, which is the macro.
In addition, most often you will want to delete these auxiliary variables when the macro is finished. Creating
these variables under the macro simplifies this cleanup procedure.
You can delete local variables very easily as shown next:

To use local variables:


 You should do the following:
variable set variable_name=$_self.filename &
string_value="tmpfile.cmd"

To clean up local variables:


 You should do the following:
variable delete variable_name=(eval(db_children($_self,"variable")))
For more information on variables and the commands to create and clean them up, see the help in the
Command Navigator associated with the command variable.
582 Adams Car
Customizing the Interface

Macro Error Handling


Each macro that you create should have checks to:
 Identify inappropriate or invalid user-entered values.
 Ensure that the values specified by the user for specific parameters are realistic.
The following Adams Car example shows how error handling works in a macro. The acar toolkit warning
utility macro displays a message in a window, informing you that it encountered an error condition. The
window remains open until you close it.
!---- Ensure a brake subsystem exists ----
if condition=(!subsystem_role_exists($assembly,"brake_system"))
acar toolkit warning &
warning="This assembly does not have a brake subsystem!"
variable set variable_name=$error_variable integer=1
return
end
You can use the acar toolkit in all template-based products.

Creating Dialog Boxes for Templates


In your template-based product's Template Builder, you can create your own dialog boxes to access
parameters within a template that you may want to modify on a regular basis.
After you create a custom dialog box, you can attach it to a particular template. When you save the template
to your default writable database, your product saves the dialog box with the template. You can also export
dialog boxes as command files, and later import them into other templates.
We recommend using your template-based product's dialog boxes as a starting point to understand what you
can achieve with the Dialog-Box Builder.

To create a custom dialog box for templates:


1. From the Build menu, point to Custom Gui, point to Dialog Box, and then select Create.
Your product displays an empty dialog box named dbox_1, along with the Dialog-Box Builder.
2. Add buttons and commands as explained in Customizing Dialog Boxes Using the Dialog-Box Builder in the
Adams View online help.
3. To close the Dialog-Box Builder, from the Dialog-Box Builder's Dialog Box menu, select Exit.

To validate your dialog box:


 From the Dialog-Box Builder's Option menu, select Test Box.

To permanently attach the dialog box to a template:

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.

To verify that your product stored your dialog box:


1. From the Build menu, point to Custom Gui, point to Dialog Box, and then select Display.
2. In the Selections dialog box, double-click the name of the dialog box you want to display.
Your product displays the dialog box.

To export a custom dialog box:


 From the Dialog Box Builder's Dialog Box menu, point to Export, and then select Command File.

To import a dialog box:


 To import a dialog box from a command file and attach it to a template, you must manually rename
every entity in the command file for .ACAR.custom. For example:
• MY_LIBRARY.dboxes.dbox_1 becomes .ACAR.custom.dbox_1
• MY_LIBRARY.dboxes.dbox_1.field_1 becomes .ACAR.custom.dbox_1.field_1

Adding Minor Roles


The file <product_name>BS.cmd is a command file that your template-based product automatically reads in
when you start a new session. You use this type of file to add a new minor or major role to your template-
based product.
Learn Adding Major Roles.

To add a new minor role in your template-based product:


1. Create a command file named <product_name>BS.cmd (where product_name is the abbreviation for
your product, see Product Abbreviations). The contents of the command file should be similar to the
contents of the following Adams Car command file:
!--- Add a new minor role ----
variable modify variable=.ACAR.variables.minor_roles &
string_value=(eval(.ACAR.variables.minor_roles)),"rear2"
2. Place the command file in your home directory.
3. When your template-based product starts, it automatically reads in <product_name>BS.cmd. The
command file will expand the minor roles available in your template-based product. The minor_roles
variable is referenced everywhere in the underlying software and is the only change required to allow
you to create new subsystems with minor roles different than the default.
4. Create a new subsystem with the new minor role. (File -> New -> Subsystem).
584 Adams Car
Customizing the Interface

Notice the new entry in the Minor Role option menu.


Keep in mind the new minor role you define when you are creating/matching communicators.

Adding Major Roles


The file <product_name>BS.cmd is a command file that your template-based product automatically reads in
when you start a new session. You use this type of file to add a new minor or major role to your template-
based product.
Learn how to add minor roles.

To add a new major role in your template-based product:


1. Create a command file named <product_name>BS.cmd (where product_name is the abbreviation for
your product, see Product Abbreviations). The contents of the command file should be similar to the
contents of the following Adams Car command file:
!--- Add a new major role ----
variable modify variable=.ACAR.variables.major_roles &
string_value=(eval(.ACAR.variables.major_roles)),"subframe"
2. Place the command file in your home directory.
3. When your template-based product starts, it automatically reads in <product_name>BS.cmd. The
command file will expand the major_roles available in your template-based product. The major_roles
variable is referenced everywhere in the underlying software and is the only change required to allow
you to create new subsystems with major roles different than the default.
4. Create a new template with the new major role. (File -> New).
5. Notice the new entry in the Major Role option menu.

Creating Menus for Template Builder


You can modify your template-based product to add custom menus and buttons to the Template Builder:
 Submenu - You can create submenus using the Build menu. A submenu provides a container that
you can use to collect push buttons (in this context, think of push buttons as options located under
a submenu). For example, under the Build menu, Hardpoint is a submenu containing five push
buttons/options (Modify, Table, New, Info, and Delete), as shown next.
Customizing Your Product 585
Customizing the Interface

 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.

To create a push button:


1. From the Build menu, point to Custom Gui, point to Menu, point to Push Button, and then select
Create.
Your product displays the Create Custom Push Button dialog box.
2. Enter the label that you want to use, in this case Display.
586 Adams Car
Customizing the Interface

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.

To change the order of your submenus:


1. From the Build menu, point to Custom Gui, point to Menu, and then select Reorder.
2. Press F1 and then follow the instructions in the dialog box help for Reorder Custom Menus.

To get information about your custom menu structure:


 From the Build menu, point to Custom Gui, point to Menu, and then select Info.
Your product displays the information in the Information window.

Automatically Loading Interface Changes


You can configure the user interface by automatically reading one of the start-up scripts for your template-
based product. Learn more.
The following is an example command file, acar_build.cmd, that customizes Adams Car. It changes the title
at the top of the Adams Car window and reads in menu and dialog box command files that customize the
Adams Car interface. If this file is located in the start-up directory used by your template-based product, then
your template-based product will read and execute it automatically. Although this file can be used to
configure the product at startup, we recommend that you save either a site or private binary, as they are more
efficient at startup.
You can customize the other template-based products in a similar way, using the appropriate build command
files listed in table File Names. In this example, we assume that the environment variable MDI_ACAR_SITE
is set.
! Adams Car
! Copyright (C) 1995-2005 MSC Software
! All Rights Reserved. !
!****************************************************
!---- Modify the window title ----
interface window modify &
Customizing Your Product 587
Customizing the Interface

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.

Saving Interface Changes


All the changes that you make to the interface are active as long as you stay in your current session. This
includes changes to interface objects and macros. You can save the changes for yourself in your private
directory or you can make the changes so that all users can access them from the site directory.
There are many ways to save the changes. The most efficient is to create a private or a site binary that contains
the changes. You can then instruct your template-based product to read the changes when it starts up. The
following procedure summarizes the steps you would perform to save the changes in a binary. For more
information, see the references noted in each step. In addition, for an overall description of creating binaries
for your template-based product, see Running and Configuring Adams.

To save changes as a binary:


1. Export the new or modified macro as a command file:
• From the Tools menu, point to Macro, and then select Write.
• In the Macro Name text box, enter the name of a macro you have created or modified.
• Note that it's not mandatory to provide a file name for the macro. If you name the macro
.MY_LIBRARY.macros.mac_ana_ful_tst_sub, then Adams Car saves it as
mac_ana_ful_tst_sub.cmd, automatically adding the .cmd extension.
2. Export the new or modified dialog box, as a command file:
• From the Tools menu, point to Dialog Box , and then select Modify, to open the Database
Navigator. Learn About the Database Navigator.
• Select the dialog box you want to export.
Adams Car displays the dialog box in build mode, along with the Dialog Box Builder. Learn
Customizing Dialog Boxes Using the Dialog-Box Builder.
• From the Dialog Box Builder's Dialog Box menu, point to Export, and then select Command
File.
588 Adams Car
Customizing the Model Browser for Adams Car and Adams Driveline

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

Customizing the Model Browser for Adams Car and


Adams Driveline
The appearance of the model browser is configured through an .xml file, ModelBrowser.xml, which is present
in <topdir>\linux64 or <topdir>\win64 or <topdir>\win32 depending on the platform upon
which Adams is installed. This .xml file determines the way in which the model browser is configured for the
supported modes.
 The standard interface mode for the Adams Car and Adams Driveline is acar.
 The template builder mode for the Adams Car and Adams Driveline is template_builder.

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

Tag Attribute Value Description Notes


Folder Name string Name of the folder as it appears in
the Model Browser
Dynamic string A value of "true" makes this folder This attribute is valid
dynamic that is, the folder will not only for top level
be displayed if there is no content folders.
beneath it.
IncludeNameF string Name filter for entities to be If this attribute is
ilter included in the folder specified,
ExcludeNameFilter
cannot be used
ExcludeName string Name filter for entities to be If this attribute is
Filter excluded from the folder specified,
IncludeNameFilter
cannot be used
L1 Exhaustive true/false The entity type appearing at the If set to true, all
first level under a folder entities of the
Default is false specified type under
the active model will
be shown, irrespective
of whether they are
direct children or not
L2 Exhaustive true/false The entity type appearing below If set to true, all
the L1 level entities entities of the
Default is false specified type under
the parent entity will
be shown, irrespective
of whether they are
direct children or not
ModelNameExclusion - - Model names specified with this
filter will be excluded from
appearing in the Model Browser
EntityNameExclusion - - Entity names specified with this This exclusion is in
filter will be excluded from addition to the
appearing in the Model Browser ExcludeNameFilter
specified for a Folder
EntityTypeExclusion - - Entity types specified with this
filter will be excluded from
appearing in the "All Other"
folder of the Model Browser
590 Adams Car
Customizing the Model Browser for Adams Car and Adams Driveline

Customizing the Model Browser Appearance


1. Copy the ModelBrowser.xml from the installation directory to one of the following directories:
• MDI_ACAR_PRIVATE_DIR or MDI_ACAR_SITE - (Adams Car)
• MDI_ADRV_PRIVATE_DIR or MDI_ADRIVELINE_SITE - (Adams Driveline)
2. Edit the copied .xml and make the required modifications.
• For customizing the Standard Interface mode, make the necessary modifications in the acar
section of the .xml.
• For customizing the Template Builder mode, make the necessary modifications in the
template_builder section of the .xml.
3. Launch Adams Car or Adams Driveline
4. The Model Browser appears as per the updated specifications in the .xml file.

Example: Customizing the Model Browser for Variables


The ModelBrowser.xml available with the installation is configured to display 2 levels of design variables in
the 'Design Variables' folder.
For example, if variable DV_1 is a child MODEL_1 and variable DV_2 is a child of DV_1 the model browser
will show:

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

Introducing Adams View Libraries


Libraries let you use your user-written subroutines and compiled functions. User-written subroutines and
compiled functions let you tailor your template-based product to your needs and go beyond the functions
you can define using macros. For more on compiled functions, see Compiled Functions in the guide, Using the
Adams View Function Builder.
You will find subroutines most helpful when the operations to be performed are heavily recursive or require
file input or output.
To use your custom subroutines and functions, you create an Adams View library. An Adams View library
extends the functionality of your template-based product during the design phase and during plotting. Using
an Adams View library, you can create compiled functions in C and use them in an Adams View expression
just as you would use standard, built-in Adams View functions.
You register the user-written functions by calling a subroutine built into Adams View. You must place this
subroutine call in the registration subroutine supplied in source-code form in Adams View. To automate
592 Adams Car
Introducing Adams View Libraries

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

Learn more about Adams View libraries:


 Requirements for Creating Custom Libraries
 Creating and Using Adams View Libraries

Requirements for Creating Custom Libraries


To be able to create Adams View or Adams Solver libraries, you must meet the following requirements:
 To link Adams Solver (run-time) routines, you must have a FORTRAN or C compiler.
 To link Adams View (design-time) routines, you must have a C compiler.
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).
Customizing Your Product 593
Introducing Adams View Libraries

 You must have the linkers from the FORTRAN compilers to create a library, even if the subroutine
is in C.

Creating and Using Adams View Libraries


An Adams View library is a custom piece of C code that you can use to extend the functionality of the
interface. See a simple example to automatically create a Wavefront file based on a number of input parameters
from a macro.

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).

Using the Custom Adams View Library


For the custom Adams View library to be automatically loaded, see the notes for organizing your custom code.
Once you've loaded the library into your template-based product, you should be able to reference your
custom function. You can reference your function using the Function Builder or macro code.
594 Adams Car
Introducing Adams Solver Libraries

Introducing Adams Solver Libraries


Custom Adams Solver libraries let you use your user-written subroutines with Adams Solver. User-written
subroutines let you tailor your template-based product to your needs and go beyond the functionality
provided with Adams Solver and the specific solver functionality delivered with your product. For general
information about subroutines, see:
 Using Adams Solver Subroutines
 Running and Configuring Adams
For example, you want to create a force element that represents an aircraft landing-gear damper, then you
could create a custom Adams Solver library to define the calculations used to produce that force. Inputs to
the damper might include damper velocity, damper displacement, and operating temperature. Output could
be force.
To use your custom Adams Solver subroutine, you first compile your C or FORTRAN code. You then link
those files into an Adams Solver library (*.dll or *.so (on Linux)). The resulting file is stored in a location
defined by either MDI_ACAR_SITE or MDI_ACAR_PRIVATE_DIR. When you invoke the site or private
solver, the library is automatically loaded and the functions become available (dispatched using the auto-
generated code in dispatch.f ). A statement in the solver dataset, for the aircraft damper mentioned above,
may look like this:
SFORCE/1
,TRANSLATIONAL
,I = 1
,J = 2
,FUNCTION = USER (2001, 1, 2, 3)
where:
 2001 is the branch ID of your sfo subroutine (your function in your subroutine would be
sfo2001(par, npar)
 1 is the ID of the variable measuring damper_velocity
 2 is the ID of the variable measuring damper_displacement
 3 is the ID of the variable measuring temperature
This function would provide the force to the damper element. Assuming that a subroutine named sfo2001
is included in your custom solver code, the general dispatcher will call this subroutine, pass information to
the subroutine, and return the force from the subroutine.
Learn more about Adams Solver libraries:
 Requirements for Creating Custom Libraries
 Creating and Using Adams Solver Libraries

Requirements for Creating Custom Libraries


To be able to create Adams View or Adams Solver libraries, you must meet the following requirements:
 To link Adams Solver (run-time) routines, you must have a FORTRAN or C compiler.
 To link Adams View (design-time) routines, you must have a C compiler.
Customizing Your Product 595
Introducing Adams Solver Libraries

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.

Creating and Using Adams Solver Libraries


Before writing user subroutines, make sure you understand the concepts presented in Introducing Adams Solver
Libraries and Requirements for Creating Custom Libraries, and more importantly the requirements for the Adams
Solver dataset and the naming conventions for the subroutines and files containing subroutines. To review
some of those concepts, assume that you have an Adams Solver statement similar to the following:
REQUEST/1, FUNCTION = USER(123, ..., ...)
Then, you would need to generate a file named REQ123.f, which would contain a subroutine named req123.
For example:
C Request subroutine to calculate Yaw angle
subroutine req123 (par, npar)
If you follow this convention, generating your own custom libraries should be easy.

To generate a custom library:


1. Make a list of files that you want to include in your custom Adams Solver library.
2. Save this list in a text file named sub_list.lst. The following is an example list:
req123
sfo456
con789
3. Build your custom Adams Solver Library:
 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 select Advanced.
• At the prompt, type cr-solverprivate, and then press Enter.
• Press Enter again to select the default, which tells the compiler not to build debug libraries.
596 Adams Car
Introducing Adams Solver Libraries

• 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

Using the Dispatcher (GENDISP)


Adams Car has a unique utility for dealing with FORTRAN user subroutines called the generalized
dispatcher or GENDISP. GENDISP automatically creates the necessary subroutines (REQSUB, SFOSUB,
and so on) with all the branches to your routines as part of the linking of a library. The branching for each
category of a subroutine (RESQUB, SFOSUB, and so on) are written into a single FORTRAN file named
dispatch.f. In the topics that follow you will learn more about how this mechanism works.
Learn why you'll find it valuable to create subroutines and functions and how to create libraries that reference
them:
 Overview of GENDISP
 Conventions for Using GENDISP
 User-Written Subroutines that GENDISP Supports
 Adding GENDISP Support For New Subroutine Types
 Example of Using GENDISP
 How GENDISP Works

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.

Conventions for Using GENDISP


To use GENDISP correctly, you must do the following:
 Name your user subroutines using the convention that the first three characters must be the same as
the calling user subroutine and the last three characters of the subroutine name must be numbers.
For example, the subroutine called by a REQSUB, must be named REQ001, REQ002, and so on.
Another example would be naming GFORCE user subroutines called from a GFOSUB names like
GFO241, GFO534, and so on.
 Name your source code or object code files according to this convention. For GENDISP to work,
the source code or object code files must have the same root name as the subroutine (for example,
req001.f or req001.o). Note that GENDISP ignores case. Therefore, REQ001.f is the same as
req001.f or ReQ001.f. GENDISP generates branches based on the root file name. GENDISP does
not examine the contents of a file for names matching the convention.
 When invoking a user subroutine from your Adams model, make sure that the first user parameter
matches the subroutine you want to call. For example, the following sensor statement generates a call
to SEN743:
SENSOR/1, FUNC=USER(743, .......)\
Remember to always reserve the first parameter for branching when writing your user subroutines.
 Number all your routines in the 001 to 799 range (for example, REQ300 and SFO465). The range
900+ is reserved for standard Adams user subroutines.

User-Written Subroutines that GENDISP Supports


GENDISP supports the following Adams Solver user-written subroutines. Learn about subroutines.
Customizing Your Product 599
Introducing Adams Solver Libraries

Adams Solver User-Written Subroutines that GENDISP Supports

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

Adams Car provides generic GSEYU, GSEXU, GSEXX and GSEYX


subroutines that numerically difference a GSE subroutine. The general
dispatcher, however, does not provide support for the revised GSE
implementation using the GSE_DERIV, GSE_UPDATE, GSE_OUTPUT,
and GSE_SAMP subroutines.
MFORCE Modal force subroutine
MOTSUB Motion statement
REQSUB Request statement
SENSUB Sensor statement
SFOSUB Sforce statement
TIRSUB Tire statement subroutine (to be discontinued)
UCOSUB Ucon (user constraint) statement
VARSUB Variable statement
VFOSUB Vforce statement
VTOSUB Vtorque statement

GENDISP supports the following Adams Car user-written subroutine types:


Adams Car Subroutine Types That GENDISP Supports
600 Adams Car
Introducing Adams Solver Libraries

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.

Adding GENDISP Support For New Subroutine Types


To add support for a new subroutine type, you modify the file dispatch.dat to add the new type. You can find
a copy of dispatch.dat in the directory install_dir/product_name/dispatch.dat, where install_dir is the
directory in which you installed your template-based product and product_name is acar, aengine, aircraft, or
arail, according to the product you are using.
The file, dispatch.dat, is a TeimOrbit format file containing a block for each supported subroutine type and
follows these rules:
 Block names are limited to three characters. For example, [MYU] is valid, but [MYUT] is not.
 Branching is always based on PAR(1) in the generated source code. So PAR must either be an array
passed to the user subroutine as in REQSUB or PAR must be created using the
(CODE_BEFORE_BRANCH) option as Example of Using GENDISP.
 Code in the (CODE_BEFORE_BRANCH) sub-block is output literally to the generated source
code, and must follow FORTRAN's strict formatting rules. For example, executable code on a line
must be indented six spaces.
For example, the block for REQSUBs looks like:
$********************************************
[REQ]
(PARAMETERS)
{type name}
'INTEGER' 'ID'
'DOUBLE PRECISION' 'TIME'
'DOUBLE PRECISION' 'PAR(*)'
'INTEGER' 'NPAR'
'LOGICAL' 'IFLAG'
'DOUBLE PRECISION' 'RESULT(8)'
$********************************************
With this block in dispatch.dat and given a list of files names containing req900, req901, and req221,
GENDISP would create the following source code in the file dispatch.f:
Cccccccccccccccccccccccccccccccccccccccccccccccccccc
subroutine reqsub( ID,
& TIME,
& PAR,

& 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.

Example of Using GENDISP


The following example uses GENDISP to generate a MYUSUB that branches to subroutines named
myu532, myu253, and so on. It also branches to these subroutines based on an integer argument named
SWITCH.
SUBROUTINE MYUSUB( SWITCH, NDPAR, DPAR, VECTOR )
C
C GLOBAL VARIABLES
C
INTEGER SWITCH
INTEGER NDPAR
DOUBLE PRECISION DPAR(NDPAR)
DOUBLE PRECISION VECTOR(3)
C
C LOCAL VARIABLES
C
CHARACTER*(80) ERRMSG
INTEGER PAR(2)
C
PAR(1) = SWITCH
IF ( NINT(PAR(1)).EQ.532 ) THEN
CALL MYU532 ( SWITCH, NDPAR, DPAR, VECTOR )
Customizing Your Product 603
Introducing Adams Solver Libraries

ELSE IF ( NINT(PAR(1)).EQ.253 ) THEN


CALL MYU253 ( SWITCH, NDPAR, DPAR, VECTOR )
ELSE
WRITE (ERRMSG,'(A,I4.4)')
& 'ERROR in dispatcher subroutine MYSSUB: invalid switch:',
& NINT( PAR(1) )
CALL ERRMES( .TRUE., ERRMSG, 0, 'STOP')
ENDIF
RETURN
END
To dispatch.dat, you add a block for MYSSUB that looks like the following:
$********************************************
[MYU]
(PARAMETERS)
{type name}
'INTEGER' 'SWITCH'
'INTEGER' 'NDPAR'
'DOUBLE PRECISION' 'DPAR(NDPAR)'
'DOUBLE PRECISION' 'VECTOR(3)'
(CODE_BEFORE_BRANCH)
{code}
' INTEGER PAR(2)'
' PAR(1) = SWITCH'
$********************************************
The code GENDISP generates for MYUSUB looks a little different then the example above, but functions
in the same way:
Ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
subroutine myusub( SWITCH,
& NDPAR,
& DPAR
, & VECTOR )
C This is a dispatcher routine written by gendisp
INTEGER SWITCH
INTEGER NDPAR
DOUBLE PRECISION DPAR(NDPAR)
DOUBLE PRECISION VECTOR(3)
C Local variables
character*(80) errmsg
INTEGER PAR(2)
PAR(1) = SWITCH
IF ( NINT(PAR(1)).EQ.532 ) THEN
CALL myu532 ( SWITCH,
& NDPAR,
& DPAR,
& VECTOR )
ELSE IF ( NINT(PAR(1)).EQ.253 ) THEN
CALL myu253 ( SWITCH,
& NDPAR,
& DPAR,
& VECTOR )
ELSE
WRITE (ERRMSG,'(A,I4.4)')
604 Adams Car
Integrating Custom Events into the Event Browser

& 'Error in dispatcher subroutine myuSUB: Invalid


PAR(1): ',
& NINT( PAR(1) )
CALL ERRMES( .TRUE., ERRMSG, 0, 'STOP'
) ENDIF
RETURN
END

Integrating Custom Events into the Event Browser


Since users usually have many custom events, with corresponding macros and dialog boxes, it is often
necessary to be able to integrate those existing customizations into the event browser framework. The
following assumes that a macro (and optionally a dialog box) already exists for event customization. Then
integrating existing custom event macros into the event browser involves the following steps:
1. Create a python class that maps to the event. The macro "acar toolkit event convert" is available to
take an existing event macro and convert it into a python class that defines the event.
2. Register the python class to the event framework. The macro "acar toolkit event register" is provided
for this purpose.
3. Create the event UDE instance. This can be done either via the macro or dialog box. Mapping is done
by providing the reference to the macro.
Each of these steps will be outlined in detail below.

Creating the Event Definition


In order to integrate with the event browser framework in Adams Car, each event must have a "class"
definition. This backbone is built using the Python programming language to allow for greater extensibility
and to take advantage of the object-oriented features of the language. In order to make conversion easier, a
macro ("acar toolkit event convert") is provided to facilitate the conversion into the python event class.
The following table details the parameters to this macro.
acar toolkit event convert &
{macro=<macro_object> file=<macro_filename>} &
[{testrig=<existing testrig> class=<base class>}] &
[output_suffix=<output_suffix parameter>] &
[dbox_modify=<existing dialog box object>]

Parameter Type Description


macro Adams View Macro If provided, this will use the macro provided and convert it
into the event definition. [Either macro or file is required].
file Existing command file If provided, this will use the file provided and convert it into
the event definition [Either macro or file is required].
python_file Filename If not provided, will use macro name or filename as prefix for
the python class.
Customizing Your Product 605
Integrating Custom Events into the Event Browser

Parameter Type Description


testrig Model If provided, used to determine the “type” of event. For
example, passing the suspension testrig will yield a
“suspension” event [either class or testrig can be provided]..
class String If provided, will use the exact test for the base class in the
generated event [either class or testrig can be provided].
output_suffix String Output suffix is required and used for mapping the event. If
the macro uses a different parameter than “output_suffix”, it
is required to provide it to this parameter.
dbox_modify Existing Dialog Box If provided, will map this dialog box to the event class.
Otherwise, no dialog box will be used for modification and a
custom table will be used instead.

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.

Registering the Event Definition


Each event definition must be registered into the current Adams Car session. This enables the event
framework to apply the mapping between the custom macro and the class definition. This registration
happens via the following macro:
acar toolkit event register &
macro=<macro_object> &
python_file=<filename of python event class> &
[plugin=<plugin name>]

Parameter Type Description


macro Adams View Macro Macro to be mapped to the python class [required].
python_file Filename of python class Python class to be mapped [required].
plugin Plugin If provided, will “group” the customizations with the
plugin.

Note: This step must be performed at startup of Adams Car and registered into the session.

Creating the Event Instance


The final step is to create an event instance that uses the custom event. This enables the event browser to
display the instance for modification and/or rerun. This registration happens via the following macro call:
606 Adams Car
Adams Car Solver Routines

acar analysis event create &


name=<output_prefix>_<output_suffix> &
class=<macro_reference> &
model=<model name>
[attributes=<list of parameter names> values=<list of corresponding
values]

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.

Adams Car Solver Routines


The Solver routines are divided into the following categories:
 CONTROL subroutines
 DIFF subroutines
 FIELD subroutines
 GFORCE subroutines
 GSE subroutines
 MOTION subroutines
 REQUEST subroutines
 SFORCE subroutines
 VARIABLE subroutines
Customizing Your Product 607
Adams Car Solver Routines

User CONTROL Subroutines

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

User DIFF Subroutines

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

User FIELD Subroutines

ID Description
901 Linear bushing. See Working with Bushings.
910 Non-Linear bushing. See Working with Bushings
608 Adams Car
Adams Car Solver Routines

User GFORCE Subroutines

ID Description
900 Adding Tires to Your Model
908 Defining Tires in Adams Solver

User GSE Subroutines

ID Description
908 Defining Tires in Adams Solver

User MOTION Subroutines

ID Description
mot912 See Calculation of steering functions
mot914 See Calculation of sine steering functions

User REQUEST Subroutines

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

User SFORCE Subroutines

ID Description
sfo901 See SFORCE 901
sfo912 See Calculation of steering functions

User VARIABLE Subroutines

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

from_units A string specifying the current units of the argument in_value.


in_value A real number to be converted.

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

from_units A string specifying the current units.


to_units A string specifying the desired units.

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

in_value A real number to be converted.

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

units An integer value.


612 Adams Car
Utility Functions

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

assembled_model Name of the assembled model.

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

object_name A string that usually contains an object's name.


swap_str A string that describes the rules for character changing.
index An integer that specifies the index of the character to be changed.

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

in_str The input string, which is usually a file path.


old_str The string to be replaced.
new_str The string to replace old_str.

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

model A model entity.

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

object_name A string that usually contains an object's name.

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

in_str The input string.


begin_str A string to be removed from the beginning of in_str.
end_str A string that defines where to truncate the input string.

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

in_str The input string.


old_str The string to be replaced.
new_str The string to replace old_str.

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

object_name A string that usually contains an object's name.


type A list of characters to match. Allowed characters are l, r, and s.

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

path_alias Alias used for internal reference to database.

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.

Note: When comparing strings, Linux is case sensitive. Windows is not.

Format
STRING cdb_path2alias (STRING path)

Arguments

path File system path of the database.

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

input_name File system path to be converted to base name.

Examples
This example finds the base name for the file /local/proto.cdb/bushings.tbl/my_bush.bus:
Customizing Your Product 619
Utility Functions

variable set variable=i2b &


string_value(eval(cdb_input2base("/local/proto.cdb/bushings.tbl/m
y_bush.bus")))
i2b = "my_bush"

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

input_name File system path to be converted to extension.

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

input_name File system path to be converted to filename.

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

input_name Filename to be converted into file system path prefix.

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

input_name Filename with database alias to be converted to file system path.

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

input_name File system path to be converted to an Linux/Linux specific filename format.

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"

Database Lookup Functions


The database lookup functions find specified models or subsystems based on their classes or roles during a
session.
 model_class_exists
 subsystem_lookup
626 Adams Car
Utility Functions

 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

model_class String containing the model class.

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

model Name of the assembled model.


major_role String containing the major role to look up.
minor_role String containing the minor role to look up.

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

model Name of the assembled model.


role String containing the role to look up.

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

model Name of the assembled model.


role String containing the role to look up.
variant Name of the assembly variant to search.

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

model Name of the assembled model.


variant Name of the assembly variant to search.
major_role String containing the major role to look up.
minor_role String containing the minor role to look up.
index Subsystem index to look up. If your assembly does not
use subsystem indices, use index = 0.

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

model Name of the assembled model.


variant Name of the assembly variant to search.
major_role String containing the major role to look up.
minor_role String containing the minor role to look up.
index Subsystem index to look up. If your assembly does not
use subsystem indices, use index = 0.

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

model Name of the assembled model.


major_role String containing the major role to look up.
minor_role String containing the minor role to look up.

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

model Name of the assembled model.

Examples
variable set variable_name=total_mass &
real_value=(EVAL(ac_info_mass(.model_name)))

Organizing Custom Code


You can set up private and site repositories for storing:
 Binaries that contain interface changes and macros
 Libraries that contain linked subroutines and compiled functions
Customizing Your Product 631
Utility Functions

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:

Default Location of Private Repository

Product name: File name:


Adams Car $HOME/acar_private

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.

Defining Site Repositories

To define the site repository in Linux:


 In Adams Toolbar, change the siteDir setting in the Adams Car preferences. For example, change it
to:
/usr/people/someone/acar_site
 You can also change the siteDir setting using the Registry Shell Tool from the command line. For
example, at the command line enter:
adams2021 -c rtool
set /MDI/ACar/Preferences/siteDir /usr/people/someone/acar_site

To define the site repository in Windows:


1. From the Start menu, point to Programs, point to Adams 2021, and then select Settings & License.
2. Double-click the name of your product (Adams Car).
3. Select Preferences.
632 Adams Car
Example Four-Post Analysis

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.

Defining Private Repositories

To define the private repository in Linux:


 In Adams Toolbar, change the privateDir setting in the Adams Car preferences. For example,
change it to:
/usr/people/someone/new_private
 You can also change the privateDir setting using the Registry Shell Tool from the command line.
For example, at the command line enter:
adams2021 -c rtool
set /MDI/ACar/Preferences/privateDir /usr/people/someone/new_private

To define the private repository in Windows:


1. From the Start menu, point to Programs, point to Adams 2021, and then select Settings & License.
2. Double-click the name of your product (ACar).
3. Select Preferences.
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.
For more information on the directories, creating the binaries and libraries, and the Adams Toolbar, see
Running and Configuring Adams.

Example Four-Post Analysis


Although this is an Adams Car example, you can use the general concepts presented here to customize any
template-based product.
 Building and Running an Analysis: Teaches the expert user how to build and run a full-vehicle analysis
with the four-post test rig.
 Creating and Running a Macro: Introduces the concepts of creating and running a macro for the scenario
given above.

Setting Up and Running an Analysis


Learn about building and running an analysis:
 Extracting the Files
 Test Description
 Test Rig Description
Customizing Your Product 633
Example Four-Post Analysis

 Loading an Assembly with the Test Rig


 Running a Test

Extracting the Files


To get started with the example four-post test rig, extract the files located in the directory
install_dir/acar/examples/fourpost (for example, C:\MSC.Software\Adams\2021\acar\examples\fourpost).
Then, use the file acar_build.cmd to create a site binary that contains the test rig and corresponding macros.
To create a site binary file that contains the appropriate test rig and analysis macro files, you must perform
the following steps:
1. Set the following environment variable to the location where your files are stored:
MDI_ACAR_SITE.
• On Windows, it might look like: C:\MSC.Software\Adams\2021\acar\examples\fourpost.
• On Linux, it might look like: /usr/MSC.Software/2021/acar/examples/fourpost.
Make sure you have write permissions within this directory.
2. Build the Adams Car site binary file as follows:
• On Windows: From the Start menu, point to Programs, point to Adams 2021, and then select
Command Prompt. In the command window, type acar; cr-sitebin
• On Linux: Type adams2021; type acar, and then type cr-sitebin
Adams Car automatically executes acar_build.cmd and builds all the appropriate entities and libraries
into a site version of the Adams binary file.
3. To run the site binary file, follow the steps outlined above, but replace the cr-sitebin command with
ru-site.

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.

Test Rig Description


We created the test rig __acme_4PostRig in Adams Car Template Builder. Its major role is analysis and it
contains four general parts for each of the pads, and four actuators for each of the vertical translation joints
on each pad. The location of all of the pads and their respective constraints, such as actuators, are
parameterized in the ground plane (x and y) to a wheel-center location communicator that comes from the
suspension systems. The vertical location is parameterized to the z location of the marker std_tire_ref. The
marker std_tire_ref has its z height set automatically during the assembly process so that it represents the
average tire contact patch height of the vehicle.
Customizing Your Product 635
Example Four-Post Analysis

Four-Post Test Rig

Loading an Assembly with the Test Rig


Once you have successfully built the site binary file and started the site version of Adams Car, you must open
the assembly that we have also provided in the examples directory (cdb.cdb) mentioned in Extracting the Files.
If you have not already added the database to your .acar.cfg file, you should do the following:
 From the Tools menu, point to Database Management, and then select Add to Session.

Open the assembly contained in the cdb database as follows:


1. From the File menu, point to Open, and then select Assembly.
2. Open the MDI_Vehicle_4PostRig.asy.
636 Adams Car
Example Four-Post Analysis

You can also create a new assembly by doing the following:


1. From the File menu, point to New, and then select Full-Vehicle Assembly.
2. Select the appropriate subsystem files.
3. Change the vehicle test rig from __MDI_SDI_TESTRIG to __acme_4PostRig.
4. Select OK.

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.

Creating and Running a Macro


This topic introduces the concepts of creating and running a macro. While many of the code excerpts are
contained in this topic, we also included the appropriate files in the examples directory
(install_dir\acar\examples\fourpost\analysis\macros).
You can modify the macro in this directory and then rebuild it in to your Adams Car site binary file. This
allows you to make changes and experiment with macro changes.
 User-Input Parameters
 About the Simulation Process
 Creating the Macro
 Adding the Four-Post Analysis Macro to a Binary
 Testing the New Analysis Macro
 Customizing the Four-Post Analysis Dialog Box
638 Adams Car
Example Four-Post Analysis

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)

About the Simulation Process


The following steps outline the simulation process. The simulation process for the vehicle and test rig is
similar to any other suspension or full-vehicle simulation.

The simulation process steps are:


1. Perform a check to ensure that the assembly has the correct test rig.
2. Check if an analysis of the same name already exists.
3. Read in the property files.
4. Assign the z location of the marker std_tire_ref based on the average contact patch location of all of
the tires to the four wheel pads.
5. Modify the analytical functions of the actuator (jms_left_front_actuator, jms_right_front_actuator,
and so on), according to the user-input data:
Based on the analytical drive signal, you must assign the following functions to each actuator:
Left Front - LF_phase*Peak_Amplitude*sin(1/2*360D*Freq_Range/End_Time*Time**2)
Right Front - RF_phase*Peak_Amplitude*sin(1/2*360D*Freq_Range/End_Time*Time**2)
Left Rear - LR_phase*Peak_Amplitude*sin(1/2*360D*Freq_Range/End_Time*Time**2)
Right Rear - RR_phase*Peak_Amplitude*sin(1/2*360D*Freq_Range/End_Time*Time**2)
where the following values are assigned to the phase variables in the function:
Heave Mode - LF_Phase, RF_Phase, LR_Phase, RR_Phase = 1.0
Pitch Mode - LF_Phase, RF_Phase = 1.0 & LR_Phase, RR_Phase = -1.0
Customizing Your Product 639
Example Four-Post Analysis

Roll Mode - LF_Phase, LR_Phase = 1.0 & RF_Phase, RR_Phase = -1.0


Warp Mode - LF_Phase, RR_Phase = 1.0 & RF_Phase, LR_Phase = -1.0
The simulation process involves submitting the simulation to Adams Solver using a process similar to the full-
vehicle simulation process. The simulation needs:
 One static equilibrium
 An initial velocity of 0.0
 A dynamic simulation equal to the end time (specified by user)
To avoid aliasing of the input during the simulation, users should set the maximum time step that the
integrator is allowed to take (HMAX argument on the integrator) to at least 1/10 of the maximum frequency
range. For example, if the frequency range you set is 20 Hz, then the HMAX should be 1/10*1/20 = 1/200
(0.005).

Creating the Macro


This four-post vertical excitation example provides instructions to help you create your own macro based on
a given user scenario. The objective of the analysis is described in Test Description.
Creating the macro involves the following:
 Defining Parameters
 Handling Errors
 Reading Property Files
 Setting Up the Assembly and Test Rig
 Submitting the Analysis
 Logging the Analysis Results
 Finishing up the Macro

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

Parameter name: Description:


assembly String value that specifies an existing model. t=model; t specifies type; examples
could include real, integer, and so on.
output_prefix String value that specifies the name of the analysis. This name is used to write the
analysis files (.adm, .acf, and so on) to the file system and also when the solver files
are read back into Adams Car.
comment Stores comments in the Adams dataset, d=" "; d specifies default, which is an
empty string.
end_time Real value that tells Adams Solver the end time of the four-post analysis. gt=0; gt
specifies greater than.
number_of_steps Integer value that tells Adams Solver the number of output steps.
analysis_mode String value that specifies the mode of the analysis. The three valid modes are
interactive, background, or graphical; the list specifies the valid options.
peak_displacement Indicates the maximum amplitude of the shaker pad vertical displacement.
units Hardcoded to millimeters for tutorial, but you can expand it to include other
units.
frequency_range Real value indicating the frequency range of the actuator motion functions.
excitation_mode List value that indicates the direction of the shaker pad motions.
load_results Specifies whether to load the results once Adams Solver has finished the analysis.
The default is yes.
log_file Indicates if Adams Car should generate an analysis log file.

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

!---- Check if analysis name already exists ----


if condition=(db_exists("$assembly.$'output_prefix'_fourpost"))
if condition=(alert("question","An analysis called \'$'output_prefix'_fourpost\' &
already exists. Overwrite it?","Yes","No","",2) == 2)
variable set variable_name=$error_variable integer=1
return
end
end

Reading Property Files


After the macro validates the assembly, it reads in and assigns the property file information, using the
following code fragment:
!---- Clear out message window ----
acar toolkit message &
message=" " append=no display=no closeable=yes echo_to_logfile=no

!---- Read property files ----


acar toolkit read property_files &
assembly=$assembly &

verbose=yes &
error_variable=$error_variable

if condition=($error_variable != 0)

return

end

Setting Up the Assembly and Test Rig


In this section of the macro, you modify elements of the test rig and assembly to match the values and
information entered by the user.
The code fragments for the four-post setup are shown next, with a description for each section, as needed.
!---- Set up the assembly for the maneuver ----
acar toolkit message &
message="Setting up vehicle assembly for four-post shaker..."
You must assign the tire reference markers to the appropriate test pad on the shaker table. The naming
conventions for the communicator variables for the reference markers are considered fixed, in that the macro
looks for the communicators known to exist in the four-post test rig. Note that the setup of the tire reference
markers only occurs once for a particular assembly. If you use the same assembly for multiple four-post
analyses, the initial setup will be valid for each analysis.
For each wheel, the tire reference marker is assigned to a shaker pad. The first step is to find each tire in the
full-vehicle assembly. The reassignment occurs through an output communicator in the test rig. The
communicator holds the name of the part on the shaker pad where you should attach the tire reference
marker.
642 Adams Car
Example Four-Post Analysis

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

Submitting the Analysis


After the macro sets up the assembly, you set up the macro to submit the assembly for the four-post analysis.
Since this is a full-vehicle assembly, you use the corresponding full-vehicle submission utility macro. Note
that the syntax for calling this macro is practically the same as that used in the standard Adams Car full-vehicle
analyses. In this case, two additional parameters are specified to have non-default values for the four-post
simulation: generate_road_geometry and simulation_type.
The following shows the code fragment for calling the full-vehicle submission utility macro:
!---- Perform the analysis ----
acar analysis full_vehicle submit &
assembly=$assembly &
analysis_name="$'output_prefix'_fourpost" &
end_time=$end_time &
number_of_steps=$number_of_steps &
analysis_mode=$analysis_mode &
load_results=$load_results &
brief=$brief &
road_data_file="BEDPLATE" &
generate_road_geometry=no &
simulation_type=fourpost
The following table describes the important parameters associated with the four-post full-vehicle submission
macro.
Customizing Your Product 645
Example Four-Post Analysis

Parameter name: Description:


load_results String value that specifies if the results of the analysis should be read in after
the analysis is complete. Expected values are yes or no.
road_data_file Hardcoded to BEDPLATE to indicate that the car will not be driven across a
road surface. Adams Car internally interprets and understands this hardcoded
value.
generate_road_geometry Set to no to indicate that Adams Car should not generate a geometric
representation of the data found in the road_data_file.
simulation_type Hardcoded to fourpost to indicate that the full-vehicle will be attached to a
four-post shaker table. Adams Car internally interprets and understands this
hardcoded value to produce the correct .adm and .acf files.

Logging the Analysis Results


Once the analysis completed, the macro logs the results to a file. In addition, you can set up the macro so it
displays final diagnostic messages to the message window, as follows:
if condition=($log_file)
acar analysis full_vehicle log &
assembly=$assembly &
analysis_name="$'output_prefix'_fourpost" &
analysis_type="Four Post Shaker Test" &
analysis_log_file="$'output_prefix'_fourpost.log" &
comment=$comment &
end_time=$end_time &
number_of_steps=$number_of_steps &
road_data_file="BEDPLATE" &
initial_velocity=0.0 &
velocity_units="m_sec" &
input_parameters="general input" &
parameter_values=("$number_of_steps")
end

if condition=("$analysis_mode" != "background")
acar toolkit message &
message="Simulation is complete."
end

Finishing up the Macro


Delete all local variables created in the macro using the $_self nomenclature:
variable delete variable_name=(eval(db_children($_self,"variable")))

Adding the Four-Post Analysis Macro to a Binary


You can add the four-post analysis macro to either the private or site binary. The command shown next
creates the macro by reading in the command file found at the location you specified. You must place this
command either in the acar_build.cmd file as described in Configuring Your Product, or in the
646 Adams Car
Example Four-Post Analysis

macros_ana.cmd file as we have done in the example analysis/macros_ana.cmd, which is read by


acar_build.cmd.
macro read macro_name=.acme.macros.mac_ana_ful_fou &
file_name=(getenv("MDI_ACAR_SITE")//"/analysis/macros/mac_ana_ful_fou_s
ub.cmd") &
user_entered_command="acme analysis full_vehicle four_post submit" &
wrap_in_undo=no &
create_panel=no

Testing the New Analysis Macro


The easiest way to test the four-post analysis macro is to access it from the Command Navigator. The
command you should use is the user_entered_command specified in the acar_build.cmd file shown in Adding
the Four-Post Analysis Macro to a Binary.

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

Macro-Generated Dialog Box

Customizing the Four-Post Analysis Dialog Box


Now that you created the four-post analysis macro, the custom graphical interface is also almost complete.
When you access the four-post macro using the Command Navigator, Adams Car displays a default dialog
box associated with that macro, as shown in figure Macro-Generated Dialog Box. Compare this dialog box to the
one shown in figure Customized Dialog Box. The customized dialog box illustrates an example of what you
might want to do with the default dialog box generated using the Command Navigator:
 Change the dialog box title.
 Remove the Comments and Error Variable text boxes (they will take on their default values as
defined in the macro).
 Modify the Load Results pull-down menu to be radio boxes, and then decrease the area they occupy.
 Shorten the Brief and Log File pull-down menus to match the Load Results radio boxes.
Learn about customizing the interface.
648 Adams Car
Example Four-Post Analysis

Customized Dialog Box

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

!---- Read the Four Post shaker dialog box ----


file command read &
file_name=(getenv("MDI_ACAR_SITE")//"/analysis/dboxes/dbox_ana_ful_fou_sub.cmd")

!---- Check if menu button exists and delete it if it does ----


if condition=(db_exists(".gui.main.aca_sta_mbar.simulate.full_vehicle_analysis.ACME_FourPost"))
interface push_button delete &
push_button_name =
.gui.main.aca_sta_mbar.simulate.full_vehicle_analysis.ACME_FourPost
end

!---- Add a menu option ----


Customizing Your Product 649
Example Four-Post Analysis

interface push_button create &


push_button_name =
.gui.main.aca_sta_mbar.simulate.full_vehicle_analysis.ACME_FourPost &
enabled = yes &
help_text = "Simulate a full-vehicle on the ACME FourPost testrig" &
units = relative &
horiz_resizing = scale_all &
vert_resizing = scale_all &
location = 0.0, 0.0 &
label = "&ACME Fourpost..." &
commands = "interface dialog_box display dialog=.acar.dboxes.dbox_ana_ful_fou_sub"
&
default = false
650 Adams Car
Example Four-Post Analysis
Adams Machinery in the Template-
Based Products
The Machinery Gear and Motor modules are made available in the template-based products.

Using Adams Machinery


1. Adams Machinery Gears can be created in Template Builder via Build → Gears → A Machinery
Gear.

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

Creating a gear pair


Create gear element
 Specify name of the gear
 Specify 'construction frame' as reference ('Z' axis of construction frame is aligned with rotational
axis of gear)
 Specify gear element parameters:
• Refer a property file (from 'acar_shared database')
• Specify the input parameters manually
• Save 'property file' will overwrite existing property file
• Specify mass properties
• Specify Tooth modification parameters if applicable
 Specify Connection part and type of connection
 Specify Symmetry
• If selected reference frame is of type 'single' symmetry will be 'single'
• If selected reference frame is of type 'left' or 'right' user can choose symmetry as 'yes/no'
Adams Machinery in the Template-Based Products 651
Machinery Gear

General Layout sample for dialog box


652 Adams Machinery
Machinery Gear

To create gear force

 Select required gear force type (simplified/3D/Detailed)


 Enter gear force parameters:
• Select a gear_force property file from 'acar_shared database'.
• Enter input parameters manually.
 Symmetry
• Gear force symmetry is inherited from gear elements.
• If any of gear elements (gear 1 or gear 2) is symmetric, then gear_force will be symmetric.
Adams Machinery in the Template-Based Products 653
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.

Applying actuator motion to a gear


As the joint under gear element instance does not have naming convention as (j[ok][lrs]{rev,tra,cyl}_*), user
will have to clear the filter to '*' while browsing for joints under gear elements. Alternatively one can use a
filter like [jg][oke][lrsa]{rev,tra,cyl,r}_*

Model Browser Representation


All machinery gear elements will be named as : mg[lrs]{cyl,bev,rac,wrm,hyp,for,pla}_*
Where,
 mg - stands for machinery gear
 [lrs] - represents symmetry
 {cyl,bev,rac,wrm,hyp,pla} - denotes cylindrical, bevel, rack, worm. hypoid and planetary gears
respectively
 {for} - denotes gear force
Model browser representation will look like below:
654 Adams Machinery
Motor

Subsystem parameters for Machinery Gear


In a subsystem file, Machinery Gear elements have the block header 'MACHINERY_GEAR'. It lists both
Machinery Gear elements as well as gear force subsystem parameters. You can manually edit the gear
subsystem parameters which will be reflected in the modeling session after importing the subsystem file.

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

1.3 Principle of operation


The operation of a synchronous motor is due to the interaction of the magnetic fields of the stator and the
rotor. The stator winding, when excited by a poly-phase (usually 3-phase) supply, creates a rotating magnetic
field inside the motor. The rotor locks in with the rotating magnetic field and rotates along with it. Once the
rotor locks in with the rotating magnetic field, the motor is said to be in synchronization. A single-phase (or
two-phase derived from single phase) stator winding is possible, but in this case the direction of rotation is
not defined and the machine may start in either direction unless prevented from doing so by the starting
arrangements.

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.4 Starting methods


Above a certain size, synchronous motors are not self-starting motors. The rotor cannot instantly follow the
rotation of the magnetic field of the stator. Since a synchronous motor produces no inherent average torque
at standstill, it cannot accelerate to synchronous speed without some supplemental mechanism.
Large motors operating on commercial power frequency include a "squirrel cage" induction winding which
provides sufficient torque for acceleration and which also serves to damp oscillations in motor speed in
operation. Once the rotor nears the synchronous speed, the field winding is excited, and the motor pulls into
synchronization. Very large motor systems may include a "pony" motor that accelerates the unloaded
synchronous machine before load is applied.
Polyphase synchronous motors rotate in a direction determined by the sequence of the currents in the phase
windings. Single-phase synchronous motors such as in electric wall clocks can freely rotate in either direction
unless a shaded-pole type.
Adams Machinery in the Template-Based Products 657
Motor

1.5 Applications
 Electric wall clocks

 Synchronous Condensers.
 Centrifugal Machines
 Air Compressors
 Textile mills
 To improve power factor in Large industries

1.6 Torque Equation


The torque for an AC Synchronous motor is calculated as,

3 × V × K cos Φ sin δ E V – E cos δ E


T = --------------------------------------------------- I a = ---------------------------------------
X cos Φ + R a sin Φ R a cos θ – X sin θ

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

Note: In actual implementation Er is calculated as magnitude (Er = SQRT( Re(Er)^2 + Im(Er)^2))


and not as complex number.

Where,
 T = Motor torque
 V = Supply voltage
 K = BEMF constant
 Φ = Power factor angle
658 Adams Machinery
Motor

 δ E = Electrical Torque angle


 δ = Torque angle
 X = Reactance
 E = Back Emf
 ω r = Rotor angular velocity
 f = Supply Frequency
 L = Inductance
 P = Poles
 Er = Rated Back emf

 ω s = Angular velocity
 Vr = Rated voltage
 Ir = Rated current
 Ra = Armature resistance

 Φ r = Rated power factor angle


 Xr = Rated reactance
 fr = Rated frequency
 PFr = Rated Power factor

1.7 Torque Angle( δ ) Calculation

δ = Angular displacement of Stator - Angular displacement of rotor (Pole Slipping to be accounted)

1.8 Pole Slipping

Step Condition Check Action Action Description


δ
1 Substantial slip δ >α δm = mod  --- This will locate the nearest pole
 α for reference.
Adams Machinery in the Template-Based Products 659
Motor

Step Condition Check Action Action Description


2.A Still following α NA No action needed.
δ < ---
current pole 2

2.B Slipped to previous α δ = δ–α Recede reference to measure


δ > ---
pole 2 with

2.C Jumped to next pole α δ = δ+α Advance reference to measure


δ < – --- with
2


α = ------
p
where:
 P = Poles
 α = Pole Pair angle (Angle between two consecutive North Poles)

1.9 Sample Values


 V = 15 VoltsNs

 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

2.2 Principle of operation


The principle of operation of a D.C motor can be stated as 'when a current carrying conductor is placed in
a magnetic field; it experiences a mechanical force'. In practical dc motor, field winding produces a required
magnetic field while armature conductors play a role of a current carrying conductors and hence armature
conductors experience a force.
As conductors are placed in the slots which are on the periphery, the individual force experienced by the
conductors acts as a twisting or turning force on the armature which is called Torque. The torque is the
product of force and the radius at which this force acts. So overall armature experiences a torque and starts
rotating.
In the practical D.C motor, the permanent magnet is replaced by a field winding which produces the required
flux called main flux and all the armature conductors, mounted on the periphery of the armature drum, get
subjected to the mechanical force. Due to this overall armature experiences a twisting force called torque and
armature of the motor starts rotating.

2.3 Types of D.C Motors


The D.C motors are classified into two depending upon the way of connecting the field winding with the
armature winding. The two different types of a D.C motors are shunt motor and series motor.

2.3.1 Shunt D.C Motor


A shunt DC motor connects the armature and field windings in parallel or shunt with a common D.C. power
source. This type of motor has good speed regulation even as the load varies, but does not have as high of
starting torque as a series DC motor. It is typically used for industrial, adjustable speed applications.

2.3.2 Series D.C Motor


A series DC motor connects the armature and field windings in series with a common D.C. power source.
The motor speed varies as a non-linear function of load torque and armature current. Current is common to
both the stator and rotor yielding I2 (current) squared behavior. A series motor has very high starting torque
and is commonly used for starting high inertia loads.
Adams Machinery in the Template-Based Products 661
Motor

2.4 Applications of a D.C Motor

2.5 Shunt D.C Motor


 Lathes

 Fans
 Pumps
 Band saw
 Drive requiring moderate torques
 Winding/unwinding machines and Tensioners

2.6 Series D.C Motor


 Elevators / hoists

 Dragline Excavators
 Air compressors
 Vacuum cleaners

2.7 Torque Equation for D.C Shunt Motor


The torque for a D.C. Shunt motor is calculated as

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

2.7.1 Sample values


 φ = 25 mwb
 Z = 200
 P=4
 a=2
 Es = 250 Volts
 Ra = 0.7 ohms
 N = 1200 rpm
 K1 = 0.5

2.8 Torque Equation for D.C Series Motor


The torque for a d.c Series motor is calculated as
2
T = K 1 KI

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

 φ = Flux per pole in Webers


Adams Machinery in the Template-Based Products 663
Motor

 I = 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

2.8.1 Sample values:


 φ = 25 mwb
 Z = 200
 P=4
 a=2
 Es = 250 Volts
 Ra = 0.7 ohms
 N = 1200 rpm
664 Adams Machinery
Motor

2.9 Typical Characteristic Curves of Shunt and Series D.C Motor

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

 Elimination of ionizing sparks from commutator


 Overall reduction electromagnetic interference

3.1 Components
 Rotor - Permanent magnets

 Stator - Armature
 Electronic commutator

3.2 Variations in constructions of BLDC Motor


Brushless motors can be constructed in several different physical configurations. In the conventional
innerturn configuration, the permanent magnets are part of the rotor, three stator windings surround the
rotor.
In outrunner configuration, the radial-relationship between the coils and magnets is reversed. The stator coils
form the center (core) of the motor, while the permanent magnets spin within an overhanging rotor which
surrounds the core. Outrunners typically have more poles, set up in triplets to maintain the three groups of
windings, and have a higher torque at low RPMs.

3.3 Two common electrical winding configurations

3.3.1 Delta configuration:


The delta configuration connects three windings to each other (series circuits) in a triangle-like circuit, and
power is applied at each of the connections. A motor with windings in delta configuration gives low torque
at low speed, but can give higher top speed.

3.3.2 Y-shaped configuration:


The Y-shaped configuration is sometimes called a star winding. It connects all of the windings to a central
point (parallel circuits) and power is applied to the remaining end of each winding. Y-configuration gives high
torque at low speed, but not as high top speed.
666 Adams Machinery
Motor

3.4 Principle of operation


The brushless DC motor is the combination of a permanent excited synchronous motor and a frequency
inverter. The inverter has to replace the commutator of a conventional DC motor. Figure below shows how
a brushless DC motor can be derived from a mechanically commutated DC motor with three armature slots.
Its armature winding corresponds to a three phase winding in delta connection. The commutator acts like a
three phase frequency converter. Stator (excitation) and rotor (armature) change places.

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 Applications of BLDC Motor


Brushless DC motors can be used for following two applications:
 Speed control
 Position control

3.5.1 Speed control


Brushless DC motors control the speed of the rotor by making use of PID (proportional-integral-derivative)
controllers. PID controllers compare the desired speed and actual speed (measured by making use of rotary
encoders/tachometers and so on) and calculate current/voltage needed to drive the motor in desired speed.

3.5.2 Position control


Brushless DC motors control the position (angle) of the rotor with the help of PID controllers. PID
controllers compare the desired angle of the rotor and actual angle of the rotor to calculate current/voltage
needed to drive the motor in desired angle.

3.5.3 Examples
 Gyroscope motors

 Biomedical instruments like artificial heart pumps


 Aerospace
 Tape drivers for video recorders
 Actuators for Robots
 Feed drivers for CNC machine tools
 Electric Bicycles

3.6 Torque Equation for BLDC Motor:


The torque for a BLDC motor is calculated as

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

 ω max = Maximum Angular Velocity


 ω = Actual Angular Velocity of the rotor

Important: In actual implementation Ia is taken as (Es-Eb)/Ra as modelling implementation needs Ia to be


positive and motor will rotate only if Es > Eb, negative value of current in basic equation
denotes direction of the current flow.

3.7 Sample Values


 kd = 0.966

 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

 ω max = 500 deg/s

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.

4.1 Components of Stepper Motor


 Rotor: Multi-Toothed Permanent Magnet.

 Stator: Field Windings.

4.2 Types of Stepper Motors


The main types of Stepper motor are.
670 Adams Machinery
Motor

 Variable Reluctance Stepper.


 Permanent Magnet Stepper.
 Hybrid Synchronous.

4.3 Principle of operation


The basic operation of a stepper motor allows the shaft to move a precise number of degrees each time a pulse
of electricity is sent to the motor. Since the shaft of the motor moves only the number of degrees that it was
designed for when each pulse is delivered, the pulse can be controlled for the positioning and speed.
The rotor of the motor produces torque from the interaction between the magnetic field in the stator and
rotor. The strength of the magnetic fields is proportional to the amount of current sent to the stator and the
number of turns in the windings.
The stepper motor uses the theory of operation for magnets to make the motor shaft turn a precise distance
when a pulse of electricity is provided.

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

4.5 Torque Equation for Stepper Motor:


The torque for a Stepper motor is calculated as,
672 Adams Machinery
Motor

π
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.

Notes: Stepper Motor can be controlled in the following two ways:

 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.

4.6 Shaft Angle ( θ ) calculation

Shaft angle θ = Detent Angle - Actual Angular Displacement


The shaft angle ( θ ) is calculated based on the input type:
 PPS Vs time
 Target Angle Vs time
Detent Angle = Detent Count x S
Detent Count = Number of detent positions as obtained from the PPS Vs Time or Target angle Vs Time
Curve.
S = Step Angle in radians.

4.7 Sample Values:


 H = 100 N-m

 θ = 0.5 radians
Adams Machinery in the Template-Based Products 673
Motor

4.8 Typical Characteristic curves for a Stepper 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.

Enter Spline File


This method allows the entry of data of Speed and Torque via external file. The File should be in .csv (Comma
Separated Values) format. Motor torque is created based on the definition of the user. A Motor Spline is
created in Adams using the Torque vs. Speed Input. This Motor Spline contains the data of the input file.
The Spline Torque is calculated as a function of AKIMA FITTING METHOD (AKISPL).
AKISPL (First Independent Variable, Second Independent Variable,
Spline Name, Derivative Order)

Create Data Points


This method allows direct entry of data into the table present in the motor wizard. Here X axis represents the
data of Speed (RPM) and Y axis represents the data of torque. The user can visualize the plot of the entered
curve points. Graphical editing is an added feature. This method also calculates spline torque as a function
of AKIMA FITTING METHOD (AKISPL).
The Curve based method automatically creates Adams entities like design variables, state variables, functions,
splines, Adams Curves and the torque itself. The resulting model runs in Adams Solver and the following
Output requests are automatically created for the user.
1. Motor Torque
2. Motor Speed
3. Power
Adams Machinery in the Template-Based Products 675
Motor

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. External System Library Import


External Library System Import is aimed at importing the external model system, either created from
MATLAB or from Easy5, into the Adams model as a General State Equation (GSE).
676 Adams Machinery
Examples in the shared databases

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.

Examples in the shared databases


The shared databases (acar_shared, atruck_shared, and adriveline_shared) contain sample property files,
templates, subsystems and assembly files which demonstrate the use of Adams Machinery in the template-
based products.
Adams Machinery in the Template-Based Products 677
Examples in the shared databases

Gear element property files are stored in 'gear_elements.tbl'


Gear force property files are placed stored in 'gear_stiffness.tbl'
Example templates, subsystems and assemblies (Machinery counterparts for standard models) are shown
below:

<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

Example Four-Post Analysis


Although this is an Adams Car example, you can use the general concepts presented here to customize any
template-based product.
 Setting Up and Running an Analysis: Teaches the expert user how to build and run a full-vehicle analysis
with the four-post test rig.
 Creating and Running a Macro: Introduces the concepts of creating and running a macro for the scenario
given above.

Example Event Files


In Adams Car, XML became the default file format for Driving Machine analyses. Although Adams Car still
supports driver control files (.dcf ), it now automatically converts them to .xml. The .xml files are referred to
as event files. Although the contents of the two files types look different, they contain the same event
information. You work with .xml files through the Event Builder.
In the shared Adams Car database, we provide files in both .dcf and .xml format. These files are stored in the
driver_controls.tbl directory/table.

Example .dcd File


The following shows the architecture of a .dcd file and all the options you can set for a .dcd file. It contains
options, logic, and general rules that you must follow when creating a .dcd file.
[MDI_HEADER]
FILE_NAME = filename.dcd
FILE_TYPE = 'dcd'
FILE_VERSION = 1.0 FILE_FORMAT = 'ASCII'

(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

.Example corresponding to $ 2 Case{none,lon_vel}:


.....
[CLOSED_LOOP]
STEERING_CONTROL = 'NONE'
SPEED_CONTROL = 'LON_VEL'
ORDINAL = 'TIME'
(DATA)
{ TIME, LON_VEL }
0.0 27.777
Tutorials and Examples 351
Example Mapping File

0.1 27.777
0.2 27.776
0.3 27.775
0.4 27.774
0.5 27.773
.....

Example corresponding to $ 7 Case{curvature,lon_vel}:


.....
[CLOSED_LOOP]
STEERING_CONTROL = 'CURVATURE'
SPEED_CONTROL = 'LON_VEL'
ORDINAL = 'DISTANCE'
(DATA)
{ DISTANCE, CURVATURE, LON_VEL }
0.0 0.000 27.777
1.0 0.002 27.777
2.0 0.004 27.777
3.0 0.006 27.776
4.0 0.008 27.775
5.0 0.010 27.774
6.0 0.010 27.773
7.0 0.010 27.774
8.0 0.010 27.774
9.0 0.010 27.774
10.0 0.010 27.774
11.0 0.010 27.774
12.0 0.010 27.774
13.0 0.010 27.774
.....

Example Mapping File


The mapping file is acceptable in comma separated value (.csv) format. There are seven columns in each line
(record). Each section must be separated by a blank line.
The first three lines includes the header information and contain the following, in this order:
 Reference template address
 Subsytem major role
 Subsytem minor role

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 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

Example Suspension Loadcase File


In Adams Car, you can use loadcase files to specify different types of suspension analyses. The following is an
example loadcase file.
$-----------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'lcf'
FILE_VERSION = 4.0
FILE_FORMAT = 'ASCII'
$-----------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
ANGLE = 'degrees'
FORCE = 'newton'
MASS = 'kg'
TIME = 'second'
$
$Generation Parameters: (Do Not Modify!)
$ loadcase = 1
$ nsteps = 10
354 Adams Car
Example Wheel-Envelope Input File

$ bump_disp = 100.00 rebound_disp = -100.00


$ steering_input = angle
$ stat_steer_pos = 0.00
$
$-----------------------------------------------mode
[MODE]
STEERING_MODE = 'angle'
VERTICAL_MODE = 'length'
$-----------------------------------------------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 force / 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}
-100.0000 -100.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-80.0000 -80.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-60.0000 -60.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-40.0000 -40.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-20.0000 -20.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.000
20.0000 20.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
40.0000 40.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
60.0000 60.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
80.0000 80.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
100.0000 100.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

Example Wheel-Envelope Input File


The following is an example of a wheel-envelope input file (.wen) that you can use to control a wheel-
envelope analysis.

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

Example Wheel-Envelope Output File


A wheel-envelope output file (.wev) contains a header and a data table, as explained next.
The first three lines comprise the header and contain the following information, in this order:
 Type of file
 Adams dataset title
 Date and time of file creation
The table that follows the header contains the following information:
 The first column shows the solution step number
356 Adams Car
Example Plot Configuration File

 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
... .......

Example Plot Configuration File


The following is an example of an Adams Car plot configuration file:
$----------------------------------------------------------------------PAGE

[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

Example Differential Property File


The following shows the architecture of a Differential Property File (*.dif ) for modeling a viscous limited-
slip differential in Adams Car. These property files may be referenced by a General Splines and are used to
model torque vs. angular velocity.
$---------------------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'dif'
FILE_VERSION = 1.0
FILE_FORMAT = 'ASCII'
$--------------------------------------------------------------UNITS
[UNITS]
(BASE)
{length force angle mass time}
'meter' 'newton' 'degrees' 'kg' 'sec'
(USER)
{unit_type length force angle mass time conversion}
'rpm' 0 0 1 0 -1 6.0
$
$-------------------------------------------------------DIFFERENTIAL
[DIFFERENTIAL]
(XY_DATA)
{slip_speed<rpm> torque <torque>}
-90 -4644.00
-85 -3644.00
-80 -2644.00
-75 -1644.00
-71 -844.00
-69 -624.00
-65 -544.00
-60 -444.00
-55 -344.00
-50 -244.00
-45 -144.00
-41 -64.00
-39 -42.00
-35 -34.00
-30 -24.00
-25 -14.00
-21 -6.00
-19 -3.80
-15 -3.00
-10 -2.00
-5 -1.00
0 0.00
5 1.00
10 2.00
Tutorials and Examples 359
Example Motor Property Files

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

Example Motor Property Files


The following shows the architecture of the Adams Machinery Motor Property Files (*.mtr, *.bldc, *.stpr) for
modeling electric motors in Adams.
If you select the Curve Based method, the required property file format is *.mtr. If you select the Analytical
method, Brushless DC and Stepper motors require property files (*.bldc and *.stpr respectively). For the
Curve Based method (*.mtr), the file must contain torque vs. RPM data. For BLDC motors, the file may
contain either angle vs. time or angular velocity vs. time. For Stepper motors, the file may contain either target
angle vs. time or pulses per second vs. time. Examples of each type is included in the acar_shared database.

Curve Based Example Property File


$---------------------------------------------------------MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'mtr'
FILE_VERSION = 4.0
FILE_FORMAT = 'ASCII'
$--------------------------------------------------------------UNITS
[UNITS]
LENGTH = 'mm'
ANGLE = 'degrees'
FORCE = 'newton'
MASS = 'kg'
TIME = 'second'
$---------------------------------------------------------PARAMETERS
[PARAMETERS]
METHOD = 'curve_based'
$--------------------------------------------------------------CURVE
[CURVE]
{ rpm torque}
360 Adams Car
Example Motor Property Files

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

BLDC Position Control Example Property File


$---------------------------------------------------------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 = 'position_control'
$--------------------------------------------------------------CURVE
[CURVE]
{ time angle}
0.0 0.0
0.1 90.0
0.2 90.0
0.3 90.0
0.4 90.0
0.5 90.0
0.6 90.0
0.7 90.0
0.8 90.0
0.9 90.0
1.0 180.0
1.1 180.0
1.2 180.0
1.3 180.0
1.4 180.0
1.5 180.0
1.6 180.0
1.7 180.0
1.8 180.0
1.9 180.0
2.0 180.0
2.1 180.0
2.2 180.0
2.3 180.0
2.4 180.0
2.5 180.0
2.6 360.0
2.7 360.0
2.8 360.0
2.9 360.0
362 Adams Car
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

BLDC Speed Control Example Property File

$---------------------------------------------------------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

Stepper Target Angle Example Property 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 = '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

Stepper PPS Example Property 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

Example Wind File


The following shows the architecture of a wind file (.wnd) file and all the options you can set for a .wnd file.
It contains options, logic, and general rules that you must follow when creating a .wnd file.
---------------------------------------------------------------------
MDI_HEADER
[MDI_HEADER]
FILE_TYPE = 'wnd'
FILE_VERSION = 1.0
FILE_FORMAT = 'ASCII'
$--------------------------------------------------------------UNITS
[UNITS]
Tutorials and Examples 367
Example Wind File

(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

$ 1 Nm = 1e3 Nmm = 1 newton*1000mm


$ 1 MPa = 1e6 Pa = 1e6 newtons/M^2*(1M/1000mm)^2 = 1
$ 1 Nms_d = 1e3 Nmms/deg = 1 newton*1000mm*1s/1deg
$ 1 Nm_d = 1e3 Nmm/deg = 1 newton*1000mm/1deg
$------------------------------------------------------WIND_VELOCITY
[WIND_VELOCITY]
ORDINAL = 'distance' || 'time'
(XY_DATA)
{distance <length> || time wind_velocity <mm_s>}*
-10000.00 0.00
0.00 0.00
25000.00 0.00
26000.00 20833.33
50000.00 20833.33
100000.00 20833.33
101000.00 0.00
150000.00 0.00
1000000.00 0.00
$---------------------------------------------------------WIND_ANGLE
[WIND_ANGLE]

(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

Adams Car Dynamic Suspension Analysis


This example demonstrates the ability to carry out Dynamic Suspension Analysis. Instead of using a quasi-static
simulation the suspension assembly is simulated with the Adams Solver Simulate/Dynamic command.
This feature allows you to directly provide a RPCIII file or define View Functions to specify Jack and Steering
motion as a function of displacement, force and so on.

Model Description

A Suspension Assembly consisting of a


double wishbone suspension and a rack
and pinion steering system is provided.

A dynamic suspension analysis is carried


out to actuate the wheel pads across a range
of frequencies. We are interested in looking
at the lower control arm bushing force and
how the force changes by replacing the
rigid lower control arm by a flexible body.
In addition, we use the flex body swap
dialog box to switch a rigid lower control
arm with a flexible one. We then plot the
stress on the flexible body node and
visualize it.

Investigate the model and carry out a Dynamic Analysis


Here you first analyze a double wishbone suspension with rigid lower control arm
1. Start Adams Car, Select Standard Interface.
2. Create a new Suspension assembly: File - New - Suspension Assembly. Fill the dialog box as indicated
below. To select the subsystems, Right-click - Search - <acar_shared> to open the file browser.
Tutorials and Examples 369
Adams Car Dynamic Suspension Analysis

3. The suspension assembly should be displayed.


4. To simulate using the Dynamic Solver Statements, go to Simulate - Suspension Analysis - Dynamic.
5. You will use View Functions to define the vertical displacement of the Jack. The following function
steps up the bounce-rebound amplitude from 10 mm to 30 mm with a frequency of 2 Hz:
step(time,2,10*sin(4*pi*time),8,30*sin(4*pi*time))
(Tire Forces can be added using the function like Static Loads Analysis)
370 Adams Car
Adams Car Dynamic Suspension Analysis

6. To animate the results, from the Review menu, select Animation Controls. Animate the model and
observe the change in the suspension travel.

Review the results


Plot the bushing force in the lca_front bushing:
1. Hit the F8 key in Adams Car to switch to Adams PostProcessor.
2. Locate the bkl_lca_front_force and bkr_lca_front_force REQUEST under user-defined
REQUESTs:
Tutorials and Examples 371
Adams Car Dynamic Suspension Analysis

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:

Change Rigid Lower Control arm to be a Flexible Body


Here you use the Flex body Swap dialog box feature available in the Standard interface to replace the left rigid
lower control arm with a flexible body. The MNF file used for representing this flex body is created in
Nastran.
To replace the lower control arm:
1. Go to Adjust - General Part - Rigid to Flex. This displays the flex body swap dialog box.
2. Right click the Current Part Field - Pick and select the Left Lower control arm. In the MNF File
field, Right-click - Search - <acar_shared>\flexbodys.tbl and select the LCA_left_tet.mnf file.
372 Adams Car
Adams Car Dynamic Suspension Analysis

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.

Simulate the Model


You again carry out a dynamic analysis with this model now containing a flexible body.
1. Go to Simulate - Suspension Analysis - Dynamic.
2. Name the Output Prefix to be Rigid_Flex and keep the remaining dialog box unchanged.
After the simulation is successful, animate the model to make sure it is behaving as expected.

Review & Compare Results


Here you plot the bushing force for the lower control arm and compare the force on left and right side.
To review the results:
1. Locate the bkl_lca_front_force and bkr_lca_front_force REQUEST under user-defined
REQUESTs:
374 Adams Car
Adams Car Dynamic Suspension Analysis

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

Adding the vertical setup mode of Adams Car


Suspension Testrig
This example demonstrates the use of the MDI_SUSPENSION_TESTRIG for quasi-static suspension
analysis. The vertical mode named "VERTICAL_MODE_FOR_SETUP" in the loadcase file is added to the
suspension testrig. "VERTICAL_MODE_FOR_SETUP" means the vertical control method at time=0. This
allows you to set the vertical mode method at both the setup phase (time=0) and the simulation phase.
This is very important for models including adjustable forces. Because when you correlates with test data, it
is important to match the physical initial condition setup with that of the simulation.

Model Description

A Suspension Assembly consisting of a


double wishbone suspension including
adjustable force and a rack and pinion
steering system is provided.

We carry out quasi-static suspension


analysis with two setup mode for vertical
control. One is "wheel_center_height".
Other is "contact_patch_height. And we
then plot the toe angle in order to make
sure the differences.

Performing the analysis in order to investigate the vertical setup mode.


Here you first analyze a double wishbone suspension including adjustable force.
1. Start Adams, Select Standard Interface.
2. Create a new Suspension assembly: File - New - Suspension Assembly. Fill the dialog box as indicated
below. To select the subsystems, Right-click - Search - <acar_shared> to open the file browser.
Tutorials and Examples 379
Adding the vertical setup mode of Adams Car Suspension Testrig

3. The suspension assembly should be displayed.


4. Go to Adjust - Adjustable Force. And select
".frontsusp_acforce.TR_Front_Suspension_torsional.afl_toe_adjustment" for the "Adjustable
Force" field. Then you can see the desired value (-0.5). This value means that the toe angle is adjusted
to -0.5 at setup phase.
5. Go to Simulate - Suspension Analysis - Parallel Wheel Travel…and click on Alignment Button.

Note: Tip text will display the name of adjustable force.

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.

11. Select OK.

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.

Review the results


Plot the toe angle in two analyses:
1. Hit the F8 key in Adams Car to switch to Adams PostProcessor.
2. From the simulation list, select the two analyses.
3. From the right of the dashboard, set Independent Axis to Data. (The Independent Axis Browser
appears. You perform the next four steps in the browser.)
4. From the Request list, select wheel travel. You might have to scroll down to see this entry.
5. From the Component list, select vertical_left.
6. Select OK.
382 Adams Car
Adding the vertical setup mode of Adams Car Suspension Testrig

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.

9. Create New page.


10. From the right of the dashboard, set Independent Axis to Data. And select jfl_jack_force_data in
request list and displacement in component list.
11. Plot the toe angle again. You can see the plot of contact_patch_height vs toe_angle.
The toe angle in Blue line(case2...) should be -0.5 by adjustable force when contact_patch_height is 0.
Tutorials and Examples 383
Adding the length mode for roll analysis of Adams Car Suspension Testrig

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'

 "Control Mode" is also 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'

Adding the length mode for roll analysis of Adams Car


Suspension Testrig
This example demonstrates the use of the MDI_SUSPENSION_TESTRIG for quasi-static suspension
analysis. The length mode is added to roll analysis of the suspension testrig. The length mode means that you
can define the vertical length of the center of the table for roll analysis instead of only the total vertical force.
You can set the vertical mode to either "Force" or "Length" for roll analysis.
384 Adams Car
Adding the length mode for roll analysis of Adams Car Suspension Testrig

Model Description

A Suspension Assembly consisting of a


double wishbone suspension including
adjustable force and a rack and pinion
steering system is provided.

We carry out roll analysis in quasi-static


suspension analysis with two setup mode
for vertical control. One is "Force".
Other is "Length". And we then plot
some requests in order to make sure the
differences.

Performing the roll analysis in order to investigate the vertical mode.


Here you first analyze a double wishbone suspension including adjustable force.
1. Start Adams 2021, Select Standard Interface.
2. Create a new Suspension assembly: File - New - Suspension Assembly. Fill the dialog box as indicated
below. To select the subsystems, Right-click - Search - <acar_shared> to open the file browser.

3. The suspension assembly should be displayed.


4. Go to Adjust - Adjustable Force. And select
".frontsusp_acforce.TR_Front_Suspension_torsional.afl_toe_adjustment" for the "Adjustable
Force" field. Then you can see the desired value (-0.5). This value means that the toe angle is adjusted
to -0.5 at setup phase.
Tutorials and Examples 385
Adding the length mode for roll analysis of Adams Car Suspension Testrig

5. Go to Simulate - Suspension Analysis - Roll & Vertical Force…


6. Set up the analysis as follows. In this case, the vertical mode is controlled with Force mode during
the simulation.
386 Adams Car
Adding the length mode for roll analysis of Adams Car Suspension Testrig

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.

10. Click OK.

Review the results


1. Hit the F8 key in Adams Car to switch to Adams PostProcessor.
2. From the simulation list, select the first analyses named "mode_Force_roll_angle".
3. From the right of the dashboard, set Independent Axis to Time.
4. Locate the left_tire_force and right_force REQUEST under user-defined REQUESTs. And select
normal in component list.
Tutorials and Examples 387
Adding the length mode for roll analysis of Adams Car Suspension Testrig

5. Select Add curve. The sum of two curves is always 6000N.

6. Create New page.


7. From the simulation list, select the first analyses named "mode_Length_roll_angle".
8. Locate the jfl_jack_force_data and jfr_jack_force_data REQUEST under user-defined REQUESTs.
And select displacement in component list.
388 Adams Car
Modelling Rack Pinion Steering in ACar using AMachinery Gear

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'

Modelling Rack Pinion Steering in ACar using


AMachinery Gear
You can replace 'coupler' type steering gear with 'machinery gear' using this method.

Disable existing pinion to rack gear


1. Open _rack_pinion_steering.tpl.
2. Disable the 'grsred_pinion_to_rack' which will be replaced by machinery gear.

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

a. Rack gain for one revolution of pinion:


≈ 360o pinion rotation
= 36.0004mm rack displacement
b. Assumptions:
Normal module = 1.55
Normal pitch of pinion = ?*1.55 = 4.87mm
(for better contact ratio with less number of teeth)
Assumed Helix angle on pinion = 20o
Transverse pitch of pinion = 4.87/cos(20)
= 5.18mm
c. Number of teeth on pinion
= rack_gain/ Transverse pinion pitch
= 36.004/5.18 = 6.94 = 7
To avoid interference due to lesser (seven) number of teeth, it is necessary to use profile modification
on pinion.
d. Refer to 'rps_pinion.gea' from 'machinery_examples.cdb/gear_elements.tbl' as property file.
e. Select 'cfs_pinion_pivot' as construction frame for pinion.
f. Choose connection as fixed joint with 'ges_pinion' from connections tab.
390 Adams Car
Modelling Rack Pinion Steering in ACar using AMachinery Gear

3. Click OK. The completed pinion model will be displayed as below:


Tutorials and Examples 391
Modelling Rack Pinion Steering in ACar using AMachinery Gear

Find Rack placement


1. Pinion number of teeth 7 and module 1.55
2. Pinion PCD is 7*1.55 = 10.85
3. Transverse pitch diameter of pinion = 10.85/cos(20) = 11.54mm
4. Hence rack location from is 11.54/2 ≈ 5.8mm
5. Rack orientation should be same as existing 'ges_rack'
6. Create a construction frame 'rps_rack_ref' with respect to pinion frame
392 Adams Car
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

Create gear force


1. Select gear type 'Simplified' or '3D' from menu:
2. Select Build → AMachinery Gear → Rack Gear → Simplified Rack Gear Force → New
3. Select property file 'rack_simplified_gear_force' from 'machinery_examples/gear_stiffness.tbl'
4. Select rack and pinion gear elements created in step 2 and 3.

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

2. Create TR_steering subsystem


1. Switch to standard mode.
2. Open TR_Steering subsystem and click yes to use existing _rack_pinion_steering template.
3. Visually inspect rack and pinion if they are meshing correctly without interference.
4. Save TR_steering subsystem.
5. Open the TR_steering subsystem to check if 'MACHINERY_GEAR' block is correctly reflected for
rack, pinion and force elements.

1. Create MDI_FRONT_STEERING subsystem


With _rack_pinion_steering created in step-6 in session, open MDI_FRONT_STEERING subsystem and
click ‘yes’ to use existing '_rack_pinion_steering' 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)

Note: Visually inspect resulting mesh as shown in the figure.


398 Adams Car
Modelling Rack Pinion Steering in ACar using AMachinery Gear

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

General Actuation Analysis feature examples


Extended description:
 Perform actuation analysis on assemblies.
 Create and modify RPC request map files in a much easier fashion.
 Create and modify actuator setting files (actuator input files) to "import/export" actuator settings.
 Modify actuator parameters in an assembly.

Submitting an actuation analysis


For submitting an actuation analysis, do the following,
1. Open a valid assembly for analysis. The example assembly (actuation_example.asy) provided with the
installation may be used as an example.
2. Open the 'General Actuation Analysis' dialog from the menu. (Simulate -> General Actuation
Analysis -> Submit Analysis). Note that all valid assemblies open in a session can be accessed through
the drop down provided.
402 Adams Car
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

Setting actuator parameters


The user is provided with the option of using a wizard of a tabular interface for editing actuator data. These
options can be accessed through the Adjust - Actuators - Table/Wizard menus.
The wizard interface is as shown in the figure below,
Tutorials and Examples 405
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.

Request map editor


The request map editor allows the user to:
 Create and edit request maps that are defined in the database.
 Import a request map file and edit the requests defined therein.
 Save a set of requests to a request map file.
The request map editor functionality can be accessed from the Standard Interface menu Tools → Requests
→ Request Map Editor. It can also be accessed from the Template Builder menu Build → Requests →
Request Map Editor. The user can select to display all requests, or browse for requests from the selected
model (Using the All and Browse buttons respectively).
Tutorials and Examples 407
General Actuation Analysis feature examples

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.

Opening/Saving an actuation input map file


An actuation input map file contains a series of parameter-value pairs corresponding to one or more actuators
in an assembly. The parameters include major and minor roles of the actuator, scale factor, offset, time offset,
RPC function etc. Such a file provides an easy way of setting up a large number of actuators at once.
A facility has been provided to the user to view/open an actuation input map file or create one using actuator
data from a valid assembly. The open/save functionality can be accessed from the menu-group Simulate -
General Actuation Analysis - Actuation Input File.
408 Adams Car
General Actuation Analysis feature examples

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.

Path optimization feature example


Extended description:
Path optimization is a tool that builds a path around a closed road course that approximates the optimum or
fastest path for a given vehicle. With this tool, we can visualize the input road file overlaid with the centre
line for the optimized path.
In ACar, use Simulate → Full Vehicle Analysis → Path Optimization command to launch the tool. The
dialog for path optimization in ACar looks like the one as below
410 Adams Car
Path optimization feature example

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

Importing CAD geometry at the subsystem level


This example demonstrates the use of CAD geometry attached to a part at the subsystem level (instead of the
template level).
1. In the Template Builder, open the template mdids://acar_shared/templates.tbl/_rigid_chassis.tpl.
2. Create a new marker named chassis_graphics_ref as shown below:
Tutorials and Examples 413
Importing CAD geometry at the subsystem level

3. Switch to the Standard Interface and open the subsystem


mdids://acar_shared/subsystems.tbl/TR_Body.sub. Hit Yes when asked if you want to use the
template in session.
4. Set pvs_graphics_choice to 2 to turn off the Testarossa geometry.
5. Import the Parasolid geometry mdids://acar_concept/shell_graphics.tbl/subcompact.xmt_txt to the
ges_chassis part.
414 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

Be sure to select the reference marker .my_chassis.ges_chassis.mas_chassis_graphics_ref. This tells


Adams Car to attach this geometry to the ges_chassis part, and creates the file reference that will be
saved to the subsystem.
12. Import another shell to define the window glass:
Tutorials and Examples 417
Controlling Geometry Visibility

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

Controlling Geometry Visibility


This example demonstrates how you can control the visibility of parts and individual part geometries at the
subsystem level.
1. In the Template Builder, open the template mdids://acar_shared/templates.tbl/_rigid_chassis.tpl.
418 Adams Car
Controlling Geometry Visibility

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

Full-Vehicle Analysis: Dynamic Loadcase


(Standard Interface) Simulate → Full-Vehicle Analysis → Durability Events → Dynamic Loadcase
Runs a Dynamic Loadcase analysis.

For the option: Do the following:


Full Vehicle Assembly Select the Full-Vehicle Assembly you want to analyze. The menu lists all full-
vehicle assemblies currently open in your session.
Assembly Variant Select the assembly variant you want to analyze. The menu lists all full-vehicle
assembly variants of the chosen assembly.
Switches to the selected variant and adds the required testrig as needed.

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.

See Mode of Simulation: Interactive, Mode of Simulation: Graphical,


Mode of Simulation: Background, Mode of Simulation: Files_only, Mode of Simulation:
Event_only.
Fore Axle Tab Used to define inputs for fore/front axle.
Aft Axle Tab Used to define inputs for aft/rear axle.
Excitation Mode Select displacement, velocity, acceleration or force.
Dialog Box - F1 Help 875
Full-Vehicle Analysis: Dynamic Loadcase

For the option: Do the following:


RPC3 File Name Enter RPC3 file for left and right input.
Select to display channel information available in the specified RPC file.

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.

Typically, the function expression will be a function of time, for example an


impulse, a simple harmonic function or a frequency sweep.

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

For the option: Do the following:


Controller Gains If Toggle button not selected then the movements of the body of the vehicle
will be limited by activating the JPRIM's body_stake and the yaw_stake.

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.

Typically, the function expression will be a function of time, for example an


impulse, a simple harmonic function or a frequency sweep.

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.

Note: This feature is only available for C++ Solver.


Dialog Box - F1 Help 877
Full-Vehicle Analysis: Dynamic Loadcase

For the option: Do the following:


Select to display a dialog box where you can add multi-line comments to any
entity, to describe its purpose and function. Adams Car displays different
comments dialog boxes, depending on the entity type for which you want to
record comments:

 If recording comments for modeling entities in Standard Interface,


Adams Car displays the Entity Comments dialog box.
 If recording comments for any other entity type, Adams Car displays
the Modify Comment dialog box.
Learn about Recording Comments.
Select to display an Alignment dialog box where you can set toe, camber and
caster alignment values.

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 equation is as below:

Feedback force = static load from wft parameter file + controller gain stiffness *
(relative spindle displacement) + controller gain damping * (relative spindle
displacement)

Relative spindle displacement = Vertical displacement of dummy part on which


feedback motion applied - vertical displacement of spindle
Appendix
Adams Car Solver
The Adams Car Solver is a demand-loaded library that consists of automotive-specific solver elements that
are not supported in the standard Adams Solver. Some of the elements modeled in the Adams Car Solver
include springs, dampers, bushings, conceptual suspension analyses, and suspension characteristics.
When the standard Adams Solver is started and specific routines are required, the Adams Car Solver is
automatically loaded as an extension. You can also add your own extension by creating user-defined libraries
as explained in Introducing Adams Solver Libraries.

Adams Car Standard Interface


1030 Adams Car
Adams Car Template Builder

Adams Car Template Builder

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.

Advanced Steering Design Options


Rack and Pinion Advanced Steering System, Rack and Pinion Tilt 3 Universal Joint Steering System, Relay and Pitman
Advanced Steering System and Relay and Pitman Simple Steering System has various design options which can toggle
various compliances and frictions in the steering system. Steering system consists of following design options.
 Steering gear type
 Steering column to body compliance
 Steering column compliance
 Intermediate shaft compliance (i-shaft compliance)
 Upper/Lower Intermediate shaft compliance
 Intermediate shaft Lash
 Column compliance
 Shaft compliance (Sector Shaft)
Appendix 1031
Advanced Steering Design Options

 Friction
 Rack housing midmount
 Upper/Lower Isolator
 Dash seal compliance
 U-Joint phasing

Steering gear type


In the Relay and Pitman Advanced Steering System and Relay and Pitman Simple Steering System, the steering gear can
be switched from relay type to pitman type. This can be toggled by using parameter variable
'pvs_steering_gear_type'. Where, '1' and '2' are mapped to Relay and Pitman respectively.

Steering column to body compliance


Steering column to body compliance introduced damping in between steering column part and the body.
This is achieved by using point torque 'pts_steering_column_to_body' actuator. This can be toggled by using
parameter variable 'pvs_steering_column_body_compliance'. The damping value can be set by using
parameter variable 'pvs_steer_column_to_body_damping'.

Steering column compliance


Steering column compliance is induced in between auxiliary steering column and steering column. An
additional dummy part is introduced in between them for the compliance. The auxiliary steering column is
connected with universal joint to the dummy part and dummy part is connected by revolute joint and point
torque actuator to the steering column (Figure 1)

Figure 1 Steering column compliance topology


1032 Adams Car
Advanced Steering Design Options

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.

Intermediate shaft compliance (i-shaft compliance)


I-shaft compliance is introduced in between upper and lower intermediate shafts. This can be toggled by
using parameter variable 'pvs_ishaft_compliance'. Where, '0', '1', '2' and '3' are mapped to None, Lash,
Linear and Nonlinear respectively.
The point torque 'pts_ishaft_compliance' actuator introduce required torque depending upon the selection
of the I-shaft compliance.
The parameters required for the compliance are:
- torsional stiffness (gps_ishaft_comp_kt),
- torsional damping (gps_ishaft_comp_ct) and
- nonlinear spline (gss_ishaft_compliance).
These are read from "steer_compliance.ste" file stored in steering_assist.tbl of the acar_concept database.

Upper/Lower Intermediate shaft compliance


In the Rack and Pinion Tilt 3 Universal Joint Steering System the intermediate shaft compliance is divided into two
separate design options upper and lower intermediate shaft compliance. This can be toggled individually by
using parameter variable 'pvs_upper_intermediate_shaft_compliance' and
'pvs_lower_intermediate_shaft_compliance' for upper and lower intermediate shaft compliance respectively.
Where, '0', '1' and '2' are mapped to None, Linear and Nonlinear respectively.
The point torque 'pts_upper_ishaft_compliance' and 'pts_lower_ishaft_compliance' actuators introduce
required torque depending upon the selection of the choices of the upper and lower intermediate shaft
compliances.
The parameters required for the compliance are:
- torsional stiffness (gps_upper_ishaft_comp_kt, gps_lower_ishaft_comp_kt),
- torsional damping (gps_upper_ishaft_comp_ct, gps_lower_ishaft_comp_ct) and
- nonlinear spline (gss_upper_ishaft_compliance, gss_lower_ishaft_compliance).
These are read from "steer_compliance.ste" file stored in steering_assist.tbl of the acar_concept database.
Appendix 1033
Advanced Steering Design Options

Intermediate shaft Lash


The lash is introduced between upper and lower intermediate shafts. This can be toggled by using parameter
variable 'pvs_ishaft_compliance''. The point torque 'pts_ishaft_compliance' actuator introduces required
torque depending upon the lash value that calculates output angle based on the 3D spline (gss_lash). You can
specify the desired lash value and the nature of spline in the property file (steer_compliance.ste).
The lash is active if the 'gps_ishaft_lash' value is greater than zero.
The following diagram shows implementation of Intermediate shaft compliance and lash (Figure 2)

Figure 2 Intermediate shaft compliance and lash implementation flow chart.

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

- torsional stiffness (gps_column_comp_kt),


- torsional damping (gps_column_comp_ct) and
- nonlinear spline (gss_column_compliance).
These are read from "steer_compliance.ste" file stored in steering_assist.tbl of the acar_concept database.

Shaft compliance (Sector Shaft)


In the Relay and Pitman Advanced Steering System and Relay and Pitman Simple Steering System, shaft compliance is
induced in between sector shaft and pitman arm. This can be toggled by using parameter variable
'pvs_shaft_compliance'. Where, '0' and '1' are mapped to Off and On respectively.
The torsion spring 'ues_shaft_compliance_relay' for relay and 'ues_shaft_compliance_pitman' for pitman
configuration introduces required torque depending upon the stiffness and damping value.
The parameters required for the compliance are torsional stiffness, torsional damping or nonlinear spline
which can be define itself in torsion spring. The variable 'pvs_shaft_compliance_stiffness' should be greater
than '0.0' if the shaft compliance is 'on', else it will be considered as 'off'.
The 'pvs_shaft_compliance_stop_angle' value is used to apply torque through point torque
'pts_sector_shaft_stop_angle' if the sector shaft rotate through the specified value in either directions.

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.

Rack housing midmount


The compliance between rack housing and body/subframe can be improved by activating rack housing mid-
mounts using parameter variable 'pvs_rack_housing_midmount'. Where, '0', '1' and '2' are mapped to None,
Mid-Mount One and Mid-Mount Both. The position of the mid-mounts can be controlled by using
hardpoints 'hps_rack_house_mid_mount_1' and 'hps_rack_house_mid_mount_2' respectively.
Appendix 1035
Advanced Steering Design Options

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.

Dash seal compliance


In the Rack and Pinion Tilt 3 Universal Joint Steering System dash seal compliance option is provided. You can
connect dash seal to support upper/lower intermediate shaft or steering shaft using switch part as per
requirement. By default the dash seal compliance is active. You can toggle it by using parameter variable
'pvs_dash_seal_compliance'. If you deactivate the compliance then dash seal part is connected using fixed
joint to the body if you use the steering in full-vehicle assemblies.
Also you can simulate real condition by activating the friction in dash seal compliance. This will induced
friction between connected part and the dash seal part. You can toggle it by using parameter variable
'pvs_dash_seal_friction'.

Note: The bushing (bgs_dash_seal_bushing) and joint (joscyl_upper_ishaft_dash_seal) used in dash


seal compliance makes use of user function for proper orientation. It is recommended that you
shouldn't modify orientation dependency of those busing and joint.

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

Figure 3 U-Joint phasing

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.

Tilt Bracket Slider Location


In the Rack and Pinion Tilt Bracket Steering System the slider location design option is provided. You can select
slider location either at the intermediate or upper steering column shaft to allow articulation of the column
during tilt adjustment. You can toggle it by using parameter variable 'pvs_tilt_bracket_slider_location' where,
'1' and '2' are mapped to Upper Shaft, and Intermediate Shaft.
When you select Upper Shaft, one translation degree of freedom is released between steering wheel and
auxiliary steering column and when you select Intermediate Shaft one translation degree of freedom is
released between intermediate shaft lower and intermediate shaft upper.
Also you can set angle of Tilt Bracket to Body during runtime using Tilt Bracket Angle. The parameter
variable 'pvs_tilt_bracket_angle' is used to set tilt angle.

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.

Figure 4 Flow chart of steering assist implementation

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

Figure 5 Flow chart of hydraulic assist implementation

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.

See EPAS Boost Options (Rotational Sforce) Implementation.


Appendix 1039
Advanced Steering Design Options

Figure 6 Flow chart of electric column assist implementation

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

Figure 7 Flow chart of electric rack simple assist implementation

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

Figure 8 Flow chart of electric rack complex assist implementation

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

Figure 9 Flow chart of electric pinion assist implementation

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

Figure 10 Flow chart of electric second pinion assist implementation

EPAS Boost Type


The shows the flow chart of EPAS Boost Type options used to calculate motor torque (Rotational Sforce).
It apply steering assist torque to the respective motor based on the selection of EPAS boost type.
1044 Adams Car
Advanced Steering Design Options

Flow chart of electric boost implementation


The following table shows the design options implemented in the steering templates.
Appendix 1045
Advanced Steering Design Options

Design Option Name Choices Values Dependent Variable Description


Steering column to body Inactive 0 steering_column_to_b Deactivate the steering column to body
compliance ody_damping compliance

Active 1 This will introduced damping in between


steering column part and the body

Steering Column To User- Specify damping between steering column


Body Damping entered and body
real
number
None 0 Deactivate the intermediate shaft
compliance

Lash 1 Use lash value and default 3D spline to


Intermediate shaft identify output angle as per the input
compliance (i-shaft angle.
compliance)
Linear 2 Use constant value of rotational stiffness
and rotational damping

Nonlinear 3 Use nonlinear rotational stiffness spline


and constant value of rotational damping

None 0 Deactivate the intermediate shaft


compliance
Upper/Lower Intermediate
shaft compliance Linear 1 Use constant value of rotational stiffness
and rotational damping

Nonlinear 2 Use nonlinear rotational stiffness spline


and constant value of rotational damping

None 0 Deactivate the intermediate shaft


compliance

Linear 1 Use constant value of rotational stiffness


Column compliance and rotational damping

Nonlinear 2 Use nonlinear rotational stiffness spline


and constant value of rotational damping

Lower / Upper u-joint and Inactive 0 Deactivate the friction of the joints
Steering wheel friction

Active 1 Activate the friction of the joints


1046 Adams Car
Advanced Steering Design Options

Design Option Name Choices Values Dependent Variable Description


None 0 rack mid-mounts are inactive

Mid- 1 One rack mid-mounts active


Rack housing midmount Mount
One
Mid- 2 Two rack mid-mounts active
Mount
Both
Inactive 0 Deactivate the upper/lower isolator

Upper/Lower Isolator
Active 1 Activate the upper/lower isolator

Inactive 0 Dash seal part is attached with fixed joint


to the chassis
Dash seal compliance
Active 1 Dash seal part is attached with bushing to
the chassis

Inactive 0 pvs_u_joint_phase_an Optimum angle is used to orient upper,


gle_1, middle(if present) and lower universal
joint
pvs_u_joint_phase_an
U-Joint phasing gle_2,

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 Description


None 0 Deactivate steering assist force
Hydraulic 1 Activate hydraulic steering assist
EPAS 2 pvs_epas_boost_type Activate electric column steering assist
Column
EPAS Rack 3 Activate electric rack steering assist
Simple (Simple)
Steering Assist EPAS Rack 4 Activate electric rack steering assist
Complex (Complex)
EPAS 5 Activate electric pinion steering assist
Pinion
EPAS 6 Activate electric second pinion steering
Second assist
Pinion
None 0 No boost force
Simple 1 Use values specified in the [SIMPLE]
block
EPAS Boost Type Three 2 Use values specified in the [3_CURVE]
Curve block
Multi 3 Use values specified in the
Curve [MULTI_CURVE]
1048 Adams Car
Advanced Steering Design Options

Design Option Name Choices Values Dependent Variable Description


Linear 1 Use torsional stiffness value
Linear 2 Use torsional stiffness value and scale it
Using Stop using values from
Angle [TORSION_BAR_SCALING] block
Geometric 3 Use calculated value of the torsional
Torsion Bar stiffness based on the geometrical
properties
Geometric 4 Use calculated value of the torsional
Using Stop stiffness based on the geometrical
Angle properties and scale it using values from
[TORSION_BAR_SCALING] block
NonLinear 5 Use torsional stiffness values from
[TORSION_BAR] block
Tilt Bracket Slider Upper 1 pvs_tilt_bracket_angle Slider location at Upper shaft between
Location Shaft steering wheel and auxiliary steering
column parts
Intermedia 2 Slider location at intermediate shaft
te Shaft between intermediate shaft lower and
intermediate shaft upper parts
Appendix 1049
Advanced Suspension Design Options

Advanced Suspension Design Options


Double Wishbone Advanced Suspension, Integral Link Suspension and MacPherson Advanced Suspension have various
design options which can toggle various topological changes in the suspension.
The following table shows the design options implemented in the advanced suspension templates.

Design Option
Name Choices Values Dependent Variable Dependent Variable Description
None 0 Deactivate subframe part, bushings
and joint

Compliant 1 Activate subframe part and


Subframe pvs_subframe_midm bushings
ounts
Kinematic 2 Activate subframe part and joint

None 0 Deactivate subframe midmounts

Front Only 1 Activate front subframe


Subframe MidMounts midmounts

Rear Only 2 Activate rear subframe midmounts

Both 3 Activate front and rear subframe


midmounts

Inactive 0 Deactivate the Perch

Perch - LSMB (Lower


Shock Mounting Active 1 Activate the Perch
Bracket)

None 0 No reboundstop is active

Number of
Reboundstops One 1 One reboundstop is active

Two 2 Two reboundstops are active


1050 Adams Car
Advanced Suspension Design Options

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

Two 2 Two bumpstops are active

Upper Control Arm Single Ball Joint 1 Activate single ball joint
Configuration configuration

Dual Ball Joint 2 Activate dual ball joint


configuration

Single Ball Joint 1 Activate single ball joint


configuration
Lower Control Arm
Configuration Dual Ball Joint 2 Activate dual ball joint
configuration

Dual Link with 3 Activate dual link with


Compression compression configuration

Dual Link with 4 Activate dual link with tension strut


Tension Strut configuration

Inactive 0 Deactivate hub compliance

Hub Compliance pv[lr]_hub_complia


Active 1 nce_offset Activate hub compliance

Hub Compliance User- entered Offset hub compliance from wheel


Offset real number center location

Inactive 0 Deactivate adjuster

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

Kinematic Flag Inactive 0 Compliant mode


Active 1 Kinematic mode
Four Link Control Arm UCA Inactive 0 Deactivate UCA
Configurations UCA Left and Right 1 Activate both left and right UCA
UCA Left only 2 Activate left UCA only
UCA Right only 3 Activate right UCA only
LCA Single piece 4 Activate single piece LCA
Four Link Type Basic 0 Quad link configuration
Panhard Rod 1 Activate panhard rod
Watts Link 2 Activate Watts link
Multi-link 3 Activate Multi-link
Steerable Axle Inactive 0 Non-Steerable axle
Active 1 Steerable axle
Top Dualpath Mount Inactive 0 Inactivate dual path
Active 1 Activate dual path
Wheel Force Inactive 0 pvs_wft_offset Deactivate WFT
Transducer Active 1 Activate WFT
WFT Offset User- entered Offset WFT from wheel center
real number location
1052 Adams Car
Aero Drag

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.

All About SVC (Static Vehicle Characteristics)


 Creating the SVC Dataset
 Executing SVC
 SVC Output
 Definition of the SVC Compliance Matrix
 SVC Output Parameters
 Camber Angle, Camber Angle with Respect to Body
 Camber Change
 Caster Angle, Caster Angle with Respect to Body
 Caster Change
 Caster Trail
 Center-of-Gravity Height of Suspension Unsprung Mass
 Center-of-Gravity Height of Vehicle Sprung Mass
 Front Ground Reactions
 Front View Instant Center
 Kingpin Angle, Kingpin Angle with Respect to Body
 Overall Steer Ratio
 Percent Anti-lift Under Acceleration
 Percent Anti-Dive Under Braking
 Percent Anti-lift Under Braking
 Percent Anti-Squat Under Acceleration
 Percentage Roll Steer
Creating the SVC Dataset 1053
All About SVC (Static Vehicle Characteristics)

 Rear Ground Reactions


 Ride Rate
 Roll Camber
 Roll Center Height
 Roll Rate - Total
 Roll Rate - Wheel
 Rotational Inertias of Vehicle Sprung Mass
 Rotational Inertias of Vehicle Total Mass
 Scrub Radius
 Side View Instant Center
 Single Bump Wheel Rate
 Sprung Mass Bounce and Pitch Frequencies and Node Locations
 Sprung Vehicle Mass
 Static Loaded Tire Radius
 Steer Angle
 Tire Rate
 Toe Angle
 Toe Change
 Total Vehicle Center-of-Gravity Height
 Total Vehicle Weight
 Track Width
 Unsprung Mass Wheel Hop and Tramp Natural Frequencies
 Unsprung Suspension Mass
 Vehicle Speed
 Wheel Center Rise
 Wheel Rate
 Wheel Shock Ratio
 Wheel Spring Ratio
 Wheelbase
Creating the SVC Dataset
In order to analyze a vehicle or half-suspension model with SVC, an Adams dataset must be created. This
model must include certain statements necessary for SVC. SVC is designed to work with Adams vehicle
models that have been developed for general use, such as transient handling simulations. It does, however,
require that the user follow a few modeling guidelines and add some SVC-specific data to your dataset.
1054 Adams Car
All About SVC (Static Vehicle Characteristics)

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.

SVC Data in the Data Set


SVC requires certain data about the vehicle's suspension. The user must pass this data to SVC via ARRAY
and STRING statements in the dataset. Below is a description of the ARRAY and STRING statements used.
Not all the statements are required, some statements have defaults, and other statements are not needed for
some of the analysis options.

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)

 Front Spring Statements


 Front Shock Absorber Statements
 Front Stabilizer Bar Statements (not used)
 Rear Spring Statements
 Rear Shock Absorbers Statements
 Rear Stabilizer Statements
 Optional Array and String Statements

Front Spring Statements


id-flspsus identifier of a MARKER statement located at the front left spring seat on the axle. 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_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)

Front Shock Absorber Statements


id-flsksu identifier of a MARKER statement located at the front left shock absorber attachment point on the
axle. This MARKER is used to compute the front left wheel shock ratio.
id-flskby identifier of a MARKER statement located at the front left shock absorber attachment point on the
body. This MARKER is used to compute the front left wheel shock ratio.
id-frsksu dentifier of a MARKER statement located at the front right shock absorber attachment point on
the axle. This MARKER is used to compute the front right wheel shock ratio.
id-frskby identifier of a MARKER statement located at the front right shock absorber attachment point on
the body. This MARKER is used to compute the front right wheel shock ratio.

Front Stabilizer Bar Statements (not used)


idsfbl identifier of a MARKER statement located at the front left stabilizer-bar attachment point on the
stabilizer-bar. This MARKER is used to compute the front left wheel stabilizer-bar ratio.
idsfel identifier of a MARKER statement located at the left end of the front stabilizer-bar. This MARKER is
used to compute the front left wheel stabilizer-bar ratio.
idsfbr identifier of a MARKER statement located at the front right stabilizer-bar attachment point on the
stabilizer-bar. This MARKER is used to compute the front right wheel stabilizer-bar ratio.
idsfer identifier of a MARKER statement located at the right end of the front stabilizer-bar. This MARKER
is used to compute the front right wheel stabilizer-bar ratio.
id-str identifier of a MARKER statement located at the tip of the pitman arm in a Haltenburger steering
system or at the center of steering rack in rack and pinion steering systems. A force in the global Y direction
applied to this MARKER must steer the front wheels (see modeling conventions in the previous section)
faxlr front axle final drive ratio ( 0.0 if rear-wheel drive )
sratio the steering gear ratio. For a Haltenburger steering system the degrees of steering wheel rotation per
degree of pitman arm rotation. For a rack and pinion steering system, the degrees of steering wheel rotation
per unit of rack travel.
ARRAY/9908 identifies the MARKER statements that describe the rear suspension geometry. ARRAY/9908
is not required when analyzing a front suspension only.
ARRAY/9908, NUM = idwcrl, idwcrr, id-rlssu, id-rlsby, id-rrssu, id-rrsby,
, id-rlsksu, id-rlskby, id-rrsksu, id-rrskby, idsrbl, idsrel, idsrbr, idsrer,
, raxlr, idaxcm
where:
idwcrl identifier of a MARKER statement located at the left rear 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 rear wheel must be applied to
this MARKER.
1058 Adams Car
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.

Optional Array and String Statements


ARRAY/9911 contains the tire-to-ground stiffnesses at static equilibrium. These must include any temporary
springs added by the tire model and nonlinearities in the vertical force.
ARRAY/9911 is optional for full-vehicle analyses. In this case SVC will accurately approximate the vertical
tire stiffnesses. If a half-vehicle analysis is being performed, the user must always provide ARRAY/9911, even
if there are no tires in the model (see next section).
ARRAY/9911, NUM = k1,k2, .... k24
where:
k1-k6 Left front tire X, Y, Z, AX, AY, and AZ stiffnesses
k7-k12 Right front tire X, Y, Z, AX, AY, and AZ stiffnesses
k13-k18 Left rear tire X, Y, Z, AX, AY, and AZ, stiffnesses
k19-k24 Right rear tire X, Y, Z, AX, AY, and AZ stiffnesses
ARRAY/9912 contains the conversion factors needed to convert forces, masses, lengths, speeds, and inertias
from the units used in the Adams data-set to the units desired for output from SVC. ARRAY/9912 is
optional, but if included at least fcf, mcf, and lcf must be given. If ARRAY/9912 is not included, SVC will
use the same units for converted output as were used in the Adams data-set. The units conversion occurs only
if you set "cflag" to 1 or 2 when invoking SVC with the CONTROL command. (See Executing SVC for
more about the CONTROL command.)
ARRAY/9912, NUM = fcf, mcf, lcf, scf, icf
where:
fcf Force conversion factor (Output units force = Input units force * FCF)
mcf Mass conversion factor (Output units mass = Input units mass * MCF)
lcf Length conversion factor (Output units length = Input units length * LCF)
scf Speed conversion factor (Output units speed = Input units speed * SCF)
icf Inertia conversion factor (Output units inertia = Input units inertia * ICF)
STRING statements 1-3 contain text for the units used in the Adams data-set. These have no effect on the
calculations, they are only used for labeling. Each string has a default value that is used if you do not provide
one.
STRING/1,STRING=Force units used in the data-set(defaults to
'Newtons')
STRING/2, STRING= Mass units used in the data-set ( defaults to 'kg' )
1060 Adams Car
All About SVC (Static Vehicle Characteristics)

STRING/3, STRING= Length units used in the data-set(defaults to 'mm' )


STRING statements 4 and 5 inform SVC whether the front and rear suspensions are independent or
dependent. The STRINGs may be either 'INDEPENDENT' or 'DEPENDENT'.
STRING/4, STRING= Front suspension ( defaults to 'INDEPENDENT' )
STRING/5, STRING= Rear suspension ( defaults to 'DEPENDENT' )
STRING statements 6 and 7 are optional strings in which the user can input a one line description for the
front and rear suspensions.
STRING/6, STRING= Front description string
STRING/7, STRING= Rear description string
STRING statements 11-15 contain text for the units used in the SVC output files. If a label is included the
appropriate conversion factor must also be included in ARRAY/9912.
STRING/11,STRING=Force units to use during output(defaults to
STRING/1)
STRING/12, STRING= Mass units to use during output (defaults to
STRING/2 )
STRING/13, STRING= Length units to use during output (defaults to
STRING/3)
STRING/14, STRING= Speed units to use during output (defaults to
STRING/3 ¸ sec)
STRING/15, STRING= Inertia units to use during output
(defaults to STRING/1 * (STRING/3)2)
SVC handles tire stiffnesses differently depending on the analysis option and whether you provide
ARRAY/9911. Some background on SVC and tire models is needed in order to explain when the user should
and should not supply ARRAY/9911. SVC uses tire stiffnesses in two ways. First, if the model contains tire
forces, the stiffnesses are used to remove tire effects on suspension compliance. Second, the vertical tire
stiffnesses are explicitly used in the calculations of some SVCs, whether there are tire forces in the data set or
not. In all cases, then, SVC uses at least the vertical stiffnesses.
Determining tire stiffnesses is complicated by two factors. Temporary springs are added during static
equilibrium. This generally helps convergence to static equilibrium, but the tire can no longer be treated as
a simple vertical spring. It is then necessary to supply the non-vertical terms to SVC as well. In addition, the
vertical tire force is usually non-linear. The stiffness depends upon the vertical deflection, making it difficult
to compute ahead of time for a particular model.
In the full-vehicle case, SVC can approximate the vertical tire stiffnesses from the compliance matrix. The
other terms can be assumed from knowledge of the tire model. The Adams Car model, for instance, uses
stiffnesses of 100 laterally and longitudinally on the left front tire and 100 laterally on the left rear tire. Adams
TIRE uses stiffnesses of 1 on all translational and rotational degrees of freedom. If the user does not supply
ARRAY/9911 in a full-vehicle analysis, SVC approximates the vertical stiffnesses and supplies the others.
In a half-vehicle analysis, the user must always supply ARRAY/9911, because SVC cannot approximate the
vertical stiffnesses. Normally, you would not be modeling tires at all, in which case SVC does not need to
modify the compliance matrix and will use only the vertical stiffnesses provided in computing a few of the
characteristics.
ARRAY/9913 contains parameters needed to determine dive and pitch characteristics for half vehicle analysis.
ARRAY/9913 is not required for full vehicle analysis.
Executing SVC 1061
All About SVC (Static Vehicle Characteristics)

ARRAY/9913, NUM = tcgh, wb, rlf, rlr


where:
tcgh = Vehicle CG height with respect to ground
wb = Vehicle wheel base
rlf = Left tire rolling radius
rlr = Right tire rolling radius

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)

Optionally user can define variable pvs_brake_ratio in there testrig.

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

1001 = Full vehicle model.


1002 = Front suspension only
1003 = Rear suspension only
jpr_ary Id of the array containing the necessary jprims, motions, sforce ids to perform the static
equilibrium analysis
cflag Units Conversion Flag -- Optional, Default is 0
0 = output units in the same data-set units, no conversion performed.
1 = output in converted units. The SVCs are calculated in data-set units then converted
according to the conversion factors provided in ARRAY/9912 and labeled according to
STRING statements 1, 2, 3, 4, and 5.
2 = output SVCs in both converted units and data-set units
tflag Tire Forces Flag -- Optional, Default is 0. tflag is ignored for Full-Vehicle Analysis, when
the vehicle must be supported by tire forces.
0 = Suspension is not supported by tire forces
1 = Suspension is supported by tire forces
vflag Verbose Flag -- Optional, Defaults to off (0). If the verbose flag is enabled, the 18x18 front
suspension compliance matrix and/or the 12x12 rear suspension compliance matrix are
output to the Adams Message File.
0 = Verbose messages off
1 = Verbose messages enabled
ctime Current Simulation Time -- Optional, Defaults to 0.0. "ctime" defaults to 0.0 since
usually the SVC calculations are performed at the beginning of the simulation. If, for some
reason the user performs a transient or quasi-static simulation before issuing the
CONTROL command, input the current simulation time using this parameter.
svc_ary Id of the array containing the necessary id's of SVC Dataset. See Creating the SVC Dataset.

(Adams Car)
svc_str Id of the array containing the necessary id's of Adams_string for report annotation.

(Adams Car)

Below are some example CONTROL commands.


CONTROL/ FUNCTION=USER(1001,555)
The CONTROL statement above invokes the SVC calculations for a full vehicle (aopt = 1001). All other
flags default. Therefore, the output units are the same as the data-set units. Tflag is ignored since the full
vehicle must be supported by tire forces. No verbose messages are generated (vflag = 0), and the simulation
time defaults to zero (0).
SVC Output 1063
All About SVC (Static Vehicle Characteristics)

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.

Example Annotated (.svc) Output File


==========================================
= S V C =
= =
= STATIC VEHICLE CHARACTERISTICS =
= ADAMS Model Post Processor =
= =
= =
= =
==========================================
ADAMS Model Title:
vehicle_name, OUTPUT UNITS = SI 2009-10-13 17:47:27

GENERAL CHARACTERISTICS

_________________________________________________________________________

(PARAMETER) (UNITS) (TOTAL) (LEFT) (RIGHT)


_________________________________________________________________________

Total weight N 18.79E+03


Front ground reaction N 10.06E+03 5122.72 4933.28
Rear ground reaction N 8737.90 4395.09 4342.81

Total roll inertia Kg mm**2 629.5E+06


Total pitch inertia Kg mm**2 3.254E+09
Total yaw inertia Kg mm**2 3.264E+09

Total product Ixy Kg mm**2 1.607E+06


Total product Ixz Kg mm**2 -54.46E+06
Total product Iyz Kg mm**2 -1.487E+06

Sprung mass Kg 1601.18


Sprung roll inertia Kg mm**2 459.6E+06
Sprung pitch inertia Kg mm**2 2.543E+09
Sprung yaw inertia Kg mm**2 2.464E+09
1064 Adams Car
All About SVC (Static Vehicle Characteristics)

Sprung product Ixy Kg mm**2 -13.66E+03


Sprung product Ixz Kg mm**2 2.020E+06
Sprung product Iyz Kg mm**2 -213.5E+03

Total c.g. height mm 674.64


Sprung c.g. height mm 734.78

Body yaw angle DEG 0.00


Body pitch angle DEG -36.21E-03
Body roll angle DEG 85.21E-03

Speed mm/S 0.00

Wheelbase mm 2834.43 2834.82 2834.03

Bounce node loc. wrt H-pt. mm 2921.18


Bounce natural frequency Hz 1.32
Pitch node loc. wrt H-pt. mm -705.38
Pitch natural frequency Hz 1.58
Ride frequency ratio 1.13

ADAMS Model Title:


vehicle_name, OUTPUT UNITS = SI

FRONT SUSPENSION CHARACTERISTICS


Suspension Description = Short_Long_Arm
_________________________________________________________________________

(PARAMETER) (UNITS) (AVERAGE) (LEFT) (RIGHT)


_________________________________________________________________________
Unsprung mass (total) Kg 115.91
Unsprung c.g. height mm 376.96
Roll center height mm 75.55
Wheel center rise mm 29.64 29.00 30.28
Static loaded tire radius mm 356.27 355.80 356.74
Track width mm 1490.51
Axle distance from vehicle cg mm 1317.82

steer angle DEG 0.00


Toe Angle DEG 208.2E-03 207.7E-03 208.7E-03
Caster Angle DEG 4.71 4.72 4.71
Camber Angle DEG -458.8E-03 -375.5E-03 -542.2E-03
Kingpin Angle DEG 11.84 11.75 11.92
KP offset at wc, long mm 0.00 1.19 1.22
KP offset at wc, lat mm 0.00 112.40 -112.47
Caster Angle wrt body DEG 4.68 4.68 4.67
Camber Angle wrt body DEG -458.7E-03 -460.6E-03 -456.8E-03
Kingpin Angle wrt body DEG 11.83 11.84 11.83
Scrub radius mm 40.53 40.61 40.45
Caster trail mm 28.63 28.60 28.66
Toe change DEG/mm -3.935E-03 -3.926E-03 -3.944E-03
Caster change DEG/mm 9.786E-03 9.793E-03 9.779E-03
Camber change DEG/mm -1.241E-03 -1.408E-03 -1.075E-03
Roll camber coefficient DEG/DEG 950.6E-03 948.6E-03 952.7E-03
Percentage roll steer % -5.12
Track change mm/mm 81.78E-03 80.74E-03
Wheelbase change mm/mm -11.34E-03 -11.35E-03 -11.33E-03

Wheel rate N/mm 34.84 34.84 34.83


Single bump wheel rate N/mm 56.33 56.33 56.32
Ride rate N/mm 29.71 29.71 29.71
Tire rate N/mm 201.91 201.80 202.01
Roll rate - wheel N mm/DEG 2.851E+06
SVC Output 1065
All About SVC (Static Vehicle Characteristics)

Roll rate - total N mm/DEG 1.650E+06


Wheel/spring ratio mm/mm 551.4E-03 551.4E-03 551.3E-03
Wheel/shock ratio mm/mm 566.0E-03 565.8E-03 566.2E-03

Percent anti-dive/braking % 12.89 12.89 12.89


Percent anti-lift/accel. % 0.00 0.00 0.00
Front view i.c. - lateral mm 15.13E+03 14.49E+03 15.77E+03
Front view i.c. - vertical mm 1523.51 1466.13 1580.88
Side view i.c. fore & aft mm 5854.70 5850.47 5858.94
Side view i.c. vertical mm 289.87 289.41 290.32
Wheel hop natural freq. Hz 10.17 10.17 10.17
Wheel tramp natural freq. Hz N/A
Front ride frequency Hz 1.29
Front ride height mm N/A N/A N/A

ADAMS Model Title:


vehicle_name, OUTPUT UNITS = SI

REAR SUSPENSION CHARACTERISTICS


Suspension Description = Four_Link_Solid_Axle
_________________________________________________________________________

(PARAMETER) (UNITS) (AVERAGE) (LEFT) (RIGHT)


_________________________________________________________________________

Unsprung mass (total) Kg 197.52


Unsprung c.g. height mm 361.80
Roll center height mm 486.90
Wheel center rise mm 61.47 60.49 62.45
Static loaded tire radius mm 359.53 359.41 359.66
Track width mm 1486.60
Axle distance from vehicle cg mm 1516.61
Toe Angle DEG 0.00 -31.12E-03 31.12E-03
Camber Angle DEG 0.00 1.000E-02 -1.000E-02
Camber Angle wrt body DEG 0.00 -75.25E-03 75.25E-03

Toe change DEG/mm -8.613E-06 971.7E-06 -989.0E-06


Camber change DEG/mm 5.925E-06 -668.4E-06 680.3E-06
Roll camber coefficient DEG/DEG -3.199E-06 -3.199E-06 -3.199E-06
Percentage roll steer % 7.12
Track change mm/mm -63.59E-03 64.73E-03
Wheelbase change mm/mm -72.56E-03 -59.22E-03 -85.91E-03

Wheel rate N/mm 33.83 33.53 34.13


Single bump wheel rate N/mm 38.24 37.86 38.63
Ride rate N/mm 28.97 28.75 29.19
Tire rate N/mm 201.91 201.86 201.96
Roll rate - wheel N mm/DEG 848.2E+03
Roll rate - total N mm/DEG 696.5E+03
Wheel/spring ratio mm/mm 818.9E-03 818.7E-03 819.0E-03
Wheel/shock ratio mm/mm 1.10 1.09 1.10

Percent anti-lift/braking % 17.03 16.42 17.65


Percent anti-squat/accel. % 44.83 43.21 46.44
Front view i.c. - lateral mm 743.30 751.78 734.81
Front view i.c. - vertical mm 486.49 486.46 486.52
Side view i.c. fore & aft mm -10.51E+03 -10.60E+03 -10.42E+03
Side view i.c. vertical mm 1120.88 987.24 1254.53

Wheel hop natural freq. Hz 7.78


Wheel tramp natural freq. Hz 8.88
Rear ride frequency Hz 1.45
Rear ride height mm N/A N/A N/A
1066 Adams Car
All About SVC (Static Vehicle Characteristics)

S V C SIGN CONVENTION

(PARAMETER) CONVENTION FOR POSITIVE VALUE


______________________________________________________________________________

Toe (angle) Toe in


Caster (angle) Side view of kingpin tilted rearward
Camber (angle) Top of tire out
Wheel center rise Wheel moving into rebound
Toe change Wheel toes in when moved into jounce
Caster change Caster increases when wheel moves into
jounce
Camber change Top of tire moves inboard when wheel moves
into jounce
Track change Track increases as wheel moves into jounce
Wheelbase change Wheelbase increases as wheel moves into jounce
Roll camber coefficient Top of outside tire moves outboard relative to
ground as vehicle rolls
Percentage roll steer Average toe is outside of corner as
vehicle rolls
Lat. force deflection Wheel moves to the right when pushed from
right to left
Lat. force steer Wheel toes in when pushed from right to left
Lat. force camber Top of tire moves to the left when pushed
from right to left
Aligning torque deflection Wheel deflection to the right due to an
aligning torque at wheel center
Aligning torque steer Toe in due to an aligning torque at wheel
center
Aligning torque camber Top of tire moves outboard due to an
aligning torque at wheel center
Recession steer Toe in due to a rearward force at the wheel
center
Brake steer Toe in due to a rearward force at the tire
contact patch
Tractive force steer center due to a forward force at the wheel
Bounce node location Rearward location with respect to H-point
Pitch node location Rearward location with respect to H-point
Definition of the SVC Compliance Matrix 1067
All About SVC (Static Vehicle Characteristics)

Definition of the SVC Compliance Matrix


The compliance matrix for a system, [C], is defined as the partial derivatives of displacements with respect to
applied forces:
[C] = [ dx / df ]
If a system is assumed to be linear, the compliance matrix can be used to predict the system movement due
to force inputs:
{Dx} = [C]{Df}
From this perspective, matrix element C(i,j) is the displacement of system degree of freedom i due to a unit
force or moment at degree of freedom j.
Assuming markers 1 and 2 to represent left wheel and right wheel center markers, in the above figure, the
sign conventions followed in SVC can be explained as follows:
The compliance matrix for the above model is a 12x12 matrix given by C(i,j)
where,
i = 1-6 degrees of freedom of marker 1
i = 7-12 degrees of freedom of marker 2
j = 1-6 forces and moments at marker 1
j = 7-12 forces and moments at marker 2
Therefore:
C(3,3) Vertical displacement of marker 1 due to a unit positive vertical force at marker 1
C(3,9) Vertical displacement of marker 1 due to a unit positive vertical force at marker 2
-C(3,3) Vertical displacement of marker 1 due to a unit negative vertical force at marker 1
-C(3,9) Vertical displacement of marker 1 due to a unit negative vertical force at marker 2
C(9,3) Vertical displacement of marker 2 due to a unit positive vertical force at marker 1
C(9,9) Vertical displacement of marker 2 due to a unit positive vertical force at marker 2
-C(9,3) Vertical displacement of marker 2 due to a unit negative vertical force at marker 1
-C(9,9) Vertical displacement of marker 2 due to a unit negative vertical force at marker 2
Displacements and forces are calculated in global coordinates.
Most of the SVC calculations are based on the compliance matrix for the vehicle's suspension. This appendix
explains how compliance matrix is computed in Adams, and how it is modified before being used for the SVC
computations.
The subroutine GTCMAT is the utility subroutine that computes the compliance matrix for markers in an
Adams model. This is done by inverting the Jacobian matrix from a static equilibrium solution (See GTCMAT
for more information). Depending on the model, the compliance matrix may be useful directly, or may need
to be modified. Two utility subroutines allow you to modify the compliance matrix. The first removes
unwanted freedom from the system; the second, unwanted resistance.
1068 Adams Car
All About SVC (Static Vehicle Characteristics)

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)

 Roll Rate - Total  Wheel Spring Ratio


 Roll Rate - Wheel  Wheelbase
 Rotational Inertias of Vehicle Sprung Mass 

Camber Angle, Camber Angle with Respect to Body


The angle in the front elevation between the wheel plane and the vertical. Camber is reported in degrees, and
is positive if the wheel top leans outward from the vehicle body. When measured with respect to vehicle body,
camber angle is the angle between the wheel plane and the body z-axis (or xz plane).

Computed by:
SVCGAN (SVCTCM)

Input Variables Used:


Wheel center marker identifiers (idwcfl, idwcfr, idwcrl, idwcrr).
Global origin marker identifier (gblm) (Body frame marker identifier (idbcm)).

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

Input Variables Used:


Front and rear compliance matrices

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

Caster Angle, Caster Angle with Respect to Body


The angle in the side elevation between the steering axis (such as kingpin axis) and the vertical. Caster is
reported in degrees, and is positive if the steering axis is inclined upward and rearward. SVC computes caster
for the front suspension only. When measured with respect to vehicle body, caster angle is the angle between
the steering axis and the body z-axis (or yz plane).

Computed by:
SVCFAN (SVCFAB)

Input Variables Used:


Left and right kingpin marker identifiers (idksil, idksir)
1072 Adams Car
All About SVC (Static Vehicle Characteristics)

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

Input Variables Used:


Front compliance matrix

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

Input Variables Used:


Left and right kingpin marker identifiers (idksil, idksir)
Left and right front wheel center marker identifiers (idwcfl, idwcfr)
Global origin marker identifier (gblm)
Ground height (ght)

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)

Center-of-Gravity Height of Suspension Unsprung Mass


Center-of-gravity height of the front or rear suspension unsprung mass. This is only computed for full vehicle
analysis.

Computed by:
SVCCGH

Input Variables Used:


All part identifiers in ARRAY statements 9901 and 9903.
Percentage sprung values for each part from ARRAY statements 9902 and 9904.

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

Input Variables Used:


All part identifiers in ARRAY statements 9901, 9903, and 9905.
Percentage sprung values for each part, from ARRAY statements 9902, 9904, and 9906.
Front Ground Reactions 1075
All About SVC (Static Vehicle Characteristics)

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

Input Variables Used:


Front tire force MARKER statement identifiers (idwcfl, idwcfr) from ARRAY/9907
Global origin MARKER statement identifier (gblm) from ARRAY/9910

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)

Front View Instant Center


The point in the front elevation around which the wheel center rotates as it moves vertically. The instant
center has two components, lateral and vertical. The lateral measurement is positive inboard of the wheel
center. The vertical measurement is positive above the wheel center.

Computed by:
SVCICR

Input Variables Used:


Compliance matrix

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)

The radius of the circle described is:


R = SQRT( DY2 + DZ2 ) / DTHETA
The angle of the line connecting the wheel center to the instant center is:
ANG = arctan( -DY / DZ )
The instant center position is then:
Left lateral = - R cos( ANG )
Right lateral = R cos( ANG )
Vertical = - R sin( ANG )
Instant Center Front View (Lateral, Vertical)

Kingpin Angle, Kingpin Angle with Respect to Body


The angle in the front elevation between the steering axis, i.e. kingpin axis and the vertical. Kingpin angle is
reported in degrees, and is positive if the steering axis is inclined upward and inward. SVC computes kingpin
angle for the front suspension only. When measured with respect to vehicle body, kingpin angle is the angle
between the steering axis and the body z-axis (or xz plane).

Computed by:
SVCFAN (SVCFAB)
1078 Adams Car
All About SVC (Static Vehicle Characteristics)

Input Variables Used:


Left and right kingpin marker identifiers (idksil, idksir)
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.
Left kingpin = -(180/p ) arctan( cos (psi) tan(theta) )
Right kingpin = (180/p ) arctan( cos (psi) tan(theta) )

Ø=Kingpin Angle

Overall Steer Ratio


The rate of change of steering wheel angle with respect to the change in average steer angle of a pair of steered
wheels. Steer ratio is only computed for the front suspension.

Computed by:
SVCFST

Input Variables Used:


Compliance matrix
Steering box ratio (SRATIO)

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:

Steer ratio = 2π * DRAC / DSTEER / SRATIO


Overall Steer Ratio

Percent Anti-lift Under Acceleration


The ratio of suspension compression due to traction forces to the suspension extension due to weight transfer
and axle torque. Anti-lift under acceleration is computed for the front suspension only, and only in a full-
vehicle analysis. If the front suspension is not driven (fdrat = 0), the anti-lift will be 0.

Computed by:
SVCANA
1080 Adams Car
All About SVC (Static Vehicle Characteristics)

Input Variables Used:


 Compliance matrix
 Average tire loaded radius
 Front drive ratio (fdrat)
 Front axle ratio (faxlr)
 Front suspension dependency (STRING/4)
 Total CG height
 Average wheelbase
 Track

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)

The percent anti-lift is:


Left percent anti-lift = -100. Zfleft / Zwleft
Right percent anti-lift = -100. Zfright / Zwright

Percent Anti-Dive Under Braking


The ratio of suspension extension due to braking forces to the suspension compression due to weight transfer.
Anti-dive under braking is computed for the front suspension only and only in a full-vehicle analysis.

Computed by:
SVCANB

Input Variables Used:


 Compliance matrix
 Average tire loaded radius
 Front braking ratio (fbrat)
 Total CG height
 Average wheelbase

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)

Percent Anti-lift Under Braking


The ratio of suspension compression due to braking forces to the suspension extension due to weight transfer.
Anti-lift under braking is computed for the rear suspension only and only in a full-vehicle analysis.

Computed by:
SVCANB

Input Variables Used:


 Compliance matrix
 Average tire loaded radius
 Front braking ratio (fbrat)
 Total CG height
 Average wheelbase

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

Percent Anti-Squat Under Acceleration


Percent Anti-Squat Under Acceleration 1083
All About SVC (Static Vehicle Characteristics)

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

Input Variables Used:


 Compliance matrix
 Rear suspension dependency (STRING/4)
 Average tire loaded radius
 Total CG height
 Front drive ratio (fdrat)
 Average wheelbase
 Rear axle ratio (raxlr)
 Track

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)

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 )]
The percent anti-squat is:
Left percent anti-squat = -100. Zfleft / Zwleft
Right percent anti-squat = -100. Zfright / Zwright
Percentage Roll Steer
The percentage rate of change in steer angle with respect to change in vehicle roll angle.

Computed by:
SVCROL

Input Variables Used:


 Compliance matrix
 Track
 Average vertical tire rate

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

Rear Ground Reactions


Mass supported by rear tires.

Computed by:
SVCGDR
Ride Rate 1085
All About SVC (Static Vehicle Characteristics)

Input Variables Used:


Rear tire force MARKER statement identifiers (idwcrl, idwcrr) from ARRAY/9908
Global origin MARKER statement identifier (gblm) from ARRAY/9910

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)

Input Variables Used:


 Front and rear compliance matrices
 Tire stiffness from (ARRAY/9911)

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

Input Variables Used:


 Compliance matrix
 Track
 Average vertical tire rate

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

Roll Center Height


Height at which a lateral force on the sprung mass, applied in the plane of the wheel centers, does not produce
any suspension roll.

Computed by:
SVCROL

Input Variables Used:


 Compliance matrix
 Left and Right Wheel Center Markers
 Ground Height wrt global origin

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.

Similarly for right side:


DZ_R = CP (9,9) - CP(9,3)
DY_R = CP (8,9) - CP(8,3)
YR
ZR
The equation of lines through the instant centers of left and right contact patches are:
0 = dz_l*( z - zl ) + dy_l*(y - yl)
0 = dz_r*( z - zr ) + dy_r*(y - yr)
dz_l*zl + dy_l*yl = dz_l*z + dy_l*y
dz_r*zr + dy_r*yr = dz_r*z + dy_r*y
The intersection of these two lines (if it exists) is the roll center location.
Apply Cramer's rule:
DET = ( DZ_L*DY_R - DZ_R*DY_L )
B1 = ( DZ_L*ZL + DY_L*YL )
B2 = ( DZ_R*ZR + DY_R*YR )
RC_VERT = ( B1*DY_R - B2*DY_L ) / DET
Where RC_VERT is the roll center height.
Roll Center Height
Roll Rate - Total 1089
All About SVC (Static Vehicle Characteristics)

Roll Rate - Total


The torque, applied as vertical forces at the tire patches, per degree of roll, measured at the tire patches.

Computed by:
SVCROL

Input Variables Used:


 Compliance matrix
 Track
 Tire stiffness

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)

Rate = T / Ø = ( p /180 ) track2 / Dz


Roll Rate - Wheel
The torque, applied as vertical forces at the tire patches, per degree of roll, measured through the wheel
centers.

Computed by:
SVCROL

Input Variables Used:


 Compliance matrix
 Track

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)

Rotational Inertias of Vehicle Sprung Mass


Moments and products of inertia of the sprung mass of the vehicle. SVC computes these at the sprung center-
of-gravity position, about axes parallel to those of the vehicle center-of-mass marker.

Computed by:
SVCMIN

Input Variables Used:


 All part identifiers in ARRAY statements 9901, 9903, and 9905
 Percentage sprung values for each part, from ARRAY statements 9902, 9904, and 9906
 Body center-of-mass MARKER statement identifier (idbcm) from ARRAY/9909

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)

Rotational Inertias of Vehicle Total Mass


Moments and products of inertia of the total mass of the vehicle. SVC computes these at the total center-of-
gravity position, about axes parallel to those of the vehicle center-of-mass marker.

Computed by:
SVCMI2

Input Variables Used:


 All part identifiers in ARRAY statements 9901, 9903, and 9905
 Body center-of-mass MARKER statement identifier (idbcm) from ARRAY/9909

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

Input Variables Used:


 Left and right kingpin marker identifiers (idksil, idksir)
 Left and right front wheel center marker identifiers (idwcfl, idwcfr)
 Global origin marker identifier (gblm)
 Ground height (ght)

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)

Side View Instant Center


The point in the side elevation around which the wheel center rotates as it moves vertically. The instant center
has two components, fore and aft and vertical. The fore and aft measurement is positive rearward of the wheel
center. The vertical measurement is positive above the tire patch.

Computed by:
SVCICR

Input Variables Used:


Compliance matrix

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)

Instant Center Side View (Fore and Aft, Vertical)

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.

Single Bump Wheel Rate


Vertical spring rate of the suspension relative to the body, measured at the wheel center due to motion of the
wheel.

Computed by:
SVCRAT

Input Variables Used:


Front and rear compliance matrices

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

Input Variables Used:


 Hip point marker id  Front and rear suspension ride rates
 Wheel center id's of left and right front wheels  Front and rear unsprung mass
 Global marker id  Total force applied to the front and rear tires
 Sprung mass pitch inertia  Wheel base

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

Input Variables Used:


 All part identifiers in ARRAY statements 9901, 9903, and 9905
 Percentage sprung values for each part, from ARRAY statements 9902, 9904, and 9906

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

Input Variables Used:


 Wheel center marker identifiers (idwcfl, idwcfr, idwcrl, idwcrr)
 Global reference frame marker (gblm)

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

Input Variables Used:


 Wheel center marker identifiers (idwcfl, idwcfr, idwcrl, idwcrr)
Tire Rate 1099
All About SVC (Static Vehicle Characteristics)

 Global origin marker identifier (gblm)

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

Input Variables Used:


 Compliance matrix
 Tire rates from ARRAY/9911

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)

Input Variables Used:


 Wheel center marker identifiers (idwcfl, idwcfr, idwcrl, idwcrr)
 Global origin marker identifier (gblm)

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

Input Variables Used:


Front and rear compliance matrices
Total Vehicle Center-of-Gravity Height 1101
All About SVC (Static Vehicle Characteristics)

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

Total Vehicle Center-of-Gravity Height


Center-of-gravity height of the entire vehicle.

Computed by:
SVCCGH
1102 Adams Car
All About SVC (Static Vehicle Characteristics)

Input Variables Used:


All part identifiers in ARRAY statements 9901, 9903, and 9905.

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

Input Variables Used:


 Front and rear tire force MARKER statement identifiers from ARRAY statements 9908 and 9909
 Global marker (gblm) from ARRAY/9910

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

Input Variables Used:


 Front and rear wheel center marker identifiers (idwcfl, idwcfr, idwcrl, idwcrr)
 Ground origin marker identifier (gblm)
 Ground height

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)

Unsprung Mass Wheel Hop and Tramp Natural Frequencies


The wheel hop and tramp natural frequencies are determined by assuming the tire and suspensions springs
act in parallel. For independent suspensions, only the wheel hop frequencies of left and right side suspensions
are determined. For dependent suspensions, the wheel hop and tramp frequencies are determined.

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)

Input Variables Used:


 Part identifiers from ARRAY statements 9901 and 9903
 Percentage sprung values for each part from ARRAY statements 9902 and 9904

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

Input Variables Used:


 Body center-of-mass marker identifier (idbcm)
 Global origin marker identifier (gblm)

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

Input Variables Used:


 Front wheel center marker identifiers (idwcfll, idwcfr)
 Front body/wheel center marker identifiers (idbwfl, idbwfr)
 Rear wheel center marker identifier (idwcrl, idwcrr)
 Rear body/wheel center marker identifiers (idbwrl, idbwrr)

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)

Left Front Wheel Center Rise

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

Input Variables Used:


Front and rear compliance matrices

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.

Input Variables Used:


Front and rear compliance matrices.
Shock Body attachement markers
Shock Suspension attachement markers
Wheel Spring Ratio 1107
All About SVC (Static Vehicle Characteristics)

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

Input Variables Used:


 Front and rear compliance matrices
 Spring Body attachment markers
 Spring Suspension attachment markers

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)

LSPRNG(1) = LSPRNG(1) / LSL


LSPRNG(2) = LSPRNG(2) / LSL
LSPRNG(3) = LSPRNG(3) / LSL

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

Input Variables Used:


Body Wheel center MARKER statement identifiers (idbwfl, idbwfr, idbwrl, idbwrr) from ARRAY/9909.

Method:
SVC uses the INFO utility subroutine to determine the global x-axis distance between wheel center markers.
Wheelbase
Wheelbase 1109
Analysis Log File

Analysis Log File


Adams Car names the analysis log file after the output prefix and an output suffix, depending on the full-
vehicle analysis you selected. The log file contains information about the type and success of the analysis, date
and user, analysis parameters, and the active subsystem used in the analysis.

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.

Body Design Options


Rigid Chassis Body on Frame, Rigid Chassis Body and Bed on Frame and Rigid Chassis Two Body have various design
options which can toggle various topological changes in the body.
The following table shows the design options implemented in the body templates.

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

Aero Frontal Area User- entered Enter aero frontal area


real number

Air Density User- entered Enter air density


real number

Drag Coefficient User- entered Enter drag coefficient


real number
1110 Adams Car
Body Design Options

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

None 0 No bed mounts

Number of Bed
Mounts 1 to 9 1 to 9 Activates number of bed mounts

Torsion Only 0 Two body parts are connected with


a revolute joint and rotational
stiffness using bushing

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.

Notes on Input and Output


See SFORCE 901

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.

Dual-Path Strut Mount


Strut property files contain a Design option for dual-path mount modeling.When this option is activated 2
bushings are used to connect the strut to the frame. The 1st bushing acts between the upper strut and the
frame at the strut mount location. The 2nd bushing acts between an intermediate part and the frame.
Two intermediate parts are added for the purpose of modeling a torsional spring damper between the coil
spring mount and frame.

HardPointPair name (in Connector name (in property


Mount subsystem file) file)
Mount 1 top_mount strut_mount
Mount 2 spring_seat_upper dual_path_mount
1114 Adams Car
Dynamic Loadcase Fingerprint Generator

Dynamic Loadcase Fingerprint Generator


For Full-Vehicle Assembly:

(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

For the option: Do the following:


Model Specify the system file for front, rear, or full-vehicle model.
ADD RPC Files Select to browse for single or multiple RPC files. The fingerprint contains
individual events for each RPC file specified.
Remove Selected RPC Files Select to remove an RPC file from the selected list.
Fingerprint Name Specify the name of the fingerprint.
Generate Fingerprint Select to generate the specified fingerprint with the individual events for
each RPC file specified.

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)

Notes on Input and Output


See DIFF 901 for ID of DIFF element.

Four Link Control Arm Configurations


The four link control arm configuration is modeled in the _quad_link_advanced template provided in the
acar_concept database. It allows you to select configuration between UCA Inactive, UCA Left and Right,
UCA Left only, UCA Right only and LCA Single piece.
Wheelbase 1117
Four Link Type

The parameter variable pvs_four_link_control_arm_configurations is used to select configuration. Where,


'0', '1', '2', '3, '4' are mapped to UCA Inactive, UCA Left and Right, UCA Left only, UCA Right only and
LCA Single piece respectively. It is used to activate appropriate groups created for the four link control arm
configuration.

Four Link Type


The four link type is modeled in the _quad_link_advanced template provided in the acar_concept database.
It allows you to select configuration between Basic, Panhard Rod, Watts Link, Multi-link.
The parameter variable pvs_four_link_type is used to select configuration. Where, '0', '1', '2', '3 are mapped
to Basic, Panhard Rod, Watts Link, Multi-link respectively. It is used to activate appropriate groups created
for the Four Link Type.
The following graphics shows Panhard Rod, Watts Link and Multi link configuration.

Figure 11 Panhard Rod Type Quad-Link Axle Suspension


1118 Adams Car
Four Link Type

Figure 12 Watts Link Type Quad-Link Axle Suspension


Wheelbase 1119
Fifth Wheel Motion

Figure 13 Multi-Link Type Quad-Link Axle Suspension

Fifth Wheel Motion


The fifth wheel motion defines the attachment between fifth wheel head support and vehicle body. Where,
'0' and '1' are mapped to fixed joint (no x axis motion) and revolute joint (x axis motion) respectively. It is
use to activate appropriate groups created for the fifth wheel motion.

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.

Hitch Joint Method


The Hitch Joint Method allow you to toggles between lock, kinematic and compliant mode to hitch
modelling.
The parameter variable pvs_hitch_joint_method is used to select method for hitch modelling. Where, '0', '1'
and '2' are mapped to lock, kinematic and compliant respectively. It is use to activate appropriate groups
created for the Hitch Joint Method.

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

Figure 14 Hub Compliance Deactivated

Figure 15 Hub Compliance Activated

To add hub compliance to existing suspension template:


To add hub compliance to your existing suspension template, you can use following steps:
1. Open your existing suspension template
2. Go to Tools > Command Navigator
3. Locate the macro under acar > template_builder > hub_compliance > create, enter information as
shown below:
1122 Adams Car
Hub Compliance Offset

For the option: Do the following:


Template Name Enter the template name in which you want to create hub compliance
Hub Compliance Name Enter the hub compliance name. By default it is set to ‘hub_compliance’
I Part Enter the name of the part on which the compliance will act. For example,
choose the Upright or Axle part.
J Part Enter the name of the part on which the compliance will react. For example,
choose the Spindle or Hub part.
Joint to replace Enter the joint which will be replaced by a spherical joint and a bushing.
Type Enter one of the following:

 Left / right - Define one of the joints/bushings, and your template-based


product creates the corresponding opposite bushing.
Location Rcoordinate Enter a construction frame from which the location offset will be applied. For
example, cf[lr]_wheel_center.
Orientation Rframe Enter the name of the construction frame from which you want to apply the
orientation offset. For example, cf[lr]_wheel_center.
Property File While creating a compliance, note that the text box by default contains the
bushing property file
mdids://acar_shared/bushings.tbl/mdi_hub_compliance.bus. You can use this
file or select another one from your databases.

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.

Hub Compliance Offset


Hub compliance is located inboard along the spindle axis at a user-specified distance. This distance offset can
be set by modifying the parameter variable "pvs_hub_compliance_offset" in the suspension subsystem
containing hub compliance.
Wheelbase 1123
Interface Part

Figure 16 Hub Compliance Offset

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.

Leaf Spring Editor


Allows you to create a beam-element leaf spring model suitable for use with Adams Car. The Leaf Spring
Editor uses the Makeleaf Program to create these models.
To access the Leaf Spring Editor in Adams Car:
 Create new template in Adams Car template builder then from the Build Menu, select Leaf Spring,
and New.
1124 Adams Car
Leaf Spring Editor

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

Leaf Spring Editor: File Menu


Within File Menu, you can create a new .ltf file from scratch using File → New (Empty) or with default
values using File → New (Default). You can also Open a .ltf file, or save it in .ltf or .xml format. You can also
close the Leaf Spring Editor using File → Exit.
Wheelbase 1125
Leaf Spring Editor

Leaf Spring Editor: Plot Menu


If you right-click on the plot area, using the option menu you can zoom or fit the plots. You can also set the
points and curves visibilities, clear the plot or print them. Using Plot Menu or Plot icon you can re-plot the
leaf profiles.
1126 Adams Car
Leaf Spring Editor

Leaf Spring Editor: Settings Menu


Using Settings → Units Setting menu you can change the units settings. However, note that units in the leaf
template file and model units must be the same.
Wheelbase 1127
Leaf Spring Editor

Leaf Spring Editor: Run Menu


Using Run → Generate Leaf or Generate Leaf icon you can initiate generating the leaf spring process. In
Adams Car, however, the process is initiated using Apply or OK button in the Create Leaf Spring dialog box.
1128 Adams Car
Leaf Spring Editor

Initiating the Generate Leaf process in Adams Car


Wheelbase 1129
Leaf Spring Editor

Initiating the Generate Leaf process in Adams Car

Leaf Spring Editor: General Information


This section includes parameters that are thought of as describing the entire leaf spring set; later sections take
care of specific leaf/bushing properties. Here you can change the number of the leaves or clips (or the rest of
parameters) by entering a new value in the cells and the corresponding tab will be updated accordingly. It is
also possible to review the file name or write a comment in this tab.
1130 Adams Car
Leaf Spring Editor

For the option: Do the following:


No. of Leaves Enter the total number of leaves in the leaf spring model.

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

For the option: Do the following:


Impact Distance Positive real variable that specifies the free length of x. If x is less than
x1, then Adams Solver (C++) calculates a positive value for the force.
Otherwise, the force value is zero. You can define x1 as a real number,
function, or variable.
Impact Stiffness Non-negative real variable that specifies the stiffness of the boundary
surface interaction.
Impact Damping Coefficient Non-negative real variable that specifies the maximum damping
coefficient.
Impact Penetration Positive real variable that specifies the boundary penetration at which
Adams Solver (C++) applies full damping.
Leaf Spring Mounting This parameter indicates where the leaf spring being described will be
mounted in the vehicle (this mainly influences the numbering scheme
start point). Pick Rear, Front, or Other (which appears as 1, 2, or 3 in
the .ltf file, respectively). Note that this is not relevant to Adams Car
as the subsystem will determine the mounting location.
Fitting Algorithm Select second-order polynomial fitting of the leaf profile, or third-
order polynomial fit (which appears as 1 or 2 in the .ltf file,
respectively). Generally, second-order is used.
Beam Formulation Specifies the theory to be used to define the force this element will
apply. By default the LINEAR theory is used (see Using the
FORMULATION=LINEAR option). If the NONLINEAR option is used, the
full non linear Euler-Bernoulli theory is used. If the STRING option
is used, a simplified non linear theory is used. The simplified non
linear theory may speed up your simulations with little performance
penalties.

Note: Formulation only applies to C++ Solver.


1132 Adams Car
Leaf Spring Editor

Leaf Spring Editor: Leaves


Data specific to the individual leaves are shown in this tab. For each leaf there is one column in the table.
Profile data (geometry) for each leaf is entered at the bottom of the editor in a separate slide bar and table
(Leaf#1, Leaf#2 and so on).
Leaf 1 is the top leaf of the main leaf stack. It has the eyehooks which are used to attach the leaves to the
chassis and shackle. In general, the rest of leafpack are located below Leaf #1; the exception is for an auxiliary
leaf, which is mounted on top of the leafpack and contacts the chassis. You can make any of leaves auxiliary
by changing the Auxiliary Leaf Flag to Yes. Note that when you have an auxiliary leaf you also provide the
contact point geometries in the Geometry tab. Therefore Auxiliary Front Contact and Auxiliary Rear Contact
rows are visible only when there is a Auxiliary Leaf available in the Leaves table.
In the Leaves table, you can perform Cut, Copy, Paste operations on each leaf. The option menu can be
shown by either right clicking on the "leaf column" area or left (normal) clicking on the leaf column title as
illustrated in the picture. In addition, you may Delete a leaf from the table or Insert a new (empty) leaf. The
Insert operation acts differently depending on if you have copied a leaf before (in this case the copied leaf will
be inserted) or you have not copied a leaf (in this case a blank leaf will be copied).
Note that changing the value of Z-offset Leaf will change the offset between two leaves. Also, when copying
the profile of another leaf, the Gap Distance Center and leaf Seat Thickness are added to the Z-offset value
to determine the height of the leaf.
Wheelbase 1133
Leaf Spring Editor
1134 Adams Car
Leaf Spring Editor

For the option: Do the following:


Auxilliary Leaf Flag Indicates whether the leaf being defined is an auxiliary leaf (1) or not (0). An
auxiliary leaf is located on top of the leafpack and, after the leaf spring has been
compressed to a point, the auxiliary leaf contacts the chassis and augments the
spring pack.

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

For the option: Do the following:


Seat (Leaf Center) Thickness This parameter defines the thickness (Z-direction) of the leaf being defined at the
X=0.0 point in mm. Be careful about conflicts when assigning the Seat Thickness
and the THICKNESS column in the profile. If the tabular value at X=0.0 does not
match the given Seat Thickness value, then the Seat Thickness value will be used
at X=0.0. A warning message will be issued to this effect. (If you want to let the
tabular thickness value at X=0.0 take precedent, enter 0.0 for the Seat Thickness
value.)
Seat (Leaf Center) Width Defines the width (Y-direction) of the leaf being defined at the X=0.0 point.
Z-offset Leaf Z-offset for leaf profile. This value is ADDED to the Z-values of the entire profile
given for this leaf. This value is especially important if another leaf profile is being
copied; the offset can be used to place it in the correct position.

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

For the option: Do the following:


ASY Specifies the correction factor for shear deflection in the Y (ASY) and Z (ASZ)
directions, according to Timoshenko beam theory. These factors are used to define
ASZ the BEAM elements for the current leaf.
Fitting Points Select if every point is to be used for fitting ("1" in .ltf file) or if first and last points
are the bushing points ("0" in .ltf file). This option is available only for the first leaf.

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

For the option: Do the following:


Leaf Profile and Thickness This section is used to define the profile of the leaf and its thickness in free
condition. The X column defines the position along the arc length of the spring.
The Z values define the curvature of the top of the spring at the points on the
spring which correspond to X. (This convention is used because it is typically the
way data is available.) There must be a corresponding Z value for each X value
entered. Refer to below image.

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:

 Empty points between defined points are linearly interpolated


 Empty points at the ends of the spring (outside of defined points) will be held
constant at the last defined value
Thus, it is possible to define a constant thickness spring by entering only one value;
further, this value can be defined at any X value. A "tapered" leaf, as used in early
versions of the code, can be defined by entering only the center and end-point
thickness values. Or, the whole leaf thickness value may be entered if they form a
more complex geometry.

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

Leaf Spring Editor: Axle Information


This tab contains information pertaining to the axle/housing that is to be connected to the spring pack.
1138 Adams Car
Leaf Spring Editor
Wheelbase 1139
Leaf Spring Editor

For the option: Do the following:


Reference Marker to Leafpack This value is the Z-height of the reference marker for the
axle with respect to the coordinate system used to define
the leaf profile(s).

This is the vertical distance between reference marker


(center of Axle) and leafpack surface (bottom of an
overslung leaf or the top of the underslung leaf ). This
value is positive for Underslung Leaf Spring and negative
for Overslung Leaf Spring.
Reference Marker Height at Design Load The Z-height (mm) of the reference marker is used to stop
the simulation when the leaf spring is exercised from rise-
to-curb position to design position. Once the axle reaches
this point, the spring is assumed to be at design-load
conditions and the simulation will be halted (see rise-to-
curb below).

This value is absolute Z-height of reference marker in


design load condition.
Extra Mass on the Dummy Axle Specify the mass estimate (kg) of the unaccounted-for
hardware used to assemble the spring pack and connect it
to the axle (U-bolts, spacers, and so on.).
1140 Adams Car
Leaf Spring Editor

For the option: Do the following:


Front/Rear Inactive Length The front and rear inactive lengths (mm) are the lengths of
the leaf spring, which are regarded as "rigid" near the
X=0.0 point.
Rise-to-Curb The Z-height (mm) of the reference marker is used to stop
the simulation when the leaf spring is exercised from free
position to rise-to-curb position.

This value is absolute Z-height of reference marker in rise-


to-curb condition

Rise to curb can be used to specify the rise to installation


position. During the makeleaf process, the leaf will be
exercised to the rise-to-curb value. At this value the leaf to
frame (front eye), leaf to shackle (rear eye) and shackle to
frame bushings will be reset such that the preload on these
bushings are zero. The leaf will then be continued to be
exercised from the rise-to-curb position to design position.
The preload on the bushing at the design position will be
the load generated by exercising the leaf from rise-to-curb
to design height.
Axle Mount Type Specifies whether the leaf spring pack is mounted above
(Overslung) or below (Underslung) the axle.
Wheelbase 1141
Leaf Spring Editor

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.

Leaf Spring Editor: Shackle Information


This tab contains information describing the leaf spring shackle.

For the option: Do the following:


Shackle Length Enter the physical length (mm) of the shackle part, from eye center to eye center.
Shackle Mass (kg) Specify the mass (kg) of the leaf spring shackle.
1142 Adams Car
Leaf Spring Editor

For the option: Do the following:


Shackle Inertia Specify the inertial properties Ixx, Iyy, Izz (kg*mm**2) of the leaf spring shackle
when it is laid in flat position. X-dir is its pointing direction.
Shackle Location Select Front or Rear to specify whether the shackle is at the front or rear of the leaf
spring pack.
Shackle Position Indicates whether the shackle is used in tension or compression. Select one:

 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.

Leaf Spring Editor: Geometry


In Adams Car, this tab is inactive (grayed out) as the geometry values are specified in the New Leaf Spring
dialog box and therefore hardpoint data is automatically populated from subsystem file.
These points indicate where in space the leaf springs will be constructed. Enter the X, Y, and Z positions for
both the front and rear chassis connection points. This must be done for both left and right springs.
Wheelbase 1143
Leaf Spring Editor

For the option: Do the following:


Front Leaf Eye Bushing Corresponds to points 1 and 2 in the suspension subsystem file.
Shackle to Frame Corresponds to points 20 and 21 in the suspension subsystem file.

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

Leaf Spring Editor: Leaf Eyehook Information


Wheelbase 1145
Leaf Spring Editor

For the option: Do the following:


Eyehook Inner Diameter Front/Rear Enter the diameter of the inside of the eyehook.
Eyehook Shape Front/Rear Select one:

Leaf Spring Editor: Bushing Information


This tab is used to define the properties of the bushings in the model. In Adams Car the leaf spring bushings
will be defined in their respective interfaces and this tab will only display the interleaf bushing data.
It is also possible to launch the editor in "standalone" mode. Since the bushing data is not available, all
bushing data can be modified in the editor. Note that for this case, only linear bushing rates are supported.
1146 Adams Car
Leaf Spring Editor

Leaf Spring Editor (launched from Adams Verticals)


Wheelbase 1147
Leaf Spring Editor

Leaf Spring Editor (standalone)


1148 Adams Car
Leaf Spring Editor

For the option: Do the following:


Leaf-to-Leaf Bushing Specify the translational and rotational spring and damping rates for
the lumped parameter describing the connection of the leaves to each
other at the X=0.0 point.

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.

Leaf Spring Editor: Leaf Clips


Leaf clips bind together the first stage leaves on a leaf spring suspension. They are intended to prevent any
separation of the leaves in the vertical and lateral direction, with little or no effect on longitudinal movement.
They can be installed in front, behind or both front and behind the wheel center.
These are optional attachments at the ends of the leaf spring and if there is no clip defined in the property
file, the clip table will be empty. You can add clips to the leaf spring by increasing the number of the clips in
the General tab.
Similar to Leaves tab, Cut, Copy, Paste, Insert, and Delete operations are possible in the Clips tab by accessing
the option menu (right click in column area or left click on title area).
Wheelbase 1149
Leaf Spring Editor
1150 Adams Car
Leaf Spring Editor

Example

Feature Number Clip Number


1 Distance from center bolt
2 Leaf number at bottom of clip
3 Leaf number at top of clip
4 Vertical inside height of clip
5 Vertical clip cover height
7 Lateral inside width of clip
8 Lateral clip cover thickness

Leaf Spring Editor: Command Shell


If you want to run the Makeleaf without running the Leaf Spring Editor you can use the command shell.
Also, you can modify the options of the Leaf Spring Editor using the command shell, for example, by default,
Adams Car creates a rear leaf spring and you can change this in the command shell. Learn how to use the Leaf
Spring Editor.
Wheelbase 1151
Leaf Spring Editor

Changing options using the command shell

For the option: Do the following:


Front leafspring Use the -f option. For example,

achassis -makeleaf -f sample_front.ltf.


Bushings You have the option of using all standard Adams Car bushing types. Use the -b option.
Specify either a front or rear Adams Car datafile. For example:

achassis -makeleaf -b test_rst.xml sample_rear.ltf


achassis -makeleaf -f -b test_fst.xml sample_front.ltf
Keep Bushings By default, the leaf eye and shackle bushings will not be included in the leaf model file.
To change this, use the -k option. For example:

achassis -makeleaf -b test_rst.xml -k sample_rear.ltf

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

Beam Element Leaf Spring Modeling


Leaf spring data is stored in Leafspring Template File (.ltf ) which would be the input to Makeleaf program.
Makeleaf creates a leafspring model which composed of a series of parts connected via beam elements. The
contact between the leaves is modeled using vector forces and the impact function. You need to enter input
data for the leaf spring in its unloaded or free-free configuration.

Beam Element Leaf Spring Model Flowchart


You would need the information below, at minimum, for creating a leafspring in Adams.
 Each leaf information
• X-Z data of each leaf (Leaf profile in free-free condition)
• Physical (arc) length of each leaf
• Density, E modulus, G modulus, damping ratio, etc
1152 Adams Car
Leaf Spring Editor

• 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

Leaf Spring in Adams Car


Adams Car supports the direct modeling of leaf springs.
The Leaf Spring Editor is used to input data such as shackle information, axle information, leaf profiles, clip
information, eyehook types along with hardpoints and bushing data.
It is used either for creating a new .ltf file or for modifying an existing .ltf file.
In Adams Car, bushing and hardpoint data from the template is provided in the leaf spring create/modify
dialog box and is taken for leafspring generation.
The Adams Car leafspring create macro uses the .ltf file, along with bushing and hardpoint data from the
template to create a subsystem file which is the input for the Makeleaf program.
The Makeleaf Program generates a leafspring model dataset file (*.adm) which gets merged with the Adams Car
template. This template can be used for creating a subsystem file in Adams Car for further analysis.

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.

To run Makeleaf from the Adams interface:


In Adams Car:
 In Template Builder mode, from the Build menu, select Leaf Spring, and New.

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

Learn more about the Leaf Spring Editor.

To run Makeleaf from the command shell:


1. Create the leaf template file.
2. In the command shell, enter: achassis -makeleaf sample_rear.ltf
This produces sample_rear.py and sample_aview.adm, sample_leaf.adm and sample_reset.adm.
See Leaf Spring Editor: Command Shell to learn more about using the command shell to change leaf spring
options.

How Makeleaf Works


Makeleaf builds the leaf .py file through a series of steps. During these steps, some auxiliary files will be
created.
Makeleaf script first builds a leaf spring in its free state. Based on the leaf spring property file (.ltf), an
Adams dataset model file (*.adm) and Adams control file (*.acf) are created in undeformed position.
These are saved as sample_leaf.acf and sample_leaf.adm.n
Wheelbase 1155
Leaf Spring Editor

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:

Using Leaf Springs


To use a leaf spring in your Adams Car model, see Leaf Springs in the working with components section.

Static Solver Funnel for .acf files


The static solver funnel option is a tool to help analysts achieve convergence with their Adams models that
contain beam element leaf springs or other large modeling elements. The funnel gradually tightens error,
imbalance, and stability tolerances after achieving static equilibrium.
The static funnel option is activated if the funnel parameter in the System File is set to 1: system_parameters
→ solver → static → funnel_flag
The following lines of code appear in the .acf files for Full-Vehicle models:
! Static Funnel:
equil/maxit=50.00, err=10000, imb=10000, stab=10000
con/fun=user(1010,555)
equil/maxit=50.00, err=100, imb=100, stab=10
con/fun=user(1010,555)
equil/maxit=50.00, err=0.1, imb=0.1, stab=0.1
con/fun=user(1010,555)
equil/maxit=50.00, err=0.001, imb=0.10000, stab=0.01
After each equil/maxit statement, the equilibrium CONSUB (con/fun=user(1010)) is invoked.
The following lines of codes appear in the acf files for Half-Vehicle models:
! Static Funnel:
equil/maxit=50.00, err=10000, imb=10000, stab=10000
sim/stat
equil/maxit=50.00, err=100, imb=100, stab=10
sim/stat
equil/maxit=50.00, err=0.1, imb=0.1, stab=0.1
Wheelbase 1157
Leaf Spring Editor

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.

An Example Leaf template File


================================================================================
LEAF_SPRING_TEMPLATE_NEW TEMPLATE FOR THE LEAF SPRING EDITOR
--------------------------------------------------------------------------------
(Note: All input information must be in Left-Justified format.)

================================================================================
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)

SUSPENSION BRACKET ATTACHMENT POINT (ADAMS Coordinate)


--------------------------------------------------------------------------------

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

REAR = Shackle Location (FRONT or REAR)


COMPRESSION = Shackle Position (COMPRESSION(above leaf) or TENSION(below leaf))

LEAF EYEHOOK INFORMATION


--------------------------------------------------------------------------------
47.30 = Front Eyehook Inner Diameter (mm)
31.35 = Rear Eyehook Inner Diameter (mm)
BERLIN = Front Eyehook Shape (BERLIN, UPTURNED, OR DOWNTURNED)
BERLIN = Rear Eyehook Shape (BERLIN, UPTURNED, OR DOWNTURNED)

CLIP INFORMATION
--------------------------------------------------------------------------------
2 = No. of clips

CLIP 1

350 = Distance from center bolt (+ve fore)


3 = Leaf Number at bottom of clip
1 = Leaf Number at top of clip
35.00 = Vertical inside height of clip
2.5 = Vertical clip cover height
10000 = Vertical clip cover stiffness
86 = Lateral inside width of clip
2.5 = Lateral clip cover thickness
10000 = Lateral clip cover stiffness
--------------------------------------------------------------------------------
CLIP 2

-350 = Distance from center bolt (+ve fore)


3 = Leaf Number at bottom of clip
1 = Leaf Number at top of clip
35.00 = Vertical inside height of clip
2.5 = Vertical clip cover height
10000 = Vertical clip cover stiffness
86 = Lateral inside width of clip
2.5 = Lateral clip cover thickness
10000 = Lateral clip cover stiffness
BUSHING INFORMATION
Subsystem File =
--------------------------------------------------------------------------------
SPRING RATES (TRANSLATIONAL AND ROTATIONAL)

RATE (N/mm) RATE (N-mm/rad)


RADIAL RADIAL AXIAL CONICAL CONICAL
TORSIONAL
BUSHINGS (RATES) PT (X) (Y) (Z) (X) (Y)
(Z)
---------------------------- -------------------------------- --------------------
------------
Front Leaf Eye Bushing 1-2 6500.0 6500.0 630.0 3.00E+06 3.00E+06
8.14E+04
Leaf Spring to Shackle 7-8 7000.0 7000.0 1000.0 3.00E+06 3.00E+06
8.14E+04
Shackle to Frame 20-21 7000.0 7000.0 1000.0 1.0E+07 1.0E+07
8.14E+04
Leaf-to-Leaf Bushing 1-1 1.0E+09 1.0E+09 1.0E+09 1.0E+07 1.0E+07
1.0E+07

DAMPING RATES (TRANSLATIONAL AND ROTATIONAL)


DAMPING (N-s/mm) DAMPING (N-s/rad)
RADIAL RADIAL AXIAL CONICAL CONICAL
TORSIONAL
BUSHINGS (DAMPING) PT (X) (Y) (Z) (X) (Y) (Z)
Wheelbase 1159
Leaf Spring Editor

---------------------------- -------------------------------- --------------------


------------
Front Leaf Eye Bushing 1-2 60.0 60.0 6.0 1000.0 1000.0
100.0
Leaf Spring to Shackle 7-8 60.0 60.0 6.0 1000.0 1000.0
100.0
Shackle to Frame 20-21 60.0 60.0 6.0 10000.0 10000.0
100.0
Leaf-to-Leaf Bushing 1-1 60.0 60.0 6.0 1.1E+05 1.1E+05
1500.0

================================================================================
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

(Note: The X value at the Center LEAF must be 0.0)


(Note: The Front LEAF must be in negative X-axis.)
1160 Adams Car
Leaf Spring Editor

================================================================================
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

(Note: The X value at the Center LEAF must be 0.0)


(Note: The Front LEAF must be in negative X-axis.)

================================================================================
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

(Note: The X value at the Center LEAF must be 0.0)


(Note: The Front LEAF must be in negative X-axis.)

================================================================================
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

(Note: The X value at the Center LEAF must be 0.0)


(Note: The Front LEAF must be in negative X-axis.)

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.

Lower Control Arm Configuration


The Lower Control Arm Configuration is modeled in the _double_wishbone_advanced and
_macpherson_advanced template provided in the acar_concept database. It allow you to select configuration
between Single Ball Joint, Dual Ball Joint, Dual Link with Compression and Dual Link with Tension Strut.
The parameter variable pvs_lower_control_arm_configuration is used to select configuration. Where, '1', '2',
'3' and '4' are mapped to Single Ball Joint, Dual Ball Joint, Dual Link with Compression and Dual Link with
Tension Strut respectively. It is used to activate appropriate groups created for the lower control arm
configuration.

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

Load Case Data File Editor


The loadcases are specified via the Load Case Data File Editor and saved as an .xml file.
The Editor can be accessed directly from the Static Loadcase event (Simulate > Suspension Analysis > Static
Loadcase) in the Adams Car Standard Interface.

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

Static Loadcase Properties tab


The various load cases are specified under the Static Loadcase Properties tab.

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

Used to set initial/start position of suspension assembly.


• User Defined Loadcase:
If user defined loadcase is selected, location of forces acting at contact patch only changed to your
specified location.
• You can specify your location by adding below parameters in parameters tab
For front suspension:
• front_user_defined_x
• front_user_defined_y
• front_user_defined_z
For Rear Suspension:
• rear_user_defined_x
• rear_user_defined_y
• rear_user_defined_z
1166 Adams Car
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.

Note: Currently only one pair of shocks are supported


Wheelbase 1167
Load Case Data File Editor

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:

Forward braking long.accel = +ve


Reverse braking long.accel = -ve
With weight transfer
front suspension = Max fz = (GAWR + GVW * long.accel * CG Height/Wheel Base)/GAWR
rear suspension = Max fz = (GAWR - GVW * long.accel * CG Height/Wheel Base)/GAWR
Max fx = accel * Max Fz
Without weight transfer
Max fz = 1.0 G
Max fx = accel
1170 Adams Car
Load Case Data File Editor

Braking

Forward braking long.accel = +ve


Reverse braking long.accel = -ve
Front suspension = Max fz = GVW/(2*Wheel base) * (L_to_CG + long.accel * CG Height)
Rear suspension = Max fz = GVW/(2*Wheel base) * (L_to_CG - long.accel * CG Height)
Max fx = mu * Max fz * sign(accel)

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

Load Case Data File Editor


Allows you to edit the static loadcase input file using a graphical interface.
The load case data file editor has three tabs:
 Header - Here you can put in revision notes or additional comments.
 Parameters
 Static Loadcase Properties

Parameters

For the option: Do the following:


Name Displays the name of various vehicle parameters.
Comment Gives a brief description of the parameter.
Treeview Allows dynamic selection and display of the vehicle parameters.
Parameters table Displays the values for various vehicle parameters such as GVW and CG height.

You can edit these values.


Wheelbase 1171
Longitudinal Acceleration Controller

Static Loadcase Properties


This contains two tabs: Front and Rear. The tabs display the individual loading conditions for the front and
rear suspensions.

For the option: Do the following:


Name Displays the name of the individual loading condition.
Active Use the pull-down menu to select:

 Yes - Includes the condition in the model


 No - Excludes the condition from the model
Type Select either g_loads or analytical_g_loads depending on the loadcase you want.

Longitudinal Acceleration Controller


The longitudinal acceleration controller uses vehicle information (position, velocity, gear, engine speed, and
so on) as feedback to control the longitudinal acceleration of the vehicle. The controller is able to control
both positive (acceleration) and negative (deceleration) acceleration.
The longitudinal acceleration controller forms part of the Driving Machine that is used to control the
majority of standard full-vehicle analyses.

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.

Mode of Simulation: Graphical


When you set Mode of Simulation to graphical, your template-based product uses the internal Adams Solver
to run the Analysis.

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 Bed Mounts


The number of bed mounts is modeled in the body template like Rigid Chassis Body and Bed on Frame provided
in the acar_concept database. It allows you to set maximum 9 bed mounts using bushing.
The parameter variable pvs_number_of_bed_mounts is used to set number of active bushings between bed
and frame. Where, '0', '1' to '9' are mapped to None, 1 to 9 respectively. It is used to activate appropriate
groups created for the number of bed mounts. None represents frame and bed connects with fixed joint. 1 to
9 represents number of active bushing between bed and frame.

Number of Body Mounts


The number of body mounts is modeled in the body templates like Rigid Chassis Body on Frame and Rigid Chassis
Body and Bed on Frame provided in the acar_concept database. It allow you to set maximum 9 body mounts
using bushing.
The parameter variable pvs_number_of_body_mounts is used to set number of active bushings between
body and frame. Where, '0', '1' to '9' are mapped to None, 1 to 9 respectively. It is used to activate appropriate
groups created for the number of body mounts. None represents frame and body connects with fixed joint. 1
to 9 represents number of active bushings between body and frame.

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.

Number of Trailer Cargo Parts


The number of trailer cargo parts allow you to add trailer cargo parts. Where, '0', '1', '2', '3' and '4' are
mapped to None, One, Two, Three and Four respectively. It is use to activate appropriate groups created for
the number of trailer cargo parts.
Wheelbase 1173
Number of Trailer Axles

Number of Trailer Axles


The number of trailer axles allow you to select more than one axles.
The parameter variable pvs_number_of_trailer_axles is used to change number of axles. Where, '1', '2' are
mapped to One and Two respectively. One represents only first axle is active and Two represents first and
second axle are active.

Notes About Dependent/Independent Suspension


Curves
The suspension analysis dialog box calls an analysis submission macro that executes the generate_scf.exe
utility using a system command. The generate_scf.exe utility creates suspension characteristics files (scf ) by
reading and extracting data from different request files. The amount of information written to the scf file
depends on the number and type of request files it finds in the working directory. It also creates a log file that
lists warnings and execution errors.
After the dialog box successfully completes the analyses, it copies the generated suspension characteristic file
to the suspension_curves.tbl directory in the Default Writable Database. It also leaves a copy of the scf file in
the local working directory for future examination.
You can also invoke generate_scf.exe from the command line as a stand-alone utility:
generate_scf.exe output_prefix_scur flag
where:

 output_prefix_scur identifies all the different requests


 flag identifies whether the suspension is independent or dependent
The generate_scf.exe utility uses one of the .nam files, that Adams Car creates, as the key to determine the
request ID corresponding to a given result name; to successfully execute generate_scf.exe, the name file
*_pw0.nam must be in the working directory.
The type of results and components that generate_scf.exe is looking for in the different requests is
predetermined, and you cannot change it. It relies on the definition of the suspension characteristic requests
as they are formulated in the .__MDI_SUSPENSION_TESTRIG.
Dependent and independent suspension curves are very different. Adams Car does not know if your
suspension is dependent or independent. It is up to you to use the appropriate dialog box that generates
suspension curves.

Perch - LSMB (Lower Shock Mounting Bracket)


The Perch - LSMB (Lower Shock Mounting Bracket) is added in the Double Wishbone Advanced Suspension and
Integral Link Suspension templates.
The parameter variable pvs_perch is used to activate Perch - LSMB. Where, '0' and '1' are mapped to Inactive
and Active respectively. The following graphic shows a perch - LSMB.
1174 Adams Car
Requests

Note: The bushing at ph[lr]lsmb_at_sla makes use of construction frame


cf[lr]_lower_shock_mount to define location dependency. It is recommended that you
shouldn't modify location dependency of this construction frame.

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 File Output


Refer to Outputting Results for Adams Car tire request activity name.

Notes on Input and Output


None

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 File Output


Column Number Output without dmCalc :
1. Displacement magnitude (dm(imarker, jmarker))
2. Velocity in direction of displacement
3. Force in direction of displacement
4. X component of displacement pointing from the jmarker to imarker
5. Y component of displacement pointing from the jmarker to imarker
6. Z component of displacement pointing from the jmarker to imarker

Column Number Output with dmCalc :


1. Displacement magnitude (dm(imarker, jmarker))
2. Velocity in direction of displacement
3. Force in direction of displacement
4. Displacement magnitude (dm(imarker, jmarker)) - dmCalc)
5. (not used)
6. (not used)

Notes on Input and Output


None

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

3 = field forces (standard Adams Car)

4 = bush forces (standard Adams)

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 File Output


Column Number Output for branch_id = 1 :
1. Displacement in X
2. Displacement in Y
3. Displacement in Z
4. Angular displacement along X
5. Angular displacement along Y
6. Angular displacement along Z

Column Number Output for branch_id = 2 :


1. Velocity in X
2. Velocity in Y
3. Velocity in Z
4. Angular velocity along X
5. Angular velocity along Y
6. Angular velocity along Z
1178 Adams Car
Requests

Column Number Output for branch_id = 3 (FIELD) and 4 (BUSH):


1. x component of the force
2. y component of the force
3. z component of the force
4. x component of the torque
5. y component of the torque
6. z component of the torque

Column Number Output for branch_id = 5 (VFORCE) :


1. x component of the force
2. y component of the force
3. z component of the force
4. (not used)
5. (not used)
6. (not used)

Notes on Input and Output


1. For branch_id = 3, force_id should be of FIELD, for branch_id=4, force_id should be of BUSH and
for branch_id = 5, force_id should be of VFORCE.
2. By default, the results are expressed in jmarker coordinate system. If rmarker is specified, the results
are expressed in rmarker coordinate system.
3. For branch_id=3, 4 or 5, the forces and moments are reported at the force element I marker (the I
marker specified here is not used and the J marker specified here is only used as described in 2.)

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 File Output


Column Number Output:
1. x component of the distance
2. y component of the distance
3. z component of the distance
4. x component of the distance velocity
5. y component of the distance velocity
6. z component of the distance velocity

Notes on Input and Output


None

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

Vehicle Mass Properties (Request 908)


Computes the vehicles aggregate cm location, mass and inertia tensor.

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

0 = returns aggregate cm location (in ground origin coordinates) and mass


1 = returns aggregate inertias at aggregate cm
grm = Ground origin marker (only used to add Ftire belt mass and inertia to aggregate
values, when necessary)
zerolim = Result values smaller than zerolim are returned as zero

Request File Output


Column Number Output for request type = 0:
1. Aggregate cm X location
2. Aggregate cm Y location
3. Aggregate cm Z location
4. Aggregate mass
5. (not used)
6. (not used)

Column Number Output for request type = 1:


1. Aggregate Ixx at aggregate cm
2. Aggregate Iyy at aggregate cm
3. Aggregate Izz at aggregate cm
4. Aggregate Ixy at aggregate cm
5. Aggregate Ixz at aggregate cm
6. Aggregate Iyz at aggregate cm

Notes on Input and Output


The output is reported in the ground coordinate system.
Wheelbase 1181
Requests

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

Default is set to rotation.


action_only_flag = Action only flag

0 = action reaction type force

1 = action only force

Default is set to action reaction type force.


array_id = ID of array storing actuator limits and ids of application and identifier
strings.
zerolim = (Optional) Result values smaller than zerolim (default is 1e-7) are returned
as zero

Request File Output


Column Number Output for Translation type of freedom:
1. Displacement
2. Velocity
3. Force
4. Acceleration
1182 Adams Car
Requests

5. (not used)
6. (not used)

Column Number Output for Rotation type of freedom:


1. Displacement
2. Velocity
3. Torque
4. Acceleration
5. (not used)
6. (not used)

Notes on Input and Output


None

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 File Output


Column Number Output:
1. Turn Radius (mm)
2. Bank Angle (deg)
3. Longitudinal Acceleration (G)
4. (not used)
5. (not used)
6. (not used)
Wheelbase 1183
Requests

Notes on Input and Output


None

Request 1090
Request 1090 (req1090) used in Adams Car to computes vehicle handling statistics. Refer to special request
Vehicle Dynamics.

Wheel envelope output request


This routine returns the locations of the wheel center and a point on the spindle axis outboard of the wheel.
It also writes these values to the .wev file for both the left and right sides.

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 File Output


Column Number Output for side = 1 and 2:
1. Left wheel center position
2. Left axis point position
3. Right wheel center position
4. Right axis point position

Notes on Input and Output


The output is reported in the ground coordinate system
1184 Adams Car
Requests

Vehicle Dynamics Durability Requests

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

Road Data File


A road data file (.rdf ) specifies the road model and the associated data to be used during the Adams Solver
Simulation. The road data file describes the three-dimensional road geometry with which the tires interact.

Roll & Vert. Force


(Standard Interface) Simulate -> Suspension Analysis -> Create Loadcase -> Select Loadcase Type = Roll & Vert.
Force
Creates a roll and vertical force loadcase file (see Loadcase Files).

For the option: Do the following:


Roll Angle Specify the Roll Angle.
Total Vertical Force Specify the total vertical wheel force available to both the left and right actuators.
1188 Adams Car
Roll Angle

For the option: Do the following:


Fixed Steer Position Define the steering positions held during the Simulation.
(optional)
Steering Input Select one of the following:

 Angle - The steering input is an angle applied to the steering wheel.


 Length - The steering input is a length travel applied to the rack.
Coordinate System Select one of the following:

 Vehicle - Independent tables

 Iso - Dependent or tilting tables


The icon shows the difference between the vehicle and iso coordinate systems.

Roll Angle
Roll angle is measured by the inclination of the Test Rig tables.

Setting Initial Toe and Camber Variables


To set the initial toe and camber variables to the desired values:
1. From the Adjust menu, point to Parameter Variable, and then select Modify.
The Parameter Variable Modification dialog box appears.
2. Right-click the Parameter Variable text box, point to Variable, point to Guesses, and then select a
toe variable.
Adams Car retrieves the original variable value.
3. Replace the original value with a new value.
4. Select Apply.
5. Repeat Steps 2 and 3, this time modifying a camber variable.
6. Select OK.
Instrumentation Requests 1189
Solver Routines

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

Learn about nonlinear couplers.

User Control 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)

User Coupler Subroutines


The custom FORTRAN subroutines includes the ability to model nonlinear couplers. Currently the options
available are:

ID Description
cou1110 Rotational to Translational Couplers using Splines
cou1120 Rotational to Rotational Couplers

User Differential Equation Subroutines

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

User Field Element Subroutines

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.

User Gforce Subroutines

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

User Motion Subroutines

ID Description
mot1110 Application of Random Steer Input
mot1120 Reading motion time history data from file. See Motion Time History Trace Routine.

User SIMULATE/STATIC Routines


Full vehicle Adams modelers would frequently run into the problem of initial conditions when running drift
or tire wear studies. To increase the accuracy of these simulations, MSC Software wrote an alternate
SIM/STAT routine in a user CONSUB. This routine keeps the vehicle from moving in the ground plane and
eliminates the initial transients that occur when going from Adams static analysis to dynamic. The CONSUB
was further refined to have more modes of operation. The main four modes of operation are :
1. Fixed Body Equilibrium - vehicle is assumed to be not moving. This is required for suspension
alignments. Only the tire vertical forces are present.
2. Steady-State Straight Line Equilibrium - vehicle is assumed to be traveling at the part velocities while
steering is adjusted to zero lateral force at JPRIM body marker. This mode is used to start all
simulations where the vehicle is moving forward at a non zero speed.
3. Stead-State Straight Line Acceleration Braking Equilibrium - vehicle is assumed to be traveling at
the part velocities while accelerating or decelerating at a user specified g level.
4. Steady-State Cornering Equilibrium - the simulation starts at a specified value of lateral acceleration,
as issued by the control statement. The lateral acceleration is increased at each time step until the
maximum desired level is reached, the maximum engine power is reached, or the simulation fails (i.e.
vehicle spin out).
All the modes are discussed in detail below. It is mandatory for modelers to use this CONSUB instead of the
Adams SIM/STAT whenever the model contains tires. This will mean almost all full-vehicle simulations, with
the exception of events that have special test rigs, such as 4 post. Adams Car creates JPRIMs which are
automatically removed by the CONSUBs. The additional Adams statements required to use the CONSUB
are described elsewhere.
 Ground Marker Height Adjustment
 Fixed Body Equilibrium
 Static Steady-State Straight Line Equilibrium
 Static Steady-State Straight Line Acceleration/Braking Equilibrium
 Quasi-Static Steady-State Straight Line Acceleration/Braking Equilibrium
 Static Steady-State Cornering Equilibrium
 Quasi-Static Steady-State Cornering Equilibrium
 Quasi-Static Steady-State Swept Steer Equilibrium
 Statements Required in the Adams Dataset
1192 Adams Car
Solver Routines

User Sforce Subroutines

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)

User Variable Subroutines

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

User Vtorque Subroutines

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

Rotational to Translational Couplers using Splines


Transmits motion from a revolute joint to a translational joint. Following statement must be used to invoke
this feature.
COUPLER/id, JOINTS = joi1,joi2, FUNC = USER(brflg,spltype,splid,scale)
where:
id = coupler id.
joi1 = revolute joint of the coupler
joi2 = translational joint of the coupler
brflg = branch flag. should be <=10
spltype = spline interpolation type
= 1 - akima spline type interpolation
= 2 - cubic spline type interpolation
splid = id of the spline specifying the nonlinear relation between the joints
scale = value by which the output to be scaled. Use -1 to reverse sign of the output.

Rotational to Rotational Couplers


Transmits motion between 2 revolute joints. Following statement must be used to invoke this feature.
COUPLER/id, JOINTS = joi1,joi2, FUNC = USER(brflg,spltype,splid,scale)
where:
id = coupler id.
joi1 = revolute joint of the coupler from which motion is transmitted
joi2 = revolute joint of the coupler to which motion is transmitted
brflg = branch flag. should be > 10 and <= 20
spltype = spline interpolation type
= 1 - akima spline type interpolation
= 2 - cubic spline type interpolation
splid = id of the spline specifying the nonlinear relation between the joints
scale = value by which the output to be scaled. Use -1 to reverse sign of the output.
1194 Adams Car
Solver Routines

Solver Routines

Align or Adjust Suspension


This function runs one or more static solutions, for example, to adjust tie rod length to set desired toe angle.
Adams Car adds a call to this function when the assembly contains adjustable forces.
Invoke this function by typing the following command
control/routine=abgFDM::con900, function=USER(afoid,aprid,svs_flg)
where:

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.

Calculation of auto trim load


This routine calculates the auto trim load for airspring.
Invoke this function by typing the following command
DIFF/id, IC=0.0
, FUNCTION=USER(1117,tlen,imrk,jmrk)
where:

Description
id = Diff statement id
tlen = Trim length
imrk = Id of spring I marker
jmrk = Id of spring j marker

Calculation of pitch, roll or side slip angle


This routine computes pitch angle, roll angle, or side slip angle depending upon the flag passed.
The syntax to access the routine is as follows:
VARIABLE /id, IC = 0.0
, FUN=USER (911, type, imrk, jmrk, rmrk, scale, int_branch)
Instrumentation Requests 1195
Solver Routines

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

Calculation of sine steering functions


This routine computes the value of a sine sweep having time-varying or constant frequency.
The syntax to access the routine for VARIABLE is as follows:
VARIABLE /id, IC = 0.0
, FUN=USER (routine_code, branch_id, T1, T2, F1, F2, amplitude, TMS)
Routine= abgVDM::var914
The syntax to access the routine for MOTION is as follows:
MOTION /id, JOINT = ijt, type
, FUN=USER (routine_code, branch_id, T1, T2, F1, F2, amplitude, TMS)
Routine= abgVDM::mot914
where:
1196 Adams Car
Solver Routines

Description
id = VARIABLE id for VARIABLE

MOTION id for MOTION


ijt = Adams JOINT id to which motion is applied
type = type of Adams JOINT

ROT = rotational joint

TRA = translational joint


routine_cod = Used only when routine= is not specified to dispatch to the proper routine
e
branch_id = Specify branching id.

1 = time-varying linear frequency

2 = time-varying logarithmic frequency


T1 = Start time used for defining linear/log curve
T2 = End time used for defining linear/log curve
F1 = Frequency at T1
F2 = Frequency at T2.
AMP = Amplitude of the signal
TMS = Mini-maneuver start time

Notes on Input and Output


 For constant frequency sine sweeps, specify branch_id = 1, and ensure f2=f1.

Calculation of steady state controller error


This routine computes the error between the force/torque on a jprim and a desired force/torque. The desired
force/torque is always zero. Typically this routine is used in conjuction with all Adams Car static simulations
(see User SIMULATE/STATIC Routines) of full vehicle models, where the residual forces on the body to ground
jprims and wheel to spindle jprims are driven to zero so that there are no initial transient effects when
dynamic simulation is performed immediately following a static simulation.
The syntax to access the steady state controller error is as follows:
VARIABLE /id, IC = 0.0
, FUN=USER (909, gain, jprid, comp,rmrk, gfoid)
where:
Instrumentation Requests 1197
Solver Routines

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.

Calculation of steering functions


This routine calculates different steering functions such as RAMP and STEP.

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

MOTION id for MOTION statement

SFORCE id for SFORCE statement


ijt = Adams JOINT id to which motion is applied
type = type of Adams JOINT

ROT = rotational joint

TRA = translational joint


routing_code = Used only when routine= is not specified to dispatch to the proper routine
branch_id = Specify branching ID,

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

Notes on Input and Output


 The edges are rounded off between T1-EPS and T1+EPS respectively between T2-EPS and T2+EPS

Calculation of yaw angle error


This routine computes the error between the displacement (yaw) of the specified marker and the yaw angle
specified by the user slip angle in the shadow system.
Invoke this function by typing the following command
DIFF/id, IC=0.0
, FUNCTION=USER(1020 ,imrk,jmrk, gain)
where:
Instrumentation Requests 1199
Solver Routines

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

Deactivate Initial Condition Motion, jprims, joints and couplers


This routine is been used to deactivate motions, jprims, joints and couplers after static setup phase have
completed.
The CONSUB for this event can be invoked by typing the following at
the Adams prompt.
CONTROL/FUN=USER (1402,mot_ary,jpr_ary,jnt_ary,cpr_ary,job_flg)
where:

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

 -1 – flag is not set


 0 – if initial dcf call
 1 – first mini manoeuvre

Quasi-Static Milliken Moment Method Analysis


The quasi-static Milliken moment method event allows user to evaluate the stability and handling
characteristics of your vehicle model. The CONSUB drives the vehicle at constant longitudinal speed and
performs a series of analyses at different side-slip angles and steer angles.
The CONSUB for this event can be invoked by typing the following at the Adams prompt.
CONTROL/FUN=USER
(1060,jpr_ary,int_ss,fin_ss,ss_nsteps,str_amp,str_frq,dur,nsteps,bank
,str_mot,origo)
1200 Adams Car
Solver Routines

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

Unit vector calculation


This routine will return direction cosine along specified direction.
The syntax to access the Wheel Velocity is as follows:
VARIABLE/id, FUN=USER (907, imrk, jmrk, rmrk, vdir, vcom)
where:

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.

The vertical actuators will move the


suspension in the range you specify in the
Vertical Force text box.
Wheel Delta Vertical Force Control the relative vertical force generated
by the tire. The vertical actuators will move
the suspension in the range specified by the
vertical force fields. The force is relative to
the vertical tire force generated between the
wheel and the pads at static equilibrium
position. For example a +-100 N with this
option selected means that the test rig will
apply +-100 N starting from the static
equilibrium load.
Actuator Vertical Force Directly specify the vertical actuator loads.
Overturning Enter values for the overturning torque.
Tor.
Roll. Res. Enter values for the rolling resistance torque.
Torque
Damage Force Enter values for the damage force. Adams Car applies damage forces perpendicularly to the
plane containing the wheel part. They are expressed in the ISO-C (TYDEX C) axis system.

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:

 Angle - The steering input is an angle applied to the steering wheel.


 Length - The steering input is a length travel applied to the rack.
Steer Enter values that fix the upper bound and the lower bound of the rack displacement (if
Upper/Lower Steering Input is Length), or of the steering wheel (if Steering Input is Angle). Positive rack
Limit displacement moves the rack towards the vehicle's right side. Positive steering-wheel angles
rotate the steering wheel counterclockwise, typically steering the vehicle to the left.
Coord. Select one of the following:
System

 Vehicle - Independent tables

 Iso - Dependent or tilting tables


The icon shows the difference between the vehicle and iso coordinate systems.
Instrumentation Requests 1205
Steer Axis

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.

For the option: Do the following:


Steering Limit Enter values for the upper and lower bounds of steering input.
Fixed Wheel Center Enter values for the wheel vertical positions.
Steering Input Select one of the following:

 Angle - The steering input is an angle applied to the steering wheel.


 Length - The steering input is a length travel applied to the rack.
Coordinate System Select one of the following:

 Vehicle - Independent tables

 Iso - Dependent or tilting tables


The icon shows the difference between the vehicle and iso coordinate systems.

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

Simple Bending Strut Model


In the simple bending model, a bushing is attached to the upper strut piece, and is connected to the lower
strut by a VFORCE statement. The VFORCE allows the reaction force on the lower strut to move with the
upper strut. A second bushing moves with the lower strut, and is also modeled using a VFORCE statement

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.

Complex Strut Model


The complex strut model in Adams includes structural compliance. The model contains 12 parts (six each
left and right). The six parts are:
 Outer tube base
1208 Adams Car
Strut Modeling

 Inner (pressure) tube base


 Piston
 Piston lash (dummy part)
 Rod guide
 Rod guide lash part (dummy part)
All the parts have negligible mass and the cg of the parts are as shown in following table:

Part Mass and CM Location


Lower Strut (attachment Allocate aggregate mass of the strut lower assembly that is outer and inner
part) tube. The CG to be calculated based on the dimension of outer and inner
tube.
Outer tube (BEAM, BEAM property calculated based on the dimension of the outer tube. This is
between lower strut and modeled as a BEAM and does not have a mass.
Rod Guide)
Inner (pressure) tube base Negligible mass and CM at the lower attachment location.
Piston Negligible mass and CM at the distance equal to rod length from the upper
attachment location.
Piston lash Negligible mass and CM located at the CM of the Piston.
Rod guide Negligible mass and CM at the distance equal to outer tube length from the
lower attachment location.
Rod guide lash part Negligible mass and CM located at the CM of the Rod guide.
Upper Strut (attachment Allocate aggregate mass of the strut upper assembly that is piston and rod. The
part) CG to be calculated based on the dimension of piston and rod.

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

Property File Parameters Explanation in the Diagram


Rod Diameter Rod Diameter
Rod Length Rod Length
Rod Lash Lash Distance Between Rod and Rod Guide
Rod Stiffness Stiffness Between Piston Rod and Rod Guide
Inner Tube Outer Diameter Inner Tube Outer Diameter
Inner Tube Inner Diameter Inner Tube Inner Diameter
Inner Tube Length Inner Tube Length
Outer Tube Outer Diameter Outer Tube Outer Diameter
Outer Tube Inner Diameter Outer Tube Inner Diameter
Outer Tube Length Outer Tube Length
Piston Lash Lash Distance Between Piston and Inner Tube
Piston Stiffness Stiffness Between Piston and Inner Tube
1210 Adams Car
Subframe

General Force Acting part(s)


GF1 Attachment part (upper strut) and Rod Guide Lash
GF2 Rod Guide Lash
GF3 Rod Guide lash and Piston
GF4 Rod Guide and Piston Lash
GF5 Piston Lash
GF6 Piston Lash and Inner (pressure) Tube

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.

Trailer Axle Configuration


It allows you to select between Solid Axle, Trailing Arm with Torsion Spring and Trailing Arm with Bushing.
The parameter variable pvs_trailer_axle_configuration is used to select configuration. Where, '0', '1' and '2'
are mapped to Solid Axle, Trailing Arm with Torsion Spring and Trailing Arm with Bushing respectively.

Trailer Body Configuration


It allows you to select between Simple or Advanced body configuration.
The parameter variable pvs_trailer_body_configuration is used to select configuration. Where, '1', '2' are
mapped to Simple and Advanced respectively.
Simple body configuration allows only Solid Axle trailer axle configuration.
Advanced body configuration allows all trailer axle configuration.

Trailer Design Options


Trailer template has various design options, which can toggle various topological changes in the suspension.
The following table shows the design options implemented in the trailer template.
1212 Adams Car
Trailer Design Options

Design Option Dependent Variable


Name Choices Values Variable Description
Number of Trailer One 1 Activate first axle
Axles Two 2 Activate first and
second axle
Trailer Body Simple 1 Activate simple
Configuration body
Advanced 2 Activate advanced
body
Trailer Axle Solid Axle 0 Activate rigid axle
Configuration (dependent
suspension)
Trailing Arm with 1 Activate torsion
Torsion Spring spring
(independent
suspension)
Trailing Arm with 2 Activate bushing
Bushing (independent
suspension)
Hitch Joint Method Lock 0 Activate Fixed Joint

Kinematic 1 Activate joints


Compliance 2 Activate bushing
Hitch Configuration Standard 1 ._trailer.pvs_fifth_ Activate Standard
wheel_motion hitch configuration
Goose Neck 2 Activate Goose
Neck hitch
configuration
Fifth Wheel 3 Activate fifth wheel
hitch configuration
Instrumentation Requests 1213
Trailer Design Options

Design Option Dependent Variable


Name Choices Values Variable Description
Fifth Wheel Motion No X Rotation 1 Activate a fixed
joint between fifth
wheel head support
and vehicle body
Allow X Rotation 2 Activate a revolute
joint between fifth
wheel head support
and vehicle body
Load Equalizer Inactive 0 Deactivate Load
Equalizer
Active 1 Activate Load
Equalizer
Number of Trailer None 0 No cargo part is
Cargo Parts active
One 1 One cargo part is
active
Two 2 Two cargo part is
active
Three 3 Three cargo part is
active
Four 4 Four cargo part is
active
Hub Compliance Inactive 0 pv[lr]_hub_compli Deactivate hub
ance_offset compliance
Active 1 Activate hub
compliance
Hub Compliance User- entered real Offset hub
Offset number compliance from
wheel center
location
Damper Inactive 0 Deactivate Damper
for both axles
Active 1 Activate Damper
for both axles
1214 Adams Car
Trailing Arm Configuration

Trailing Arm Configuration


The Trailing Arm Configuration is modeled in the _trailing_arm_advanced template provided in the
acar_concept database. It allows you to select configurations like 3 Beam, Torsional Spring, Upper-Lower
Spindle and Upper-Lower Control Arms.
The parameter variable pvs_trailing_arm_configuration is used to select configuration. Where, '1', '2', '3'
and '4' are mapped to 3 Beam, Torsional Spring, Upper-Lower Spindle and Upper-Lower Control Arms
respectively. It is used to activate appropriate groups created for the trailing arm configuration.

Torque versus Engine Speed and Throttle Position

Top Dualpath Mount


The Top Dualpath Mount is added in the MacPherson Suspension templates.
The parameter variable pvs_top_dualpath_mount is used to activate Top Dualpath Mount. Where, '0' and
'1' are mapped to Inactive and Active respectively.
Instrumentation Requests 1215
Twist Beam Configuration

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.

Twist Beam Configuration


The Twist Beam Configuration is modeled in the _twist_beam_advanced template provided in the
acar_concept database. It allows you to select various twist beam configurations.
The parameter variable pvs_twist_beam_configuration is used to select configuration. Where, '1', '2', '3', '4',
'5', '6', '7', '8', '9' and '10' are mapped to '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' respectively. It
is used to activate appropriate groups created for the trailing arm configuration.

Upper Control Arm Configuration


The Upper Control Arm Configuration is modeled in the _double_wishbone_advanced template provided
in the acar_concept database. It allows you to select configuration between Single Ball Joint and Dual Ball
Joint.
The parameter variable pvs_upper_control_arm_configuration is used to select configuration. Where, '1', '2'
are mapped to Single Ball Joint and Dual Ball Joint respectively. It is used to activate appropriate groups
created for the upper control arm configuration. Single Ball joint represents upper control arm is modelled in
one part and Dual Ball Joint represents upper control arm is modelled in two parts.

Understeer Budget Calculations


The Understeer Gradient of a vehicle is produced by several effects: tire stiffness, weight distribution,
suspension kinematics, suspension compliance, etc. For the Understeer Budget calculations, we will calculate
the individual effects of: Weight and Tires, Roll Steer, Steering System Compliance, and Suspension
Compliance.
An effect that is being ignored at this time is the contribution from Aligning Torque on the Rigid Body. This
contribution usually amounts to .2 deg/g or less, and is due to tire rotational stiffness. This calculation could
possibly be added in the future. Also, the Front and Rear Suspension Compliance Gradients are lumped
gradients that include the effects of roll camber and aligning torque deflection steer.
The next sections describe the following:
 List of Symbols
 Overall Steering Ratio
 Sign Conventions
 Toe Angles
 Gradient Calculations
 Weight Distribution and Tires
1216 Adams Car
Understeer Budget Calculations

 Roll Steer

• Rack-and-Pinion Steering System


• Pitman, Haltenberger, and Relay Steering Systems
 Rear Suspension Compliance Steer
 Appendix A: Variable Sources
 Appendix B: Overall Steering Ratio Calculations
• Rack
• Pitman and Haltenberger
• Relay
List of Symbols

Overall Steering Ratio


Instrumentation Requests 1217
Understeer Budget Calculations

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)

Appendix A: Variable Sources

Appendix B: Overall Steering Ratio Calculations


Rack
Instrumentation Requests 1223
Understeer Budget Calculations

Pitman and Haltenberger

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.

Welcome Dialog Box

Image courtesy of Wyatt Turner Design (http://wtdesign.flashex.com/)


Instrumentation Requests 1225
Wheel Force Transducer

Wheel Force Transducer


This design option allows you to activate or deactivate Wheel Force Transducer (WFT) in the specified
templates.
The parameter variable pvs_wheel_force_transducer is used to model WFT. Where, '0', '1' are mapped to
Inactive and Active respectively. It is used to activate appropriate group created for the WFT.
The parameter variable pvs_wft_offset is used as dependent variable which helps to offset WFT's center
marker from the wheel center in global Y direction only.

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.

Figure 17 WFT Deactivated

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

Figure 18 WFT Activated

Adding Wheel Force Transducer to existing template


To add WFT to your existing suspension template, do the following:
1. Open the existing suspension template.
2. Go to Tools → Command Navigator.
3. Locate the macro under acar → template_builder → add > wft, enter information as shown below:

For the option: Do the following:


Model Enter the template name in which you want to create WFT.
Part Select the part to which WFT part will attach by fixed joint.
Cframe Select the construction frame which will decide location and orientation of
WFT part.
Instrumentation Requests 1227
Wheel Travel

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.

For the option: Do the following:


Parallel/Opposite/Single Select a type of wheel travel.
Bump Travel Enter the upper limit of wheel-center displacement.
Rebound Travel Enter the lower limit of wheel-center displacement.
Fixed Steer Value Enter a constant value for the steering input.
Travel Relative To Select one of the following:

 Wheel Center - Represents the center of the wheel.


 Contact Patch - Represents the point of contact between the tire
and the road.
Steering Input Select one of the following:

 Angle - The steering input is an angle applied to the steering wheel.


 Length - The steering input is a length travel applied to the rack.
If you select Opposite, Adams Car enables the following option:
Coordinate System Select one of the following:

 Vehicle - Independent tables

 Iso - Dependent or tilting tables


The icon shows the difference between the vehicle and iso coordinate
systems.
If you select Single, Adams Car enables the following options:
Fixed Wheel Center Enter a constant value for the wheel vertical position.
Side Select one of the following:

 Left
 Right
1228 Adams Car
Wheel Travel

You might also like