Anti-Squat and Anti-Dive

When a vehicle accelerates, the load is transferred to the rear thus increasing the load on the rear suspension. This results in compression of rear springs causing the vehicle to squat. During braking load transfers in the opposite direction, towards front resulting in the vehicle diving. Excessive squatting can have a destabilizing effect on the overall dynamics of the vehicle. To reduce this effect the suspension geometry can be designed to incorporate the ‘anti’ characteristics thus reducing the spring compression – called the Anti-squat geometry. Similarly, Anti-dive geometry helps in reducing the front spring compression during braking.

Calculating Anti-Squat

In the Two-Wheeler models that you can assemble using MotionView Vehicle Tools, a geometric method is used to calculate the ‘anti’ parameters.
Note: Anti-squat is calculated only for rear suspension in the models built using the Assembly Wizard.


Figure 1.

The Anti-squat for a suspension is calculated using the: swing-arm, top chain run, vehicle CG height and the tire contact patches.

Imagine a line drawn from the rear wheel center through the swing arm pivot, and another line drawn along the top chain run. These two lines intersect at some point ahead of the swing arm pivot. Join this point of intersection with the rear tire contact point using a third line. Draw a vertical line from the front tire contact point to intersect the third line at “O”. The height of this point “O” expressed as a percentage of the CG height is the anti-squat value.

Calculating Anti-Dive

The anti-dive is calculated based on the assumption that the front fork acts as a virtual swing arm. The calculations explained here are only applicable for telescopic forks.
Note: Anti-dive is calculated only for front suspension in the models built using Assembly Wizard.


Figure 2.

The telescopic fork acts like a swing arm with infinite length that extends in a direction normal to the rake angle. Imagine such a line drawn from the wheel center. Draw another line parallel to this but from the tire contact point to intersect with the first line. Drop a vertical from the vehicle CG to intersect both the virtual swing arm and the line from tire contact point.

The portion of this line below the ground/road surface as a percentage of the CG height is the anti-dive. Because this is below the road surface, the value is negative in this case.

Anti-Squat/Dive Output Requests in Two-Wheeler Models

When you build a Two-Wheeler model using Assembly Wizard, the Anti-Squat and Dive outputs are included in a separate system called Request-Suspension Anti-Squat/Dive.


Figure 3.
This system contains the output requests that you can plot after a simulation. The entities that are necessary to measure the antis are included as attachments to this system.


Figure 4.
Solver variables are created to calculate the parameters required for calculating anti-squat/dive.
SolverVariable Purpose Function
CG Height Measure the overall vehicle CG height USER(100, 2, {m_road_ref.idstring})

Args:

#1: Branch ID. Default = 100.

#2: CG coordinate to report. Default = 2 (Z-axis).

#3: Reporting frame of reference. Default = Road ref. marker.

FUNCTION: GET_CG_LOC

Caster Measure the caster angle of the fork USER(100, {steering_rj.i.idstring}, {m_measure_ref.idstring})

Args:

#1: Branch ID. Default = 100.

#2: Steering rev. jt. Marker ID.

#3: Reporting frame of reference. Default = Vehicle frame reference.

FUNCTION: GET_CASTER

Wheel base Measure the wheel base of the vehicle USER(100, {tire_frnt.att_wheel_orient_marker.idstring}, {tire_rear.att_wheel_orient_marker.idstring})

Args:

#1: Branch ID. Default = 100.

#2: Front tire force reference marker ID.

#3: Rear tire force reference marker ID.

FUNCTION: GET_WHEEL_BASE

Brake bias Input: Brake bias Front -
Driver sprocket rad. Input: Sprocket radius-front -
Driven sprocket rad. Input: Sprocket radius-rear -
Anti-dive Measure anti-dive USER(100, {sa_antidive_input.idstring})

Args:

#1: Branch ID. Default = 100.

#2: Solver array that holds the inputs required for calculating anti-dive.

FUNCTION: GET_ANTI_DIVE

Anti-squat Measure anti-squat USER(100, {sa_antisquat_input.idstring})

Args:

#1: Branch ID. Default = 100.

#2: Solver array that holds the inputs required for calculating anti-squat.

FUNCTION: GET_ANTI_SQUAT

The values of these variables are used in the following output requests.
  • CG Height
  • Caster
  • Wheel base
  • Anti-dive
  • Anti-squat