The pinnacle of the undergraduate mechanical and aerospace engineering programs at Carleton University is a team-based fourth year project. These are multi-year projects which consist of 20-30 students who take over a design project from the previous year's students. They are intended to provide an experience similar to what the students will experience in industry. The current list of projects offered can be viewed here.

For this project I worked on the Carleton University Simulator Project (CUSP). My position was the integrator of the Simulation, Infrastructure, and Modelling (SIM) team. This meant that I was responsible for coordination between SIM and the other teams. I also designed and built a vehicle simulation testing infrastructure, which is presented below.

RVSIM is a road vehicle simulation infrastructure which uses Microsoft Visual C++ and MATLAB's simulink to provide a powerful, interoperable, and flexible interface for simulating and testing vehicle dynamics models. It separates each component of the simulation into a separate block that can have its inputs and outputs analyzed and recorded. The power of this system is that any component of the simulation can be interchanged with another simpler or more complex model without affecting the other components of the simulation. Once a model has been verified, C++ code that performs the same calculations as the Simulink model can be generated in a form that allows the model to be simulated within any software environment compatible with C++ code libraries.

This image shows the graphical view of RVSIM beside the scopes in Simulink which show the force acting on the vehicle model. The vehicle model used in this case is a 10-degree-of-freedom (DOF) model with 6 DOF for the car's general motion, and 4 DOF for each wheel's separate suspension system. The model runs at approximately real-time speed and can be paused at any time to check specific values of the forces and state variables. The forces modelled are shown in the following figure.

 

Each forces model is calculated within a C++ Simulink S-Function. These S-Function blocks are all connected together in Simulink. The primary subsystem which contains the majority of these calculations is shown below.

I developed the mathematics for each of the forces models, and the 10-DOF equations of motion were provided by a graduate student.

I presented my work in Carleton's IEEE papers competition and won 1st place. At the subsequent Eastern Ontario competition my work placed 2nd. Later, I was also accepted into a national Telus competition where my presentation earned me a runner-up position.

The document I produced for the written portion of the Telus competition is available here.