Feed-forward Traction Controller

The Feed-forward controller is the predictive controller of the Altair Driver. It predicts some of the states of the vehicle after look ahead time, or look ahead distance, and accordingly drives the throttle and brake signals to match the demand signal (for example, speed).

The feed-forward controller requires information about the vehicle and powertrain to predict vehicle behavior. Hence, it is important to have an Altair powertrain in the vehicle model and fairly accurate vehicle parameters like mass and brake information.

Types

  • VELOCITY CONTROL - Demand signal is a velocity profile with time or distance traveled as independent variable.
  • ACCELERATION CONTROL - Demand signal is an acceleration profile with time or distance traveled as independent variable.
  • Demand signal can be constant, expression, user defined curve, or MotionView Signal (similar to Open Loop controller).

Algorithm

Parameters
Demand Acceleration A demand
Demand Velocity V demand
Vehicle Mass M vehicle
Aerodynamic Drag Force F aero
Air Density ρ
Frontal Area Ar front
Coefficient of drag Cd
Vehicle velocity V vehicle
Tire Forces F tire
Tire Torque T tire
Axle Torque T axle
Driven Tire Radius R drive
Engine Torque T engine
Drive Ratio α drive
Gear Ratio α gear
Transmission Efficiency η transmission
Brake torque T brake
Maximum front braking torque T front brake,max
Maximum rear braking torque T rear brake,max
Look ahead time T look ahead
Driver throttle output O throttle
Driver brake output O brake

Force required at the tire contact patch to produce the demand acceleration, F tire:

If required tire force (T tire) ≥ 0. The car is expected to accelerate:

Driver queries the powertrain to provide throttle for required torque. The powertrain uses the throttle map (Torque Vs Engine RPM Vs Throttle) and returns the throttle value. The brake output by the driver is 0.

If required tire force (T tire) < 0. The car is expected to decelerate and hence, throttle output = 0, brake output is calculated using following equation:

Velocity Control

Driver converts the demand velocity into demand acceleration using the following equation:

Driver uses the demand acceleration to calculate throttle and brake outputs as explained in the Acceleration Control section above.
[FEEDFORWARD_TRACTION]
TAG = 'FEEDFORWARD'
TYPE = 'FOLLOW_VELOCITY'
LOOK_AHEAD_TIME = 0.5
DEMAND_SIGNAL = 'DEMAND_SPEED'
[FEEDFORWARD LONGITUDINAL CONTROLLER]
TAG Attr- string REQUIRED

<FEEDFORWARD>

TYPE Attr - string OPTIONAL
  • Options
    FOLLOW_ACCELERATION to follow an acceleration profile or FOLLOW_VELOCITY to follow a velocity profile.
  • By default assumes FOLLOW_VELOCITY.
LOOK_AHEAD_TIME Attr - real OPTIONAL
  • Integrates states to (current time + look ahead time) to predict.
  • If absent, uses the default value of 0.5 sec.
DEMAND_SIGNAL Attr - string REQUIRED

Block name that contains the demand signal. See the Demand Signal Block topic to learn more about all of the available methods.

Note:
  • In the case of steady state error, primarily because of inaccurate/inadequate vehicle information, an Integral controller can be registered in ADDITIONAL controllers.
  • Greater look ahead times lead to sluggish but smoother throttle and brake signals, while shorter look ahead times will give quicker but more abrupt signals.