Duke University Motorsports is a student group that designs and builds open wheel, single seat race cars to compete in the Formula SAE competition sponsored by the Society of Automotive Engineers. The team consists of Duke students from both Pratt and Trinity, in all classes. The purpose of the team is to provide students with a way to gain practical design and manufacturing experience in a fun and challenging setting.

Monday, January 9, 2012

Active Aero Controller

I spent some time over break working on the aero controller, and I learned a few things in the process.  What I ended up doing is creating a baseline calibration based on simulation results and basic vehicle dynamics models, and have since designed the electronics needed to create such a control scheme.
Aero controller design, showing the motor controller and arduino board
Aero controller, showing custom PCB and heatsink for motor controller
More details on the process after the jump.

The first thing to do is to define the constants that will be used.  In this case, we need to know the application points for the aero loading, the rear wing drag (which creates a moment that tends to unload the front wheels and load the rears- the front wing drag is insignificant due to the magnitude and application point), and a lot of calibration constants.

I redid all the CFD to reconfirm the previous results (half car, lots of cells), and ran simulations for different wing angles on the rear wing second element.  From this data, I chose a range of wing angles that I could achieve with the actuator and created a fit based on the data for both aero balance (F/R) and aero load.
Aero balance shifts forwards with less wing angle (F/R), and aero load decreases with less wing angle (downforce is negative load in this convention)
These two fits take care of aero wheel loading, since aero wheel loading is more or less constant and is unaffected by weight transfer.

Next, I used the tire data we have to create a load sensitivity fit for our tires.  Though the load data only goes from 50-350lbf, I needed to extrapolate a bit farther due to the effects of weight transfer.  Is it perfect?  Hardly, but it's good enough for these purposes (in fact, this is a 1D fit here, as it only takes into account load, in this case at 0 inclination.  But I'm going to ignore camber for simplicity's sake in this analysis, since in the end I'm looking for a model grounded in physical reasoning, not a perfect model).  I did some work with using neural networks to create a tire model last year, and this fit seems to be in line with the results from that project.
Next, non-aero wheel loading was considered.  I created a geometric weight transfer array based on the cg of the car, the static weight distribution, the wheelbase, and the track.  I created a spreadsheet which calculates (approximately) the wheel loads based on the weight transfer and static loading, in the non-aero case.
One corner of the non-aero wheel load spreadsheet
From this, using the tire data load sensitivity fit, I can generate a similar spreadsheet for the maximum lateral force (once again, approximate) generated by each tire, and from that I can create a basic vehicle performance envelope.  This model does take into account limiting stability balance (front to rear at least), but no other effects such as individual wheel slip angle, camber, suspension geometry, etc. There is a small fudge factor involved, as there are many effects which cannot be accounted for by such a simple model, and this is as ideal of a case as can be.  This g-g diagram gives an idea of what the limits are, and what the balance of the vehicle is.
Cornering capability: light red is what the vehicle can't achieve, dark red is where we lift two wheels.
Now, we can add aero loading to the non-aero loading.  The aero loading is simple, equal in all four wheels, and based off what I've been calling a response matrix, which is a matrix that defines what wing position we want for a given lat and long acceleration.  An example:
The black box encircles what portion of this we will probably use, and the light green is the approximate performance envelop of the car without aero
From this matrix, we create a spreadsheet for aero only wheel loadings:
One corner of the aero wheel load spreadsheet
Then, I created a spreadsheet for total wheel loadings (aero+non-aero), and once again created a vehicle performance envelope for a number of different speeds from 20-60mph.  Since aero forces more or less scale as a v^2 relationship, I've just scaled them based off the CFD results using this relationship.
Aero lateral performance envelope, 20mph on left, 60mph on right (yeah, that's a lotta g's!)
How accurate is this?  Probably not too accurate, but that's not the point of this exercise.  What i really wanted to know was how the rear wing moving would affect the balance of the vehicle (unloading the rear at high speed tends to be a bad thing...).  What I found was that because of the v^2 relationship of aero forces and the aero balance problem, it is most critical to tune for the high speed case to maintain stability.  I originally wanted to use speed as an input to the aero controller and perhaps save some drag at higher speeds, but it's clear now that I won't be able to do so unless I have an active front wing as well.  But at the same time, aero forces build up much quicker at higher velocities, so the wing still activates at about the same lateral acceleration between different speeds.

How bad is the balance when the wing is all the way up?  Pretty bad, but that just means we have to make sure the wing gets to its desired position before we need the extra grip on the rear end, which means somewhat more conservative tuning.
Static aero balance
Aero limiting balance - Wheel loads F/R, 20mph on left, 60mph on right
Based on where we needed grip, I tuned the response array to try and keep 60mph as safe as possible while still minimizing drag (especially in near straight line situations).  The 0.50 crossover at 60mph, no acceleration/braking happens approximately at 1.2g, well below the 1.5ish g's our car can sustain without aero.  This is a conservative approach, since the rear wheel still has loading from aero- just not as much as the front wheel.  But, I don't have a great idea of what the response time of our rear wing will be, so better safe than sorry for now.

What the hardware for the controller will do is obtain wing position from a sensor (linear pot), and try and hit a target wing angle based on its onboard sensors.  The microcontroller will process the information, send a position command to the motor controller, which will handle all the feedback and PID control.  I think there will still be a lot of hands-on testing and tuning to make this work right, but a little physical intuition never hurts.

No comments:

Post a Comment