PxVehicleTireForceParams

Defined in include/vehicle2/tire/PxVehicleTireParams.h

struct PxVehicleTireForceParams

Public Functions

inline PxVehicleTireForceParams transformAndScale(const PxVehicleFrame &srcFrame, const PxVehicleFrame &trgFrame, const PxVehicleScale &srcScale, const PxVehicleScale &trgScale) const
inline bool isValid() const

Public Members

PxReal latStiffX

Tire lateral stiffness is a graph of tire load that has linear behavior near zero load and flattens at large loads.

latStiffX describes the minimum normalized load (load/restLoad) that gives a flat lateral stiffness response to load.

Note

A value of 0.0 indicates that the tire lateral stiffness is independent of load and will adopt the value latStiffY for all values of tire load.

PxReal latStiffY

Tire lateral stiffness is a graph of tire load that has linear behavior near zero load and flattens at large loads.

latStiffY describes the maximum possible value of lateral stiffness that occurs when (load/restLoad) >= latStiffX.

Unit: force per lateral slip = mass * length / (time^2)

PxReal longStiff

Tire Longitudinal stiffness.

Unit: force per longitudinal slip = mass * length / (time^2)

Note

Longitudinal force can be approximated as longStiff*longitudinalSlip.

PxReal camberStiff

Tire camber stiffness.

Unit: force per radian = mass * length / (time^2)

Note

Camber force can be approximated as camberStiff*camberAngle.

PxReal frictionVsSlip[3][2]

Graph of friction vs longitudinal slip with 3 points.

Note

frictionVsSlip[0][0] is always zero.

Note

frictionVsSlip[0][1] is the friction available at zero longitudinal slip.

Note

frictionVsSlip[1][0] is the value of longitudinal slip with maximum friction.

Note

frictionVsSlip[1][1] is the maximum friction.

Note

frictionVsSlip[2][0] is the end point of the graph.

Note

frictionVsSlip[2][1] is the value of friction for slips greater than frictionVsSlip[2][0].

Note

The friction value is computed from the friction vs longitudinal slip graph using linear interpolation.

Note

The friction value computed from the friction vs longitudinal slip graph is used to scale the friction value of the road geometry.

Note

frictionVsSlip[2][0] > frictionVsSlip[1][0] > frictionVsSlip[0][0]

Note

frictionVsSlip[1][1] is typically greater than frictionVsSlip[0][1]

Note

frictionVsSlip[2][1] is typically smaller than frictionVsSlip[1][1]

Note

longitudinal slips > frictionVsSlip[2][0] use friction multiplier frictionVsSlip[2][1]

PxReal restLoad

The rest load is the load that develops on the tire when the vehicle is at rest on a flat plane.

Unit: force = mass * length / (time^2)

Note

The rest load is approximately the product of gravitational acceleration and (sprungMass + wheelMass).

PxReal loadFilter[2][2]

Tire load variation can be strongly dependent on the time-step so it is a good idea to filter it to give less jerky handling behavior.

Note

Tire load filtering is implemented by linear interpolating a graph containing just two points. The x-axis of the graph is normalized tire load, while the y-axis is the filtered normalized tire load that is to be applied during the tire force calculation.

Note

The normalized load is the force acting downwards on the tire divided by restLoad.

Note

The minimum possible normalized load is zero.

Note

There are two points on the graph: (minNormalisedLoad, minNormalisedFilteredLoad) and (maxNormalisedLoad, maxFilteredNormalisedLoad).

Note

Normalized loads less than minNormalisedLoad have filtered normalized load = minNormalisedFilteredLoad.

Note

Normalized loads greater than maxNormalisedLoad have filtered normalized load = maxFilteredNormalisedLoad.

Note

Normalized loads in-between are linearly interpolated between minNormalisedFilteredLoad and maxFilteredNormalisedLoad.

Note

The tire load applied as input to the tire force computation is the filtered normalized load multiplied by the rest load.

Note

loadFilter[0][0] is minNormalisedLoad

Note

loadFilter[0][1] is minFilteredNormalisedLoad

Note

loadFilter[1][0] is maxNormalisedLoad

Note

loadFilter[1][1] is maxFilteredNormalisedLoad