Student Lounge

Sharing technical and real-life examples of how students can use MATLAB and Simulink in their everyday projects #studentsuccess

From Design Engineering to Race Engineering

Today I’d like to introduce a guest blogger, Håkan Richardson, who presented in a racing lounge video a while ago. I hope you enjoy to read about how he evolved from a student who is passionate about student competitions to a race engineer at RYS Team WP Performance, and to learn that MATLAB is still part of his job.

© Joel Kernasenko, 2017, Data acquisition on the move at Slovakia Ring

The early stages of any learning experience are always intense. At the time of writing, it is precisely four months since I was on the pit wall for the first time, in a real racing series. The numbers from the timing screen and radio messages from the driver mix in a wonderfully hectic environment as the cars roar by on the track. This was on an Italian race track, and a night race on top of that… Pinch, and then get right back into the race!

My name is Håkan Richardson. I’m a student at Chalmers University of Technology, studying Automotive Engineering with a background in Mechanical Engineering. Throughout my time at the university, I have taken part in several projects that involve cars, and with two years in Eco Marathon and Formula Student respectively, I was keen to continue with a career in motorsport. For me, these projects taught me a lot about how to design a race car, but the part I really enjoyed was the intensity of the races and understanding how to maximise the performance on the track. I got word of a new programme called Reiter Young Stars, where student groups of three would get to run a small racing team. This was six months ago, so here are some early thoughts about the challenges of Race Engineering.

Reiter Young Stars

Founded by the German racing team Reiter Engineering in 2016, the programme offers teams of three students and two young drivers the opportunity to compete with a KTM X-Bow GT4 in the European GT4 Series Northern Cup. The aim is to offer young talents a way to enter the world of motorsport in an environment that presents the challenges of a professional series, while still being offered guidance from experienced Reiter representatives. Two of the students are responsible for aspects that come with the role as Race Engineer, while the third student is Team Manager, focused on coordinating the work and handling external relations. Contrary to a normal racing series where the position as the chequered flag is waved would be the sole measure of performance, Reiter Engineering have created a point scoring system which allows for individual performance evaluation of engineers, managers and drivers. For engineers, aspects like interaction with the mechanics, quality of documentation, radio behaviour and data analysis are rewarded. The manager is given points on criteria such as ensuring exposure of sponsors, team members following deadlines and safe operation in the pit lane. The team is also given points based on how close they can get to the lowest allowed fuel level in a qualifying or race session, but also how close they get to the minimum time required for the mandatory driver change during races.

The two winning drivers as well as the winning student team, get a fully supported season in the Blancpain GT3 Series.

© Joel Kernasenko, 2017, Track walk at Red Bull Ring

Weekends at the Race Track

A typical weekend would start with arrival at the track by Thursday morning. All student teams help to build the Reiter paddock before diving into activities such as driver briefings, scrutineering and track walk. During Friday, there will be two practice sessions, allowing drivers to familiarize themselves with the track and engineers to find a good setup of the car. Saturday begins with two qualifying sessions which determine the starting order for both races. During the afternoon, the first race is on. The lights go out as the rolling grid nears the main straight and it’s a great combination of grabbing every opportunity of overtaking and staying out of trouble. Sundays present an opportunity to either correct what went wrong in the first race or to further re-enforce that you can be quick around the track. As the visor go down, the headset is on and the sector times start coming in, you understand why motorsport is special.

A Shift in Mentality

Many of the students who take part in the 2017 edition of the Reiter Young Stars programme have a background in Formula Student or similar projects. With that said, it is important to remember that Formula Student at its core is a Design Competition. The racing components is limited to only a few dynamic events and head-to-head racing is not allowed. While the fundamentals about team work, chassis dynamics or whatever one might learn will be of great value, switching to pure race engineering requires a shift in mentality.

I and my co-engineer, Eric Karlsson, have spent two years in Formula Student together, primarily focused on suspensions. Looking back at that project, it is striking how much time we’d spend preparing models, doing calculations and making plans, in comparison to realizing the potential of the package.

Now, it’s much more about execution and trying to focus on the most critical things before the next session starts. It is a thrilling situation, which in the beginning can be frustrating as you feel a lack of data to support a certain decision. However, it is a true test of how you can apply your engineering skills without needing a few minutes to think or run through the handbook.

The same goes for session planning. We expect our primary race strategy to fail due to unforeseen events on the track, but it forces us to have fall-back plans and the mental agility to grab an opportunity that presents itself in the numbers of the pit wall. Our team manager, Jon Jaleby, sets a plan for the weekend. This includes details such as when the radio communication should be established to when tyre nomination forms should be filled out. However, external parties often impose sudden changes, forcing the schedule to be thrown out in an instant. At that point, you need to carry out quick re-planning and ensure that engineers and drivers are aware of the new plan.

A Different Use Case for MATLAB

I’ve been a keen user of MATLAB for many years. Typically, it’s helped me to either develop models for solving various engineering tasks or to process large data sets. However, the more I work with the track side of motorsport, the more I realize the need for software that can handle certain routine tasks so that I can focus on the more urgent things that arise. Much of it is based around the concept of collecting information from an external source, extracting relevant information and presenting it in a way that can be overviewed quickly.

A great example would be weather prediction. There are web services that offer track specific forecasts which obviously can be viewed in a web browser, but that takes time and forces you to remind yourself of checking it regularly. The time slots for the major events of the weekend can be stored in a spreadsheet and once the two are loaded, alerts about rain or other relevant information can be displayed through some nice interface, removing the manual work.

While the standard MATLAB way of doing web requests is great for loading pre-rendered pages, images or data from a given API, it lacks the ability to wait for web scripts to finish before extracting the content. This caused a lot of head ache before I was made aware of how to use COM-objects to solve this problem. In true MATLAB-forum spirit, I’ll therefore share a few lines of code which has helped me to get both weather information and live timing data.

The following opens a web browser, optionally makes it invisible, navigates to a specific address and waits for the page to load.

web = actxserver('internetexplorer.application'); 
web.set('visible',0);
web.Navigate('http://example.com/');

while~isequal(web.get('ReadyState'),'READYSTATE_COMPLETE')
     pause(0.1)
end 

At this stage, content might still be pending from scripts which are working in the background. One way of waiting for a table to be created is described below.

while  length(strfind(web.Document.body.outerHtml, '< tr')) < minRows
     pause(0.1)
end 

Once the page is finished, the full content can be stored, before undergoing further processing.

html = web.Document.body.outerHtml; 
web.invoke('Quit'); 

Whenever it’s time to present the data, I like to use a standard figure, but turn it into a full
screen window running on a separate computer so that it is purely used for quick glances. WindowAPI by Jan Simon works great for this and it’s available on Matlab Central File Exchange.

f = figure(); 
WindowAPI(f,'Position','full'); 

Entering the Field of Motorsport

As still being very new within professional racing, I have asked many experienced engineers about how they got into their line of work. For most of them, it’s about a spare time hobby which has developed into a profession, and I do believe that it’s highly beneficial to understand the culture of motorsport through an activity that is based around passion and not salary. It is for sure an exciting job in many ways, but many witness about the misconception of the supposed behind the scenes glamour of the sport. Once trying it out and getting to see even the experienced people work double shifts during the weekend to make it work and go faster, you realize why it takes genuine passion to enjoy this line of work. However, when the hard work pays off and the chequered flag is waved, it’s all worth it! I would recommend any student with a passion for motorsport to apply to future editions of Reiter Young Stars. It has been an extraordinarily valuable experience and we are very grateful to have sponsors like Reiter Engineering, WP Performance and Chalmers to help make this possible. Hope to see you on a race track somewhere soon!

© Joel Kernasenko, 2017, The KTM X-Bow GT4 at Slovakia Ring

|
  • print

Comments

To leave a comment, please click here to sign in to your MathWorks Account or create a new one.