Feedback PID Steering Controller - Cars & Trucks

A Proportional-Integral-Derivative (PID) steering controller is a feedback controller that computes a vehicle steering input using the error, the integral of error, and the rate of change of error between the desired vehicle path and the actual vehicle position.

To use a PID control you enter proportional (KP), integral (KI), and derivative (KD) gains, the Demand Path similarly with the Feed-forward steering controller and the type of the controller. The Altair Driver then applies the Proportional-Integral-Derivative (PID) control law to calculate the steering signal.

Currently, there is only one available PID steer controller type (FOLLOW_PATH). The following section explains the controller’s algorithm.

Algorithm

In PID steering controller, the error between the actual position and the demand path is calculated similarly with the Feed-forward steering controller. The main difference between the PID and FF controller is that the error is calculated in the current state and not in a look ahead time.
Parameters
Path Error e
Proportional gain Proportional gain
Derivative gain Derivative gain
Integral gain Integral gain
Integral control flag Integral control flag (α)
Integral band Integral band (σ)
Driver steering output O steering

This controller is mainly useful for non-trivial vehicles that cannot be modeled accurately from the Bicycle model of the FF controller. Since the error is calculated based on the current state, response delays may appear in the results compared to FF.
[PID_STEER_CONTROLLER]                                                                      
TAG             = 'PID'
TYPE            = 'FOLLOW_PATH'        
PATH            = 'PREDEFINED'
BLOCK           = 'PATH'
KP              = 0.2
KD              = 1.0
KI              = 0.0 
[FEEDFORWARD LONGITUDINAL CONTROLLER]
TAG Attr - string REQUIRED

<PID>

TYPE Attr - string REQUIRED

<FOLLOW_PATH>

I_ACTIVE_BAND Attr - real OPTIONAL
  • Band in which integral control is activated.
If absent:
  • Integral gain is always active. May lead to overcompensation.
KP Attr - Real OPTIONAL
  • Proportional gain
If absent:
  • KP = 0
KD Attr - Real OPTIONAL
  • Differential gain
If absent:
  • KD = 0
KI Attr - Real OPTIONAL
  • Integral gain
If absent:
  • KI = 0
INITIAL_ERROR Attr - Real OPTIONAL
  • Integral gain
If absent:
  • INITIAL_ERROR = 0