|
|
|

A good bus suspension system should have satisfactory road holding ability, while still providing comfort while riding over the bumps and holes in the road. When the bus is experiencing any road disturbance (i.e. pot holes, cracks, and uneven pavement),the bus 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 bus 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 bus runs onto a 10 cm high step, the
bus body will oscillate within a range of +/- 5 mm and return to a smooth
ride within 5 seconds.
From the picture above and Newton's law, we can obtain the dynamic equations as the following:


We can put the above space-form equations into Matlab by defining the four matrices, A, B, C, and D, of the standard state-space equation

m1=2500;
m2=320;
k=10000;
b=140000;
A=[0 1 0 0
-k/m1 -b/m1 k/m1 b/m1
0 0 0 1
k/m2 b/m2 -2*k/m2 -b/m2];
B=[0 0
1 0
0 0
0 k/m2];
C=[1 0 -1 0];
D=[0 0];
We can use Matlab to see how the original open-loop system performs (without any feedback control). Add the following commands into the m-file and run it in the Matlab command window to see the response to a 0.1 m high step disturbance input. Note that the B matrix has been multiplied by 0.1 to simulate a 10 cm high step.
step(A, 0.1*B, C, D, 2)

To see some details, you can change the axis:

From this figure we see that when the bus passes a bump on the road, the bus body will oscillate for an unacceptably long time. People sitting in the bus will not be comfortable with such an oscillation. The big overshoot (from the impact itself) and the slow settling time will cause damage to the suspension system. The solution to this problem is to add a feedback controller into the system to improve the performance. The schematic of the closed-loop system is the following:

Before we start designing the controller, let's first find the transfer functions for the Plant and the disturbance transfer function, F respectively. We can find the transfer function of the plant (from u to X1-X2) by adding the following code into your m-file:
nump =
0 0.0000 1.0000 0.0000 31.2500
denp =
1.0e+03 *
0.0010 0.4935 0.0665 1.7500 0.1250
Note that the numerator polynomial of 5th order with two leading zeros.
This may get us some trouble in the future when we add a controller to the
system. When the numerator is combined with the controller numerator, the
two leading zeros may increase the order of magnitude of the closed-loop
numerator polynomial so that it is of higher order than the denominator
polynomial. This situation is not allowed by Matlab and will result in
an error. Click here and read
about transforming state-space equations to transfer functions to learn
more about this problem. To eliminate these two digits, redefine the
num to be only the last three digits by
adding the following text into the m-file:
[num1,den1]=ss2tf(A,B,C,D,2)Matlab should return:
num1 =
0 0.0000 -31.2500 0.0000 0.0000
den1 =
1.0e+03 *
0.0010 0.4935 0.0665 1.7500 0.1250
Add the following lines into your m-file:

Now the schematic becomes:

These tutorials contain solutions to this control problem using four different design methods: PID, root locus, frequency response, and state-space; links to these solutions are given below.

8/29/96 YS