MotionView User's Guide

Feed-forward Steering Controller

Feed-forward Steering Controller

Previous topic Next topic No expanding text in this topic  

Feed-forward Steering Controller

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

Similar to the Feed-forward throttle and brake controllers, the steering ff controller predicts the states of the vehicle after look ahead time or look ahead distance.  It computes the appropriate steering angle to take the vehicle as close to centerline as possible after look ahead time or distance.  The controller expects a 3d curve (X Y Z) or information to instantiate a parametric path (for example, dimensions of an entry distance/circle for a constant-radius cornering event).

Types:

MOTION CONTROL - Driver output is steering wheel angle which is connected to the vehicle using a Motion.
TORQUE CONTROL - Driver output is steering torque which is applied to the steering wheel.

Algorithm:

Uses the equivalent bicycle model to calculate the vehicle state derivatives.

Parameters

Cornering stiffness, front

K front

Cornering stiffness, rear

K rear

Front axle to vehicle CG distance along x

a vehicle

Rear axle to vehicle CG distance along x

b vehicle

Vehicle mass

m vehicle

Vehicle yaw inertia

I zz, vehicle

Steering ratio

altair_driver_steering_specific_ctrllr_steering_ratio_equ_mvSteer ratio

Vehicle longitudinal velocity

V vehicle, x

Vehicle lateral velocity

V vehicle, y

Vehicle lateral displacement

y vehicle

Vehicle longitudinal displacement

x vehicle

Vehicle yaw rate

w vehicle, z

Vehicle heading angle

A vehicle, z

Steering angle

A steer

Delta

altair_driver_steering_specific_ctrllr_delta_equ_mv

altair_driver_steering_specific_ctrllr_a1_equ_mv

altair_driver_steering_specific_ctrllr_b1_equ_mv

altair_driver_steering_specific_ctrllr_c1_equ_mv

altair_driver_steering_specific_ctrllr_a2_equ_mv

altair_driver_steering_specific_ctrllr_b2_equ_mv

altair_driver_steering_specific_ctrllr_c2_equ_mv

altair_driver_steering_specific_ctrllr_steer_ratio_equ_mv

altair_driver_steering_specific_ctrllr_dx_equ_mv

altair_driver_steering_specific_ctrllr_dy_equ_mv

altair_driver_steering_specific_ctrllr_dv_equ_mv

altair_driver_steering_specific_ctrllr_dw_equ_mv

altair_driver_steering_specific_ctrllr_da_equ_mv

Driver then computes the steering wheel angle, minimizing the lateral error across path using the Newton-Raphson method.

altair_driver_steering_specific_ctrllr_model_example_mv

Path specified using DDF:  Feedforward steering with driver demand file for centerline.  Nodes/points (not necessarily equally spaced) are specified in a tabular format in Cartesian coordinates.

[FEEDFORWARD_STEERING]

TAG = 'FEEDFORWARD'

LOOK_AHEAD_TIME = 0.5

PATH = 'DDF'

FILE = 'spiral.ddf'

INTEGRATION_STEP_SIZE = 0.01

[FEEDFORWARD STEERING CONTROLLER]

TAG

Attr - string

REQUIRED

<FEEDFORWARD >

LOOK_AHEAD_TIME

Attr - real

REQUIRED

Integrates states to (current time + look ahead time) to predict.

INTEGRATION_STEP_SIZE

Attr - Real

REQUIRED

Step size for the integration involved in the prediction.
Smaller step size better prediction but more computation.
Recommended value look ahead time/50.

AGGRESSIVE

Attr - Bool

OPTIONAL

If TRUE, driver ignores the abort signal in case controller doesn’t converge to a feasible steering wheel angle.
Should be used when the vehicle runs at typically >60% of the vehicle limits.

Notes:

Smaller look ahead times leads to more accurate path following, but in the case of sudden path changes it may cause abrupt steering input that lead to simulation failures.
Larger look ahead times lead to more error between the desired and actual paths, however sudden path changes cause less abrupt steering inputs and generally lead to less simulation failures.
Predict forward distance = look ahead time * velocity.
Prediction algorithm involves internal integrator and hence, requires step size for the integration.  Lower step size states are predicted more accurately, however simulation becomes computationally heavy.  This step size is different from the h_max of MotionSolve.
Recommended value for decent accuracy and speed, look ahead time/50.