Suspension

This was the starting point of the final design iteration of the kart. When I first began the project, I thought to start with aero and packaging, this was a big mistake. Everything about the chassis comes from the weight distribution, the components you need to package, and most importantly, the suspension pickup points.

To begin with, I selected some starting values for important suspension characteristics based on my desired aero load (2.5G at top speed), weight distribution (COG height and longitudinal position), Aspect ratio, a few other things. I then used these characteristics to mathematically calculate the inboard suspension pickups via the FVSAL, SVSAL, roll center height, anti dive percent, anti squat, and all the other jargon numbers you see here all of which of course pertain to vehicle handling significantly. The preliminary values for this were calculated in Solidworks itself via the equations tab, as this was more than sufficient to create a starting point from which I can iterate.

Now that I had some numbers to start with, I drew up a series of sketches using these derived values that combine via the common method for double A-Arm suspension design taught in most suspension design textbooks to create a kinematic sketch for each wheel. I can move around the wheel or the shock and measure all the changes in camber, bump steer, link angles, ect, right in Solidworks. This is not the most optimal way to acquire kinematic data, but it is the fastest and cheapest when you do not have access to any kinematic analysis suite which offers comprehensive output, and is more than sufficient for my purposes.

Now that I had that sketch (front left wheel shown above) I could use a VBA macro to sweep the travel range of the shock and import the data into MATLAB for various simple analysis software I created to help optimize the setup further. I exported the data as simple XYZ coordinates in CSV format and normalized them to the center of the front “axle” at ground level for ease of use in calculation, and faster compute times (Solidworks does not like doing math).

I used two primary analysis software for my optimization, both of which I wrote in Matlab purely because it is a small dataset and Matlab has built in matrix support which is a bit cleaner to index to than NumPy in my opinion. In the future I will be using python for everything like this as my school is greedy and does not want me to have a permanent Matlab liscense. Also it can be faster, but I don’t care that much that I would use rust or something. Anyways here’s the software its also on the project Github if you want to try using it.

The first one I made was purely for kinematic analysis, and so utilized the transient arm positions. I used it in conjunction with the other software I made to minimize bump steer, ensure no reverse camber under expected roll, estimate preloads and shock static position, and many many things to do with bell-crank setup.

I was aiming for a rising rate setup that would allow decent low speed handling but handle the high downforce load on the straights, not too aggressive, and very adjustable. I left room for and plan to add a third slider / heave setup in the future if the car handles well enough to warrant such a thing so adjustability in the form of replaceable bell cranks was important. I left the ratio very wheel sided because adjusting it more shock side via changing the outboard bell-crank arm length effects push-rod position less than the opposite and an adjustable inboard pickup was not feasible due to the weird shape of the electronic damping Ohlin’s we went with (rear shock of a Ducatti Panigale V4S)

Here are some outputs from the kinematics sweep:

In order to verify structural viability of the setup and jacking forces, I created a inverse matrix method link load solver, which can take XY acceleration input in the form of a CSV, and output link loads for any point on the data. A static position approximation was sufficient for this, as maximum suspension travel does not exceed 1.5in on this vehicle. One benefit of this rather convoluted method is that the outputs of this program are also saved to CSV and can be imported into ANSYS regardless of weather or not you are running a structural member based FEA. In theory, this method could be used for carbon fiber monocoque or aluminum monocoque chassis designs, or a more accurate analysis of a tube frame with surface meshing and accurately modeled weld joints. Unfortunately for me, 32GB of ram was not sufficient for this so I ran a member based simulation for all of the chassis design anyways. Another benefit is that the compute time is very fast, and it can take any G force data, even real world driving data, which can give a much more accurate picture of peak loading for further chassis iterations.

These graphs are some of the outputs from the Static approximated inverse matrix link load solver.

One major issue with the suspension design was that I did not have ANY access to useful tire slip angle normal force curves, because that kind of thing is only given to official manufacturers, much to my dismay. As a result of this, in my design adjustability was key. I made sure to support full adjustability for camber on front and rear, toe on front (Miata knuckles would not let me do this for rear beyond offset bolts), anti dive percentage, roll center height, are all adjustable via a combination of bolted upper suspension inboard pickups, and custom ball joint attachment in the future on the knuckle side. This will allow me to adjust suspension parameters to work better with the tires via thermal camera on track, rather than just guessing the rough characteristics of the tire and being stuck with a setup that does not fit it, or fit the conditions.

With the back and forth between these software and Solidworks, I was able to create a acceptable suspension setup for the needs of our vehicle. I did model out the A-Arms themselves, but have since scrapped the design now that I have more time and can make them aerodynamically efficient rather than just tubes, new A arm structural model coming soon. The link loads will be the same either way so the chassis design does not need to change.