Table of Contents
Computer simulations and visualization are becoming increasingly important in solving modern engineering problems. These contemporary issues have such a large number of possible solution candidates that computational methods need to be used to trim down the candidate solutions to a manageable number before human analysis can be used to select the best one. Thus, simulations help reduce the costs with product design as they reduce the amount of time spent searching for the optimum solution. They also reduce costs as all the modeling is done virtually without the need of expensive scale models. As the selection of the most optimum solution is being carried out computationally using tried and tested engineering and physics logic, a way of analyzing and interpreting the results is needed. It is incredibly convenient that the human brain has a tremendous capacity to process visual data. Therefore humans find it easier to process and analyze data presented in a visual manner.
One of the major stumbling blocks to computer simulations is their lack of tangible reality. The user feels as if they are immersed in a completely artificial world, lacking any sort of concrete realism. The only way to truly immerse someone into an artificial world that seems realistic is to increase the number of sensory stimuli present in that environment. Along with visual stimuli, it can be shown that including the senses of touch and hearing are extremely beneficial. If these senses are used in concert, the experience becomes much more realistic and encompassing. Therefore, the creation of a realistic virtual world is aided by the use of several senses that work together to paint a sensory picture of the world that the user operates in.
In order to show that multi-sensory simulations are more realistic, an environment, which employs these conditions, must be designed. For this particular simulation, the focus will be on the addition of audio to a simulator. The environment must have a certain degree of measure for the improvements resulted from the addition of audio cues. The audio cues, however, must not be essential to the operation of the simulation. In addition to this, the simulation must also be of some value, where it agrees with the laws of physics and behaves in a manner that is realistic and predictable. The simulator must also contain controls that are easily used and relevant to the simulation. The design and implementation of these controls is essential to a successful simulator that operates in a way that the user would expect. The ultimate goal is a seamless combination of visual and audio stimuli with a relevant control system such that the operator of the simulator obtains a reasonable feeling of realism.
In order to efficiently approach the design of the simulator, the project was broken into four essential modules. These modules include: the environment, the audio, the physics engine and the controls. Each module was analyzed and developed separately. Once each module was completed, it was then integrated into the rest of the design. This design approach was chosen because it eliminated irrelevant considerations that might arise from developing one large module and enabled each module to be developed in a manner where they were somewhat portable.
The first step in designing a simulator that incorporates the laws of physics and audio cues in realistic manner is the choice of an environment. For this particular simulation, it was decided that an automotive simulation would be most appropriate. Automobiles are objects that most people have interactions with on a day-to-day basis and have an understanding on how they behave. This way, an accurate comparison can be made between the simulator and a real life scenario.
An automotive simulator can take on several different faces. A design that focuses on city driving or country driving could be used. These two concepts were decided against in favor of a simpler concept, which would, in the end, provide a more concrete basis for comparison. A racetrack type of environment was decided to be most appropriate in terms of keeping the operators interest and providing relevant performance differences. The benefits of this choice are that other variables can be left out of the simulation, such as pedestrians and ambient noises that are not associated with driving. In addition to this, it is much easier to analyze a driver’s performance in a racing environment because there is no way to measure a driver’s performance in a town-driving scenario. The disadvantage is that most people are not familiar or used to driving a high performance racecar and might find themselves in trouble in the simulation.
The racetrack environment proved itself to be very suitable for the addition of audio cues. There are several aspects about racing which audio is essentially important. These areas include throttle response, braking and sliding and other cars attempting around the operator.
In order to start the design of a physics model, the car must be chosen so that it can be modeled appropriately. Since the environment was chosen to be a racetrack, it did not make much sense to model a normal passenger car. With the choice of a more advanced car came the development of a more sophisticated physics engine. A normal automobile would not experience the same forces that a racecar experiences. Additional considerations would need to be employed to make the experience believable. These considerations would include:
1.) Velocity dependant aerodynamic down force
2.) Velocity dependant aerodynamic drag
3.) Non-linear tire models
4.) Velocity dependant friction coefficients
5.) Changing traction forces with wheel spin and surfaces
6.) Slip angles
7.) Brake model and engine braking
8.) Realistic engine model
9.) Realistic transmission
Why bother with audio?
The first question that may come to mind when seeking to integrate audio into any virtual reality presentation might be “Why bother?” After all, the most significant part of the simulator experience involves accuracy in coordinating realistic equations with a sophisticated visual presentation. In fact, most simulations focus primarily on the visual effects while neglecting the sound characteristics. However, it can be shown that neglecting sound effects results in a disjointed sense of the environment that is being created. A good example might be someone who attempts to watch television with the sound off. That individual would end up missing the real experience. Since the simulator’s main goal is to immerse the user in the virtual environment, it is essential that sound effects are incorporated.
Audio Hardware
Due to the
limited budget that was provided for the project, it was essential that any
concept design should utilize equipment and materials that were readily
available for use. The NYSCEDII center
at the University at
There were two different options when considering program platform. These two options were the Irix platform developed by Silicon Graphics or the conventional Windows platform developed by Microsoft. The Irix platform is much more powerful, enabling such features as three-dimensional stereo graphics as well as the same performance in audio reproduction offered by Windows. The downside to Irix is that it is incredibly complicated and fickle. The programming software is not very user friendly and is mainly designed for advanced programmers. Windows, however, has a much more friendly user interface and is a platform that most people are very familiar with. In addition to this, anything programmed in Windows can be ported over to an Irix platform so that improvements in the program can be made in terms of three-dimensional stereo graphics and motion base support. In terms of actual programming, both platforms use the OpenGL format. Therefore, in terms of graphics programming, Windows is the better choice.
Several different software platforms were considered when creating the sound effects. These platforms were the same as the graphics options but had one thing that was not consistent. The SGI Irix platform used a sound server to input audio into a program. The option for Irix was a program called VSS. Windows supported the OpenAL platform, which had built in programming capabilities that could be easily incorporated into the main OpenGL program. After a few weeks of comparison, the decision was made to go with the Windows based platform primarily because of the lack of programming experience within the team. The Windows platform would be much easier to use because of its familiarity.
The control system needs to be developed so that it is consistent with the theme of the simulator. In this case, a steering wheel would be most appropriate for an input. In addition to this, a way to control braking and acceleration is needed. Racecars do not have an on/off switch for their brakes and throttle. There is a pedal that provides a progressively stronger force with linear motion. A control system that incorporates a realistic throttle and brake input is needed to make the simulation most realistic.
Once the conceptual design was finished, the specific details relevant to each module would need to be worked out and developed. Since each module was developed separately, every module contains its own operating parameters and assumptions. Although these modules were developed separately, collaboration, in terms of design compatibility, was stressed so that there would be minimal issues when the modules were integrated for the final design.
As mentioned before, the chosen environment is a racetrack. The environment is the backbone to the entire simulator. Each module will be placed into the environment, which would then make up the final simulator.
The design chosen for the environment is an object-oriented design in OpenGL and C++ where everything that is loaded into the environment is an object that would be created by the simulation at runtime. Object-oriented design has a performance penalty associated with it as opposed to a procedural approach. This is due to creation of objects at simulation runtime, which impose additional computational overhead. However, the benefits of an object-oriented approach vastly outweigh its drawbacks.
One of the positive aspects is that an object-oriented approach provides data encapsulation, which enables each object to know what it is. This object could take the form of a racecar, a tree, a building or a bridge. Since the object knows what its purpose is, it also knows how to interact with both the environment and other objects. These aspects of an object-oriented approach to design enable the design team to accurately model real-life and avoid complicated instructions to specific aspects of the simulation. An example of this case is where a racecar is assigned certain properties such as color, and traction. In this way, the racecar knows how to interact with other objects which might include stopping, skidding or rolling over when it collides with a tree.
During the prototype phase of the design, an object-oriented approach would provide for code reuse through inheritance reducing the amount of time used in developing the environment. It also results in a simulation that is much easier to debug and maintain as the code is much more readable and sources of error are more centralized.
The racetrack itself is modeled as an object that incorporates a series of straight and curved sections to create a dynamic driving environment in which all the dynamics of the car can be tested. The racetrack object renders itself on the screen as a series on adjacent quadrilaterals with an asphalt road texture on them. It also has certain intrinsic properties such as friction coefficient that would be used by the racecar object’s to model its dynamics whenever they interact.
The other objects in the environment are trees, grandstands, bridges and skyscrapers. These objects are also aware of how to interact with other objects, for instance the racecar object is able to detect when it is on the grass object or on the racetrack object and automatically use the right physics simulation to realistically recreate the experience.
The objects also have collision detection functionality. This is achieved by placing a bounding sphere around these objects that triggers an event informing the simulation whenever another object is in very close proximity. For example, if the racecar crashes into a tree, both the tree and the racecar’s bounding spheres trigger an event that in addition to providing an audio cue for the crash, would also alert the racecar’s physics engine to react appropriately e.g. stopping or rolling the car depending on the severity of the crash.
Since the environment has perspective, addition of these objects creates a more believable depth perception, as objects in the background appear smaller than those in the foreground. Fog has also been added to the environment to increase depth perception as a skyscraper in the distance not only appears smaller but is slightly obscured by the fog. All these add up to create a realistic driving experience as the scene changes as you drive with trees and buildings in the distance appearing small and fogged out but larger and more defined as you get closer to them.
The governing equations of the simulator must be consistent with what would actually occur in the real world. In order to provide a realistic response without adding an unwanted degree of complexity to the system, the Bicycle Model approach was chosen. This model is the simplest model that will give meaningful and realistic results. In the Bicycle Model, each end of the vehicle is represented by one tire. This model assumes that there is no load transfer and no suspension. A simple diagram of the Bicycle Model is outlined below:
CGCG
![]()

Where:
B = Distance from Center of Gravity (CG) to rear axel
A = Distance from CG to front axel
Beta = Vehicle sideslip angle (+ shown above)
Delta = Steer angle (+ to the right)
The car that was chosen to operate in the simulator is well suited for the model. It was decided that the simulator be designed as a Formula 1 car simulator. The car that was chosen is the Ferrari F2000 Formula 1 racecar. A Formula 1 car is appropriate because it contains a very travel limited, stiff suspension so there is little to no body roll and pitch. The car is wide enough so that there is much less load transfer between wheels than any other conventional car. The basic specifications for the car are listed below:
a b w
![]()
[1]
a = 1.75 meters
b = 1.32 meters
l = 3.08 meters
w = 600 kilograms
The physics model for the car was broken into several different subsystems. Each system has its own set of constraints and values that are relevant to its operation. The systems that are present on the car model are as follows:
1.) Engine
2.) Transmission
3.) Aerodynamics
4.) Tires
5.) Brakes
6.) Governing Motion Equations
Formula 1 engines are very unique because they rev to extremely high RPM’s and put out a great deal of power. Modeling an F1 engine is not an easy task because the power curve is quite large and extends over a vast region. A typical Formula 1 engine will redline at 18,000 RPM. In order to design the program such that it outputs the correct engine power at any given RPM, a torque curve was developed. The torque curve for the Ferrari F2000 engine that was developed for this simulation is located in Appendix A. With the use of this curve, the engine model will output the correct amount of torque based on the speed of the car and position of the throttle. To obtain the actual torque output by the engine, the maximum torque at the given RPM of the engine is multiplied by the throttle position. In pseudo-code, this would look like this:
F_engine = (-2E-14x4 + 5E-10x3 - 6E-06x2 + 0.0476x + 29.43)*Throttle_Position
Where x represents the RPM that the engine is operating at.
It can be shown that when the throttle is in the null position, the engine acts as a brake on the car. The pseudo-code for engine braking would be as follows:
If (Throttle_Position = 0)
F_EngineBrake = (RPM/60)*.74 [2]
The actual output of the engine to the wheels is quite different than just the torque output by the engine. The characteristics of the transmission are needed to obtain the actual torque output to the wheels.
The transmission is the part of the driveline that is responsible for multiplying the torque from the engine to the wheels through changing sets of gears. The Ferrari F2000 has seven forward gears, one gear in reverse and a differential gear. Since exact gear ratios for Formula 1 cars are not available, reasonable ratios were determined using velocity calculations based on wheel radius and differential ratio. The gear ratios for the transmission are as follows:
|
Gear |
Ratio |
Top
Speed at Redline (Km/h) |
|
1 |
7.83:1 |
77.25 |
|
2 |
4.76:1 |
127.01 |
|
3 |
3.70:1 |
163.01 |
|
4 |
3.18:1 |
189.90 |
|
5 |
2.68:1 |
225.70 |
|
6 |
2.08:1 |
290.01 |
|
7 |
1.73:1 |
349.01 |
|
R |
14.2:1 |
42.59 |
|
D |
3.7:1 |
N/A |
Note: Redline = 18,000 RPM
The calculations are shown in Appendix B.
The model for the transmission was designed to be automatic. The layout of the program will calculate the optimum shift point and change gears for the user automatically. This is designed to operate for up shifts as well as downshifts.
The transmission does not transmit torque to the wheel at once-hundred percent efficiency. The actual efficiency of an F1 transmission is not available. A typical automotive transmission has an efficiency of around seventy-five percent.[3] Since F1 transmissions are much lighter and more expensive than an automotive transmission, it can be assumed that they are also more efficient. For the simulator, the estimated transmission efficiency is eighty percent. The pseudo-code for the operation of the transmission and the engine appears as follows:
Drive_torque = F_engine * Gear_X * diff * n_g
Where X is equal to the gear the transmission has engaged, diff is equal to the differential gear ratio and n_g is equal to the transmission efficiency.
The aerodynamics of a Formula 1 car is much different than a normal passenger car. Generally speaking, passenger cars will become lighter the faster they drive. A Formula 1 car is the complete opposite. The aerodynamics of the car are important because they enact vertical forces on the wheels of the car. The aerodynamic elements also enact drag forces on the car. In a realistic physics model, these factors must be taken into account because the car will handle differently as velocity increases.
C_D = 0.934
![]()
![]()
![]()
![]()
![]()
![]()
![]()
[4]
C_LF = -0.966 CL_U = -1.080 C_LR = -0.899
The values shown above are the coefficients of lift for the aerodynamic elements on the car. The C_D value is the overall drag coefficient for the car. These values are part of a formula which gives the aerodynamic forces for the car. The pseudo code for the lift forces which the aerodynamic elements apply to the front of the vehicle are as follows:
Fz_f = ½ * rho * V2 * C_LF * A
Where rho is the density of air, V is the velocity of the vehicle and A is the cross sectional area of the front wing. Note that since C_LF is negative that the forces applied by the aerodynamic element cause a negative lift force. The rear wing and underside of the vehicle provide the same types of forces with similar equations.
The drag forces present on the vehicle are determined by using the overall vehicle drag coefficient. The pseudo code for the drag forces on the vehicle would appear as follows:
F_wind = ½ * rho * V2 * C_D * A
Where A is the cross sectional area of the car, V is the velocity of the vehicle, rho is the density of air and C_D is the overall drag coefficient for the car.
While the values for the cross sectional area of the Ferrari F2000 and the coefficients of lift and drag are known, the cross sectional area of the wings themselves as well as the underbody of the car is not known. However, it is known that at maximum velocity, the Ferrari F2000 produces twice its weight in down force. Knowing this, it is possible to determine the areas of these respective elements using simultaneous equations. The solution to this is found in Appendix B.
The tire is a part of the car that is incredibly sensitive to load. As load increases, the tires ability to produce lateral and longitudinal forces also increases. This is why a constant coefficient of friction and a constant cornering stiffness are not feasible for a Formula 1 car model. Tires are sensitive to load, slip angle, coefficient of friction, slip ratio and inclination angle. Inclination angle deals with suspension geometry, which is not a factor in this model. The slip angle is the difference in the angle of the tire relative to the direction it is traveling in. Slip ratio is the ratio that the tire is spinning relative to the road surface. An equation that describes slip ratio in a tire is defined as follows:
Slip Ratio = (w-w0)/(w0)
Where w = angular velocity of the wheel, w0 = V/Re
Where Re = effective radius (number of revolutions per mile)
An example of this is where the tire is spinning faster than the road is going by. A slip ratio of 0 is perfect traction. A slip ratio of –1 corresponds to tire lockup (full slide) and a slip ratio of 1 corresponds to complete wheel spin. The numbers in between these values are varying degrees of these cases.
As the velocity of the car increases, the aerodynamic elements of the car apply greater and greater amounts of down force to the tires. This, in turn, changes the tire model. The two characteristics that are sensitive to load are coefficient of friction and the lateral force that the tire can apply to the road. In order to accurately measure a tires performance, several curves of lateral force versus slip angle are needed. Shown below are the curves for the front and rear tires of the Ferrari F2000 using Bridgestone Potenza tires:


As shown in these graphs, an increase in slip angle corresponds to an increase in lateral force. This increase, however, is limited by the breakaway slip angle, or the slip angle that the car will break away from the pavement and slide. In order to achieve a tire model that constantly adjusts lateral forces based on down force a few equations needed to be developed. First, the breakaway lateral force was divided by the breakaway slip angle for each curve. This number became the y coordinate. Then, the normal force for each curve was taken as the x coordinate. These values were plotted against one another and a trend line was fit to the data. Therefore, the trend line equation became a function of normal force. In order to obtain the lateral force at a given slip ratio, the normal force was plugged into the equation and the resulting value was multiplied by the slip angle that the model was currently operating at. The coefficient of friction of the tire is also dependant on normal force. The equations and graphs corresponding to these cases are located in Appendix A.
The braking model on the car is very much like the traction model. The brakes provide a wheel torque, which in turn provides lateral forces to the car via the tires. Therefore, the braking forces are affected by the same elements as the traction forces. In order to model the brakes on a Formula 1 car a few things must be realized. The brakes are very much different than the brakes on a passenger car. There is no need to worry about brake fade or overheating because the carbon-carbon disc brakes work better at higher temperatures (to an extent, but we will neglect temperatures that are extreme). In addition to this, the brakes have enough power to stop the car at a 4 g deceleration while at top speeds. The brakes can only provide this type of deceleration at high speeds because anything much lower than this and the tired will break free (remember the tires work better at higher speeds). Therefore, the tires are dependent on slip ratio. There isn’t any data on the braking torques that the carbon-carbon brakes can apply but some information can be extrapolated to obtain a reasonable answer. Since it is known that the car can decelerate at 4g’s, the brakes must have enough power to do so. The limiting factor can be shown to be the tires ability to keep traction. Therefore, a Formula 1 car weighs 600 kg and at 4 g acceleration, the force required to accelerate the mass would be the same as the force required to decelerate the mass:
F = m*a