This example shows how to model a simplified half-car model that includes an independent front and rear vertical suspension. The model also includes body pitch and bounce degrees of freedom. The example provides a description of the model to show how simulation can be used to investigate ride characteristics. You can use this model in conjunction with a powertrain simulation to investigate longitudinal shuffle resulting from changes in throttle setting.

**Figure 1:** A free-body diagram of the half-car model

Figure 1 illustrates the modeled characteristics of the half-car. The front and rear suspension are modeled as spring/damper systems. A more detailed model would include a tire model, and damper nonlinearities such as velocity-dependent damping (with greater damping during rebound than compression). The vehicle body has pitch and bounce degrees of freedom. They are represented in the model by four states: vertical displacement, vertical velocity, pitch angular displacement, and pitch angular velocity. A full model with six degrees of freedom can be implemented using vector algebra blocks to perform axis transformations and force/displacement/velocity calculations. The front suspension influences the bounce (i.e. vertical degree of freedom) according to Equation 1.

**Equation 1**

The pitch contribution to the front suspension is given by Equation 2.

**Equation 2**

Equation 3 contains expressions for the rear suspension.

**Equation 3**

The forces and moments result in body motion according to Newton's Second Law (see Equation 4).

**Equation 4**

To open this model, type `sldemo_suspn`

in MATLAB® Command Window. Figure 2 shows the top-level diagram of the suspension model.

**Figure 2:** Top-level diagram of the suspension model

The suspension model shown in Figure 2 has two inputs, and both input blocks are blue on the model diagram. The first input is the road height. A step input here corresponds to the vehicle driving over a road surface with a step change in height. The second input is a horizontal force acting through the center of the wheels that results from braking or acceleration maneuvers. This input appears only as a moment about the pitch axis because the longitudinal body motion is not modeled.

**Figure 3:** The Spring/Damper model used in FrontSuspension and RearSuspension subsystems

The spring/damper subsystem that models the front and rear suspensions is shown in Figure 3. Right click on the Front/Rear Suspension block and select Mask > Look Under Mask to see the front/rear suspension subsystem. The suspension subsystems are used to model Equations 1-3. The equations are implemented directly in the Simulink® diagram through the straightforward use of Gain and Summation blocks.

The differences between front and rear are accounted for as follows. Because the subsystem is a masked block, a different data set (`L`

, `K`

and `C`

) can be entered for each instance. Furthermore, `L`

is thought of as the Cartesian coordinate x, being negative or positive with respect to the origin, or center of gravity. Thus, `Kf`

, `Cf`

, and `-Lf`

are used for the front suspension block whereas `Kr`

, `Cr`

, and `Lr`

are used for the rear suspension block.

To run this model, press the Play button on the toolbar in the model window. Initial conditions are loaded into the model workspace from the `sldemo_suspdat.m`

file (open this file to view its contents). To see the contents of the model workspace go to View menu > Model Explorer, look under the contents of the `sldemo_suspn`

model and select "Model Workspace". Loading initial conditions in the model workspace prevents any accidental modifications of parameters and keeps MATLAB workspace clean.

Note that the model logs relevant data to MATLAB workspace in a data structure called `sldemo_suspn_output`

. Type the name of the structure to see what data it contains. Read more about signal logging in Simulink Help.

**Figure 4:** Simulation results

Simulation results are displayed in Figure 4. The results are plotted by the `sldemo_suspgraph.m`

(you can open this file to see how it is done). The default initial conditions are given in Table 1 below.

**Table 1:** Default initial conditions

Lf = 0.9; % front hub displacement from body gravity center (m) Lr = 1.2; % rear hub displacement from body gravity center (m) Mb = 1200; % body mass (kg) Iyy = 2100; % body moment of inertia about y-axis in (kg m^2) kf = 28000; % front suspension stiffness in (N/m) kr = 21000; % rear suspension stiffness in (N/m) cf = 2500; % front suspension damping in (N sec/m) cr = 2000; % rear suspension damping in (N sec/m)

Close the model and delete generated data from MATLAB workspace.

This model allows you to simulate the effects of changing the suspension damping and stiffness, thereby investigating the tradeoff between comfort and performance. In general, racing cars have very stiff springs with a high damping factor, whereas passenger vehicles have softer springs and a more oscillatory response.