Altair Driver is a simple driver model. This is used in all MotionView and MotionSolve vehicle events. The controller can predict the future road path based on the current vehicle state, has knowledge of the vehicle dynamics, and has access to user-defined driver parameters.
Input driver parameters specify the control priorities of the driver. Vehicle parameters are used to estimate the vehicle’s future states, based on a simple linear bicycle model. The following paragraphs describe vehicle and driver parameters and their effects on the trajectory planning.
Altair Driver is implemented as a user-defined solver variable. Its value is then used in the steering system motion statement. When a vehicle event is selected from the Analysis Wizard in MotionView, the driver is automatically added to the multi-body model as are the required entities (arrays, solver variables, and so on).
The well-known bicycle model is used as a first approximation to represent a four-wheeled road vehicle.
With some approximations, the equations on motion can be easily written in the form:
Where the state vector is:
The quantities are:
• | ![]() |
• | ![]() |
• | ![]() |
• | y Lateral position of the vehicle CG on the global axes |
and
• | ![]() |
The A and B matrices can be calculated using Newton’s second law of motion and, with the assumption of small angles (sin ) they become:
Once the equations of motion have been written, the problem becomes that of classical control theory. The goal is to calculate the steering wheel angle that would cause the vehicle to follow a prescribed path as closely as possible.
This can be achieved in many different ways. One strategy could be to use optimal control theory and minimize a cost function measuring a series of weighted factors (including lateral position error, hand-wheel steering angle, and heading error) evaluated at different time steps.
With Altair Driver, MotionSolve computes the error between the predicted path and the desired path at some point in the future. The controller has full knowledge of the vehicle dynamics equations as described above and is able to compute the predicted position based on those equations at some future time.
To compute the predicted path, the equations of motion are integrated at look-ahead times by using the Runge-Kutta integration scheme. The path is obtained by spline interpolation using the GTCURV utility function in MotionSolve.
The difference between the predicted path and desired path at look-ahead is the error.
Thus:
The algorithm attempts to estimate the error by evaluating its sensitivity to the steering wheel angle. Convergence is achieved when the error is less than a certain tolerance.
The final steering wheel angle is calculated by the iterative method described below:
1. | Two appropriate steering wheel angle values are chosen and called ![]() ![]() |
2. | The corresponding errors ![]() ![]() ![]() ![]() |
3. | If the error corresponding to the steering wheel angle ![]() |
4. | If the error corresponding to the steering wheel angle ![]() ![]() ![]() ![]() |
Note that for the first integration step, is chosen as the current steering angle and
is the current steering angle plus 1 degree. Finally, if the steering wheel angle does not converge after 20 iterations, an error is thrown and the simulation is stopped, signaling the fact that the vehicle cannot perform the path following maneuver.
The final steering wheel angle is essentially used as an increment to the current steering wheel angle as shown below. When computing the new steering wheel angle value (at time t+1), the previous value of the steering wheel angle (at time t) is updated by the quantity:
Where:
• | ![]() |
• | ![]() |
Since the controller uses a simplified linear representation of the vehicle, its applicability is limited to the linear range. Another simplification done to the equations is that of small angles (yaw angle). This means that the stability and the accuracy of the controller decrease greatly for vehicles performing maneuvers outside of the linear range.
You can enter vehicle parameters and driver parameters by defining two arrays. The vehicle parameter array contains quantities that are used in the definition of the bicycle model.
These include:
• | Rear WC to CG long distance (b) |
• | Front WC to CG long distance (a) |
• | Vehicle Mass |
• | Vehicle Izz |
• | Front tire cornering stiffness (![]() |
• | Rear tire cornering stiffness (![]() |
• | Steering ratio (hand-wheel to front-wheel angle gain, ![]() |
The driver parameter array defines quantities that influence the driver behavior, as well as all the markers used to compute all the vehicle kinematic states.
These include:
• | Look ahead value [s] |
• | Feed frequency value (![]() |
• | Maximum steering wheel angle [deg] |
• | Body CM marker ID |
• | Global frame marker ID |
• | Path origin ID (usually a marker on the road coincident with the vehicle body CM) |
The maximum steering wheel angle is ultimately used as cut-off value for the computed steering wheel angle.