Chapter 8 | Vehicle Controls


Introduction

Virtual CRASH allows the user to choreograph complex and sophisticated sequences of driver inputs using the sequences menu. Vehicles can brake, steer, and accelerate at specified times as required for the simulation. In this chapter, we discuss how to use the sequences menu and walk through the various parameters one must specify to define a sequence. It is recommended to review the “INPUT DRIVER ACTIONS” section in the User’s Guide Prelude before proceeding.

 

Tire Force Models

Virtual CRASH comes with three tire force models: (1) constant, (2) linear, and (3) TMeasy [1]. By default, the constant model is used. To change the tire model, open the “axles” menu in the left-side control panel. Left-click on the axles whose wheels you wish to modify. Note that by using Ctrl+Left-click, you can select multiple axles simultaneously. Left-click on the empty box to the right of “tire model-left” to reveal the tire model pull-down menu. Then, left-click on the desired model (see below). The specified tire force model will determine the vehicle's responses to braking, acceleration, and steering inputs.

You can select different tire force models for right and left tires by deselecting the “symmetry left-right” box.

Sequences

In Virtual CRASH, driver acceleration, braking, or steering inputs (and wheel lock) are accomplished by creating entries in the “sequences” menu list accessible from the left side control panel. To add a new entry to the sequences menu, after selecting your vehicle, simply left-click on “add sequence” and specify the type using the “type” drop-down menu.

These same types of entries can also automatically be placed in the sequences list by using the interactive fast-control icons within the simulation environment (ensure your mouse cursor control is set to “Select, Move and Manipulate” [F3]). The figure below illustrates an example of left-clicking on the vehicle interposition within the simulation environment, corresponding to simulation time = 1.894 seconds. Note that with each additional sequence input, the time parameter indicates the duration of time from the start of the previous sequence input. One can also specify entries with respect to distance from the start of the previous sequence input (select “use: distance”). By moving the steering wheel fast-control icon, a new steering entry is automatically placed within the sequences list, with the time to complete the steer determined by the distance between the steering wheel icon and the interpositions icon (letter “I”). The steering angle (at the axle) is determined by the angle between the line connecting the “I” to the steering wheel with respect to the vehicle’s local x-axis. In the example below, the steering wheel icon is positioned such that the target steering angle at the axle is 9.04 degrees. It will take a steering time of 1.562 seconds to change the steering angle from the prior value to the new target steering angle. Once a sequence is automatically placed into the sequences list, the sequence entry’s parameters can be changed manually by clicking into the various input fields and using the keyboard, by using the drop-down arrow to the right of the input field and sliding the horizontal slider with the mouse or using the right/left arrow keys, or by repositioning the fast-control icons interactively.

 There are five types of entries that can be made in the sequences menu:

“reaction”: allows the user to specify a steering input and time interval over which the input is made. There are also options to lock wheels and modify tire-terrain coefficients of friction. Steering inputs, locked wheels, and modified friction are discussed in more detail below.

“uniform”: offers the same options as “reaction.”

“deceleration”: allows the user to specify a steering input over an interval and specify braking options. Braking options are discussed in more detail below.

“acceleration”: allows the user to specify a steering input over an interval and specify acceleration options. Acceleration options are discussed in more detail below.

“accel. backward”: allows the user to specify a steering input over an interval and specify acceleration options for a car in reverse. 

Note: the Adaptive Driver System (ADS) can be enabled for any sequence type (see here).

Steering Input

The steering angle is defined at the axle; it can be thought of as the angle of the wheel heading relative to the local x-axis for an axle with zero track width. This angle determines a specific turning radius, which directly depends on both this angle and the vehicle's wheelbase (see here for more information). The actual angles of the wheels are automatically adjusted to maintain the equivalent turning radius (assuming no sideslip) for any track width. Generally, the difference between the angles at each wheel (turning angle) is negligible. Steering angles can be entered either in the sequences table or interactively using the control icons within the simulation environment as shown in the previous figure. Each steering input has an associated “steering time,” which controls the time interval over which the specified steering angle is set. The intermediate steering angles are determined by simple linear interpolation between the initial angle at the current simulation time step and the final angle specified by the user. The duration of the interpolation is controlled by the “steering time” parameter. Note that negative steering angles will steer the vehicle to the driver’s right, whereas positive steering angles will steer the vehicle to the driver’s left.

Longitudinal Tire Forces

In Virtual CRASH, the user typically specifies the desired rate of acceleration or deceleration up to a maximum allowable based upon the adhesion value for the tire-terrain interface. In Virtual CRASH, the default adhesion value for each vehicle is set to 0.78. This can be modified in the “contact” menu in the left side control panel:

With no steering input, the total longitudinal tire force on the vehicle is given by:

$$ F_{x, Total} = \sum_{j=1}^{N} \tilde{F}_{x^{\prime\prime},j} = \sum_{j=1}^{N} f_{x^{\prime\prime},j} \cdot \mu_j \cdot N_{z^{\prime\prime},j} \tag{1} $$

where \(N\) is the number of wheels undergoing braking or acceleration, the "adhesion value" \(\mu_j\) is the locked wheel tire-terrain drag factor for tire \(j \),  \(N_{z^{\prime\prime},j}\)   is the normal force at the contact patch of tire \(j \), and \(f_{x'',j}\) is total braking or acceleration on tire \(j \) expressed as a fraction of the maximum drag factor and defined with respect to the tire’s local longitudinal direction \( \hat{x}^{\prime\prime}  \) [2]. \( f_{x^{\prime\prime},j} \) is bounded by:

$$ -1 \leq f_{x^{\prime\prime},j} \leq 1  \tag{2} $$

where a negative value corresponds to braking and a positive value to acceleration. Note when the sequence type (discussed below) is set to “deceleration,” the negative sign is automatically included in the calculations, so the user only inputs positive values. When both steering and braking inputs are used, a correction to the maximum allowed longitudinal and lateral forces are performed at each wheel to ensure the maximum possible frictional value is not exceeded for the tire-terrain interface. 

Braking Input

Braking can be input either by using the “sequences” menu in the left-side control panel and adjusting the acceleration or pedal position input fields, or by using the braking fast-control icons within the scene.

Note that right-clicking on an interposition will reveal the fast pop-up control window. You can also use this window to specify various simulation inputs such as sequence type and pedal position.

The user can specify the desired deceleration rate (if “type:deceleration” is specified) by simply using the acceleration slider. Again, the maximum allowed selected rate of deceleration will depend on the adhesion value specified under the “contact” menu.

Virtual CRASH will automatically calculate the upper bound limit to the user input acceleration by:

$$ 0 \leq a_{input} \leq {\sum_{j=1}^{N} \mu_j \cdot N'_{z^{\prime\prime},j} \over m} = a_{input}^{max} $$

where \(m\) is the total vehicle mass and \(a_{input}\)  is the user input acceleration value shown in the previous figure, and \(N'_{z'',j}\) is the normal force at the contact patch of tire j for a vehicle at rest in static equilibrium on a flat surface.

$$ \mu_j = \mu_{Adhesion} \tag{3}  $$

such that when the user inputs a value in the “acceleration” field, we have at each tire:

$$  f_{x^{\prime\prime},j} =  {ma_{input} \over \mu \sum_{j=1}^{N} N’_{z^{\prime\prime},j}} \tag{4} $$

Again, for \(f_{x'',j}\) and \(a_{input}^{max}\), the normal force at each wheel is estimated assuming static equilibrium conditions on a flat surface, and so automatically accounts for static weight distribution. 

Brake Lag

The “brake lag” parameter will specify the time interval over which the vehicle acceleration transitions from the acceleration at the current time-step to the user input value. During the intermediate time-steps between the current time-step and the final time-step, the acceleration is interpolated between the current initial value and final user input values.

Wheels Separately 

The user also has the option to specify each value of \( f_{x^{\prime\prime},j} \) explicitly. To do this, left-click on the box next to “wheels separately” to reveal the ratio input boxes.

Each ratio can range from 0 to 100%. Note “ratio 1” refers to the driver side front wheel, “ratio 2” to the passenger side front wheel, “ratio 3” refers to the driver side rear wheel, and “ratio 4” refers to the passenger side rear wheel. You will notice as the \( f_{x^{\prime\prime},j} \) values are specified for each wheel, the “acceleration” value is automatically updated. You’ll also notice that as you set the acceleration value, the \( f_{x^{\prime\prime},j} \) values will be automatically updated; however, in this case the \( f_{x^{\prime\prime},j} \) values will be automatically assuming each tire receives the same value. 

The wheels separately ratio values serve the same function as “pedal position” for the given sequence type but allow the user per wheel control. Recall “pedal position” specifies the percent of maximum longitudinal tire force to be applied in the vehicle’s forward direction for sequence “type: acceleration” and backward direction for “type: accel backward”, for the vehicle’s drive wheels at each time-step where the given sequence is active. For “type: deceleration”, “pedal position” specifies the percent of maximum longitudinal tire braking force to be applied at each time-step while the given sequence is active. Similar to “pedal position”, when “wheels separately” is enabled with “type: deceleration”, a given wheel’s ratio will linearly increase from the prior sequence’s value to the new target value over a time equal to the “brake lag” input. Braking via “pedal position” or “wheels separately” ratios will engage whenever the vehicle’s speed exceeds “min v”; otherwise, it will disengage (that is, the ratios go to 0). For “type: acceleration” and “type: accel backward”, the “pedal position” or “wheels separately” ratios will engage whenever the vehicle’s speed drops below “max v” otherwise the ratios go to 0.

Note, for sequence “type: deceleration”, if both “lock wheels” (see below) and “wheels separately” are enabled, for a wheel 𝑖, the ratio used at any given time-step will be the max(lock wheel ratio i𝑖, wheel separate ratio 𝑖), where the wheel separate ratio i𝑖 value is a function of time, brake lag, and min v. For sequence “type: acceleration” and “type: accel backward”, if both “lock wheels” and “wheels separately” are enabled for a given wheel i𝑖, and the lock wheel ratio i𝑖 is non-zero, then that ratio will be used to apply a braking force for that wheel.

Lock Wheels

For simulated vehicle motion, "lock wheels" can be found in the "sequences" menu and is an option for all sequence types. To select this option, left-click on the box next to “lock wheels” to reveal the lock wheel dialog boxes. When enabled, the "lock wheel ratio" input field will become available for each vehicle wheel. Ratio 1 corresponds to axle 1's driver-side wheel, ratio 2 to axle 1's passenger-side wheel, ratio 3 to axle 2's driver-side wheel, and so on. The ratio value represents the percent of maximum tire braking force to be applied at each time-step while the given sequence is active. The lock wheel effect begins on the integration time-step (no lag) where activated by the sequence's time or distance value.

Note, for sequence “type: deceleration”, if both “lock wheels” and “wheels separately” are enabled, for wheel i, the ratio used at any given time-step will be max(lock wheel ratio i, wheel separate ratio i), where the wheel separate ratio i value is a function of time, brake lag, and min v. For sequence “type: acceleration” and “type: accel backward”, if both “lock wheels” and “wheels separately” are enabled for a given wheel i, and the lock wheel ratio i is non-zero, then that ratio will be used to apply a braking force for that wheel.

Note: when “lock wheels” is enabled for a given sequence, the lock wheel ratios will remain active for all subsequent sequences. Lock wheels can be disengaged for a subsequent sequence by enabling “lock wheels” and typing 0 for all ratios.

Modify Frictions

The adhesion value used at each wheel, \( \mu_{j} \), can be individually modified by left-clicking on the box next to “modify frictions.” This will reveal the friction coefficients for each wheel.

Here “wheel friction 1” refers to the driver side front wheel, “wheel friction 2” to the passenger side front wheel, “wheel friction 3” refers to the driver side rear wheel, and “wheel friction 4” refers to the passenger side rear wheel. Note if a value of “0” is used in any for any of the tires, Virtual CRASH will automatically use the adhesion value specified for the vehicle; therefore, to simulate a tire at the no friction limit, input 0.001 as an approximation. You will notice that modifying the friction values at each tire does not update the maximum acceleration value. This is because the acceleration input value determines each \( f_{x^{\prime\prime},j} \), whereas using the “modify frictions” feature modifies \( \mu_{j} \). 

Acceleration Input

Vehicle acceleration can be input by either using the “sequences” menu in the left hand control panel, or by using the interactive fast control icons within the scene.

The user specifies the desired acceleration rate (if “type:acceleration” is specified) using the acceleration slider. Note, when you first “pull back” the deceleration/acceleration icon within the simulation environment, “type:deceleration” is automatically entered into the sequence table. You can simply modify the type to acceleration by left-clicking on the word “deceleration” in the sequences menu, then left-click on the type button, and select deceleration from the pull down menu. Again, equation (4) is used to determine \( f_{x^{\prime\prime},j} \), the maximum percentage tire force at each wheel. This applies to the drive wheels only. If the “wheels separately” option is enable, the user can explicitly define the values of \( f_{x^{\prime\prime},j} \) for each wheel, just as with deceleration discussed previously. The “lock wheels” option is also available under the type:acceleration sequence option, however, note that if a drive wheel is undergoing acceleration with positive \( f_{x^{\prime\prime},j} \), and the “lock ratio” for that wheel is increased above 0%, that wheel is automatically set to brake at the specified percentage wheel lockup value. The user also has the option to modify he coefficient of friction value used at each wheel, \(\mu_{j} \), individually. Again, just as with deceleration, you will notice that modifying the friction values at each tire does not update the maximum acceleration value for the vehicle. This is because the acceleration determines each \( f_{x^{\prime\prime},j} \), whereas using the “modify frictions” feature modifies \( \mu_{j} \).

Note, the relationship between the acceleration input specified in the sequences menu and the fraction of maximum possible longitudinal force applied at each drive wheel is described in equation (4) above. Cases where vehicles are turning, traveling up inclines or declines, or are loaded with additional cargo weight, may reduce the desired rate of acceleration below the value entered in sequences menu. The simulation engine will not know about these additional factors until the simulation starts, since Virtual CRASH is a kinetic time-forward simulator. In addition, all vehicles in the Virtual CRASH database have the drive wheels set to front by default. It is important that the user set the proper drive wheels in the simulation. Front wheel drive vehicles will typically experience slightly lower acceleration rates than the value input into the sequences menu, whereas rear wheel drive vehicles will typically experience slightly higher acceleration rates, due to dynamic weight transfer as a result of forward acceleration. When a target acceleration rate is required, it may be necessary to “tune” the acceleration input in sequences upward to counteract the increased loading due to trailer couplings, steering inputs, as well as to counteract any terrain-related effects. Rather than using the acceleration input directly, it may preferable to use either the “pedal position” input option or wheels separately to tune the percentage of maximum available longitudinal tire force at the drive wheels. One can then use the “Diagram” graphing tool to read the total resulting vehicle acceleration. The Adaptive Driver System (ADS) can be enabled for any sequence type (see here) and used to automatically determine the pedal position versus time needed to satisfy speed or acceleration requirements (if physically possible).


Notes

[1] Note the tire force models are reviewed in Appendix 4 | The Tire Force Models.

[2] See Appendix 3 | The Virtual CRASH Coordinate System for further explanation of the Virtual CRASH 3 coordinate system.  




Tags: What is a sequence, what are sequences, how to accelerate, how to brake, make car accelerate, make vehicle accelerate,  how to steer, changing drag factor, how to change drag factor, changing coefficient of friction, change coefficient of friction, simulate wheel lock, simulate lock-up, lock-up wheels, locking wheels, what is linear, what is tmeasy, acceleration, braking, steering. 


© 2024 Virtual CRASH, LLC. All Rights Reserved