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
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
You can download the software for free from this link:
You can download it from here: RPMAnalyzer v1.2
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.
After downloading the software you extract it to a folder of your own
choice. The downloaded file is a self-extracting zip-file that contains
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.
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
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”.
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.
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.
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
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.
Last updated: 19-06-2012