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
|
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 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
Primary optional signals (Required only for manual
transmission)
|
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>
|
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 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 |