# Solid Axle Suspension - Mapped

Mapped solid axle suspension

• Library:
• Vehicle Dynamics Blockset / Suspension

## Description

The Solid Axle Suspension - Mapped block implements a mapped solid axle suspension for multiple axles with multiple tracks per axle.

The block models the suspension compliance, damping, and geometric effects as functions of the track positions and velocities, with axle-specific compliance and damping parameters. Using the track position and velocity, the block calculates the vertical track position and suspension forces on the vehicle and wheel. The block uses the Z-down (defined in SAE J670) and a solid axle coordinate system. The solid axle coordinate system, shown here, is aligned with the Z-down vehicle coordinate system, with the x-axis in the direction of forward vehicle motion.

For EachYou Can Specify

Axle

• Multiple tracks.

• Suspension parameters.

Track

• Steering angles.

The block contains energy-storing spring elements and energy-dissipating damper elements. The block also stores energy via the axle roll angular acceleration and axle center of mass vertical and lateral acceleration.

This table summarizes the block parameter settings for a vehicle with:

• Two axles.

• Two tracks per axle.

• Steering angle input for both tracks on the front axle.

ParameterSetting
Number of axles, NumAxl

`2`

Number of tracks by axle, NumTracksByAxl

`[2 2]`

Steered axle enable by axle, StrgEnByAxl

`[1 0]`

### Suspension Compliance and Damping

The block uses a lookup table that relates the vertical damping and compliance to the suspension height, suspension height rate of change, and steering angle. You can calibrate the wheel force lookup table so that steering angle changes from the nominal center position generate a force that increases the vehicle height. Specifically, the block:

Uses

To Calculate

• Longitudinal and lateral displacement and velocity of the vehicle.

• Longitudinal and lateral displacement and velocity of the track.

• Vertical wheel forces applied to the vehicle.

• Suspension forces applied to the axle center.

• Vertical displacements and velocities of the vehicle and track.

• Longitudinal, lateral, and vertical suspension forces and moments applied to the vehicle.

• Longitudinal, lateral, and vertical suspension forces and moments applied to the wheel.

To calculate the dynamics of the axle, the block implements these equations. The block neglects the effects of:

• Lateral and longitudinal translational velocity.

• Angular velocity about the vertical and lateral axes.

`$\begin{array}{l}\left[\begin{array}{c}{\stackrel{¨}{x}}_{a}\\ {\stackrel{¨}{y}}_{a}\\ {\stackrel{¨}{z}}_{a}\end{array}\right]=\frac{1}{{M}_{a}}\left[\begin{array}{c}{F}_{xa}\\ {F}_{ya}\\ {F}_{za}\end{array}\right]+\left[\begin{array}{c}{\stackrel{˙}{x}}_{a}\\ {\stackrel{˙}{y}}_{a}\\ {\stackrel{˙}{z}}_{a}\end{array}\right]×\left[\begin{array}{c}p\\ q\\ r\end{array}\right]=\frac{1}{{M}_{a}}\left[\begin{array}{c}0\\ 0\\ {F}_{za}\end{array}\right]+\left[\begin{array}{c}0\\ 0\\ {\stackrel{˙}{z}}_{a}\end{array}\right]×\left[\begin{array}{c}p\\ 0\\ 0\end{array}\right]+\left[\begin{array}{c}0\\ 0\\ g\end{array}\right]=\left[\begin{array}{c}0\\ p{\stackrel{˙}{z}}_{a}\\ \frac{{F}_{za}}{{M}_{a}}+g\end{array}\right]\\ \\ \left[\begin{array}{c}\stackrel{˙}{p}\\ \stackrel{˙}{q}\\ \stackrel{˙}{r}\end{array}\right]=\left[\left[\begin{array}{c}{M}_{x}\\ {M}_{y}\\ {M}_{z}\end{array}\right]-\left[\begin{array}{c}p\\ q\\ r\end{array}\right]×\left[\begin{array}{ccc}{I}_{xx}& 0& 0\\ 0& {I}_{yy}& 0\\ 0& 0& {I}_{zz}\end{array}\right]\left[\begin{array}{c}p\\ q\\ r\end{array}\right]\right]{\left[\begin{array}{ccc}{I}_{xx}& 0& 0\\ 0& {I}_{yy}& 0\\ 0& 0& {I}_{zz}\end{array}\right]}^{-1}\\ =\left[\left[\begin{array}{c}{M}_{x}\\ 0\\ 0\end{array}\right]-\left[\begin{array}{c}p\\ q\\ 0\end{array}\right]×\left[\begin{array}{ccc}{I}_{xx}& 0& 0\\ 0& {I}_{yy}& 0\\ 0& 0& {I}_{zz}\end{array}\right]\left[\begin{array}{c}p\\ 0\\ 0\end{array}\right]\right]{\left[\begin{array}{ccc}{I}_{xx}& 0& 0\\ 0& {I}_{yy}& 0\\ 0& 0& {I}_{zz}\end{array}\right]}^{-1}=\left[\begin{array}{c}\frac{{M}_{x}}{{I}_{xx}}\\ 0\\ 0\end{array}\right]\end{array}$`

For the forces and moments, the block uses lookup tables.

`$\begin{array}{l}{F}_{w{z}_{a,t}}=f\left({z}_{{v}_{a,t}}-{z}_{{w}_{a,t}},{\stackrel{˙}{z}}_{{v}_{a,t}}-{\stackrel{˙}{z}}_{{w}_{a,t}},{\delta }_{stee{r}_{a,t}}\right)\\ {M}_{v{z}_{a,t}}=f\left({z}_{{v}_{a,t}}-{z}_{{w}_{a,t}},{\stackrel{˙}{z}}_{{v}_{a,t}}-{\stackrel{˙}{z}}_{{w}_{a,t}},{\delta }_{stee{r}_{a,t}}\right)\end{array}$`

The suspension forces and moments applied to the vehicle are equal to the suspension forces and moments applied to the wheel.

`$\begin{array}{l}{F}_{v{x}_{a,t}}={F}_{w{x}_{a,t}}\\ {F}_{v{y}_{a,t}}={F}_{w{y}_{a,t}}\\ {F}_{v{z}_{a,t}}=-{F}_{w{z}_{a,t}}\\ \\ {M}_{v{x}_{a,t}}={M}_{w{x}_{a,t}}+{F}_{w{y}_{a,t}}\left(R{e}_{w{y}_{a,t}}+{H}_{a,t}\right)\\ {M}_{v{y}_{a,t}}={M}_{w{y}_{a,t}}+{F}_{w{x}_{a,t}}\left(R{e}_{w{x}_{a,t}}+{H}_{a,t}\right)\\ {M}_{v{z}_{a,t}}={M}_{w{z}_{a,t}}\end{array}$`

The equations use these variables.

 Fwza,t, Mwza,t Suspension force and moment applied to the wheel on axle `a`, track `t` along wheel-fixed z-axis Fwxa,t, Mwxa,t Suspension force and moment applied to the wheel on axle `a`, track `t` along wheel-fixed x-axis Fwya,t, Mwya,t Suspension force and moment applied to the wheel on axle `a`, track `t` along wheel-fixed y-axis Fvza,t, Mvza,t Suspension force and moment applied to the vehicle on axle `a`, track `t` along wheel-fixed z-axis Fvxa,t, Mvxa,t Suspension force and moment applied to the vehicle on axle `a`, track `t` along wheel-fixed x-axis Fvya,t, Mvya,t Suspension force and moment applied to the vehicle on axle `a`, track `t` along wheel-fixed y-axis Fz0a Vertical suspension spring preload force applied to the wheels on axle `a` kza Vertical spring constant applied to tracks on axle `a` mhsteera Steering angle to vertical force slope applied at wheel carrier for tracks on axle `a` δsteera,t Steering angle input for axle `a`, track `t` cza Vertical damping constant applied to tracks on axle `a` Rewa,t Effective wheel radius for axle `a`, track `t` Fzhstopa,t Vertical hardstop force at axle `a`, track `t`, along the vehicle-fixed z-axis Fzaswya,t Vertical anti-sway force at axle `a`, track `t`, along the vehicle-fixed z-axis zva,t, żva,t Vehicle displacement and velocity at axle `a`, track `t`, along the vehicle-fixed z-axis zwa,t, żwa,t Track displacement and velocity at axle `a`, track `t`, along the vehicle-fixed z-axis xva,t, ẋva,t Vehicle displacement and velocity at axle `a`, track `t`, along the vehicle-fixed z-axis xwa,t, ẋwa,t Track displacement and velocity at axle `a`, track `t`, along the vehicle-fixed z-axis yva,t, ẏva,t Vehicle displacement and velocity at axle `a`, track `t`, along the vehicle-fixed y-axis ywa,t, ẏwa,t Track displacement and velocity at axle `a`, track `t`, along the vehicle-fixed y-axis Ha,t Suspension height at axle `a`, track `t` Rewa,t Effective wheel radius at axle `a`, track `t`

### Camber, Caster, and Toe Angles

To calculate the camber, caster, and toe angles, the block uses a lookup table, Galookup, that is a function of the suspension height and steering angle.

`$\left[\begin{array}{ccc}{\xi }_{a,t}& {\eta }_{a,t}& {\zeta }_{a,t}\end{array}\right]={G}_{alookup}f\left({z}_{{w}_{a,t}}-{z}_{{v}_{a,t}},{\delta }_{stee{r}_{a,t}}\right)$`

The equations use these variables.

 ξa,t Camber angle of wheel on axle `a`, track `t` ηa,t Caster angle of wheel on axle `a`, track `t` ζa,t Toe angle of wheel on axle `a`, track `t` δsteera,t Steering angle input for axle `a`, track `t` zva,t Vehicle displacement at axle `a`, track `t`, along vehicle-fixed z-axis zwa,t Wheel displacement at axle `a`, track `t`, along vehicle-fixed z-axis

### Steering Angles

Optionally, you can input steering angles for the tracks. To calculate the steering angles for the wheels, the block offsets the input steering angles as a function of the suspension height. For the calculation, the block uses a lookup table, Galookup, that is a function of the suspension position and steering angle.

`${\delta }_{whlstee{r}_{a,t}}={\delta }_{stee{r}_{a,t}}+{G}_{alookup}f\left({z}_{{w}_{a,t}}-{z}_{{v}_{a,t}},{\delta }_{stee{r}_{a,t}}\right)$`

The equation uses these variables.

 δwhlsteera,t Wheel steering angle for axle `a`, track `t` δsteera,t Steering angle input for axle `a`, track `t` zva,t Vehicle displacement at axle `a`, track `t`, along the vehicle-fixed z-axis zwa,t Wheel displacement at axle `a`, track `t`, along the vehicle-fixed z-axis

### Power and Energy

The block calculates these suspension characteristics for each axle, `a`, track, `t`.

CalculationEquation

Dissipated power, Psuspa,t

`${P}_{sus{p}_{a,t}}={F}_{wzlooku{p}_{a}}\left({\stackrel{˙}{z}}_{{v}_{a,t}}-{\stackrel{˙}{z}}_{{w}_{a,t}},{\stackrel{˙}{z}}_{{v}_{a,t}}-{\stackrel{˙}{z}}_{{w}_{a,t}},{\delta }_{stee{r}_{a,t}}\right)$`

Absorbed energy, Esuspa,t

`${E}_{sus{p}_{a,t}}={F}_{wzlooku{p}_{a}}\left({\stackrel{˙}{z}}_{{v}_{a,t}}-{\stackrel{˙}{z}}_{{w}_{a,t}},{\stackrel{˙}{z}}_{{v}_{a,t}}-{\stackrel{˙}{z}}_{{w}_{a,t}},{\delta }_{stee{r}_{a,t}}\right)$`

Suspension height, Ha,t

`${H}_{a,t}=-\left({z}_{{v}_{a,t}}-{z}_{{w}_{a,t}}-\mathrm{median}\left(f_susp_dz_bp\right)\right)$`

Distance from wheel carrier center to tire/road interface

`${z}_{wt{r}_{a,t}}=R{e}_{{w}_{a,t}}+{H}_{a,t}$`

The equations use these variables.

 mhsteera Steering angle to vertical force slope applied at wheel carrier for tracks on axle `a` δsteera,t Steering angle input for axle `a`, track `t` Rewa,t Axle `a`, track `t` effective wheel radius from wheel carrier center to tire/road interface f_susp_dz_bp Vertical axis suspension height breakpoints zwtra,t Distance from wheel carrier center to tire/road interface, along the vehicle-fixed z-axis zva,t, żva,t Vehicle displacement and velocity at axle `a`, track `t`, along the vehicle-fixed z-axis zwa,t, żwa,t Track displacement and velocity at axle `a`, track `t`, along the vehicle-fixed z-axis

## Ports

### Input

expand all

Track displacement, zw, along wheel-fixed z-axis, in m. Array dimensions are `1` by the total number of tracks on the vehicle.

For example, for a two-axle vehicle with two tracks per axle, the `WhlPz`:

• Signal array dimensions are `[1x4]`.

• Array dimensions are axle by track.

`$\mathrm{WhlPz}={z}_{w}=\left[\begin{array}{cccc}{z}_{{w}_{1,1}}& {z}_{{w}_{1,2}}& {z}_{{w}_{2,1}}& {z}_{{w}_{2,2}}\end{array}\right]$`
Array ElementAxleTrack
`WhlPz(1,1)``1``1`
`WhlPz(1,2)``1``2`
`WhlPz(1,3)``2``1`
`WhlPz(1,4)``2``2`

Effective wheel radius, Rew, in m. Array dimensions are `1` by the total number of tracks on the vehicle.

For example, for a two-axle vehicle with two tracks per axle, the `WhlRe`:

• Signal array dimensions are `[1x4]`.

• Array dimensions are axle by track.

`$\mathrm{Whl}\mathrm{Re}=R{e}_{w}=\left[\begin{array}{cccc}R{e}_{{w}_{1,1}}& R{e}_{{w}_{1,2}}& R{e}_{{w}_{2,1}}& R{e}_{{w}_{2,2}}\end{array}\right]$`
Array ElementAxleTrack
`WhlRe(1,1)``1``1`
`WhlRe(1,2)``1``2`
`WhlRe(1,3)``2``1`
`WhlRe(1,4)``2``2`

Track velocity, żw, along wheel-fixed z-axis, in m. Array dimensions are `1` by the total number of tracks on the vehicle.

For example, for a two-axle vehicle with two tracks per axle, the `WhlVz`:

• Signal array dimensions are `[1x4]`.

• Array dimensions are axle by track.

`$\mathrm{WhlVz}={\stackrel{˙}{z}}_{w}=\left[\begin{array}{cccc}{\stackrel{˙}{z}}_{{w}_{1,1}}& {\stackrel{˙}{z}}_{{w}_{1,2}}& {\stackrel{˙}{z}}_{{w}_{2,1}}& {\stackrel{˙}{z}}_{{w}_{2,2}}\end{array}\right]$`
Array ElementAxleTrack
`WhlVz(1,1)``1``1`
`WhlVz(1,2)``1``2`
`WhlVz(1,3)``2``1`
`WhlVz(1,4)``2``2`

Longitudinal wheel force applied to vehicle, Fwx, along the vehicle-fixed x-axis. Array dimensions are `1` by the total number of tracks on the vehicle.

For example, for a two-axle vehicle with two tracks per axle, the `WhlFx`:

• Signal array dimensions are `[1x4]`.

• Array dimensions are axle by track.

`$\mathrm{WhlFx}={F}_{wx}=\left[\begin{array}{cccc}{F}_{w{x}_{1,1}}& {F}_{w{x}_{1,2}}& {F}_{w{x}_{2,1}}& {F}_{w{x}_{2,2}}\end{array}\right]$`
Array ElementAxleTrack
`WhlFx(1,1)``1``1`
`WhlFx(1,2)``1``2`
`WhlFx(1,3)``2``1`
`WhlFx(1,4)``2``2`

Lateral wheel force applied to vehicle, Fwy, along the vehicle-fixed y-axis. Array dimensions are `1` by the total number of tracks on the vehicle.

For example, for a two-axle vehicle with two tracks per axle, the `WhlFy`:

• Signal array dimensions are `[1x4]`.

• Array dimensions are axle by track.

`$\mathrm{WhlFy}={F}_{wy}=\left[\begin{array}{cccc}{F}_{w{y}_{1,1}}& {F}_{w{y}_{1,2}}& {F}_{w{y}_{2,1}}& {F}_{w{y}_{2,2}}\end{array}\right]$`

Array ElementAxleTrack
`WhlFy(1,1)``1``1`
`WhlFy(1,2)``1``2`
`WhlFy(1.3)``2``1`
`WhlFy(1,4)``2``2`

Longitudinal, lateral, and vertical suspension moments at axle `a`, track `t`, applied to the wheel at the axle wheel carrier reference coordinate, in N·m. Array dimensions are `3` by the total number of tracks on the vehicle.

• `WhlM(1,...)` — Suspension moment applied to the wheel about the vehicle-fixed x-axis (longitudinal)

• `WhlM(2,...)` — Suspension moment applied to the wheel about the vehicle-fixed y-axis (lateral)

• `WhlM(3,...)` — Suspension moment applied to the wheel about the vehicle-fixed z-axis (vertical)

For example, for a two-axle vehicle with two tracks per axle, the `WhlM`:

• Signal dimensions are `[3x4]`.

• Signal contains suspension moments applied to four wheels according to their axle and track locations.

`$\mathrm{WhlM}={M}_{w}=\left[\begin{array}{cccc}{M}_{w{x}_{1,1}}& {M}_{w{x}_{1,2}}& {M}_{w{x}_{2,1}}& {M}_{w{x}_{2,2}}\\ {M}_{w{y}_{1,1}}& {M}_{w{y}_{1,2}}& {M}_{w{y}_{2,1}}& {M}_{w{y}_{2,2}}\\ {M}_{w{z}_{1,1}}& {M}_{w{z}_{1,2}}& {M}_{w{z}_{2,1}}& {M}_{w{z}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackMoment Axis
`WhlM(1,1)``1``1`Vehicle-fixed x-axis (longitudinal)
`WhlM(1,2)``1``2`
`WhlM(1,3)``2``1`
`WhlM(1,4)``2``2`
`WhlM(2,1)``1``1`Vehicle-fixed y-axis (lateral)
`WhlM(2,2)``1``2`
`WhlM(2,3)``2``1`
`WhlM(2,4)``2``2`
`WhlM(3,1)``1``1`Vehicle-fixed z-axis (vertical)
`WhlM(3,2)``1``2`
`WhlM(3,3)``2``1`
`WhlM(3,4)``2``2`

Vehicle displacement from axle `a`, track `t` along vehicle-fixed coordinate system, in m. Array dimensions are `3` by the total number of tracks on the vehicle.

• `VehP(1,...)` — Vehicle displacement from track, xv, along the vehicle-fixed x-axis

• `VehP(2,...)` — Vehicle displacement from track, yv, along the vehicle-fixed y-axis

• `VehP(3,...)` — Vehicle displacement from track, zv, along the vehicle-fixed z-axis

For example, for a two-axle vehicle with two tracks per axle, the `VehP`:

• Signal dimensions are `[3x4]`.

• Signal contains four track displacements according to their axle and track locations.

`$\mathrm{VehP}=\left[\begin{array}{c}{x}_{v}\\ {y}_{v}\\ {z}_{v}\end{array}\right]=\left[\begin{array}{cccc}{x}_{v}{}_{{}_{1,1}}& {x}_{v}{}_{{}_{1,2}}& {x}_{v}{}_{{}_{2,1}}& {x}_{v}{}_{{}_{2,2}}\\ {y}_{v}{}_{{}_{1,1}}& {y}_{v}{}_{{}_{1,2}}& {y}_{v}{}_{{}_{2,1}}& {y}_{v}{}_{{}_{2,2}}\\ {z}_{v}{}_{{}_{1,1}}& {z}_{v}{}_{{}_{1,2}}& {z}_{v}{}_{{}_{2,1}}& {z}_{v}{}_{{}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackAxis
`VehP(1,1)``1``1`Vehicle-fixed x-axis
`VehP(1,2)``1``2`
`VehP(1,3)``2``1`
`VehP(1,4)``2``2`
`VehP(2,1)``1``1`Vehicle-fixed y-axis
`VehP(2,2)``1``2`
`VehP(2,3)``2``1`
`VehP(2,4)``2``2`
`VehP(3,1)``1``1`Vehicle-fixed z-axis
`VehP(3,2)``1``2`
`VehP(3,3)``2``1`
`VehP(3,4)``2``2`

Vehicle velocity at axle `a`, track `t` along vehicle-fixed coordinate system, in m. Input array dimensions are `3` by `a`*`t`.

• `VehV(1,...)` — Vehicle velocity at track, xv, along the vehicle-fixed x-axis

• `VehV(2,...)` — Vehicle velocity at track, yv, along the vehicle-fixed y-axis

• `VehV(3,...)` — Vehicle velocity at track, zv, along the vehicle-fixed z-axis

For example, for a two-axle vehicle with two tracks per axle, the `VehV`:

• Signal dimensions are `[3x4]`.

• Signal contains `4` track velocities according to their axle and track locations.

`$\mathrm{VehV}=\left[\begin{array}{c}{\stackrel{˙}{x}}_{v}\\ {\stackrel{˙}{y}}_{v}\\ {\stackrel{˙}{z}}_{v}\end{array}\right]=\left[\begin{array}{cccc}{\stackrel{˙}{x}}_{{v}_{1,1}}& {\stackrel{˙}{x}}_{{v}_{1,2}}& {\stackrel{˙}{x}}_{{v}_{2,1}}& {\stackrel{˙}{x}}_{{v}_{2,2}}\\ {\stackrel{˙}{y}}_{{v}_{1,1}}& {\stackrel{˙}{y}}_{{v}_{1,2}}& {\stackrel{˙}{y}}_{{v}_{2,1}}& {\stackrel{˙}{y}}_{{v}_{2,2}}\\ {\stackrel{˙}{z}}_{{v}_{1,1}}& {\stackrel{˙}{z}}_{{v}_{1,2}}& {\stackrel{˙}{z}}_{{v}_{2,1}}& {\stackrel{˙}{z}}_{{v}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackAxis
`VehV(1,1)``1``1`Vehicle-fixed x-axis
`VehV(1,2)``1``2`
`VehV(1,3)``2``1`
`VehV(1,4)``2``2`
`VehV(2,1)``1``1`Vehicle-fixed y-axis
`VehV(2,2)``1``2`
`VehV(2,3)``2``1`
`VehV(2,4)``2``2`
`VehV(3,1)``1``1`Vehicle-fixed z-axis
`VehV(3,2)``1``2`
`VehV(3,3)``2``1`
`VehV(3,4)``2``2`

Optional steering angle for each wheel, δ. Input array dimensions are `1` by the number of steered tracks.

For example, for a two-axle vehicle with two tracks per axle, you can input steering angles for both wheels on the first axle.

• To create the `StrgAng` port, set Steered axle enable by axle, StrgEnByAxl to `[1 0]`. The input signal array dimensions are `[1x2]`.

• The `StrgAng` signal contains two steering angles according to their axle and track locations.

`$\mathrm{StrgAng}={\delta }_{steer}=\left[\begin{array}{cc}{\delta }_{stee{r}_{1,1}}& {\delta }_{stee{r}_{1,2}}\end{array}\right]$`
Array ElementAxleTrack
`StrgAng(1,1)``1``1`
`StrgAng(1,2)``1``2`

#### Dependencies

Setting an element of the Steered axle enable by axle, StrgEnByAxl vector to 1 creates:

• Input port `StrgAng`.

• Parameters:

• Toe angle vs steering angle slope, ToeStrgSlp

• Caster angle vs steering angle slope, CasterStrgSlp

• Camber angle vs steering angle slope, CamberStrgSlp

• Suspension height vs steering angle slope, StrgHgtSlp

### Output

expand all

Bus signal containing block values. The signals are arrays that depend on the track location.

For example, here are the indices for a two-axle, two-track vehicle. The total number of tracks is four.

• 1D array signal (1-by-4)

Array ElementAxleTrack
`(1,1)``1``1`
`(1,2)``1``2`
`(1,3)``2``1`
`(1,4)``2``2`

• 3D array signal (3-by-4)

Array ElementAxleTrack
`(1,1)``1``1`
`(1,2)``1``2`
`(1,3)``2``1`
`(1,4)``2``2`
`(2,1)``1``1`
`(2,2)``1``2`
`(2,3)``2``1`
`(2,4)``2``2`
`(3,1)``1``1`
`(3,2)``1``2`
`(3,3)``2``1`
`(3,4)``2``2`

SignalDescriptionArray SignalVariableUnits
`Camber`

Wheel angles according to the axle.

1D

`$\mathrm{WhlAng}\left[1,...\right]=\xi =\left[{\xi }_{a,t}\right]$`

`Caster`
`$\mathrm{WhlAng}\left[2,...\right]=\eta =\left[{\eta }_{a,t}\right]$`
`Toe`
`$\mathrm{WhlAng}\left[3,...\right]=\zeta =\left[{\zeta }_{a,t}\right]$`
`Height`

Suspension height

1D

H

m

`Power`

Suspension power dissipation

1D

Psusp

W

`Energy`

Suspension absorbed energy

1D

Esusp

J

`VehF`

Suspension forces applied to the vehicle

3D

For a two-axle, two tracks per axle vehicle:

`$\mathrm{VehF}={F}_{v}=\left[\begin{array}{cccc}{F}_{v}{}_{{x}_{1,1}}& {F}_{v}{}_{{x}_{1,2}}& {F}_{v}{}_{{x}_{2,1}}& {F}_{v}{}_{{x}_{2,2}}\\ {F}_{v}{}_{{y}_{1,1}}& {F}_{v}{}_{{y}_{1,2}}& {F}_{v}{}_{{y}_{2,1}}& {F}_{v}{}_{{y}_{2,2}}\\ {F}_{v}{}_{{z}_{1,1}}& {F}_{v}{}_{{z}_{1,2}}& {F}_{v}{}_{{z}_{2,1}}& {F}_{v}{}_{{z}_{2,2}}\end{array}\right]$`

N

`VehM`

Suspension moments applied to vehicle

3D

For a two-axle, two tracks per axle vehicle:

`$\mathrm{VehM}={M}_{v}=\left[\begin{array}{cccc}{M}_{v{x}_{1,1}}& {M}_{v{x}_{1,2}}& {M}_{v{x}_{2,1}}& {M}_{v{x}_{2,2}}\\ {M}_{v{y}_{1,1}}& {M}_{v{y}_{1,2}}& {M}_{v{y}_{2,1}}& {M}_{v{y}_{2,2}}\\ {M}_{v{z}_{1,1}}& {M}_{v{z}_{1,2}}& {M}_{v{z}_{2,1}}& {M}_{v{z}_{2,2}}\end{array}\right]$`

N·m

`WhlF`

Suspension force applied to wheel

3D

For a two-axle, two tracks per axle vehicle:

`$\mathrm{WhlF}={F}_{w}=\left[\begin{array}{cccc}{F}_{w}{}_{{x}_{1,1}}& {F}_{w}{}_{{x}_{1,2}}& {F}_{w}{}_{{x}_{2,1}}& {F}_{w}{}_{{x}_{2,2}}\\ {F}_{w}{}_{{y}_{1,1}}& {F}_{w}{}_{{y}_{1,2}}& {F}_{w}{}_{{y}_{2,1}}& {F}_{w}{}_{{y}_{2,2}}\\ {F}_{w}{}_{{z}_{1,1}}& {F}_{w}{}_{{z}_{1,2}}& {F}_{w}{}_{{z}_{2,1}}& {F}_{w}{}_{{z}_{2,2}}\end{array}\right]$`

N

`WhlP`

Track displacement

3D

For a two-axle, two tracks per axle vehicle:

`$\mathrm{WhlP}=\left[\begin{array}{c}{x}_{w}\\ {y}_{w}\\ {z}_{w}\end{array}\right]=\left[\begin{array}{cccc}{x}_{w}{}_{{}_{1,1}}& {x}_{w}{}_{{}_{1,2}}& {x}_{w}{}_{{}_{2,1}}& {x}_{{w}_{2,2}}\\ {y}_{w}{}_{{}_{1,1}}& {y}_{w}{}_{{}_{1,2}}& {y}_{w}{}_{{}_{2,1}}& {y}_{w}{}_{{y}_{2,2}}\\ {z}_{wtr}{}_{{}_{1,1}}& {z}_{wtr}{}_{{}_{1,2}}& {z}_{wtr}{}_{{}_{2,1}}& {z}_{wt{r}_{2,2}}\end{array}\right]$`

m

`WhlV`

Track velocity

3D

For a two-axle, two tracks per axle vehicle:

`$\mathrm{WhlV}=\left[\begin{array}{c}{\stackrel{˙}{x}}_{w}\\ {\stackrel{˙}{y}}_{w}\\ {\stackrel{˙}{z}}_{w}\end{array}\right]=\left[\begin{array}{cccc}{\stackrel{˙}{x}}_{{w}_{1,1}}& {\stackrel{˙}{x}}_{{w}_{1,2}}& {\stackrel{˙}{x}}_{{w}_{2,1}}& {\stackrel{˙}{x}}_{{w}_{2,2}}\\ {\stackrel{˙}{y}}_{{w}_{{}_{1,1}}}& {\stackrel{˙}{y}}_{{w}_{1,2}}& {\stackrel{˙}{y}}_{{w}_{2,1}}& {\stackrel{˙}{y}}_{{w}_{2,2}}\\ {\stackrel{˙}{z}}_{{w}_{{}_{1,1}}}& {\stackrel{˙}{z}}_{{w}_{1,2}}& {\stackrel{˙}{z}}_{{w}_{2,1}}& {\stackrel{˙}{z}}_{{w}_{2,2}}\end{array}\right]$`

m/s

`WhlAng`

Wheel camber, caster, toe angles

3D

For a two-axle, two tracks per axle vehicle:

`$\mathrm{WhlAng}=\left[\begin{array}{c}\xi \\ \eta \\ \zeta \end{array}\right]=\left[\begin{array}{cccc}{\xi }_{1,1}& {\xi }_{1,2}& {\xi }_{2,1}& {\xi }_{2,2}\\ {\eta }_{1,1}& {\eta }_{1,2}& {\eta }_{2,1}& {\eta }_{2,2}\\ {\zeta }_{1,1}& {\zeta }_{1,2}& {\zeta }_{2,1}& {\zeta }_{2,2}\end{array}\right]$`

Longitudinal, lateral, and vertical suspension force at axle `a`, track `t`, applied to the vehicle at the suspension connection point, in N. Array dimensions are `3` by the total number of tracks on the vehicle.

• `VehF(1,...)` — Suspension force applied to vehicle along the vehicle-fixed x-axis (longitudinal)

• `VehF(2,...)` — Suspension force applied to vehicle along the vehicle-fixed y-axis (lateral)

• `VehF(3,...)` — Suspension force applied to vehicle along the vehicle-fixed z-axis (vertical)

For example, for a two-axle vehicle with two tracks per axle, the `VehF`:

• Signal dimensions are `[3x4]`.

• Signal contains suspension forces applied to the vehicle according to the axle and track locations.

`$\mathrm{VehF}={F}_{v}=\left[\begin{array}{cccc}{F}_{v}{}_{{x}_{1,1}}& {F}_{v}{}_{{x}_{1,2}}& {F}_{v}{}_{{x}_{2,1}}& {F}_{v}{}_{{x}_{2,2}}\\ {F}_{v}{}_{{y}_{1,1}}& {F}_{v}{}_{{y}_{1,2}}& {F}_{v}{}_{{y}_{2,1}}& {F}_{v}{}_{{y}_{2,2}}\\ {F}_{v}{}_{{z}_{1,1}}& {F}_{v}{}_{{z}_{1,2}}& {F}_{v}{}_{{z}_{2,1}}& {F}_{v}{}_{{z}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackForce Axis
`VehF(1,1)``1``1`Vehicle-fixed x-axis (longitudinal)
`VehF(1,2)``1``2`
`VehF(1,3)``2``1`
`VehF(1,4)``2``2`
`VehF(2,1)``1``1`Vehicle-fixed y-axis (lateral)
`VehF(2,2)``1``2`
`VehF(2,3)``2``1`
`VehF(2,4)``2``2`
`VehF(3,1)``1``1`Vehicle-fixed z-axis (vertical)
`VehF(3,2)``1``2`
`VehF(3,3)``2``1`
`VehF(3,4)``2``2`

Longitudinal, lateral, and vertical suspension moment at axle `a`, track `t`, applied to the vehicle at the suspension connection point, in N·m. Array dimensions are `3` by the total number of tracks on the vehicle.

• `VehM(1,...)` — Suspension moment applied to the vehicle about the vehicle-fixed x-axis (longitudinal)

• `VehM(2,...)` — Suspension moment applied to the vehicle about the vehicle-fixed y-axis (lateral)

• `VehM(3,...)` — Suspension moment applied to the vehicle about the vehicle-fixed z-axis (vertical)

For example, for a two-axle vehicle with two tracks per axle, the `VehM`:

• Signal dimensions are `[3x4]`.

• Signal contains suspension moments applied to vehicle according to the axle and track locations.

`$\mathrm{VehM}={M}_{v}=\left[\begin{array}{cccc}{M}_{v{x}_{1,1}}& {M}_{v{x}_{1,2}}& {M}_{v{x}_{2,1}}& {M}_{v{x}_{2,2}}\\ {M}_{v{y}_{1,1}}& {M}_{v{y}_{1,2}}& {M}_{v{y}_{2,1}}& {M}_{v{y}_{2,2}}\\ {M}_{v{z}_{1,1}}& {M}_{v{z}_{1,2}}& {M}_{v{z}_{2,1}}& {M}_{v{z}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackMoment Axis
`VehM(1,1)``1``1`Vehicle-fixed x-axis (longitudinal)
`VehM(1,2)``1``2`
`VehM(1,3)``2``1`
`VehM(1,4)``2``2`
`VehM(2,1)``1``1`Vehicle-fixed y-axis (lateral)
`VehM(2,2)``1``2`
`VehM(2,3)``2``1`
`VehM(2,4)``2``2`
`VehM(3,1)``1``1`Vehicle-fixed z-axis (vertical)
`VehM(3,2)``1``2`
`VehM(3,3)``2``1`
`VehM(3,4)``2``2`

Longitudinal, lateral, and vertical suspension forces at axle `a`, track `t`, applied to the wheel at the axle wheel carrier reference coordinate, in N. Array dimensions are `3` by the total number of tracks on the vehicle.

• `WhlF(1,...)` — Suspension force on wheel along the vehicle-fixed x-axis (longitudinal)

• `WhlF(2,...)` — Suspension force on wheel along the vehicle-fixed y-axis (lateral)

• `WhlF(3,...)` — Suspension force on wheel along the vehicle-fixed z-axis (vertical)

For example, for a two-axle vehicle with two tracks per axle, the `WhlF`:

• Signal dimensions are `[3x4]`.

• Signal contains wheel forces applied to the vehicle according to the axle and track locations.

`$\mathrm{WhlF}={F}_{w}=\left[\begin{array}{cccc}{F}_{w}{}_{{x}_{1,1}}& {F}_{w}{}_{{x}_{1,2}}& {F}_{w}{}_{{x}_{2,1}}& {F}_{w}{}_{{x}_{2,2}}\\ {F}_{w}{}_{{y}_{1,1}}& {F}_{w}{}_{{y}_{1,2}}& {F}_{w}{}_{{y}_{2,1}}& {F}_{w}{}_{{y}_{2,2}}\\ {F}_{w}{}_{{z}_{1,1}}& {F}_{w}{}_{{z}_{1,2}}& {F}_{w}{}_{{z}_{2,1}}& {F}_{w}{}_{{z}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackForce Axis
`WhlF(1,1)``1``1`Vehicle-fixed x-axis (longitudinal)
`WhlF(1,2)``1``2`
`WhlF(1,3)``2``1`
`WhlF(1,4)``2``2`
`WhlF(2,1)``1``1`Vehicle-fixed y-axis (lateral)
`WhlF(2,2)``1``2`
`WhlF(2,3)``2``1`
`WhlF(2,4)``2``2`
`WhlF(3,1)``1``1`Vehicle-fixed z-axis (vertical)
`WhlF(3,2)``1``2`
`WhlF(3,3)``2``1`
`WhlF(3,4)``2``2`

Longitudinal, lateral, and vertical track velocity at axle `a`, track `t`, in m/s. Array dimensions are `3` by the total number of tracks on the vehicle.

• `WhlV(1,...)` — Track velocity along the vehicle-fixed x-axis (longitudinal)

• `WhlV(2,...)` — Track velocity along the vehicle-fixed y-axis (lateral)

• `WhlV(3,...)` — Track velocity along the vehicle-fixed z-axis (vertical)

For example, for a two-axle vehicle with two tracks per axle, the `WhlV`:

• Signal dimensions are `[3x4]`.

• Signal contains wheel forces applied to the vehicle according to the axle and track locations.

`$\mathrm{WhlV}=\left[\begin{array}{c}{\stackrel{˙}{x}}_{w}\\ {\stackrel{˙}{y}}_{w}\\ {\stackrel{˙}{z}}_{w}\end{array}\right]=\left[\begin{array}{cccc}{\stackrel{˙}{x}}_{{w}_{1,1}}& {\stackrel{˙}{x}}_{{w}_{1,2}}& {\stackrel{˙}{x}}_{{w}_{2,1}}& {\stackrel{˙}{x}}_{{w}_{2,2}}\\ {\stackrel{˙}{y}}_{{w}_{{}_{1,1}}}& {\stackrel{˙}{y}}_{{w}_{1,2}}& {\stackrel{˙}{y}}_{{w}_{2,1}}& {\stackrel{˙}{y}}_{{w}_{2,2}}\\ {\stackrel{˙}{z}}_{{w}_{{}_{1,1}}}& {\stackrel{˙}{z}}_{{w}_{1,2}}& {\stackrel{˙}{z}}_{{w}_{2,1}}& {\stackrel{˙}{z}}_{{w}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackForce Axis
`WhlV(1,1)``1``1`Vehicle-fixed x-axis (longitudinal)
`WhlV(1,2)``1``2`
`WhlV(1,3)``2``1`
`WhlV(1,4)``2``2`
`WhlV(2,1)``1``1`Vehicle-fixed y-axis (lateral)
`WhlV(2,2)``1``2`
`WhlV(2,3)``2``1`
`WhlV(2,4)``2``2`
`WhlV(3,1)``1``1`Vehicle-fixed z-axis (vertical)
`WhlV(3,2)``1``2`
`WhlV(3,3)``2``1`
`WhlV(3,4)``2``2`

Camber, caster, and toe angles at axle `a`, track `t`, in rad. Array dimensions are `3` by the total number of tracks on the vehicle.

• `WhlAng(1,...)` — Camber angle

• `WhlAng(2,...)` — Caster angle

• `WhlAng(3,...)` — Toe angle

For example, for a two-axle vehicle with two tracks per axle, the `WhlAng`:

• Signal dimensions are `[3x4]`.

• Signal contains wheel angles according to the axle and track locations.

`$\mathrm{WhlAng}=\left[\begin{array}{c}\xi \\ \eta \\ \zeta \end{array}\right]=\left[\begin{array}{cccc}{\xi }_{1,1}& {\xi }_{1,2}& {\xi }_{2,1}& {\xi }_{2,2}\\ {\eta }_{1,1}& {\eta }_{1,2}& {\eta }_{2,1}& {\eta }_{2,2}\\ {\zeta }_{1,1}& {\zeta }_{1,2}& {\zeta }_{2,1}& {\zeta }_{2,2}\end{array}\right]$`

Array ElementAxleTrackAngle
`WhlAng(1,1)``1``1`

Camber

`WhlAng(1,2)``1``2`
`WhlAng(1,3)``2``1`
`WhlAng(1,4)``2``2`
`WhlAng(2,1)``1``1`

Caster

`WhlAng(2,2)``1``2`
`WhlAng(2,3)``2``1`
`WhlAng(2,4)``2``2`
`WhlAng(3,1)``1``1`

Toe

`WhlF(3,2)``1``2`
`WhlF(3,3)``2``1`
`WhlF(3,4)``2``2`

## Parameters

expand all

### Axles

Number of axles, Na, dimensionless.

Number of tracks per axle, Nta, dimensionless. Vector is `1` by the number of vehicle axles, Na. For example, `[1,2]` represents one track on axle 1 and two tracks on axle 2.

Boolean vector that enables axle steering, Ensteer, dimensionless. Vector is `1` by the number of vehicle axles, Na. For example:

• `[1 0]`—For a two-axle vehicle, enables axle 1 steering and disables axle 2 steering

• `[1 1]`—For a two-axle vehicle, enables axle 1 and axle 2 steering

#### Dependencies

Setting an element of the Steered axle enable by axle, StrgEnByAxl vector to 1:

• Creates input port `StrgAng`.

• Creates these parameters

• Toe angle vs steering angle slope, ToeStrgSlp

• Caster angle vs steering angle slope, CasterStrgSlp

• Camber angle vs steering angle slope, CamberStrgSlp

• Suspension height vs steering angle slope, StrgHgtSlp

For example, for a two-axle vehicle with two tracks per axle, you can input steering angles for both wheels on the first axle.

• To create the `StrgAng` port, set Steered axle enable by axle, StrgEnByAxl to `[1 0]`. The input signal array dimensions are `[1x2]`.

• The `StrgAng` signal contains two steering angles according to their axle and track locations.

`$\mathrm{StrgAng}={\delta }_{steer}=\left[\begin{array}{cc}{\delta }_{stee{r}_{1,1}}& {\delta }_{stee{r}_{1,2}}\end{array}\right]$`
Array ElementAxleTrack
`StrgAng(1,1)``1``1`
`StrgAng(1,2)``1``2`

Axle and wheels lumped principal moments of inertia about longitudinal axis, AxleIxx a, in kg*m^2.

Vector is `1` by the number of vehicle axles, Na. If you provide a scalar value, the block uses that value for all axles.

Axle and wheels lumped mass, a, in kg.

Vector is `1` by the number of vehicle axles, Na. If you provide a scalar value, the block uses that value for all axles.

Track hardpoint coordinates, Tct, along the solid axle x, y, and z-axes, in m.

For example, for a two-axle vehicle with two tracks per axle, the `TrackCoords` array:

• Dimensions are `[3x4]`.

• Contains four track hardpoint coordinates according to their axle and track locations.

`$T{c}_{t}=\left[\begin{array}{cccc}{x}_{{w}_{1,1}}& {x}_{{w}_{1,2}}& {x}_{{w}_{2,1}}& {x}_{{w}_{2,2}}\\ {y}_{{w}_{1,1}}& {y}_{{w}_{1,2}}& {y}_{{w}_{2,1}}& {y}_{{w}_{2,2}}\\ {z}_{{w}_{1,1}}& {z}_{{w}_{1,2}}& {z}_{{w}_{2,1}}& {z}_{{w}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackAxis
`TrackCoords(1,1)``1``1`Solid axle x-axis
`TrackCoords(1,2)``1``2`
`TrackCoords(1,3)``2``1`
`TrackCoords(1,4)``2``2`
`TrackCoords(2,1)``1``1`Solid axle y-axis
`TrackCoords(2,2)``1``2`
`TrackCoords(2,3)``2``1`
`TrackCoords(2,4)``2``2`
`TrackCoords(3,1)``1``1`Solid axle z-axis
`TrackCoords(3,2)``1``2`
`TrackCoords(3,3)``2``1`
`TrackCoords(3,4)``2``2`

Suspension hardpoint coordinates, Sct, along the solid axle x-, y-, and z-axes, in m.

For example, for a two-axle vehicle with two tracks per axle, the `SuspCoords` array:

• Dimensions are `[3x4]`.

• Contains four track hardpoint coordinates according to their axle and track locations.

`$S{c}_{t}=\left[\begin{array}{cccc}{x}_{{s}_{1,1}}& {x}_{{s}_{1,2}}& {x}_{{s}_{2,1}}& {x}_{{s}_{2,2}}\\ {y}_{{s}_{1,1}}& {y}_{{s}_{1,2}}& {y}_{{s}_{2,1}}& {y}_{{s}_{2,2}}\\ {z}_{{s}_{1,1}}& {z}_{{s}_{1,2}}& {z}_{{s}_{2,1}}& {z}_{{s}_{2,2}}\end{array}\right]$`

Array ElementAxleTrackAxis
`SuspCoords(1,1)``1``1`Solid axle x-axis
`SuspCoords(1,2)``1``2`
`SuspCoords(1,3)``2``1`
`SuspCoords(1,4)``2``2`
`SuspCoords(2,1)``1``1`Solid axle y-axis
`SuspCoords(2,2)``1``2`
`SuspCoords(2,3)``2``1`
`SuspCoords(2,4)``2``2`
`SuspCoords(3,1)``1``1`Solid axle z-axis
`SuspCoords(3,2)``1``2`
`SuspCoords(3,3)``2``1`
`SuspCoords(3,4)``2``2`

Wheel and axle interface compliance constant, Kz, in N/m.

Wheel and axle interface compliance preload, F0z, in N.

Wheel and axle interface damping constant, Cz, in m.

### Suspension

Mapped

Axle breakpoints, dimensionless.

Vertical axis suspension height breakpoints, in m.

Vertical axis suspension height velocity breakpoints, in m/s.

Array of output values as a function of:

• Vertical suspension height, M

• Vertical suspension height velocity, N

• Steering angle, O

• Axle, P

• 4 output types

• 1 — Vertical force, in N·m

• 2 — User-defined

• 3 — Stored energy, in J

• 4 — Absorbed power, in W

The array dimensions must match the breakpoint dimensions

Array of geometric suspension values as a function of:

• Vertical suspension height, M

• Steering angle, O

• Axle, P

• 3 output types

• 1 — Camber angle, in rad

• 2 — Caster angle, in rad

• 3 — Toe angle, in rad

The array dimensions must match the breakpoint dimensions

## References

[1] Gillespie, Thomas. Fundamentals of Vehicle Dynamics. Warrendale, PA: Society of Automotive Engineers, 1992.

[2] Vehicle Dynamics Standards Committee. Vehicle Dynamics Terminology. SAE J670. Warrendale, PA: Society of Automotive Engineers, 2008.

[3] Technical Committee. Road vehicles — Vehicle dynamics and road-holding ability — Vocabulary. ISO 8855:2011. Geneva, Switzerland: International Organization for Standardization, 2011.

## Extended Capabilities

### C/C++ Code GenerationGenerate C and C++ code using Simulink® Coder™.

Introduced in R2018a

Get trial now