Grand Prix Racing - The Science of Fast Pinewood Cars

Race It! Users' Guide


Version 1.0 for DOS


By Michael Lastufka


Welcome to the Race It! Users' Guide!

My hope is that this serious simulation program will help you use, experiment with and get a better feel for the physics of the race detailed in the Grand Prix Science Manual and the reasons behind the suggestions in How To Make A Fast Pinewood Car. But more than just changing design parameters to see the effect in virtual races, Race It! is an attempt to give you the ability to tune YOUR Grand Prix car design concepts on your organization's track before you build!

On The Other Hand ...

Just knowing how to make a faster car does not guarantee you have the skill to produce that car nor does it guarantee that unexpected events or conditions on or before race day will be prevented! Race It! is no magic wand. I have tried to include all of the physical considerations of the models from the Grand Prix Science Manual in this program that were reasonable and deterministic. None of the considerations for drift have been included because of the lack of sufficient statistical data from real races and because your track would be different anyway! So Race It! assumes some unrealistic things like:



Why Race Simulation?

Computer simulations are based on physical, mathematical and logical models. Together through computer code, they describe the system under study in a formal, testable way. My hope is that you will use Race It! to study your own races and help verify or change the underlying models to better understand the realities that can be measured. I would love to see your race data to compare with the models. In doing so, I hope you win more races and that we all come to a better understanding of what's involved in the race physically, mathematically, logically and spiritually.

What is the Race It! Program?

The word here is SIMPLE - at least as far as computer programs go! Race It is a low-tech, no-budget program that runs in DOS 3.2 or better (hence, it runs on any modern Windows or DOS PC). There is no user interaction and no interface! All of your input is in the form of an XML-like file that you name (DOS file name - 8.3 format) and edit in your favorite text editor. The output is routed to a file of your naming (DOS file name) or to your screen if no file is indicated.

Race It! is also SERIOUS. This simulation is not a hack! The mathematical models reflect the state of the art in pinewood research and attempt to faithfully quantify the deterministic behavior of the race. See the on-line science manual for the latest details.

The author of Race It! reserves all copyright and distribution rights. Race It! is not to be sold or distributed commercially or on any website or other public access server environment without the written consent of its author. Race It! is not to be copied without this documentation. Use this program and this documentation at your own risk as-is. I assume no liability for any damages to equipment, software or the outcome of any use of this software. I have made reasonable efforts to make the program robust and fast, but crashes are likely if inputs are not reasonable. I don't recommend using this program to simulate any events other than Pinewood Derby / Grand Prix type races of miniature, low weight and typical track size. Your comments are appreciated, but I don't have much time for technical support activities.

Race It! allows you to specify one race per input file with as many cars configured as you like. For study purposes, you can place instrument stations called probes along the track. A probe measures and collects information about each car for the final race report. A special probe at the end of the track stores the final race results. This probe is always presented in the race report. By placing your own probes in strategic locations on the track, you can compare the various physical measurements to understand why some cars pass others in various places, etc..

Who Is The Winner?

The winning car and all of the race configuration and collected data are presented in the Race Report. The Race Report is divided into several sections detailing the results of track and car configurations you specified and the results of probes you placed. If defaults were used in the input, then the Race Report makes it clear what the defaults were that got applied. If values you specified caused some parameters to be calculated, then those results are in the Race Report also.

An Example Race Report

Before we discuss the input file, let's look at a race report. This race report features two cars named "Typical" and "Best" racing on an Official AWANA Track with a catenary transition. One probe was specified at the start of the race. Race It always enters the probe at the end to report the finsh line information. All units are Radians for angles, Ounces for forces, Seconds for time and Inches for distances unless explicitely stated otherwise. Just remember "everything is ROSI". Combinations of these units produce speed (in/s), moment of inertia (ozins2), etc. as detailed in the website science manual.

Typical vs. Best

Race Specification File: best.xml

=============================== Race Standings ===============================
Car Name                   Time  Split Distance  Speed    Accel    Lane  Place
---------------------------- Probe   0.00 Summary ----------------------------
                   Typical 0.000      0.000        0.00   127.22     1      1
                      Best 0.000      0.000        0.00   130.01     2      2
---------------------------- Probe 360.00 Summary ----------------------------
                      Best 2.864      0.000      156.96    -8.35     2      1
                   Typical 2.964     14.390      144.70   -11.34     1      2
=============================== Track Profile ================================
Official AWANA Track  Length: 360.000
Ramp   Height   Base     Length    Drop     Angle    Flat Length
       39.900   67.257   72.000   14.200  -0.364995       211.056
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 42 -.
 36   `-_
 30      ',
 24        `-.
 18           ',_
 12              ',_
  6                 `',,.______________________________________
in 0    30   60   90   120  150  180  210  240  270  300  330  360  390  420  450
ft 0         5         10        15        20        25        30        35
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Catenary Transition
Length :  76.944  Base :  75.184  Index : 201.362
Tension (lb) at start :  20.209  end :  18.878  assuming load of 1.5 oz/in

=============================== Car 1 Profile ===============================
Typical  Total Weight :    5.00  Box Size (WHL) :  2.380x 1.590x 7.000
Profile :  Nose   Base   CMx    CMh    Tilt    Contour
          1.500  3.875  1.500  0.400  0.000 Rectangle
Aero Parameters   Drag coefficient :0.500  Crosssection : 2.49
Front Wheels  Axle friction coef : 0.250
Kit wheel stock : AWANA.
Weight  Moment of Inertia  Tread   Radius   Bore   Width
 0.0833    0.000049000     0.0100   0.590   0.049   0.315
Rear Wheels   Axle friction coef : 0.250
Kit wheel stock : AWANA.
Weight  Moment of Inertia  Tread   Radius   Bore   Width
 0.0833    0.000049000     0.0100   0.590   0.049   0.315
---------------------Distance Probe 1 Results ----------------------
Pos:   0  0.000  Base:  0  0.000  Height: 42.208  Tilt:-0.3650
Time:  0.0000  Speed:   0.000  Accel:  127.2164
Coasting  Time:  0.0000  Distance:   0  0.000   Terminal Velocity :   0.000
Force along track :  1.648  Aerodynamic resistance :  0.000
Normal Axle Force(f & r)    Drag(f & r)      Tread Drag(f & r)
     1.859     2.500      0.039     0.052      0.020     0.027
   Gravity(f & r)    Centrifugal(f & r)      Curvature
   1.991     2.676      0.000     0.000       Infinite
Axle Force Vector Front and Rear
H:  -1.991  X:   0.000   H:  -2.676  X:   0.000
Total Energy :  206.090
100 = Potential + Linear + Wheel + Aero + Axle(f & r) + Tread(f & r)
100 =   100.00   +  0.00  +  0.00 +  0.00+  0.00+ 0.00 +  0.00+ 0.00
---------------------Distance Probe 2 Results ----------------------
Pos:  30  0.000  Base: 29  4.254  Height:  0.990  Tilt: 0.0000
Time:  2.9636  Speed: 144.697  Accel:  -11.3427
Coasting  Time: 12.6407  Distance:  74  3.021   Terminal Velocity :   0.000
Force along track : -0.147  Aerodynamic resistance :  0.024
Normal Axle Force(f & r)    Drag(f & r)      Tread Drag(f & r)
     1.806     2.860      0.038     0.059      0.020     0.030
   Gravity(f & r)    Centrifugal(f & r)      Curvature
   1.806     2.860      0.000     0.000       Infinite
Axle Force Vector Front and Rear
H:  -1.806  X:   0.000   H:  -2.860  X:   0.000
Total Energy :  205.193
100 = Potential + Linear + Wheel + Aero + Axle(f & r) + Tread(f & r)
100 =   -0.00   + 66.07  +  2.87 +  4.21+  7.07+10.67 +  3.69+ 5.42

=============================== Car 2 Profile ===============================
Best  Total Weight :    5.00  Box Size (WHL) :  2.380x 1.590x 7.000
Profile :  Nose   Base   CMx    CMh    Tilt    Contour
          0.600  5.800  0.100  0.250  0.000 Triangle
Aero Parameters   Drag coefficient :0.200  Crosssection : 1.62
Front Wheels  Axle friction coef : 0.150
Kit wheel stock : AWANA.
Weight  Moment of Inertia  Tread   Radius   Bore   Width
 0.0833    0.000049000     0.0100   0.590   0.049   0.315
Rear Wheels   Axle friction coef : 0.150
Kit wheel stock : AWANA.
Weight  Moment of Inertia  Tread   Radius   Bore   Width
 0.0833    0.000049000     0.0100   0.590   0.049   0.315
---------------------Distance Probe 1 Results ----------------------
Pos:   0  0.000  Base:  0  0.000  Height: 42.933  Tilt:-0.3650
Time:  0.0000  Speed:   0.000  Accel:  130.0120
Coasting  Time:  0.0000  Distance:   0  0.000   Terminal Velocity :   0.000
Force along track :  1.684  Aerodynamic resistance :  0.000
Normal Axle Force(f & r)    Drag(f & r)      Tread Drag(f & r)
     0.147     4.212      0.002     0.052      0.003     0.044
   Gravity(f & r)    Centrifugal(f & r)      Curvature
   0.157     4.509      0.000     0.000       Infinite
Axle Force Vector Front and Rear
H:  -0.157  X:   0.000   H:  -4.509  X:   0.000
Total Energy :  210.467
100 = Potential + Linear + Wheel + Aero + Axle(f & r) + Tread(f & r)
100 =   100.00   +  0.00  +  0.00 +  0.00+  0.00+ 0.00 +  0.00+ 0.00
---------------------Distance Probe 2 Results ----------------------
Pos:  30  0.000  Base: 29  4.090  Height:  0.840  Tilt: 0.0000
Time:  2.8642  Speed: 156.957  Accel:   -8.3500
Coasting  Time: 19.1820  Distance: 124  0.629   Terminal Velocity :   0.000
Force along track : -0.108  Aerodynamic resistance :  0.007
Normal Axle Force(f & r)    Drag(f & r)      Tread Drag(f & r)
     0.080     4.586      0.001     0.057      0.002     0.048
   Gravity(f & r)    Centrifugal(f & r)      Curvature
   0.080     4.586      0.000     0.000       Infinite
Axle Force Vector Front and Rear
H:  -0.080  X:   0.000   H:  -4.586  X:   0.000
Total Energy :  209.713
100 = Potential + Linear + Wheel + Aero + Axle(f & r) + Tread(f & r)
100 =    0.00   + 76.07  +  3.31 +  1.23+  0.23+10.22 +  0.46+ 8.48

Following the race report title and input file name is the Race Standings section. Probe splits are summarized for each car in order of crossing with its name, time in seconds, estimated split distance in inches, finish line speed in inches per second, acceleration in inches per second per second, lane number and finishing place. The last probe is always at the finish line. The race standings section is a quick-look summary of the race. The split distances are estimated by multiplying each car's speed by the time difference to the leader. This estimate is reasonably accurate up to a few feet.

The Track Profile follows with the name of the track and its configuration in units of inches for distances and radians for the ramp angle. Because a catenary transition model was selected, specifics of the catenary transition appear below the character sketch of the track. Marks in the track sketch represent the track surface at 6 inch intervals in height and length. The base of the track is marked off in inches and feet.

The repeated sections titled Car X Profile log each car and the probes, Distance Probe Y Results, along its lane. The cars are ordered according to their appearance in the input file. Various car configuration data is shown for each car. Parameters of the main parts of the car are grouped together. The first line indicates total weight and box size. These are the measurements checked by the judge at the competition to qualify your car for the track. Make sure they are within your competition limits. The other parameters are described in greater detail in the science manual.

Probes show the dynamics of each car as its nose passes their locations. The first line shows the center of mass position data in trajectory coordinates. For most tracks, the value of the trajectory coordinates is within a quarter inch of the corresponding track coordinate of the front of the car. However, the trajectory begins a few inches behind the starting line where the center of mass rests and ends a few inches in front of the finish line where the center of mass is when the nose crosses.

Time, speed and acceleration come next. They are the result of forces acting over time and distance. When the acceleration is positive, the car is picking up forward speed. When negative, the forward forces have been drowned out by friction acting in the opposite direction. In your own races, note the effect of wheel bore radius and size, friction and car weight at the starting line. It'll get you off to a good start with Race It!

If the car were to continue without changing its trajectory after passing the probe position, it would continue to pick up speed to terminal velocity or coast for some time and distance. The coasting information shows that kind of information. At the start, there is no motion, so the coasting time, distance and terminal velocity are all zero. On the ramp where friction has not begun to slow the car, a terminal velocity is shown, but the coasting time and distance are infinite. On a shallow slope or on the flat, a coasting time and distance are shown, but the terminal velocity is 0.0, indicating that the car will eventually stop.

Next are a few lines indicating various forces. The force along the track is the total forward force. When negative it means that friction is dominating, slowing the car down. Watch for factors that give greater force at the starting line. Aerodynamic resistance is the force needed by the car to push the air aside. Axle and tread drag for the front (f) and rear (r) wheels are determined from the normal axle forces. Normal axle force acts at a right angle to the track surface at the wheel contact point causing axle and tread friction. Part of the normal force is always gravitational and part is from centrifugal force only when the track is curving up or down. The total gravity and centrifugal forces with the radius of trajetory curvature are shown below the normal axle force. The curvature of the trajectory at a probe is the same as that of a circle having a radius equal to the radius of curvature shown. Note, the radius of curvature is really measured at the center of mass of the car. It is most always behind the probe location when the car crosses it.

Axle Force Vector W+C

On the next lines, the force vectors for the front and rear axles are shown. These summarize the magnitude and direction of all the forces acting on the axles together. The parts of the force are split out in height (H) and along the horizontal base of the track (X). It is typical that the H part be negative, indicating the downward push of gravity and centrifugal force, and that the X part be negative indicating a backward push due to centrifugal force. Care has to be taken to interpret these vectors properly, they are in a "laboratory" frame of measurement (non-inertial), not one traveling with the car. Though the X part might not be zero, it typically has no effect on slowing or speeding the car since it is expressing a part of the force that pushes at right angles to the trajectory. Under some conditions, as when CMh is large, an H part can become positive, indicating that the car is trying to wheelie. These configurations must be avoided since in reality some part of the car would be scraping the lane median.

At the bottom of each probe is an energy profile accurate to half a percentage point. This shows how the energy of the car is being used; making it a useful diagnostic tool. Each number is a percentage of the total energy shown. The total energy has units of ounce-inches (ozin). The missing energy may be used up by things like car body rotation that are not computed in this version of the simulation.

The potential energy (PE) shown is the "available" PE, not the absolute PE. Available PE is the absolute PE at the starting line minus the absolute un-used PE at the finish line. It is the PE that is available to the car to turn into speed. Hence, a probe at position "0.0" gives the maximum available PE as the total energy, while the final probe shows "0.0%" of the total left over as available PE.

Having seen what to expect, let's see how you can create your own racing scenario.

Good Form

In order to stage a virtual race, you need to describe your track, cars and a few other things to Race It!. An XML-like form is used for this purpose. Each of its elements and their attributes are described below. An element is a collection of attributes and possibly other elements that represent objects that Race It! needs to know about. The attributes of an element are names for measurements or input items that you assign values (words or numbers). Many attributes are optional and will take on values that have been pre-determined or calculated from other attributes. They are called defaults.

To get the most accurate results for your racing situation, please take the time and effort to make the various measurements described in the science manual.

The first element is the one that contains all of the others it is called <race>. I will use <race> as an example to show how the other elements look and are documented. In a Race It input file, the simplest race with one car looks like:

<race>
 <track>
  <ramp />
  <flat />
 </track>
 <car>
  <body>
   <shape />
  </body>
  <axle />
  <wheel></wheel>
 </car>
 <report>
 </report>
</race>

In this simplest input file, no attributes appear in any of the elements. All are supplied with default values by Race It! according to the AWANA standard track and car kit. Only the race results are reported since no probes were set other than the one that is always set at the end.

In order to have an interesting race, you need to know how to flesh out these elements with your own information modeling the race you want to see. We start by describing the <race> element. Then we will descend into the elements contained in it, depth-first.

<race>: describes one race, on one track with one or more cars and how to report it.

<race step="real" track="string"> track car... report </race>

step: indicates the interval in inches to travel before recomputing the race dynamics (time, speed, acceleration, forces, etc.) on the transition part of the trajectory. The smaller this distance the longer computation takes, but the more accurate the result (to a point - it is limited to the largest wheel radius times the tangent of half the ramp angle - about a quarter of an inch). The default is one inch.

track: Selects a model for the transition from the ramp to the flat. The models are:



The <race> element has three elements that must be contained in it. There must be one <track> and <report> element and at least one <car> element. The order is not important.

Input File Hints

You can avoid many frustrating input file problems by checking this list:
  • Is everything contained inside a <race> element?
  • Are all element and attribute names in lower case?
  • Are all the values that are from a list spelled and capitalized exactly?
  • Is there at least one <track>, <report> and <car> element?
  • Does each empty element, <label />, have a space after its label?
  • Are the probes listed in increasing order of position?
  • Are your attribute values within its range, indicated below?

Your Track

A Grand Prix race is an interaction between the cars and the track. Some aspects of this interaction are easier to model than others. For example, no attempt has been made to model vibrations in the track caused by the motion of the cars. Such factors are considered minor in this effort, though in practice they have sometimes caused tracks to collapse!

An attempt is being made to allow the modeling of various track shapes. Common to them is the starting ramp and the flat runout at the end. The transition is the main concern of the model. In this version, there are two transitions offered. I hope to provide a model for an "S" shaped track in the future. Unfortunately, an all ramp model cannot yet be specified by making the flat length zero. But hand calculations are the easiest for that case since the ramp surface is parallel to the car's trajectory and equal in length.

A ramp and a flat element must be specified. If the flat is not present or gets recalculated to zero (or less) by a transition model, the program may "hang up" indefinitely.

Trajectory on a smooth track

<track>: describes your race track.

<track name="string" length="real"> ramp flat </track>

name: This is the name of your track. It is printed on its own line in the race report.

length: Specifies the total length of your track surface in inches. The length should be at least twice your car's length. Only the first forty feet of the track is sketched in the race report. The default track length is 360 inches, 30 feet.

The <track> element has two optional elements, <ramp> and <flat>, that can be contained in it. The order is not important.

The ramp is a very important part of the track. Be sure to make good measurements for more realistic results.

<ramp>: describes the starting ramp of your track.

<ramp height="real" length="real" drop="real"/>

height: This is height of your starting line measured vertically from the floor minus the height of the surface of the flat runout part of your track in inches. This measurement is the total vertical distance a ball bearing would "fall" if rolled down your track. This height must be reasonable for the length and drop used. The default depends on the transition selected.

length: Specifies the length of your ramp surface in inches. The ramp is considered to be perfectly straight; no outward or downward curve. This length must be reasonable for the height and drop used and less than the total track length. The default depends on the transition selected.

drop: The distance from the end of your ramp to the floor minus the height of the surface of the flat runout part of your track in inches. This drop must be reasonable for the height and length used. The default depends on the transition selected..

The <ramp> element contains no elements.

If track="Model" is used in the <race> element, then drop is set to 0.0 and the ramp and flat portions of the track are extended to meet in a "zero" join as explained in the science manual. The transition is computed along its true trajectory and energy absorbed in the transit is deducted from the dynamics. If you put a probe at the starting line you will notice that the total energy dropped by the amount of the deduction by the end of the race.

If track="Catenary" is used in the <race> element, then the ramp data is used to determine how to smoothly join a catenary curve to it. The <flat> length is changed to accommodate the catenary transition. A catenary is the shape assumed by a rope or chain hung between two posts. Only half of the curve is used. It is a gradual curve with its greatest curvature near its join with the flat. An advantage of this shape is that an estimate of tension at its ends can be made and is included at the bottom of the Track Profile section with the other computed results of its geometry. It's simplest equation is height = c*cosh(x/c), where cosh is the hyperbolic cosine function, (exp(x)+exp(-x))/2 and c is its index. A catenary transition is used if none is specified.

The flat is the long runout at the end of the typical Grand Prix track. Though this element doesn't really provide any information that can't be figured out from the rest, it makes the input file a more complete reference resource. Depending on the type of track transition you selected, the flat attribute may indeed get changed by the program. Consult your race report to confirm this. The default may vary depending on the transition model selected.

<flat>: describes the flat runout part of your track to the finish line.

<flat length="real"/>

length: The length of the flat runout surface in inches. The flat is considered to be perfectly flat; no upward or downward curve. The value you enter should not exceed the total track length when the ramp length is added to it. The default depends on the transition selected.

The <flat> element contains no other elements.

If track="Catenary" is used in the <race> element, then the <flat> length is changed to accommodate the catenary transition.

Your Cars

Here's how to model your choice of cars! Use one <car> element for each car in the race. The track "magically" adds more lanes to accommodate them all. The order in which you add them to the input file will determine the order they appear in the report with their detailed results. The Race Standings section of the report lists them in probe-crossing order.

<car>: describes one pinewood Grand Prix car, its body and one or two sets of axles and wheels.

<car name="string" weight="real"> body axle.. wheel..</car>

name: This is the name of the car. It is printed with other information in the report, so keep it short. If you are conducting studies, it is often helpful to name it according to the parameter and value of the study. For example, if you are determining the effects of axle friction, name your cars "Coef=0.30", "Coef=0.25", "Coef=0.20", etc.

weight: The total weight of the car with wheels and everything in ounces.

The <car> element has three optional elements, <body>, <axle> and <wheel>, that can be contained in it. Two sets of <axle> and <wheel> can be used to note differences in the front and rear axles and wheels. If two <axle> elements are used, you don't have to use two <wheel> elements and vice versa. The order is not important.

Your car body is modeled for the race by a few attributes that help determine the trajectory of your car on the track. The most important attributes are the ones pin pointing the center of mass or balance point of the car. These include the nose, base, CMx and CMh.

Diagram of Car Parameters

<body>: describes the body size and shape of a pinewood Grand Prix car.

<body nose="real" base="real" length="real" CMx="real" CMh="real"> shape</body>

nose: The distance from the front of the car that leans against the starting peg to the front axle in inches. This measurement is made along the line passing through the center of the front and rear axles. It must be at least as long as the front wheel radius and not longer than the car length minus the front and rear wheel diameters added together.

base: The distance between the front and rear axles in inches. It must not exceed the length of the car minus the front and rear wheel radii added together.

length: The total length of the car from bumper to bumper in inches. It is assumed the "bumpers" stick out at least as far as the tread of your wheels.

CMx: The horizontal position of the car's center of mass (balance point) measured from the rear axle in inches. This measurement is made along the line passing through the center of the front and rear axles. It is a positive number going toward the front axle. Negative CMx values indicate that the front wheels are in the air off the track! The value should be greater than zero, but not more than the car base (then the rear wheels would be in the air!).

CMh: The vertical position of the car's center of mass (balance point) measured from the rear axle in inches. This measurement is made at right angles to the line passing through the center of the front and rear axles. It is a positive number above the axle and negative below the axle.

The <body> element has one optional element, <shape>, that can be contained in it. A typical CMh is about 0.4 inches.

Air resistance can be as important a factor as the storing of energy by the spinning of your wheels. The <shape> element lets you enter general shape and size information that is used to compute the aerodynamic crosssection of your car for you.

<shape>: describes the shape of your car.

<shape width="real" height="real" contour="string" cross="real" aero="real"/>

width: This is only the width of the car body - not including wheels. If no crosssection is specified, this value will be used to calculate it. A typical width is 1.75 inches.

height: The height of your car. If no crosssection is specified, this value will be used to calculate it. A typical height is 1.0 inches.

contour: The general shape of the car as viewed from the front. The values are:



cross: Specifies the aerodynamic crosssection of the car in inches squared. If this attribute is used, the width, height, and contour attributes are ignored in the aerodynamics of the car. A minimum is about 1.25 in2 and the legal maximum is about 8.25 in2.

aero: This is the aerodynamic pressure drag coefficient of the car. It is a scaling factor with no units. It can be between the values of 0.0 and 1.2 with 0.5 being fairly typical. If 0.0 is entered, this version actually uses 0.000000001 since only the dynamics with some air resistance are assumed. In tests, this leads to zeros in the right places in the race report, with the other dynamic data "looking" correct. However, this limit case can lead to times that are too high by one or two hundreths of a second.

The <shape> element contains no other elements.

The primary use of axles is to specify their friction coefficient. They can all be specified in one <axle> element, or in sets with two.

<axle>: describes one or two sets of axles for your car.

<axle loc="string" friction="real" separation="real"/>

loc: This word tells which set or sets of axles are described. The values are:



friction: The coefficient of sliding friction between the axle and the wheel bore. It is a scaling factor with no units. This value is greater than the theoretically low limit of about 0.15. Winning racers seem to have values less than 0.05.

separation: The distance between the left and right inner edges of the wheels. This attribute is included for future use and is close in value to the car body width but should a bit more for wheel/body clearance.

The <axle> element contains no other elements.

Put wheels on your car all at once using one <wheel> element or in sets of two using two <wheel> elements. A raised wheel can even be specified.

<wheel>: describes the body size and shape of a pinewood Grand Prix car.

<wheel loc="string" side="string" weight="real" moment="real" kit="string"> geo friction</wheel>

loc: This word tells which set or sets of wheels are described. The values are:



side: This word tells which wheels in the pair are touching the track. If a wheel is not touching the track, its weight is included in the calculation of axle forces since the axles of wheels touching the track must support it. The values are:



weight: The weight of the wheel or each wheel in the set of wheels in ounces. If the kit attribute is used, the weight defaults to that of the kit wheel unless specified explicitly in the weight attribute.

moment: The moment of inertia of the wheel or each wheel in the set of wheels in ozins2. See the science manual for details on measuring it, or use the cylinder elements in the geo element to specify a wheel model. The model is used to calculate the moment of inertia for you.

kit: Here you can name a kit wheel to use so you don't have to use any of the other attributes or elements in the wheel element. The values are:



The <wheel> element has two optional elements, <geo> and <friction>, that can be contained in it.

You can specify your wheel measurements using the <geo> element. Gross measures are provided as attributes, but a detailed model can also be entered using <cylinder>s. If the detailed approach is used, the <geo> attributes are set using the more detailed information so you don't have to.

<geo>: describes the wheel's or set of wheels' geometrical model.

<geo bore="real" radius="real" width="real">cylinder...</geo>

bore: The radius of the hole at the center of the wheel in inches; half of the hole's diameter. Not needed if <cylinder>s are used.

radius: The distance from the center of the wheel to its tread surface in inches. Not needed if <cylinder>s are used.

width: The width of the wheel in inches. Not needed if <cylinder>s are used. If both are used, this width will be used if no individual cylinder is wider.

The <geo> element has one optional element, <cylinder>, that can be contained in it. Likely, more than one <cylinder> is needed to produce an adequate wheel model (see the science manual).

Cylinders allow you to model your own wheel geometry. A wheel is a co-axial laminar body; it's a bunch of cylinders stacked up with a common center line. The inner most cylinder is called the hub of the wheel. It's hole is called the wheel bore. The outer cylinder forms the tread of the tire. Between, are a few more cylinders that connect the hub and the tread together.

If your wheels are unmodified AWANA or Boy Scout kit wheels, that is, up to a little trimming up, then you won't need to use cylinders to make a wheel model. But if they are custom built or cut, building a wheel model using cylinders will help you predict the effect on the race. If you model cut wheels or added weight, make sure to coordinate the cylinder model with the weight properly.

Simply put, look at the wheel and determine how to break it up into cylinders. Then make measurements. A depth gauge or caliper really helps. You will need the inner and outer radius of each cylinder as well as width.

<cylinder>: describes one cylinder of the wheel model.

<cylinder inner="real" outer="real" width="real"/>

inner: The inner radius of the cylinder in inches.

outer: The outer radius of the cylinder in inches.

width: The width of the cylinder in inches.

The <cylinder> element contains no other elements.

The purpose of the <friction> element is to specify the tread drag coefficient.

<friction>: describes one cylinder of the wheel model.

<friction tread="real"/>

tread: This is the rolling friction coefficient of the wheel or set of wheels. It is a scaling factor with no units. It can be measured fairly easily by experiment. 0.015 is one value measured for an unsanded, unfinished luan plywood track. Like axle friction, this is one of the most important factors used to determine the finishing time in a race. The default is 0.010 as measured on a track of luan plywood finished with shellac.

The <friction> element contains no other elements.

Your Probes

Use probes to find out what's going on in your race. Each probe is set once for the track, but is triggered by each car in the race. The information collected by each probe for a particular car is reported in the race standings section summaries and in that car's section of the race report. To use probes, you first have to set up the report.

<report>: customizes the race report and lets you determine where to instrument the track for measurements.

<report title="string" file="string">probe...</report>

title: The title to appear on the first line of the report.

file: The name of the report file. It is a DOS name requiring less than eight letters optionally followed by a dot (.) and up to three more letters. The letters after the dot are usually something like "txt" to show that the report file is a text file. You may have to change your explorer settings in Windows to see the full DOS name. If the file attribute is not used, the report will be sent to your sysout device, usually your screen.

The <report> element has one optional element, <probe>, that can be contained in it. More than one <probe> can be specified.

<probe>: describes where along the track to place probe instrumentation. The virtual measurements taken as each car passes are placed in the report file in that car's section.

<probe trigger="string" value="real" />

trigger: A word indicating what kind of event triggers the probe to collect data. Currently, only Position triggers are implemented. The values are:



value: The value of the probe's trigger.



The <probe> element contains no other elements.

Download Race It! Now!!

Visit another websiteHere's the link to download Race It! for DOS

Try it out on the sample race file below to see how much room there still is for improving the state of the art in pinewood cars.

A Sample Race File - The State of the Art of Pinewood Racing!

This race simulates a contest that would be impossible to stage on a real track! Four cars go head-to-head. All of the cars are patterned after top performers.

Car 1 is frictionless except for air resistance and is running on a frictionless lane! In fact, it is so "slippery" that the wheels don't even bother to turn.

Car 2 is also frictionless running on a frictionless lane, but its wheels will spin up normally as it races.

Car 3 is not frictionless. It has both axle and tread friction. But it's axle friction is at the theoretically low limit.

Car 4 is a good, winning Grand Prix car.

What will be the effect of wheels spinning on an otherwise frictionless car? How far behind will the friction harried cars be? Will the champion car be far behind the theoretically lowest axle friction car? Find out by cutting and pasting the <race> element below to a new file named "State.xml" and running the race yourself with Race It!

<race step="1.0" track="Catenary">
 <track name="Official AWANA Track" length="360.0">
  <ramp height="39.9" length="72.0" drop="14.2"/>
  <flat length="249.5"/>
 </track>
 <car name="Frictionless - wo/rotation" weight="5.0">
  <body nose="0.6" base="5.8" length="7.0" CMx="0.1" CMh="0.25">
   <shape width="1.75" height="1.0" contour="Triangle" aero="0.2"/>
  </body>
  <axle loc="both" friction="0.0" separation="1.75"/>
  <wheel loc="both" side="both" moment="0.0" kit="AWANA">
   <friction tread="0.0"/>
  </wheel>
 </car>
 <car name="Frictionless - w/rotation" weight="5.0">
  <body nose="0.6" base="5.8" length="7.0" CMx="0.1" CMh="0.25">
   <shape width="1.75" height="1.0" contour="Triangle" aero="0.2"/>
  </body>
  <axle loc="both" friction="0.0" separation="1.75"/>
  <wheel loc="both" side="both" kit="AWANA">
   <friction tread="0.0"/>
  </wheel>
 </car>
 <car name="Ideal Derby Car" weight="5.0">
  <body nose="0.6" base="5.8" length="7.0" CMx="0.1" CMh="0.25">
   <shape width="1.75" height="1.0" contour="Triangle" aero="0.2"/>
  </body>
  <axle loc="both" friction="0.15" separation="1.75"/>
  <wheel loc="both" side="both" kit="AWANA"></wheel>
 </car>
 <car name="Winning Derby Car" weight="5.0">
  <body nose="0.6" base="5.8" length="7.0" CMx="0.1" CMh="0.25">
   <shape width="1.75" height="1.0" contour="Triangle" aero="0.2"/>
  </body>
  <axle loc="both" friction="0.2" separation="1.75"/>
  <wheel loc="both" side="both" kit="AWANA"></wheel>
 </car>
 <report title="State of Grand Prix" file="State.txt">
 </report>
</race>

Note that the axle and tread friction attribute can actually be zero. The car body aero attribute can also be set to zero, but when speaking of a frictionless car, we usually mean axle and tread frition only.

Running Race It!

To run Race It! on your PC, bring up a DOS window (or if your computer is as old as mine, just run it in native DOS!). To get a DOS window click on the start menu and hover the cursor on "Programs" until the list of programs is displayed. Select "MS-DOS Prompt".

In DOS, navigate to the directory where you put the RaceIt.exe and State.xml files using the "cd" command. Once there, type

raceit state.xml

A few seconds later you should get the DOS prompt and the file State.txt should be ready to open in an editor, or be printed out.

To run your own input files, follow the same pattern. May all your races prepare you for greater things!

Note: you can just type "raceit" (or click on it in windows) and it will ask you for a race file. If you want it to run raceit without typing a file name or having it ask, name your file "Race.XML" and it will run it without asking.

Accuracy

There are at least two types of accuacy to check here. The first has to do with race behavior.

  1. Do the simulated cars show the same kinds of behaviors (starting faster, passing, catching up at the end, etc.) that they do in a real race? (that is, qualitative fidelity)
  2. Are the times and virtual dynamic measurements correct? (that is, quantitative fidelity)


As far as behavior goes, I think you will find that the simulation can reproduce every kind of behavior possible along trajectories, caused in more than one way. This does not include behavior on any other axis like staggering back and forth across the lane, median collisions or track hopping.

In theory, since interaction with the lane median is not modeled, the times should be less than in a real race and most other dynamic values like speed, more. How much less or more is the subject of the pages on drift in the science manual. I have checked this program's results against simpler programs and some theoretical calculations done by hand. The zero transition model doesn't dissipate as much energy at the abrupt join as it should, so the times tend to be a hundredth or two of a second faster. Comparing the catenary track results with those of the zero transition with no energy deducted at the join, cars are only a little slower (one or two hundreths of a second) on the catenary, as one might expect. The "no energy deduction" model is the same as the one described in the science manual without the cosO in the expression for v0 = ________ in/s = vrcosO on the evaluation page.

Future Development

Perhaps recoding in Java as an internet applet. I'd like to make the "S" track option available soon. As it is, these new 3,000 lines of object-oriented Turbo Pascal 6.0 (2000 more were reused) and this minimal documentation took longer than I had hoped. I just can't believe someone hasn't done this before me!

Back to Grand Prix Racing - All About Fast Pinewood Cars

Back to the Lastufka Labs Central Console

[Pit Area] [Title Page]

Grand Prix Racing - The Science of Fast Pinewood Cars
Copyright © 1997, 2004 by Michael Lastufka, All rights reserved worldwide.