UCLA BAJA SAE Suspension Simulation

Background

After a brief hiatus from Baja SAE at UCLA as I was working my internship at SOE, I returned by Summer 2023 to help design next year’s suspension.

In the previous year, I was not involved in the design process as much as I would have liked to be, and I decided to take it upon myself to make a greater contribution this year. Before, I helped with part designs and strength analysis (more details here), making instruments for data logging, and manufacturing parts. This year, I am making a lot more decisions in regard to suspension geometry and driving dynamics.

The suspension designers in our team usually stick to MATLAB and excel calculations and manual iterations to ultimately have a final design sketch in Solidworks.

This time, I wanted to implement a more comprehensive and powerful tool that will let us both visualize our suspension and optimize it to achieve the characteristics we desired.

Enter Simscape Multibody (shown above). I created an intro video for future users in our suspension team as well as documentation on how to install it.

Changes from the Previous Years

Our 2022 model BAJA car

For the past few years, UCLA Baja has used a double A-arm front and A-arm + “goofy arm” rear suspension setup. The rear setup essentially acted as a double A-arm suspension but it has had its fair share of issues that I will discuss. This year we decided to change to a 3-link trailing arm in the rear.

3 link trailing arm. Picture courtesy of Univ. of Colorado Boulder

How it works. The basics.

Let me note that making and trouble shooting this was a pain in the a**. But the good thing about this is that, once I make the system for a particular suspension system (e.g. front double A-arm, rear 3 link-trailing arm), future teams can simply tweak some of the numbers without having to dive deep into the simulink model itself in order to test their own suspension design.

Here is what the simulink/simscape model looks like:

main, top-level system

rear-left suspension sub-system

Unless the user wants to add new features, or there is a bug, this does not have to be tweaked.

What’s usually tweaked are the geometry values in the accompanying MATLAB file:

Unless the user wants to add new features, or there is a bug, this does not have to be tweaked.

What’s usually tweaked are the geometry values in the accompanying MATLAB file:

As shown above, sensors within the model can be used to plot key values (camber, toe, instant centers, roll centers)

With response optimization, the user can set these signals to be limited within user-defined bounds, and can tell simulink to try changing some selected variables in order to meet those bound requirements.

For example, here, I told simulink that it could mess with the tie rod length, the y and z coordinates of the steering rack placement, the eye-to-eye steering rack length, and the y coordinates of the knuckle-tp-tie rod mount.

Then I went to the MATLAB file to toggle on the wheel movement to 10” of wheel travel and set the toe angle bounds to -0.6 to 0.1 degrees. On the plot, you can see several lines that represent the results from the iterations that simulink went through over the duration of the optimization period. You can see that the highlighted line falls within the bounds, and at that point, the optimization had converged to a solution. Bye-bye bump steer (mostly).

Results

The more nitty-gritty details are covered in the video.

But as an overview, here are some key things I was able to accomplish with this:

  • achieve the proper camber gains throughout suspension travel

  • minimize bump steer to ~0.7 degrees per 10” of wheel travel from iterative opimization (our previous car had almost 9 degrees for the same range, sheesh)

  • compare and vastly improve upon last year’s model

  • Spring rate and installation ratio validation

  • Visual debugging

Additional Thoughts

This isn’t something where you can just press the optimization button and get some perfect suspension system. The user still needs to be knowledgable in the area in order to debug things, know what bounds to set, and what goals to achieve in the context of vehicle dynamics. In the prcoess of creating this, I referred to the Milliken Vehicle Dynamics textbook frequently as well as documentation showing how other teams were dealing with similar issues. With that being said, this is just a tool that makes the design process slightly easier and much more powerful.

I will update this page with more results once we make the car a reality this year :)

Mid-2024 update:

The thing rips!

In the 2024 California BAJA SAE competition, we finished the Suspension & Traction event for the first time in a few years, and it is a drift machine.
It was a good way to close out my time with UCLA BAJA SAE.