## RPMAnalyzer

RPMAnalyzer is a program to measure the power and torque of a car engine. This is done by recording the engine sound while accelerating on a flat piece of road. I wrote this program in close cooperation with Ove Kvam. He had the idea and a quite unique algorithm to analyse frequency components in an audio signal. I did all the coding, though.

This article describes how to measure the engine performance of a car yourself. It takes a PC with dedicated (free) software and a sound recorder. Before starting, let’s cover some related theory.

Chapter 1: The theory

We all know that the car is being pushed along by the engine, but what forces are involved? Not all of them contribute to propulsion. Here are the most important factors that steal power:

Aerodynamical drag is the one that steals the most power, particularly at high speed. It is proportional to the velocity squared. That means that the aerodynamical drag quadruples when the velocity is doubled. The power needed to overcome this force has to be multiplied with the velocity over again. If you want to go three times faster, you need 27 times more power! The other factors that go into the aerodynamical drag are air density, the Cw value (drag coefficient) of the car, and the frontal area of the car.

Rolling resistance is the force it takes to keep a car rolling on level ground at low speed. It can be measured by pushing the car with a bathroom scale. The heavier the car, and the less inflated the tires are, the more force it takes. A common value is 200 Newtons, which is roughly the force 20 kg exerts on the ground. The force is not speed dependant, but the power needed to overcome it is proportional to the vehicle velocity. It steals approximately 15 horsepower at 200 km/h.

The weight of the car is also a factor, but only when the speed varies. According to Newton’s laws, the power needed to accelerate an object is proportional to the object mass. That means that the weight doesn’t matter at constant speed. At low speeds, this is the major power stealer.

The internal friction of the engine is what consumes power when the car is idling. Since the power is stated at the flywheel, it can’t be counted for as a power loss when we are computing engine performance. It has already been lost when it comes to the flywheel.

The friction of the driveline on the other hand must be taken into consideration. This friction depends on how much torque that is being transferred. When the torque is high, the cogs in the transmission are squeezed harder together. That increases the friction, and more power is lost as heat. That is why this loss is measured in percentage of the transferred power. It is typically 15-20 percent on a BMW with a manual gearbox and rear wheel drive.

The polar moment of inertia in the wheels will have the same effect as the vehicle weight. The wheels are not dragged along the car, they have to spin at the same time. It takes energy to spin them up. A tall and wide rim will have more inertia than a narrow and small one. You get a power loss that equals 5-25 kg at each wheel. In addition to this, there is also some inertia in the rear parts of the driveline, and in the brakes.

The polar moment of inertia of the engine is an often overlooked factor. It takes a lot of energy to spin up all the moving parts inside an engine, including the flywheel. The engine is also spinning faster than the wheels, due to the transmission ratios. In first gear, you can very well have a power loss that equals half a ton of extra weight in the car. The loss is considerably smaller in higher gears.

Power can be expressed as a product of velocity, mass and acceleration. If we know these factors, we can compute the power. The power we get from that equation is the power used directly for propulsion. To find the power at the flywheel, we have to add all the losses. They can all be computed when you have some data on the test car.

To find the velocity and acceleration, we can base our calculations on the engine speed. This can be converted to velocity when you know the tire size and the driveline ratios. By monitoring the changes in velocity or engine speed, we can also find the acceleration. The problem is reduced to recording the RPM at any given time.

When a four-stroke engine is running, each cylinder is fired every second revolution. The sound of the combustion is audible and appears regularly. The frequency of the sound depends on how many cylinders there are in the engine. An engine with more cylinders will have a higher pitched sound.

Those who were paying attention in the math classes at college, will remember that you can find the frequency of a signal by using Fourier analysis. That is roughly what has been implemented in the program to find engine power. A sound file is run through a frequency analysis, where speed and acceleration profiles are generated. The losses are computed and added, one by one. The program is then left with the flywheel power if the operator has done a thorough job. The torque curve can also be computed, since it is a derivative of the power.

Chapter 2: How to do it

This is what you need:

• A computer running Windows (any 32 bit version)
• A sound recorder
• The RPMAnalyzer-software

To do a power measurement you need a sound recording of the car while accelerating straight and level.
Use a cassette-recorder (or similar) and put it in the passenger seat. In most cars this will be sufficient, and the recorder will be able to capture enough of the engine sound. If you can hear the engine sound from the recording, it is likely that the program will also be able to “hear” it. It is wise to do recordings in more than one gear, but generally it is impractical to use a higher gear than the third, since you need the road to be level for the complete recording, and the speed will most likely become illegal during recording.

Here’s a simple strategy you can try:
Start the recording, accelerate to the revlimiter in the first gear, brake until the revs are down to approximately 1500 RPM, and then accelerate to the revlimiter in the second gear. If you want, you can do a recording for the third gear also, just remember that you want the revs to be approximately 1500 RPM when you start the recording. In case you wondered: All recordings are with wide open throttle, so keep the pedal to the metal. If you are unsure if the road is completely level, you can do recordings driving both ways to see if the result differs.

When the recordings are done they need to be transferred to the computer as sound files. The software will only understand WAV-files in 8-bit mono, 11025 Hz sample frequency. If you are unable to connect the recording device directly to the computer, it will in many cases be ok if you just use a microphone connected to the computer, and re-record the recordings while playing them back with the recording device. The software will only read the first 30 seconds of a recording, so it is wise to edit the sound files to get rid of unnecessary sound. If you don’t know how to do this, you can probably get some help from a friend who does.

To be able to use the program you need a fair amount of data of the car. These parameters are stored in the file ”database.ini”. Open this file in a text editor, and you’ll see that there are a few other cars stored there already. Copy and paste the data for one of these, and edit according to your own car. In summary, this is what you need to know:

• The car weight during test
• Number of cylinders
• Tyre data
• Frontal area of the car
• The Cw-value of the car
• The gear and differential ratios.
• Driveline loss. Most BMW’s is around 17%.
• Rolling resistance. 200-250 Nm is a good figure for most cars.

There are also two parameters for the power and torque scales. The maximum value is the parameter * 19, so if you expect 200 hp, use 12 for this parameter. The scale will then extend to 12 * 19 = 228 hp.
The same applies for the torque scale.

When you start the program, you will see a window like the one in figure 1. You’ll recognize some of the parameters from ”database.ini”, and a few new ones. Now is a good time to see if you can choose your car from the drop-down box that now reads ”Default car”. If you can’t, check to see if ”database.ini” is correctly formatted.

Figure 1.

In the top left part of the window you’ll see the parameters ”Window length” and ”Gain”. A higher number for ”Window length” (up to 3-4000) is beneficial if the revs are rising slowly (like in third gear). A higher number for ”Gain” will result in more contrast in the analysis image. Experiment until you get a good image where the curves are easy to discern from the background noise.

The two last parameters that need an extra explanation is ”Engine VM” and ”Drivetrain VM”. They represent the moment of inertia in the engine and in the drivetrain, and are expressed as a mass measured in kilograms. ”Engine VM” is valid only for the first gear, and since the rest of the gears can be calculated from this, there is no need to give any figures for these. A value of 400 kg means that the engine has a moment of inertia that corresponds to an extra weight in the back seat of 400 kg. For the drivetrain a rough estimate of 8-10 kg per wheel (14”), and roughly 10 kg for the rest of the drivetrain. If you have big wheels (17”-18”-19”), the value for each wheel may reach as high as 15-20 kg. A sensible guesstimate is what you need here. To fine tune these values you can compare the curves for the first and the second gear. If you get a reasonable/good overlap, the parameters are correct. If the curve for the first gear is lower (less power) that the second gear curve, you need to increase ”Engine VM”. Typical values for ”Engine VM” is 4-500 kg, depending on the type of engine. A heavier flywheel will lead to a higher value for ”Engine VM”.

Figure 2.

The program is based on ”drag and drop”, so to get started with an analysis, you drag the sound file onto the program main window and drop it. This will pop up a new window with time on the horizontal (x) axis, and revolutions per minute on the vertical axis (y). When you push the ”Analyze audio”-button, the analysis will start, and after a while you’ll see an image looking a bit like the one in figure 2. At first glance it looks chaotic, but with some practice it is easy to see the RPM-curves within the image. In figure 2 you can see acceleration in first gear and in second gear, plus a bit of third gear as well.

The program cannot find these curves by itself, so you need to mark them for the program to be able to give you the power and torque graphs. Choose the correct gear, and set only a few points on the curve for this gear. It is a good idea to set the endpoints first, and then set intermediate points where the curve deviates the most from the curve in the image. This is a tricky process until you get the hang of it. In most cases 6 or 7 points will be sufficient. The program adjusts the curve with a kind of b-splines, so avoid setting too many points, as it will do nothing but make the power and torque graphs less smooth. A small tip is to set an extra endpoint a little bit to the right of the endpoint, causing the graph to level out ever so slightly. This will ensure that the power graph will end downwards, like it should. It is of utmost importance that you try to be as accurate as possible when setting the points, and making sure you hit the middle of the curve precisely. If you make an error, you can right-click in the image, and the curve for the chosen gear will be removed, allowing you to start over for this gear.

Figure 3.

When you have an image like the one in figure 3, try pushing the ”PowerGraph”-button to get a new window that shows you the calculated power and torque curves. Figure 4 shows an example of this. The curves shown are for the first and the second gear, and they overlap pretty well, meaning that ”Engine VM” is correctly tuned. If you adjust this value, you can just push the ”PowerGraph”-button again to see the effects of the adjustment. When you are satisfied, edit ”database.ini” and correct these parameters so that you don’t have to redo this process the next time. ”Engine VM” is a non-changing parameter, so for a given car you only have to determine this parameter once.

Figure 4.

An example of the end result is shown in figure 5. It is important that you do several attempts until you get reasonable smooth power and torque curves. It is worth mentioning that it is easier to get nice and smooth curves if the acceleration takes a bit longer, like it typically does in third gear.

Figure 5.

The nerd-department of BMWCCN Rogaland had a need for measuring our own cars, and this program is the result. Chapter 1 is written by Ove Kvam, and chapter two is written by me, who also did the programming.

For BMWCCNRogaland