Altair Driver File Blocks

The Altair Drive File consists of header, units, initial conditions of the vehicle, output standards for the Driver, and the analysis or event broken down into maneuvers mentioned in maneuver list.

The maneuvers are defined by the corresponding controller sections. Each controller section has the controller settings and the demand signal (Demand path, Demand velocity, etc.) specified in it.

$--------------------------------------------------ALTAIR_HEADER             
[ALTAIR_HEADER]                                                                             
FILE_TYPE    = 'ADF'                                                                  
FILE_VERSION = 1.0                                                                
FILE_FORMAT  = 'ASCII'                                                            
$-----------------------------------------------------------------UNITS            
[UNITS]                                                                                     
(BASE)                                                                                      
{ length  force         angle           mass     time }                                               
  'mm'   'newton'      'radians'        'kg'    'sec'                                              
$-----------------------------------------------------VEHICLE_IC                    
[VEHICLE_INITIAL_CONDITIONS]                                                                 
$These are wrt marker attached to the driver analysis - Vehicle IC reference marker          
$Default Global Frame                                                                        
VX0 = -2683.33                                                                                     
VY0 = 0.0                                                                                    
VZ0 = 0.0                                                                                    
ENGINE_INIT_SPEED = 300                                                                                    
$-----------------------------------------------------STEERING_STANDARD            
[STEER_STANDARD]                                                                            
MAX_VALUE  = 9.4248                                      
MIN_VALUE  = -9.4248                                      
SMOOTHING_FREQUENCY  = 10                            
INITIAL_VALUE 	= 0                                  
$------------------------------------------------------THROTTLE_STANDARD            
[THROTTLE_STANDARD]                                                                         
MAX_VALUE  = 1                                     
MIN_VALUE  = 0                                     
SMOOTHING_FREQUENCY  = 10                           
INITIAL_VALUE  = 0                                 
$------------------------------------------------------BRAKING_STANDARD            
[BRAKE_STANDARD]                                                                            
MAX_VALUE  = 1                                     
MIN_VALUE  = 0                                     
SMOOTHING_FREQUENCY  = 10                           
INITIAL_VALUE  = 0                                 
$------------------------------------------------------GEAR_STANDARD            
[GEAR_STANDARD]                                                                         
MAX_VALUE  = 6                                      
MIN_VALUE  = 1                                      
SMOOTHING_FREQUENCY  = 10                            
INITIAL_VALUE  = 1                                  
$-----------------------------------------------------CLUTCH_STANDARD            
[CLUTCH_STANDARD]                                                                            
MAX_VALUE  = 1                                     
MIN_VALUE  = 0                                     
SMOOTHING_FREQUENCY  = 10                           
INITIAL_VALUE  = 0                                 
$--------------------------------------------------------MANEUVERS_LIST            
[MANEUVERS_LIST]                                                                            
{ name		simulation_time		h_max		print_interval}                         
'MANEUVER_1' 	   12 	            	0.01		   0.05                        
$----------------------------------------------------------------MANEUVER_1            
[MANEUVER_1]                                                                                
TASK = 'STANDARD'                                                                           
(CONTROLLERS)                                                                               
{DRIVER_SIGNAL  		PRIMARY_CONTROLLER		ADDITIONAL_CONTROLLER}      
 STEER			OL_STEER_0                                NONE                  
 THROTTLE			FF_TRACTION_CONTROLLER                    NONE                  
 BRAKE			FF_TRACTION_CONTROLLER                    NONE                  
 GEAR			GEAR_CLUTCH_CONTROL                       NONE                  
 CLUTCH		         GEAR_CLUTCH_CONTROL                       NONE                  
$---------------------------------------------------------OL_STEER_0             
[OL_STEER_0]                                                                      
TAG  = 'OPENLOOP'                                                             
TYPE  = 'CONSTANT'                                            
VALUE  = 0                                            
$-----------------------------------------------------------FF_TRACTION_CONTROLLER            
[FF_TRACTION_CONTROLLER]                                                                      
TAG  = 'FEEDFORWARD'                                                             
TYPE  = 'FOLLOW_VELOCITY'                                                         
LOOK_AHEAD_TIME  = 0.5                                                                
DEMAND_SIGNAL = 'DEMAND_VEL' 
$-----------------------------------------------------------DEMAND_VEL                    
[DEMAND_VEL]                                                                              
TYPE  = 'CONSTANT'                                                                           
VALUE  = 2683.33                                                                     
$-----------------------------------------------------------GEAR_CLUTCH_CONTROL 
$Used in case of models with IC Engine 
[GEAR_CLUTCH_CONTROL] 
TAG = 'ENGINE_SPEED'  
(GEAR_SHIFT_MAP)      
{G  US      DS      CT      CRT     TFD     TFT     CFT     TRD     TRT}    
 1   650     125     0.45    0.05    0.1     0.1     0.05    0.05    0.05   
 2   650     125     0.45    0.05    0.1     0.1     0.05    0.05    0.05   
 3   650     125     0.45    0.05    0.1     0.1     0.05    0.05    0.05   
 4   650     125     0.45    0.05    0.1     0.1     0.05    0.05    0.05   
 5   650     125     0.45    0.05    0.1     0.1     0.05    0.05    0.05   

Above is a sample ADF describing an event with zero steer and constant velocity in a single maneuver.

Altair Header

The Altair header block provides the basic information of the ADF to Altair Driver File in the solver.

$-------------------------ALTAIR_HEADER
[ALTAIR_HEADER]
FILE_TYPE          = 'ADF'
FILE_VERSION       = 1.0
FILE_FORMAT        = 'ASCII'
Type Requirement
Block name

[ALTAIR_HEADER]

String REQUIRED
FILE_TYPE Attr-String REQUIRED
  • Read and extract information
  • Multiple file format support
FILE_VERSION Attr-Real REQUIRED = 1.0
FILE_FORMAT Attr-String OPTIONAL

Optional currently, required for future enhancement.

Units

There are several parameters like length of segments in SLC, path coordinates, demand velocity, steer angle etc. mentioned in the ADF. Altair Driver parses the ADF in MotionSolve during the simulation to extract event data. While parsing the ADF, Altair Driver reads the units block to convert data in the ADF to SI units and use them further in the simulation.

Units block specifies the units of all the data mentioned in the ADF. The units are specified for length, force, angle, mass and time.
  • Units are not case sensitive – meter, Meter, METER, or MeTer are all interpreted same.
  • Units block is required for all types of data files to be read by the driver.
$---------------------------------------------UNITS            
[UNITS]
(BASE)
{length   force      angle       mass    time}
'meter'   'newton'   'radians'   'kg'    'sec'
Dimension Options Conversion factor to SI
Length meter or meters or m

foot or feet or ft

mile or miles

millimeter or millimeters or mm

inch or inches or in

1.0

0.3048

1609.344

0.001

0.0254

Force Newton

Dyne

KNewton

Ounce_Force

Kilogram_Force or Kgf

KPound_Force

Pound_Force or lbf

1.0

0.00001

1000

0.27801

9.80665

4448.2216

4.4482216

Angle Radian or radians or rad or r

Degrees or degree or deg or d

1.00

0.017453

Mass Kg or kilogram or kilograms

G or gram or grams

Pound or pounds or lb or lbs

1.0

0.001

0.453592

Time sec or second or seconds

milliseconds or millisecond or millisec or millisecs or ms

1.0

0.001

Vehicle Initial Conditions

The vehicle initial conditions are specified in this block. These consist of the vehicle velocities along the three axes of the vehicle IC marker (from Altair Driver’s attachments) and the engine initial speed used in case of models with IC engine.

Initial conditions are used by Altair Driver to set the IC’s of all bodies present in the model.

The vehicle’s front direction is towards the negative X-axis for the MotionView library models.

$--------------------------------------------------------------VEHICLE_IC                    
[VEHICLE_INITIAL_CONDITIONS]                                                                 
$These are wrt marker attached to the driver analysis - Vehicle IC reference marker          
$Default Global Frame                                                                        
VX0 = -2683.33                                                                                     
VY0 = 0.0                                                                                    
VZ0 = 0.0                                                                                    
ENGINE_INIT_SPEED = 300                                                                                    
Type Requirement

Block name

[VEHICLE_INTIAL_CONDITIONS]
String REQUIRED
VX0 Attr - real REQUIRED

Initial velocity in X-direction wrt Vehicle IC marker.

VY0 Attr - real REQUIRED

Initial velocity in Y-direction wrt Vehicle IC marker.

VZ0 Attr - real REQUIRED

Initial velocity in Z-direction wrt Vehicle IC marker.

ENGINE_INIT_SPEED Attr - real OPTIONAL

Initial angular speed of the engine, used in case of IC engine model.

Output Standards

The output standard blocks contain the output settings for the Altair Driver outputs – Steering, Throttle, Brake, Gear and Clutch.

The output settings consist of maximum value, minimum value, smoothing frequency and initial value of the output signal.

$---------------------------STEERING_STANDARD
[STEER_STANDARD]
MAX_VALUE 	        =  6.28 
MIN_VALUE 	        = -6.28
SMOOTHING_FREQUENCY = 5 
INITIAL_VALUE       = 0.0
$----------------------------THROTTLE_STANDARD
[THROTTLE_STANDARD]
MAX_VALUE           = 1
MIN_VALUE           = 0
SMOOTHING_FREQUENCY = 5
INITIAL_VALUE       = 0.0
$----------------------------BRAKING_STANDARD
[BRAKE_STANDARD]
MAX_VALUE           = 1
MIN_VALUE           = 0
SMOOTHING_FREQUENCY = 5
INITIAL_VALUE       = 0.0
$----------------------------GEAR_STANDARD
[GEAR_STANDARD]
MAX_VALUE           = 6
MIN_VALUE           = 1
INITIAL_VALUE       = 1
$----------------------------CLUTCH_STANDARD
[CLUTCH_STANDARD]
MAX_VALUE           = 1
MIN_VALUE           = 0
INITIAL_VALUE       = 0.0
                                                                                   
Type Requirement & Comments

Block name

[STEERING_STANDARD]
OPTIONAL
BLOCK NAME String REQUIRED

Global settings on steer output.

MAX_VALUE Attr - real OPTIONAL

Upper bound.

MIN_VALUE Attr - real OPTIONAL

Upper bound.

SMOOTHING_FREQUENCY Attr - real OPTIONAL

Cuts changes to the signal above this frequency (low-pass filter).

Requirement & Comments
[THROTTLE_STANDARD] OPTIONAL

Parameters similar to the STEERING_STANDARD block.

[BRAKE_STANDARD] OPTIONAL

Parameters similar to the STEERING_STANDARD block.

[CLUTCH_STANDARD] OPTIONAL

Parameters similar to the STEERING_STANDARD block.

[GEAR_STANDARD] OPTIONAL

Parameters similar to the STEERING_STANDARD block.

Exceptions:

GEAR_STANDARD does not have SCALING_FACTOR, SMOOTHING, and FEEDBACK_FREQUENCY attributes.

MANEUVERS_LIST

The event is broken down into simple maneuvers and are executed by Altair Driver one by one.

The MANEUVER_LIST block contains the list of all the maneuvers of the event. Each maneuver description consists of the block name for the maneuver, simulation time, step size and print interval.

$------------------------------------------MANEUVERS_LIST
[MANEUVERS_LIST]
{name            simulation_time   h_max   print_interval}
'GO_STRAIGHT'    2.0               0.001   0.01
'LEFT_TURN'      12.0              0.001   0.001
'RIGHT_TURN'     10.0              0.001   0.001
Type Requirement & Comments

Block name

[MANEUVERS_LIST]
REQUIRED
BLOCK NAME String REQUIRED

<MANEUVERS_LIST>

MANEUVERS_TABLE Table REQUIRED

Size number of maneuvers * 4

MANEUVERS_TABLE
COLUMN 1 Attr - string REQUIRED

<name>

List of block names of the maneuver information.

COLUMN 2 Attr - real REQUIRED

<simulation_time>

Simulation time at which the maneuver transition takes place. In case none of the end conditions hold true or no end condition is defined.

COLUMN 3 Attr - real REQUIRED

<h_max>

Maximum solver step size for the maneuver.

COLUMN 4 Attr - real REQUIRED

<print_interval>

Print interval for the maneuver.

MANEUVER

A maneuver consists of the controller’s block names for all the driver outputs (Steer, Throttle, Brake, Gear and Clutch) and the end conditions for the maneuver. It is a map of the driver signals and the controllers assigned to them.

[LEFT_TURN] 
TASK = 'STANDARD' 
(CONTROLLERS)
{DRIVER_SIGNAL      PRIMARY_CONTROLLER        ADDITIONAL_CONTROLLER}
 STEER              OL_LEFT_STEER             NONE
 THROTTLE           FEED_FORWARD_TRACTION     NONE
 BRAKE              FEED_FORWARD_TRACTION     NONE
(END_CONDITIONS)
{SIGNAL       GROUP   ABS   OPERATOR   VALUE   TOLERANCE   WATCH_TIME}
 ROLL_ANGLE   0       Y     SS         0       0.05        0.5
 TIME         0       N     GT         12      0.001       0.0
 STEER        1       Y     GT         6.0     0.001       0.0
$------------------------------------------------------------------------
Type Requirement & Comments
BLOCK NAME String REQUIRED

As specified in the maneuver list table.

TASK Attr String OPTIONAL

Place holder for future development for different types of maneuvers.

(CONTROLLERS) Sub-block REQUIRED

Contains table with list of required controllers for the maneuver.

{DRIVER_SIGNAL

PRIMARY_CONTROLLER

ADDITIONAL_CONTROLLER}

Table REQUIRED
COLUMN 1 Attr - string <DRIVER_SIGNAL>

List of active driver output signals. List should contain:

Primary required signals
  • STEER
  • THROTTLE
  • BRAKE

Primary optional signals

(Required only for manual transmission)
  • GEAR
  • CLUTCH
COLUMN 2 Attr - real <PRIMARY_CONTROLLER >

Block names of the primary controllers.

Primary controllers are in charge of populating the driver signal output.

COLUMN 3 Attr - real <ADDITIONAL_CONTROLLER >

Block names of the additional controllers.

*Not every controller can be added as additional controller.

*Example: PID with Feedforward traction controller.

END_CONDITIONS SubBlock REQUIRED
SUB_BLOCK_NAME String REQUIRED

Name should be “END_CONDITIONS”.

TABLE String REQUIRED

End conditions for the maneuver.

COLUMN1 String REQUIRED

<SIGNAL>

Key word for the signal name.

COLUMN2 Integer REQUIRED

<GROUP>

Unique number for the group. Same group signals are OR-ed together whereas different group number signals are AND-ed together.

COLUMN3 Bool REQUIRED

<ABS>

Absolute value.

If true absolute value of the signal is compared.

COLUMN4 String REQUIRED

<OPERATOR>

<LT>
“Less than” operation
<GT>
“Greater than” operation
<ET>
“Equal to” operation
<SS>
“Steady state” operation
COLUMN5 Real REQUIRED

<VALUE>

Compare value

COLUMN6 Real REQUIRED

<TOLERANCE>

Comparison tolerance

COLUMN7 Real REQUIRED

<WATCH TIME>

All sensors are watched for this value of specified time as soon as the condition is true for the very first time. Sensor gets actuated when the condition is true continuously for watch time.

$Example ADF end conditions block
(END_CONDITIONS)
 {SIGNAL    GROUP   ABS   OPERATOR   VALUE   TOLERANCE   WATCH_TIME}
  LONG_VEL    0     Y      LT        15.0     0.001      0.50
  ROLL_ANGLE  1     Y      SS         0.0     0.0001     1.50
  PITCH_ANGLE 1     Y      ET         0.0     0.0001     2.0
  TIME        2     N      GT         3.0      0.001    0.00
$-----------------------------------------------------------------------
The end conditions specified above mean that driver should end the maneuver when:

The end conditions can be applied for a variety of signals. The following table provides the signal names that can be used in the end condition table.

Signal Names Meaning Comment Component
TIME Simulation Time NA NA
DIS Distance Traveled Driver Outputs F2
LONG_VEL Longitudinal Velocity Driver Inputs (2) F2
LAT_VEL Lateral Velocity Driver Inputs (2) F3
LONG_ACC Longitudinal Acceleration Driver Inputs (3) F2
LAT_ACC Lateral Acceleration Driver Inputs (3) F3
YAW_RATE Yaw rate Driver Inputs (2) F4
ROLL_RATE Roll rate Driver Inputs (2) F6
PITCH_RATE Pitch rate Driver Inputs (2) F7
CG_X Vehicle CG X Driver Inputs (1) F2
CG_Y Vehicle CG Y Driver Inputs (1) F3
CG_Z Vehicle CG Z Driver Inputs (1) F4
ROLL_ANGLE Roll Angle Driver Inputs (1) F6
YAW_ANGLE Yaw Angle Driver Inputs (1) F4
PITCH_ANGLE Pitch Angle Driver Inputs (1) F7
ENG_SPD Engine Speed Driver Inputs (2) F8
STEER Steer Angle Driver Outputs F2
THROTTLE Throttle Signal Driver Outputs F3
BRAKE Brake Signal Driver Outputs F4
GEAR Gear Signal Driver Outputs F6
CLUTCH Clutch Signal Driver Outputs F7