Control Tutorials For MATLAB and Simulink - Suspension - Simulink Modeling
Control Tutorials For MATLAB and Simulink - Suspension - Simulink Modeling
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
▪ Open-loop response
Physical setup
a 1/4 model (one of the four wheels) is used to simplify the problem to a
below.
(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...
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.
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.
input. This step could represent the vehicle coming out of a pothole. We
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
within 5 seconds.
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
(1)
(2)
▪ 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
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
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
(3)
(4)
These equations can be represented with gain blocks (for 1/M1 and 1/
▪ Insert two Gain blocks, (from the Math Operations library) one
▪ Change the label of this Gain block to "Mass 1" by clicking on the
▪ 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
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
▪ Insert two Add blocks (from the Math Operations library), one
▪ Edit the signs of the other Add block to "++-++" to represent the five
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.
▪ Edit its signs to "+-" and connect the "x1" signal to the positive input
▪ 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
▪ 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
▪ 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.
▪ 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.
▪ 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
▪ Tap a line off Damper 1's force line and connect it to the first input
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
▪ 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
▪ Insert a Gain block to the right of this Add block and connect the
▪ 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
▪ 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
▪ Tap a line off this signal and connect it to the remaining input of
▪ Edit this Step block's Step Time to "0" and leave its Final Value "1".
▪ 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
Open-loop response
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...
m1 = 2500;
m2 = 320;
k1 = 80000;
k2 = 500000;
b1 = 350;
b2 = 15020;
Run the simulation (Ctrl-T or Run from the Simulation menu). When
model created here will be employed for controller design and analysis
International License.
9 of 9 01-07-2024, 16:07