0% found this document useful (0 votes)
27 views

Control Tutorials For MATLAB and Simulink - Suspension - Simulink Modeling

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Control Tutorials For MATLAB and Simulink - Suspension - Simulink Modeling

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

Tips Effects Search Control Tutorials

TIPS ABOUT BASICS HARDWARE INDEX NEXT ►

INTRODUCTION CRUISE CONTROL MOTOR SPEED

SYSTEM

MODELING
Suspension: Simulink
ANALYSIS Modeling

CONTROL

PID Related
Tutorial
ROOT LOCUS Links

FREQUENCY ▪ Simulink

Basics
STATE-SPACE
▪ Modeling
DIGITAL
w/

Simulink

SIMULINK ▪ Circuit

Sim
MODELING
Activity
CONTROL

Related
SIMSCAPE
External
Links
▪ Simulink

Intro

Video

▪ Simulink

Modeling

Video

▪ Modeling

Challenges

Video

Contents

▪ Physical setup

1 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

▪ Design requirements

▪ Building the Model

▪ Open-loop response

Physical setup

Designing an automotive suspension system is an interesting and

challenging control problem. When the suspension system is designed,

a 1/4 model (one of the four wheels) is used to simplify the problem to a

1-D multiple spring-damper system. A diagram of this system is shown

below.

The system parameters are as follows.

(m1) body mass 2500 kg

(m2) suspension mass 320 kg

(k1) spring constant of suspension system 80,000 N/m

(k2) spring constant of wheel and tire 500,000 N/m

(b1) damping constant of suspension system 350 N.s/m

(b2) damping constant of wheel and tire 15,020 N.s/m

(u) control force = force from the controller we are going to design

Design requirements

2 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

A good automotive suspension system should have satisfactory road

holding ability, while still providing comfort when riding over bumps and

holes in the road. When the vehicle is experiencing any road disturbance

(i.e. pot holes, cracks, and uneven pavement),the vehicle body should

not have large oscillations, and the oscillations should dissipate quickly.

Since the distance X1-W is very difficult to measure, and the

deformation of the tire (X2-W) is negligible, we will use the distance X1-

X2 instead of X1-W as the output in our problem. Keep in mind that this

is an estimation.

The road disturbance (W) in this problem will be simulated by a step

input. This step could represent the vehicle coming out of a pothole. We

want to design a feedback controller so that the output (X1-X2) has an

overshoot less than 5% and a settling time shorter than 5 seconds. For

example, when the vehicle runs onto a 10 cm high step, the vehicle body

will oscillate within a range of +/- 5 mm and return to a smooth ride

within 5 seconds.

Building the Model

This system will be modeled by summing the forces acting on both

masses (body and suspension) and integrating the accelerations of each

mass twice to give velocities and positions. Newton's law will be applied

to each mass. Open Simulink and open a new model window. First, we

will model the integrals of the accelerations of the masses.

(1)

(2)

▪ Insert an Integrator block (from the Continuous library) and draw

lines to and from its input and output terminals.

▪ Label the input line "a1" (for acceleration) and the output line "v1"

(for velocity) To add such a label, double click in the empty space

just above the line.

▪ Insert another Integrator block and connect it to the output of the

first.

▪ Draw a line from its output and label it "x1" (for position).

▪ Insert a second pair of Integrators below the first with lines labeled

"a2", "v2", and "x2".

3 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

Next, we will start to model Newton's law. Newton's law for each of these

masses can be expressed as:

(3)

(4)

These equations can be represented with gain blocks (for 1/M1 and 1/

M2) and two summation blocks.

▪ Insert two Gain blocks, (from the Math Operations library) one

attached to the inputs of each of the integrator pairs.

▪ Edit the gain block corresponding to M1 by double-clicking it and

changing its value to "1/m1".

▪ Change the label of this Gain block to "Mass 1" by clicking on the

word "Gain" underneath the block.

▪ Similarly, edit the other Gain's value to "1/m2" and it's label to "Mass

2". (You may want to resize the gain blocks to view the contents. To

do this, single click on the block to highlight it, and drag one of the

corners to the desired size.)

There are three forces acting on M1 (one spring, one damper, and the

input, u) and five forces acting on M2 (two springs, two dampers, and

the input, u).

▪ Insert two Add blocks (from the Math Operations library), one

attached by a line to each of the Gain blocks.

▪ Edit the signs of the Add block corresponding to M1 to "+--" to

represent the three forces (two of which will be negative).

▪ Edit the signs of the other Add block to "++-++" to represent the five

forces, one of which will be negative.

4 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

Now, we will add in the forces acting on each mass. First, we will add in

the force from Spring 1. This force is equal to a constant, k1 times the

difference X1-X2.

▪ Insert an Add block after the upper pair of integrators.

▪ Edit its signs to "+-" and connect the "x1" signal to the positive input

and the "x2" signal to the negative input.

▪ Draw a line leading from the output of the Add block.

▪ Insert a Gain block above the "Mass 1" block.

▪ Flip it left-to-right by single-clicking on it and selecting Flip Block

from the Rotate & Flip menu (or hit Ctrl-I).

▪ Edit the value of this gain to "k1" and label the block "Spring 1".

▪ Tap a line off the output of the last Add block and connect it to the

input of this Gain block.

▪ Connect the output of this Gain block (the spring force) to the

second input of the Mass 1 Add block. This input should be negative

since the Spring 1 pulls down on Mass 1 when X1 > X2.

▪ Tap a line off the spring force line and connect it to the second input

of the Mass 2 Add block. This input is positive since Spring 1 pulls

up on Mass 2.

5 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

Now, we will add in the force from Damper 1. This force is equal to b1

times V1-V2.

▪ Insert an Add block below the Mass 1's first integrator.

▪ Flip it left-to-right, and edit its signs to "+-".

▪ Tap a line off the "v1" line and connect it to the positive input of this

Add block.

▪ Tap a line off the "v2" line and connect it to the negative input of this

Add block.

▪ Insert a Gain block to the left of this Add block and flip it left-to-right.

▪ Edit its value to "b1" and label it "Damper 1".

▪ Connect the output of the new Add block to the input of this gain

block.

▪ Connect the output of this gain block (the damper force) to the third

input of the Mass 1 Add block. This input is negative, similar to

Spring 1's force on Mass 1.

▪ Tap a line off Damper 1's force line and connect it to the first input

(which is positive) of Mass 2's Add block.

Now we will add in the force from Spring 2. This force acts only on Mass

2, but depends on the ground profile, W. Spring 2's force is equal to X2-

W.

▪ Insert a Step block in the lower left area of your model window.

Label it "W".

▪ Edit it's Step Time to "0" and it's Final Value to "0". (We will assume

a flat road surface for now).

▪ Insert an Add block to the right of the W Step block and edit its signs

to "-+".

▪ Connect the output of the Step block to the positive input of this Add

6 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

block.

▪ Tap a line off the "x2" signal and connect it to the negative input of

the new Add block.

▪ Insert a Gain block to the right of this Add block and connect the

Add's output to the new Gain's input.

▪ Change the value of the gain to "k2" and label it "Spring 2".

▪ Connect the output of this block (Spring 2's force) to the fourth input

of Mass 2's Add block. This force adds in in the positive sense.

Next, we will add in the force from Damper 2. This force is equal to b2

times V2-d/dt(W). Since there is no existing signal representing the

derivative of W we will need to generate this signal.

▪ Insert a Derivative block (from the Continuous library) to the right of


the W step block.

▪ Tap a line of the Step's output and connect it to the input of the

Derivative block.

▪ Insert an Add block after the Derivative block and edit it's signs to

"+-".

▪ Connect the Derivative's output to the positive input of the new Add

block.

▪ Tap a line off the "v2" line and connect it to the negative input of this

Add block.

▪ Connect the output of this Add block (Damper 2's force) to the fifth

input of Mass 2's Add block. This force also adds in with positive

sign.

7 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

The last force is the input U acting between the two masses.

▪ Insert a Step block (from the Sources library) in the upper left of the

model window.

▪ Connect its output to the remaining input of Mass 1's Add block

(with positive sign).

▪ Tap a line off this signal and connect it to the remaining input of

Mass 2's Add block (with negative sign).

▪ Edit this Step block's Step Time to "0" and leave its Final Value "1".

▪ Label this Step block "U".

▪ Finally, to view the output (X1-X2) insert a Scope block (from the

Sinks library) and connect it to the output of the rightmost Add block.

You can download a model file for the complete system by right clicking

here and then selecting Save link as ....

Open-loop response

To simulate this system, first, an appropriate simulation time must be set.

Select Model Configuration Parameters from the Simulation menu

and enter "50" in the Stop Time field. 50 seconds is long enough to view

the open-loop response. The physical parameters must now be set. Run

8 of 9 01-07-2024, 16:07
Control Tutorials for MATLAB and Simulink - Suspension: Simulin... https://ctms.engin.umich.edu/CTMS/index.php?example=Suspensio...

the following commands at the MATLAB prompt:

m1 = 2500;

m2 = 320;

k1 = 80000;

k2 = 500000;

b1 = 350;

b2 = 15020;

Run the simulation (Ctrl-T or Run from the Simulation menu). When

the simulation is finished, if you double-click on the Scope block you

should see the following output.

Observing the above, we would like to improve the response of the

suspension through the control of the suspension control force U. The

model created here will be employed for controller design and analysis

within Simulink in the Suspension: Simulink Controller Design page.

Published with MATLAB® 9.2

All contents licensed under a Creative Commons Attribution-ShareAlike 4.0

International License.

9 of 9 01-07-2024, 16:07

You might also like