COVID19, and the isolation associated with it, has made us all go a little mad. Personally, I am in need of some Automotive escapism, and my choice of holiday TV has been Street Outlaws No Prep Kings (Season #3, you can find it on MotorTrend).
While drag racing is considered very niche in the UK, it’s huge over the pond and there are loads of online shows covering it. No Prep Kings pits big high powered American cars against each other in eighth mile drag races. Each round the losers are knocked out until there is only one winner left. With approximately 32 cars competing in each event, and with some serious personalities knocking around the pits, it’s properly entertaining.
I’ll be honest with you, I often skip the preamble and go straight to the racing, so lets do that right now!
To my British audience: Don’t write-off Drag Racing just yet. Yes they only go in a straight-line, but there is a lot more involved in proper drag racing than it may first appear and the cars are not trivial to build or tune. That said, I don’t own a drag car. I own a British Sports Car, and that is going to be our reference point.
I have thrown together a very quick and dirty simulation to get things going; the code is attached at the end of the article. It’s rough. Really rough, so to all the Engineers out there: this is a tool to show how interesting drag racing is, not a Curriculum Vitae. The results also yield insights into how to go fast in a straight-line, which I think is worthwhile.
A simulation isn’t worth much without some input data, so to begin with we I used some rough estimates of the key variables of my little Locost.
|Total Mass||600||kg||About right. It was measured at 490kg back in 2014 before receiving its road gear and dry sump. Then add my weight and some fuel…|
|Weight Distribution Forward||43||%||Again, measured back in 2014 and I doubt it has changed much since.|
|Height of the Centre of Gravity||0.4||m||I have guesstimated a number well above the crank centre line of the engine and slightly above the top of the chassis. If anything, it’s probably lower in reality|
|Wheelbase||2.35||m||Measured in CAD and confirmed with a tape measure|
|Drag Coefficient (pCdA)||0.9||I had to get a reference for this from an American Locost forum, but I do know this number is “high” which is correct for a Seven; they are very high drag cars. Note that this number includes air density, which simplifies the drag equation|
|Rear Axle Grip||1.2||N/N||Okay, stick with me here. I reckon this is the grip level of a decent touring car tyre at a reasonable weight and pressure. But we’ll soon find it doesn’t matter that much to begin with.|
I had to have a guess at an engine torque curve given that I am yet to have a successful dyno run. The stock G13B is said to make 110Nm at 5500rpm and 100hp at 6500rpm. My quick maths suggests a torque of 109.5Nm at 6500rpm (torque=power/speed). That’s only two data points! To round things off I set the zero speed torque as 90Nm and the roll off torque at 8000rpm to 80Nm; this is probably optimistic but it will do for now. The curve was as follows:
To begin with the engine shifts at 6500rpm (peak power).
The following gear ratios are from the early model Suzuki Samurai gearbox that is in the Locost. I confirmed these ratios to be correct using engine speed and wheel speed calculations (they can also be found here).
|1st Gear Ratio||3.652||:1||Terribly short ratio|
|2nd Gear Ratio||1.947||:1|
|3rd Gear Ratio||1.423||:1|
|4th Gear Ratio||1||:1||Not unusual|
|5th Gear Ratio||0.795||:1||This is the early Suzuki Samurai gearbox. A slightly shorter ratio is available in the later boxes|
|Final Drive Ratio||4.3||:1||MX5 Mk1 Differential. The only ratio available I believe.|
|Wheel Diameter||0.5522||m||Based on a 185mm wide 60 profile tyre on a 13inch rim|
|Wheel Circumference||1.7348||m||The diameter multiplied by pi|
Anyone that knows anything about gearboxes can spot that these ratios aren’t great. The first is way too short and the fifth is way too long. But, I am hoping through a little simulation, we can work out some strategies to live with what we have.
Our First Pass
With all that committed to code and the use of a really simple linear integrator we get a quarter mile pass that looks something like this:
A 13.463s quarter mile, going from 0-60mph in 4.495s? Not bad for a little 1.3 litre sportscar. Sadly though, there are a number of assumptions in this simulation that may make this massively unrealistic:
- Instant weight transfer. There are no real chassis dynamics in this simulation.
- A completely locked rear differential. Okay this is not as weird an assumption as you might think. I now run a locking differential which should hopefully, under hard launch conditions, be locked.
- The grip is relatively high. The throttle is pegged at 100% the whole time. But I’ll be honest with you, this is the case for the Locost on warm tyres and a good surface. Its not got acres of power so you don’t need to pedal it.
- A perfect launch. There is no holding the revs and trimming the clutch here.
- No gearshift times. This is one thing I just can’t stand for. In the above pass there are four gearshifts that all take place instantaneously. The time these actually take could have had potentially a huge effect on the outcome of the simulation time.
Adding a Gearshift Delay
With a manual synchronised transmission you waste time clutching the engine/gearbox when selecting a new gear. During this time period you are not accelerating forward; in fact you are slowing down due to drag.
From my own data I know that a gearshift can take anything between 0.5s to 1.0s to complete, depending on how aggressive I am being on the gearbox. I added this into the simulation as a time period after any shift where no engine power is used.
The updated simulation looked like this:
Well. That’s sucks.
Adding a gearshift delay into the simulation of 1.0s cost a total of 1.664s in the quarter mile and 2.125s in 0-60mph time. I’d rather have that performance back thankyou! Here is a table giving a sweep of the results:
|Run [#]||Gearshift Delay [s]||Quarter Mile [s]||Delta [s]||Speed [mph]||Delta [mph]||0-60mph [s]||Delta [s]|
So what options do we have to get this performance back? We could simply reduce the shift time (automated paddleshift anyone?) but that isn’t a realistic option for the time being.
How about making better use of the torque that we already have? If you look at the acceleration plot its clear that the car is still accelerating at 6500rpm. While it continues to accelerate hard, and the engine can take the extra rpm reliably, its worth delaying the gearshift.
Lets sweep the shift rpm and see what difference it makes, keeping the 1.0s shift delay in the simulation for realism.
The results of the simulations were as follows:
|Run [#]||Engine Shift Speed [rpm]||Quarter Mile [s]||Delta [s]||Speed [mph]||Delta [mph]||0-60mph [s]||Delta [s]|
Well that’s mighty interesting! Shifting at a later RPM yielded a benefit in every case, and in the final simulation saw a full 1.219s improvement in 0-60mph time. But why might this be? Plotting each run against each other makes the differences quite clear.
Note that the following plot uses distance as the x-axis, as opposed to time. I find this makes comparison much easier.
Well there you have it, shifting at 8000rpm means you are only changing gears only once before 60mph; hence the big improvement in this metric. This kind of suggests that 0-60 times are a little redundant and are very dependant on gear ratios and shift points. That said, it did go faster!
Also note that even though peak horsepower was at 6500rpm, shifting at 8000rpm was faster in a straight-line. This means that the shape of the torque curve beyond peak power is important, and dictates the most efficient shift point. Keep that in mind when mapping an engine.
Obviously my current torque curve is a complete guess so it may not actually be beneficial to shift at this rpm in the Locost, but its worth considering.
Power and Gear Ratios
Up to this point the very short first gear ratio hadn’t caused any problems. The throttle is always pegged at 100% throughout the whole run when not shifting gears. However, what if we add more power?
The Cultus Spec G13B
In my recent engine rebuild I used Suzuki Cultus Cams and Pistons. This raised the cam lift from 7.5mm to 8mm and the compression from 10:1 to 11.5:1. These parts were only available in Japan and are relatively rare, but raise the peak horsepower from 100hp to 114hp. I believe peak horsepower is moved from 6500rpm to 7250rpm, but I can’t remember where I read this; details on these engines are hard to find in anything but Japanese.
I assumed the details above were correct and made a modified torque curve to suit:
To create the above I shifted all of the data points by 725rpm and then multiplied the entire torque curve by 104%. This gives the desired 114hp at 7250rpm.
Using the same simulation as before, with 8000rpm shift points for the original engine and 8725rpm shift points for the new engine, I could make a comparison. The results were as follows:
|Run [#]||Engine||Quarter Mile [s]||Delta [s]||Speed [mph]||Delta [mph]||0-60mph [s]||Delta [s]|
|2||JDM Cultus Cams and Pistons||13.74||-0.587||96.94||2.75||4.712||-0.356|
Well that’s a bit more like it. Much closer to the original numbers without gearshift delays and considerably quicker in a straight-line.
Note however that the car is still not traction limited. If this is truly the case in real life than this first gear ratio is not the end of world at this power level. That said, I was still interested in what changes in first gear ratio would make.
Different First Gear Ratios
A scan of first gear ratios yielded the following comparison. I made use of the new engine data above as a baseline setup.
|Run [#]||1st Gear Ratio||Quarter Mile [s]||Delta [s]||Speed [mph]||Delta [mph]||0-60mph [s]||Delta [s]|
And… it went slower. My thought is a longer first gear is only needed if you are traction limited in 1st gear. That means if you have more power or lower grip, its worth changing. Other than that, short is fast… as long as you have a relatively flat torque curve and the drop off in torque on the upshift isn’t bad.
Plenty to discuss, but this is not the space to go in depth.
I was interest in what effect decreasing drag would have on quarter mile time. My little Lotus 7 is pretty quick from 0-60mph but runs out of steam somewhere beyond that point due to the large drag coefficient is has.
I can vouch that the original Suzuki Swift GTi that its G13B engine came out of could do 125mph in a straight-line, but the Locost tops out at just over 100mph. That’s a huge difference in drag.
The results from the drag scan were as follows:
|Run [#]||Drag [-]||Quarter Mile [s]||Delta [s]||Speed [mph]||Delta [mph]||0-60mph [s]||Delta [s]|
The results were quite interesting as I expected the drag to have a far greater effect than it did. There appears to be a clear change in the shift point between third and fourth gears, but this is almost 75% of the way down the track, so the overall difference in quarter mile time is minor.
Interestingly, when I was driving around Snetterton I spent most of my time in 3rd and 4th gears, where the data above suggests drag has a notable effect.
Lastly, before I venture into the world of 1/8th mile monsters, I wanted to simulate the Locost on a less than perfect surface or tyres.
Autosolo events have to start with dead cold tyres, no warming is allowed, and the surface often starts the day covered in stones and debris. This means the first few starts are always worse than those later in the day; this is due to low grip.
The results from the grip scan were as follows:
|Run [#]||Grip [%]||Quarter Mile [s]||Delta [s]||Speed [mph]||Delta [mph]||0-60mph [s]||Delta [s]|
Lower grip, slower car; not a surprise. That said, such a little lightweight car with low power wasn’t as much effected by lower grip than I expected.
On a good day with warm tyres the Locost in its current trim can potentially do a 13.74s Quarter Mile @ 96.94mph, with a 0-60mph of 4.712s. One of the lowest hanging fruits is shift times (I knew this!) to make the car quicker in a straight-line.
What I didn’t tell you is that this is equivalent to an Eighth Mile time of 8.772s @ 82.43mph. No Prep Drag Cars can do this in as little 3.900s!
In the second part I will play with the numbers and see what is required to a get a car to travel this distance in a much shorter time.
Code (Octave GNU or Matlab)
clear all; close all; clc; # Vehicle Definition mass = 600; # [kg], Total Vehicle Mass wd = 0.43; # [-], Forward Weight Distribution h_cog = 0.4; # [m], Height of COG wheelbase = 2.35; # [m], Wheelbase, A guesstimate from the CAD, it changes with castor drag_pCdA = 0.9; # , Drag Coefficient * Area * Air Density # Taken From: http://www.usa7s.net/vb/showthread.php?9876-Caterham-Wind-Tunnel-Testing # Approximately 1.5 * 0.66, which is inline with what others are quoting # I trimmed this down by 15% inline with observations at Snetterton grip = 1.2; # [N/N], Rear Axle Peak Grip engine_speed = [0,5500,6500,8000]; # [rpm] engine_torque = [90,110,109.5,80]; # [Nm] # Plot for Engine Power / Torque if 0 figure; hold on; grid on; plot( engine_speed, engine_torque, 'b' ); plot( engine_speed, engine_torque .* (2*pi*engine_speed/60) * 0.001, 'r' ); # [kW] plot( engine_speed, engine_torque .* (2*pi*engine_speed/60) * 0.001 * (1/0.7457), 'r' ); # [hp], Metric h = legend( 'Engine Torque [Nm]', 'Engine Power [hp]' ); legend (h, "location", "northeastoutside"); xlabel( "Engine Speed [rpm]" ); endif gear_ratios = [3.652, 1.947, 1.423, 1, 0.795]; # From: http://www.zukioffroad.com/tech/suzuki-samurai-specifications/ gear_ratios_max = 5; gear_final_drive = 4.3; gear_wheel_diameter = (185*0.60*2 + 13*25.4) * 0.001; # [m] gear_wheel_circumference = gear_wheel_diameter * pi; # diameter * pi gear_shift_rpm = [6500, 6500, 6500, 6500, 6500]; gear_shift_time = [0, 1, 1, 1, 1]; # Simulation Variables g = 9.81; # Gravity t = 0; # [s], Current Time dt = 0.001; # [ds], Delta Time a = 0; # [m/s^2], Instantaneous Acceleration v = 0; # [m/s], Instantaneous Velocity s = 0; # [m], Distance Travelled gear = 1; zero_to_sixty_time = 0; gear_shift_timer = 0; # Datalog t_log = ; a_log = ; v_log = ; s_log = ; rpm_log = ; throttle_log = ; # 1/4 Mile = 402.336 meters # 1/8 Mile = 201.168 while s <= 402.336 axle_speed = v / gear_wheel_circumference; # Calculate engine rpm based on current speed rpm = gear_ratios(gear) * axle_speed * gear_final_drive * 60; # Should we up shift? if gear < gear_ratios_max if rpm > gear_shift_rpm(gear) gear = gear + 1; gear_shift_timer = gear_shift_time(gear); endif endif # Calculate the weight on the rear axle (including weight transfer) # and the maximum force the tyre can supply mass_rear = mass*(1-wd) + (mass * a * h_cog / wheelbase); # [kg] if mass_rear > mass mass_rear = mass; endif max_tyre_force_rear = mass_rear * grip * g; # [N] if rpm > gear_shift_rpm(gear) engine_torque_output = interp1 ( engine_speed, engine_torque, gear_shift_rpm(gear) ); else engine_torque_output = interp1 ( engine_speed, engine_torque, rpm ); endif engine_torque_at_axle = engine_torque_output * gear_ratios(gear) * gear_final_drive; engine_force = 2 * engine_torque_at_axle / gear_wheel_diameter; # Calculate drag drag_force = 0.5 * drag_pCdA * v * v; # [N] # Estimate throttle position throttle = 1; if engine_force > max_tyre_force_rear throttle = max_tyre_force_rear / engine_force; endif # Are we shifting gears? if gear_shift_timer > 0 max_tyre_force_rear = 0; engine_force = 0; throttle = 0; gear_shift_timer -= dt; endif # Calculate Acceleration a = ( min(max_tyre_force_rear, engine_force) - drag_force) / mass; # Rough Integration v = v + a*dt; s = s + v*dt; t = t + dt; # Add to the Datalog t_log = [t_log; t]; a_log = [a_log; a]; v_log = [v_log; v]; s_log = [s_log; s]; rpm_log = [rpm_log; rpm]; throttle_log = [throttle_log; throttle]; # Grab 0-60 time if zero_to_sixty_time == 0 if v .* 2.23694 >= 60 zero_to_sixty_time = t; endif endif endwhile figure; subplot(5,1,[1 2]); hold on; grid on; plot( t_log, v_log .* 2.23694, 'b' ); # [mph] ylabel( "Speed [mph]" ); title( [num2str(t) "s Quarter Mile @ " num2str(v .* 2.23694, 4) "mph, 0-60mph in " num2str(zero_to_sixty_time) "s"] ); subplot(5,1,3); hold on; grid on; plot( t_log, a_log ./ g, 'r' ); # [g] ylabel( "Acceleration [g]" ); subplot(5,1,4); hold on; grid on; plot( t_log, rpm_log, 'k' ); ylabel( "Engine Speed [rpm]" ); subplot(5,1,5); hold on; grid on; plot( t_log, throttle_log .* 100, 'k' ); xlabel( "Time [s]" ); ylabel( "Throttle [%]" ); ylim( [0 100] ); set( gcf, 'position', [300, 202, 560, 755] );