Formula Student: Suspension Validation

As mentioned previously, the suspension design (and, to a large extent, the rest of the car design) has been finalised and the SUFST build process has started. However, finalising the design is more than a case of finishing a part and printing out a drawing, as every part needs to go through an extensive validation procedure.

Geometry Validation

The geometry has been fixed for a couple of months, as it needs to be finalised very early on to allow for chassis and bodywork development. We have continued to evaluate this geometry and check that it will behave as we expect.

This means using a variety of models and calculations to simulate, or at least attempt to characterise, the vehicle handling. There are many checks that we have to get through in order to be sure that the geometry is not going to be a problem, some of which have been derived from problems that we have experienced in previous years.

Firstly, we check that at full travel of the steering left-right, and full travel of the suspension in jounce and rebound, that none of our linkages will lock out or invert. We discovered in the course of this test that the steering would rotate (theoretically) more than 90 degrees before the steering rack locked out, and this necessitated a change to the steering pickup point.

Checking the wheel at maximum steer angle. We need the tyre to be well clear of the wishbones.
Checking the wheel at maximum steer angle. We need the tyre to be well clear of the wishbones.

We also check that the variation of wheel angles and offsets is not too severe in the course of the suspension travel. Last year, the car experienced a significant amount of dynamic toe – the rear wheels were trying to turn outwards as the suspension was compressed. We investigated the cause of the problem and engineered in a solution from the start this year, but we still needed to check that everything was under control. Camber angles should never go positive on loaded wheels, so this has been checked, as have the tyre scrub offsets, because they will contribute to steering feel and tyre wear.

The validation takes place using a number of different systems, including our dynamic model, Adams, and Microsoft Excel, with each one cross-checking the results of the others to make sure there is agreement.

Modelling vehicle performance with Adams
Modelling vehicle performance with Adams

Mating and Assemblies

The majority of the parts in the suspension system were designed in CAD in time for the December design deadline, which allowed for validation to take place over Christmas. Designing the parts in CAD is a long and frustrating exercise, because in order to define the geometry properly, almost all of the dimensions which can be used to sensibly define the part are not round numbers.

If we want to play with the design at a later date, for example to check for clashes as the corner travels, the parts need to be of an exact design. The best way to check for clashes is to physically drag the model, so the model needs to be mated realistically. The dimensions will have to match exactly, otherwise the assembly will not build properly.

This leads to a novel way of designing all of our parts. We build all of the parts around the wireframe sketch used to generate the geometry, which means that we take references off points in this sketch. The references that we use are therefore identical between components, and the parts are designed in car space to make the assembly easier. Once the part has been fully designed and specified, it can be dropped into the corner assembly and we can be sure that all of the parts will mate realistically.

The suspension assemblies are mated entirely by the mechanical linkages which defined them. This represents four point mates at the centre of the spherical bearings on the chassis end of the wishbones, and two point mates at the upright end. The push rod is also a point mate at both ends, and the rocker chassis mount is a concentric mate to ensure that rotation occurs around the correct axis. Within the upright assembly, the clevises are mounted to the uprights by two bolts, and the bearing and axle are accurately represented.

These mates to define the suspension will allow the system to still rotate around its steering axis, because the steering system is defined separately. There is therefore an additional mate to define the steering angle.

The steering and suspension systems have very similar geometry sketches, and these are linked together so that the references are maintained between the systems and we can be sure that the steering linkages will all be the right length once the model and the car are assembled.

Access to Parts

Once the CAD has been fully built, we need to check that it is physically possible to assemble all of the parts in the suspension system. This means checking that there is access for tools to bolt heads, enough space around the nuts to get a spanner on, and that the installation is not through a gap which the part will never pass through in the first place. All of these are problems that we have encountered before.

Checking that the brakes don't contact the inside of the rims. It's a tight squeeze, but clearance is clearance.
Checking that the brakes don’t contact the inside of the rims. It’s a tight squeeze, but clearance is clearance.

This is a very important part of the design validation which is often overlooked, because the CAD makes it very easy to assemble up a design without really considering how it will be manufactured or assembled. If there is a fundamental lack of access to a critical fastener, it can force a whole redesign of a particular subsystem, which is time consuming and very expensive.

A visual check is used to confirm that there is plenty of clearance for most of the parts, although in some cases we need to measure the component or try to drag it out without clashing to make sure that it is possible. A great way to visualise the assembly is to put together an exploded view, as this will show how the parts need to be assembled. It will reveal any possible clashes in the system.

This applies to more than just the suspension system too. For both structural and aerodynamic reasons, the chassis is wrapped as tightly around the engine as possible. This can present challenges when manoeuvring the engine into and out of the car – so checking that the engine can be moved in to its mounting points without clashing is very important.

We checked this by defining a path which the engine could move along in order to reach its mounting points, then dragging the engine step by step along this path, checking for contact at each stage. This method showed clearly the way in which the engine would have to be handled in order to get it into the car, and allowed us to plan for this installation in advance.

Finite Element Analysis

One of the last steps taken in the validation process is a full finite-element structural analysis of the part. This will model the potential stresses and deflections at each point in the part. The design has been done in conjunction with lower resolution scans, but now the higher detail scans can be completed with a better accuracy and faster processing.

Setting up the fixtures and loads on the upright. This is simulating a brake test, with a vertical load applied to the brake mounts
Setting up the fixtures and loads on the upright. This is simulating a brake test, with a vertical load applied to the brake mounts

The FEA which we complete on our parts gives us an idea of the potential effects of lack of rigidity in the system. We will be able to predict any deflection in wishbones, uprights, and linkages, and see if they are significant in controlling the vehicle dynamics.

This is an important step – one which is often overlooked and which can cause huge problems if a small amount of deflection reduces a small tolerance to an interference. For us, the location of the brake discs about 3mm away from a bolt head is a concern, because although the nominal dimension is 3mm, manufacturing tolerances have the potential to reduce this to 1.5mm. Add in the 0.5mm deflection which we could see on the brake disc, and the spacing is suddenly more of a concern. In this case, even in the worst case scenario there is no clash, but it could easily have been closer than this if the design had been done slightly differently.

FEA Setup

Making sure that the parts are strong enough to withstand the loads required is important, but what loads should actually be applied to the parts? In parts which are buried deep within other assemblies or connected to highly dynamic components, predicting the loads is not easy. We use our dynamic models and a little intuition to choose load cases which will prove that the part is strong enough in the relevant directions, without doing any tests which are irrelevant and may lead to adding weight that does not need to be there.

FEA results from a simulated steering shock, perhaps from a cone strike. Deflection is exaggerated, thankfully.
FEA results from a simulated steering shock, perhaps from a cone strike. Deflection is exaggerated, thankfully.

We can also expand the test to include more components, and use contact constraints to specify how the loads will be transferred through the parts. This is, in reality, the only way to properly test the suspension setup because so many of the connections are bearings or bolts with particular ways of transferring load.

The problem with this is that contact constraints are very computationally expensive to resolve, and the simulations take a very long time to run. They can often fail to converge, which is very annoying if the simulation has been running for 24 hours or more. As a result, the decision is often taken to make acceptable simplifications and add a safety factor to the result.

Our suspension has been designed to withstand 1g longitudinal, 2g lateral, and 3g bump at the contact patch (at the same time – worst case scenario). On top of this, there is a 1.5 load factor on any inputs used in the system, so that we can be confident the parts we are using are adequate. We use our models to determine the loads in each suspension member and then evaluate the loads in clevises, uprights, and hubs using free body diagrams from the known wishbone loads. We have found this to be an effective way of estimating representative forces.

Safety Factors

The most common way of dealing with any potential errors in simulations is to add a safety factor to the result. However, due to the dynamic and non-linear nature of some of the suspension behaviour, we choose to apply load factors to the input instead. This means scaling up the expected loads by 1.5-2 so that we can be confident that any shock loads can be dissipated safely.

The method of adding load factors means that if there are non-linearities in the system, such as excess deflection causing yielding, or deformation of springs into bump rubbers, they will be identified more easily than by checking for safety factors afterwards.

Load factors are the best way to properly check that the system can withstand the required loads. Of course, physical testing then has to take place to ensure that the software predictions match actual load conditions, and this leads to very enjoyable sessions trying to break pieces of carbon tube and metal inserts.

Manufacture

Even after the manufacturing stage has started there will still be some validation to complete. We can employ non-destructive testing techniques to check the strength of every part before they go on the car, and we can check the access and travel available in subassemblies before they are built on to the car.

We can make jigs and templates which will confirm that parts have been manufactured correctly before we start assembling them on to the car. This can include using other parts to check – we can assemble the chassis tabs with the wishbones attached so that we know they will slot on when required. We can repeat this process with any other tabs which need to be attached to the chassis, or with our wing attachment points.

The aim is to make the manufacturing and build run as smoothly as possible and produce a car which has no inherent issues once it is finished. This is an ambitious goal, but we are getting closer every year.

The build phase should continue through the Easter break before we start testing during the summer term.

Formula Student: Suspension Validation

Active Suspension: Kinematics and Control Part 2

The previous article in this series detailed the principles behind our suspension modelling and the way in which we will go about designing the system. The development of the system is intended to be a two-year project, with much of the preliminary work done this year before a system is designed from the outset for competition in 2017.

Over the last few months, in parallel with the design of a passive system for 2016 competition, we have built up the model. This has helped us to validate the design and validate the model simultaneously; this year’s geometry is a comprehensive set of coordinates that can be used for testing.

The development of the model has presented some interesting challenges, and one in particular is how to actually define the motion of the suspension. There are many linkages which all need to move synchronously and as a result the motion is nonlinear, with components of rotation, translation, and occasionally twist in the parts.

We also have a very cool way of integrating the system with our CAD work to streamline the design process.

We can see an output of how the system looks as it moves.
We can see an output of how the system looks as it moves.

Dynamic Suspension Model

The custom dynamic model has been developed and refined to represent the movement of the suspension. Understanding the way that the suspension linkages move in tandem is key to controlling this movement. In particular, the motion of the push/pull rod in response to vertical suspension travel needs to be known.

The sensors for the suspension will be mounted on the pull rod or rocker. If we are to properly control the vertical position of the wheel, we need to know how the vertical position is related to the push/pull rod travel. We also need to know how to work the system in reverse, so that the actuator can be positioned or forced as required.

The dynamic model is the first step towards a full implementation of a kinematic model, which we can use to specify the forces required in the actuator. There are two main ways in which a system can be developed, and each has its own benefits. We are using a bespoke model programmed in C#, which will allow event based and functional programming as required.

Vector Model

The first option for implementing a model to investigate how the suspension travels is to define the position of a single point, and solve all of the contact constraints in the system as this point moves. Since we are interested in the motion as the suspension travels up and down, it makes sense to move the contact patch in the first instance.

All of the points in the car are defined using XYZ coordinates, which means it is trivial to generate and manipulate vectors in the suspension. If the vectors defining all of the points are used correctly, it is possible to calculate centres of rotation and motion paths.

The contact patch is rigidly fixed to the upright, so the motion conducted by the contact patch will match the motion of the upright. The most common way of implementing this motion constraint is to rotate all parts by a very small angle around the same axis. It can be shown that this maintains the shape and internal dimensions of the system.

The axis of rotation is determined as the axis normal to the forced direction of motion of two components. For a double wishbone setup, the axis of rotation is equivalent to the instant centre of rotation in the system.

Once the upright has been moved in this way, we need to find the new position of the steering, pull rod, rocker, and spring. These are all implemented in a similar way. The constraints are the fixed link lengths of the steering arm and pull rod, and their corresponding fixed ends. Once the position of the upright axis is defined, the steering arm upright end can only move on a circular path around the upright. It can also only move on a sphere, centred at the end of the steering rack.

Resolving these two constraints gives only two points in space that the upright pickup can be located. We find the location of the point which is closest to its previous location, representing a smooth motion, and then rotate the upright around its axis until the steering pickup point meets the required location.

Code used to find the location of the steering pickup on the upright. It finds the intersection of a sphere and a circle.
Code used to find the location of the steering pickup on the upright. It finds the intersection of a sphere and a circle.

The pull rod is similar – the rocker pickup point can only move on a sphere centred at its pickup point on the lower wishbone, and a circle around the centre of the rocker mounting on the chassis. Between these two points, we can find the location that it must have moved to, and rotate the rocker until the points match. Once rocker rotation is known, the spring length can be calculated, and the position of any active actuator can be determined.

Once all of these relations are defined, it is comparatively easy to run a sweep from the contact patch end and find the positions of the actuator, but just as easy to run the sweep in reverse, as we require.

If the system is event based, so that any change to a coordinate forces update of all of the other relevant systems, it becomes very easy to implement steering, bumps, and move towards a kinematic model which evaluates suspension travel in response to forces.

Equation Driven Model

The second method is to encode all of the above constraints, on fixed positions and link lengths, into a single function which defines the way that each point responds to motion of another. This equation is re-evaluated for each point every time the system is moved.

The motion of all of the points on the upright is governed by the intersection of their possible motion paths, as before. However, rather than solving all of the constraints as the parts move, and adjusting the positions accordingly, the equations handle the positioning, which makes each individual move more computationally efficient.

It is also trivial to adapt the equations to deal with forces if necessary, because the geometry and travel is already in place. This may simplify later stages of the calculations and programming.

More in-depth studies could be conducted, or more iterations run in each sweep, to reduce the accumulation of positional errors. However, it is not possible to reverse this method as easily as the vector method. It is a trade-off based on what we expect the system to do, and the resources that will be available to complete the tasks.

SUFST Suspension Model

I chose to implement a vector-type method in the SUFST suspension model. This means it can cover all forms of steering sweep, suspension travel, and active suspension modelling if necessary. The kinematic analysis will have to be handled separately and at a later time.

This is not to say that the equation driven model is inherently worse, because it is very effective for certain scenarios. The choice for our model is based on the most effective system for our particular situation and design brief.

The reference points used on the front corner of the suspension wireframe model.
The reference points used on the front corner of the suspension wireframe model.

CAD Integration

One of the neatest parts of this model is the integration of the suspension geometry with

our SolidWorks models. In a couple of clicks, we can export the coordinates of the suspension geometry from our CAD wireframe model and import them into the suspension model. We can sample a design iteration in around a minute, allowing us to run through multiple design changes very quickly if necessary. For optimising things like the Ackermann steering, rocker motion ratios, and dynamic camber change – all of which can be assessed through the suspension model – this is a very valuable tool.

It is done through the use of VBA macros in the SolidWorks program, and the location of reference points on the critical suspension nodes in the sketch. The macro scans for a specified reference points in the suspension setup, and measures their location relative to the origin to get the XYZ position. This is written to a csv file, along with an identifier for the point.

The coordinates can be exported on separate lines

Or they can have additional information specified, with the XYZ coordinates tabulated.
Or they can have additional information specified, with the XYZ coordinates tabulated.

The coordinates can be exported on separate lines

 

 

 

The C# program can read these csv files and load the coordinates directly into its model, overwriting any coordinates it had stored but maintaining other system parameters and settings. Since no calculations are performed in the system until we specifically move a part, there is no need to regenerate equations at this point – configurations can be freely swapped to investigate the effects of each.

The macro has been written in such a way that the output of the file can be modified very easily. We can set the coordinates to be output in just about any format, which means they can be imported directly into any program – Adams, other proprietary systems, our own system, Microsoft Excel, etc. – as and when we need them. The use of simple macros in this way has massively streamlined our design process and will prove useful for future years designs too.

Further Development

The next steps will focus on implementing an actuator into the system, and quantifying the relationship between actuator position and wheel travel. This is likely to be non-trivial due to a variable motion ratio as the rocker rotates.

Load transfer through the system will also be investigated to see how the actuators affect load transfer and peak load on components.

We are also in the build phase of the 2016 passive system – parts have been sent to manufacture ready for assembly at the same time as the chassis – and updates on that will follow soon.

Active Suspension: Kinematics and Control Part 2