Datasets

Vehicle Parameters

Some of the driver controllers (Feedforward controllers, gear shift controller) need vehicle information. This information can be provided using datasets. If these controllers are not used, you do not need to populate this dataset. The graphical user interface automatically populates these datasets.


Figure 1.
Parameter Type Range Comments
Vehicle Mass Real Value>0  
Final drive ratio Real Value>0 Coupler ratio between drive coupler output and input shafts. Note that drive ratio is 3.7 in case of default RWD model and 1 in case of default FWD model. This value is not parameterized.
Transmission efficiency Real Value>0 Input omega/(output omega*Drive ratio).
Drive type Option Value = FWD or RWD Four wheel drive not allowed for advanced driver.
Max. powertrain torque Real Value > 0 Torque produced by the powertrain at the input shaft of the differential at 100% throttle.

*Required only for vehicle models without CSE powertrain. Driver can directly query CSE powertrain.

Min. Powertrain torque Real   Torque produced by the powertrain at the input shaft of the differential at 0% throttle.

*Required only for vehicle models without CSE powertrain. Driver can directly query CSE powertrain.

Maximum front braking torque Real Value>0 Maximum braking torque on front axle at 100.
Maximum rear braking torque Real Value>0 Maximum braking torque on rear axle.
Brake bias Real 0<Value<1 Front to Rear. 0 is 100% front, 1 is 100% rear.
Front wheel radius Real Value>0 Loaded radius
Rear wheel radius Real Value>0 Loaded radius
Front cornering stiffness Real Value>0  
Rear cornering stiffness Real Value>0  
Vehicle a Real Value>0 X component (Vehicle SAE system) of the distance from vehicle front axle to vehicle CG.
Vehicle b Real Value>0 (Wheel base - vehicle a)
Vehicle yaw inertia Real Value>0  
Steer ratio Real Value>0 Ratio of steering wheel input to tire motion (toe).

Analysis Settings

The only information that this data set would contain is the address of the Altair Driver file.
Parameter Type Range Comments
Altair Driver file File   Address of the file path

Signal Dimensions

A signal dimensions dataset is required to pass driver the information like Labels, ID, and dimensions of the end signals.


Figure 2.
Use Case:
$Example ADF end conditions block
(END_CONDITIONS)
 {SIGNAL      GROUP   ABS   OPERATOR   VALUE   TOLERANCE   WATCH_TIME}
  LONG_VEL      0      Y      SS        0.0      0.0001       1.50
  ROLL_ANGLE    1      Y      SS        0.0      0.0001       1.50
  PITCH_ANGLE   2      Y      SS        0.0      0.0001       1.50
  YAW_RATE      3      Y      SS        0.0      0.0001       1.50
  CG_Z          4      Y      SS        0.0      0.0001       1.50
$------------------------------------------------------------------------------------------------------------------

Using this block in ADF and signals dimension dataset, Driver will know the appropriate conversion factors for each and every value.

Control States

The scripted driver works on the CSE architecture. A graphical user interface for CSE architecture is not supported, therefore one has to change MDL statements in order to make any changes.
MDL Statements  
*GeneralStateEquation( gse_advanced_driver, "CSE Advanced Driver", 6, sa_u_advanced_driver, ,  )
gse_advanced_driver Variable name of the driver cse.
“CSE Advanced Driver” Label
6 Number of outputs.
sa_u_advanced_driver Solver array with input signals.
  Driver resizes the state array and sets initial conditions of the states internally. Hence, the state IC array should not be provided.
  *SetGeneralStateEquation( gse_advanced_driver,        USER, `USER({sa_par0.idstring},1)` )
USER Indicates that Motionsolve should look outside its dll’s for the entry point.
USER({sa_par.idstring}) Function call with par[0] = Array ID with vehicle parameters
  *SetContinuousStates( gse_advanced_driver,        1 )
1 The number of states are by default set to 1.
 *SetLocalUserDLL( gse_advanced_driver,        "msautoutils" )
Msautoutils Looks for this dll first in the current directory and then in MotionSolve installation.
*SetLocalUserFuncname( gse_advanced_driver,        "SCRIPT_DRIVER" )
SCRIPT_DRIVER Entry point function name.

Motions

Steering wheel motion Driver computes the required steering angle and applies motion to the steering wheel joint.
Differential motion Required to lock the differential during static (present only if drive joint attachment is resolved in the Driver attachment dialog).

Forces

Steering torque Driver computes the required steering torque and applies torque to the steering wheel joint.

Sensor

Maneuver switch Switch to end one maneuver and start next maneuver. Sensor uses a sensor subroutine to monitor the signals and end conditions associated with the signal to actuate the switch.

Solver Arrays

These solver arrays are parameterized to data sets or attachments and provide several pieces of vehicle information to the Solver.

You do not need to fill/edit them.
Mass Info Array
0
Reserved
1
Mass of the vehicle
2
Reserved
3
Reserved
4
Reserved
5
Reserved
Brake Info Array
0
Reserved
1
Max front braking torque
2
Max rear braking torque
3
Brake bias
4
Reserved
5
Reserved
Tire Info Array
0
Reserved
1
Front wheel loaded radius
2
Rear wheel loaded radius
3
1 if FWD 2 if RWD
4
Reserved
5
Reserved
Powertrain Info Array
0
Reserved
1
Maximum powertrain torque
2
Minimum powertrain torque
3
Throttle scaling
4
Reserved
5
Reserved
Drive Train Info Array
0
Reserved
1
Final drive ratio
2
Transmission efficiency
3
Number of gears
4
Gear ratio curve ID
5
Reserved
Driver Info
0
Reserved
1
Altair Driver file path string ID
2
Sensor dimension master array ID
3
User Signals solver variable array ID
4
Driver GSE ID
5
Control Entities array ID
6
Reserved
7
Reserved
8
Reserved
9
Reserved
Bicycle Model Info Array
0
Reserved
1
Front cornering stiffness
2
Rear cornering stiffness
3
Vehicle a
4
Vehicle b
5
Yaw inertia
6
Steer ratio
7
Reserved
8
Reserved
Vehicle Parameters Array
0
Reserved
1
Mass info array ID
2
Brake info array ID
3
Drivetrain info array ID
4
0
5
Tire info array ID
6
Powertrain info array ID
7
Bicycle model info array ID
8
Driver info array ID
9
Reserved
10
Reserved
Sensor Mass Dimension array (Using signal dimensions dataset table)
0
Time (0)
1
Distance travelled (0)
2
Longitudinal velocity (0)
3
Longitudinal acceleration (0)
4
Lateral acceleration (0)
5
Lateral velocity (0)
6
Yaw rate (0)
7
Vehicle position (Y) (0)
8
Vehicle position (X) (0)
9
Roll angle (0)
10
Pitch angle (0)
11
Roll rate (0)
12
Pitch rate (0)
13
Vehicle position (Z) (0)
14
Yaw angle (0)
15
Engine speed (0)
16
User Signal 0 (0)
17
User Signal 1 (0)
18
User Signal 2 (0)
19
User Signal 3 (0)
20
User Signal 4 (0)
21
Steer angle output (0)
22
Throttle angle output (0)
23
Brake output (0)
24
Gear output (0)
25
Clutch output (0)
26
Steering wheel angle on Vehicle (0)
27
Steer angle error derivative (0)
28
Reserved
29
Reserved
30
Reserved
Sensor Length Dimension array (Using signal dimensions dataset table)
0
Time (0)
1
Distance travelled (1)
2
Longitudinal velocity (1)
3
Longitudinal acceleration (1)
4
Lateral acceleration (1)
5
Lateral velocity -1
6
Yaw rate (0)
7
Vehicle position (Y) -1
8
Vehicle position (X) -1
9
Roll angle (0)
10
Pitch angle (0)
11
Roll rate (0)
12
Pitch rate (0)
13
Vehicle position (Z) -1
14
Yaw angle (0)
15
Engine speed (0)
16
User Signal 0 (0)
17
User Signal 1 (0)
18
User Signal 2 (0)
19
User Signal 3 (0)
20
User Signal 4 (0)
21
Steer angle output (0)
22
Throttle angle output (0)
23
Brake output (0)
24
Gear output (0)
25
Clutch output (0)
26
Steering wheel angle on Vehicle (0)
27
Steer angle error derivative (0)
28
Reserved
29
Reserved
30
Reserved
Sensor Time Dimension array (Using signal dimensions dataset table)
0
Time (1)
1
Distance travelled (0)
2
Longitudinal velocity (-1)
3
Longitudinal acceleration (-2)
4
Lateral acceleration (-2)
5
Lateral velocity (-1)
6
Yaw rate (-1)
7
Vehicle position (Y) (0)
8
Vehicle position (X) (0)
9
Roll angle (0)
10
Pitch angle (0)
11
Roll rate (-1)
12
Pitch rate (-1)
13
Vehicle position (Z) (0)
14
Yaw angle (0)
15
Engine speed (-1)
16
User Signal 0 (0)
17
User Signal 1 (0)
18
User Signal 2 (0)
19
User Signal 3 (0)
20
User Signal 4 (0)
21
Steer angle output (0)
22
Throttle angle output (0)
23
Brake output (0)
24
Gear output (0)
25
Clutch output (0)
26
Steering wheel angle on Vehicle (0)
27
Steer angle error derivative (-1)
28
Reserved
29
Reserved
30
Reserved
Sensor Force Dimension array (Using signal dimensions dataset table)
0
Time (0)
1
Distance travelled (0)
2
Longitudinal velocity (0)
3
Longitudinal acceleration (0)
4
Lateral acceleration (0)
5
Lateral velocity (0)
6
Yaw rate (0)
7
Vehicle position (Y) (0)
8
Vehicle position (X) (0)
9
Roll angle (0)
10
Pitch angle (0)
11
Roll rate (0)
12
Pitch rate (0)
13
Vehicle position (Z) (0)
14
Yaw angle (0)
15
Engine speed (0)
16
User Signal 0 (0)
17
User Signal 1 (0)
18
User Signal 2 (0)
19
User Signal 3 (0)
20
User Signal 4 (0)
21
Steer angle output (0)
22
Throttle angle output (0)
23
Brake output (0)
24
Gear output (0)
25
Clutch output (0)
26
Steering wheel angle on Vehicle (0)
27
Steer angle error derivative (0)
28
Reserved
29
Reserved
30
Reserved
Sensor Angle Dimension array (Using signal dimensions dataset table)
0
Time (0)
1
Distance travelled (0)
2
Longitudinal velocity (0)
3
Longitudinal acceleration (0)
4
Lateral acceleration (0)
5
Lateral velocity (0)
6
Yaw rate (1)
7
Vehicle position (Y) (0)
8
Vehicle position (X) (0)
9
Roll angle (1)
10
Pitch angle (1)
11
Roll rate (1)
12
Pitch rate (1)
13
Vehicle position (Z) (0)
14
Yaw angle (1)
15
Engine speed (1)
16
User Signal 0 (1)
17
User Signal 1 (0)
18
User Signal 2 (0)
19
User Signal 3 (0)
20
User Signal 4 (0)
21
Steer angle output (1)
22
Throttle angle output (0)
23
Brake output (0)
24
Gear output (0)
25
Clutch output (0)
26
Steering wheel angle on Vehicle (1)
27
Steer angle error derivative (1)
28
Reserved
29
Reserved
30
Reserved
Sensor Label Dimension array (Using signal dimensions dataset table)
0
Time (TIME)
1
Distance travelled (DIS)
2
Longitudinal velocity (LONG_VEL)
3
Longitudinal acceleration (LONG_ACC)
4
Lateral acceleration (LAT_ACC)
5
Lateral velocity (LAT_VEL)
6
Yaw rate (YAW_RATE)
7
Vehicle position (Y) (CG_Y)
8
Vehicle position (X) (CG_X)
9
Roll angle (ROLL_ANGLE)
10
Pitch angle (PITCH_ANGLE)
11
Roll rate (ROLL_RATE)
12
Pitch rate (PITCH_RATE)
13
Vehicle position (Z) (CG_Z)
14
Yaw angle (YAW_ANGLE)
15
Engine speed (ENG_SPD)
16
User Signal 0 (OL_STEER)
17
User Signal 1 (OL_THROTTLE)
18
User Signal 2 (OL_BRAKE)
19
User Signal 3 (OL_GEAR)
20
User Signal 4 (OL_CLUTCH)
21
Steer angle output (STEER)
22
Throttle angle output (THROTTLE)
23
Brake output (BRAKE)
24
Gear output (GEAR)
25
Clutch output (CLUTCH)
26
Steering wheel angle on Vehicle (SWA_ON_VEHICLE)
27
Steer angle error derivative (SWA_ERROR_DOT)
28
Reserved
29
Reserved
30
Reserved
Sensor Solver variable ID array (Using signal dimensions dataset table)
0
Time (sv_simulation_time.id)
1
Distance travelled (sv_distance_travelled.id)
2
Longitudinal velocity (sv_long_vel.id)
3
Longitudinal acceleration (sv_long_acc.id)
4
Lateral acceleration (sv_lat_acc.id)
5
Lateral velocity (sv_lat_vel.id)
6
Yaw rate (sv_yaw_rate.id)
7
Vehicle position (Y) (sv_lat_disp.id)
8
Vehicle position (X) (sv_long_disp.id)
9
Roll angle (sv_roll_angle.id)
10
Pitch angle (sv_pitch_angle.id)
11
Roll rate (sv_roll_rate.id)
12
Pitch rate (sv_pitch_rate.id)
13
Vehicle position (Z) (sv_vert_disp.id)
14
Yaw angle (sv_veh_heading.id)
15
Engine speed (sv_engine_speed.id)
16
User Signal 0 (signal_0.id)
17
User Signal 1 (signal_1.id)
18
User Signal 2 (signal_2.id)
19
User Signal 3 (signal_3.id)
20
User Signal 4 (signal_4.id)
21
Steer angle output (sv_steer_angle.id)
22
Throttle angle output (sv_throttle.id)
23
Brake output (sv_brake.id)
24
Gear output (sv_gear.id)
25
Clutch output (sv_clutch.id)
26
Steering wheel angle on Vehicle (sv_swa_on_vehicle.id)
27
Steer angle error derivative (sv_swa_error_dot.id)
28
Reserved
29
Reserved
30
Reserved
Sensor Master array (Using signal dimensions dataset table)
0
Sensor Label Dimension array (sa_sen_labels.id)
1
Sensor Label Solver variable array (sa_sen_sv.id)
2
Sensor Label Mass Dimension array (sa_sen_m_dim.id)
3
Sensor Label Length Dimension array (sa_sen_l_dim.id)
4
Sensor Label Time Dimension array (sa_sen_t_dim.id)
5
Sensor Label Force Dimension array (sa_sen_f_dim.id)
6
Sensor Label Angle Dimension array (sa_sen_a_dim.id)
Input Signal Array (GSE, U type)
1
Time
2
Longitudinal displacement
3
Lateral displacement
4
Vertical displacement
5
Vehicle heading angle
6
Vehicle longitudinal velocity
7
Vehicle lateral velocity
8
Yaw rate
9
Vehicle longitudinal acceleration
10
Vehicle lateral acceleration
11
Engine speed
12
User Signal 0
13
User Signal 1
14
User Signal 2
15
User Signal 3
16
User Signal 4
17
Demand traction signal derivative
18
Steering wheel angle on vehicle
19
Steer angle error derivative
20
Roll angle
21
Roll rate
Motion array
0
Reserved
1
Reserved
2
Reserved
3
Reserved
4
Steering wheel motion ID
5
Differential joint lock motion ID
Force array
0
Steer torque ID
Joint array
0
XY plane constraint joint ID
1
Yaw constraint joint ID
Jprim array
0
XY plane constraint joint ID
1
Yaw constraint joint ID
Sensor array
0
Maneuver switch sensor ID
Output Signal array
0
Steering wheel motion ID
1
Driver throttle output ID
2
Driver brake output ID
3
Driver clutch output ID
4
Driver gear output ID
Solver Diff array
0
Steering angle diff ID
1
Demand traction signal diff ID
Control Entities Array
0
Motion Solver array ID
1
Joint Solver array ID
2
Jprim Solver array ID
3
Force Solver array ID
4
Sensor Solver array ID
5
Solver Diff Solver array ID
6
0
7
0
8
0
9
0

Solver Diff

Steering angle differentiation `ARYVAL({gse_msautoDriver_1.y_array.idstring},1)`
Throttle `ARYVAL({gse_msautoDriver_1.y_array.idstring},2)`

Solver Variables

Driver Steer output `ARYVAL({gse_msautoDriver_1.y_array.idstring},1)`
Driver throttle output `ARYVAL({gse_msautoDriver_1.y_array.idstring},2)`
Driver brake output `ARYVAL({gse_msautoDriver_1.y_array.idstring},3)`
Driver gear output `ARYVAL({gse_msautoDriver_1.y_array.idstring},4)`
Driver clutch output `ARYVAL({gse_msautoDriver_1.y_array.idstring},5)`
Distance traveled `ARYVAL({gse_msautoDriver_1.y_array.idstring},6)`
Demand traction signal `ARYVAL({gse_msautoDriver_1.y_array.idstring},8)`
Steer torque `ARYVAL({gse_msautoDriver_1.y_array.idstring},9)`
Simulation Time TIME
Engine speed `VARVAL(<Engine speed attachment solver variable>)`
Longitudinal velocity wrt to gyro -VX ( <Gyro fixed marker> , <Ground body CM marker> , < Gyro fixed marker > )
Lateral velocity wrt gyro VY ( <Gyro fixed marker> , <Ground body CM marker> , < Gyro fixed marker > )
Yaw rate wrt gyro WZ ( <Gyro fixed marker> , <Ground body CM marker> , < Gyro fixed marker > )
Longitudinal acceleration wrt gyro -ACCX( <Gyro fixed marker> , <Ground body CM marker> , < Gyro fixed marker > )
Lateral acceleration wrt gyro -ACCY( <Gyro fixed marker> , <Ground body CM marker> , < Gyro fixed marker > )
Longitudinal displacement DX ( <Vehicle Body>)
Lateral displacement DY ( <Vehicle Body>)
Vertical displacement DZ ( <Vehicle Body>)
Yaw angle AZ(<Vehicle Body>)
Roll Angle ROLL(<Vehicle Body>)
Pitch Angle PITCH(<Vehicle Body>)
Roll Rate WX(<Vehicle Body>, <Ground Body>, <Vehicle Body>)
Pitch Rate WY(<Vehicle Body>, <Ground Body>, <Vehicle Body>)
User signal 0 User defined in Altair Driver panel (signal_0)
User signal 1 User defined in Altair Driver panel (signal_1)
User signal 2 User defined in Altair Driver panel (signal_2)
User signal 3 User defined in Altair Driver panel (signal_3)
User signal 4 User defined in Altair Driver panel (signal_4)
Steering wheel error derivative DIF1(<Steering angle solver diff>)'
Steering wheel angle on vehicle -AZ(<Steering wheel joint i body>,<Steering wheel joint j body>)`
Demand traction signal derivative DIF1(<Demand traction signal solver diff>)`

Template

Introduces the differential lock motion if the drive joint attachment of driver is unresolved.

{ driveJt = {PARENT.ds_vehicle_params.int_jdrive_ID.value} }
{if (driveJt != 0 )}
  <Motion_Joint
     id                  = "{abs( id - driveJt + 1)}"
     label               = "Differential motion"
     full_label          = "Model-Altair Driver-Differential motion"
     type                = "CONSTANT"
     val_type            = "D"
     q                   = "0."
     joint_id            = "{PARENT.ds_vehicle_params.int_jdrive_ID.value}"
     motion_type         = "R"
  />1
    {endif}
Note: The CONSUB (“RUN_STANDARD_CAR_MODEL”) for the entry point of driver in the solver is moved to each of the full vehicle analyses/events supported by the driver.

Sensors

Maneuver switch Switch to end one maneuver and start next maneuver. Sensor uses a sensor subroutine to monitor the signals and end conditions associated with the signal to actuate the switch.

System Gyro

Gyro (short form for gyroscope) is used to calculate the roll and pitch corrected velocities and displacements for the driver inputs.

Gyro body Body to make attachments with the vehicle body.
Gyro body

CG to gyro X dis

CG to gyro Y dis

CG to gyro Z dis

Dataset containing the position information of the gyro.

Gyro X - Vehicle CG X

Gyro Y - Vehicle CG Y

Gyro Z - Vehicle CG Z

Gyro parallel axes joint

Gyro hookes joint

Parallel axes joint between ground body and gyro body. Aligns Global Z with gyroCM Z axis.

Aligns cross pins of the Gyro X and Gyro Y with vehicle X and vehicle Y using a universal joint.

Gyro fixed marker Marker fixed to the gyro body.
Gyro location CGf location of the gyro body.