Semi-Active Suspension Model
July 2020
This independent project aimed to develop a semi-active suspension system in which the spring stiffness of the ride springs of the vehicle suspension would be controlled through the use of a PID controller in order to keep the height of the vehicle from the ground within a target range. The main learning objective was to develop an understanding of basic control systems and apply it in practice.
Dynamics Model
I used a  half-car model  in order to model the effects of aerodynamic forces, longitudinal acceleration, and road perturbations on the vehicle. From this model and the ensuing force balances, I formulated the equations of motion of the vehicle (in the direction of heave). I then wrote a MATLAB script which would solve these equations of motion and yield the height of the car above the ground given the input conditions of vehicle speed, longitudinal acceleration, and road perturbations.
Control Method
This project implements a PID control method to set the actuation levels of the suspension system, in response to deviations of the height of the car above the ground from the set height. I wrote this control script in MATLAB.
Given the current vehicle height above the ground and the set height, the controller outputs a needed vertical acceleration of the vehicle. This is then converted into a change in stiffness for both the front and rear springs, using dynamics relations.
The stiffness of the springs was limited to a range of attainable values in accordance with the chosen method of suspension control discussed above. This range was around 100-150 lb/ft in magnitude for both the front and rear spring rates.
So, the final step of this process before the new stiffness values are fed back into the dynamics model is the comparison of the newly calculated rates against their range limitation, and according modification if necessary.
Results
I tested different sets of input conditions (to simulate various road conditions and driving inputs) using the MATLAB scripts. I used a sinusoidal road profile, dependent on the vehicle speed, in which the bump amplitude and wavelength are set by the user.
First Simulated Case
The first case I examined was that of continuous positive longitudinal acceleration at 2.5g for one second, with the cessation of any longitudinal acceleration for the remainder of the simulation period. The road profile in this case had a bump amplitude of 0.1 ft. The inputs conditions of the vehicle are shown in Figures 1a and 1b below, with the first graph showing the road profile and the second showing the speed of the car through the entirely of the simulated time.

Figure 2 below shows the height of the vehicle above the ground over time, along with a band of vehicle heights representing a range of optimal heights for aerodynamic performance (i.e. the goal height range for the vehicle). As seen below, the vehicle height experiences a disturbance and comparatively large change during the acceleration period, but is quickly (within one second of the cessation of acceleration) controlled by the PID controller, and brought to oscillate within the range of acceptable heights.

The spring rates of the front and rear ride springs can be seen in Figure 3 below. The changes in the spring rates is brought about by the control system and the suspension actuation method detailed above.

Finally, I compared the vehicle height above the ground when the semi-active system is implemented to when it is not. Figure 4 below shows these results. As seen below, the passive system has a larger response to the longitudinal acceleration of the vehicle than the active system, showing the effectiveness of the semi-active system in maintaining the vehicle height at an optimal level for aerodynamic performance.

Second Simulated Case
The second case I used was continuous positive longitudinal acceleration at 2.5g for 1.2 seconds, with the cessation of any longitudinal acceleration until the second second of the simulated time. From the duration of the second to the third seconds of the simulation, the vehicle undergoes braking at 0.5g. The road profile in this case had a bump amplitude of 0.1 ft. The inputs conditions of the vehicle are shown in Figures 5a and 5b below.

Figure 6 below shows the height of the vehicle above the ground over time, along with a band of vehicle heights representing a range of optimal heights for aerodynamic performance.

The spring rates of the front and rear ride springs can be seen in Figure 7 below.

Finally, IÂ compared the vehicle height above the ground when the semi-active system is implemented to when it is not. Figure 8 below shows these results.

Future Development
Based on the results, this project managed to control the vehicle height from the ground, through the use of a variable spring rate semi-active suspension system. However, the scope of the project could be expanded in future to incorporate some aspects not studied in this particular iteration.
​
For example, future developments of the methodology presented here could include the effects of steady-state cornering and rolling motions in the determination of vehicle heave.
​
Additionally, future projects in this area of study may consider using another, more robust control method, so as to avoid the need to constantly re-tune controller values, which is an outstanding problem with PID controllers.
​
Finally, future additions of developments of this project could research and implement the actuation methods used to control the structural members of a suspension system, as opposed to using a system that merely control the spring rate of the ride springs.