Codementor Events

How and why I built I built a library of functions in matlab that interacts with a vehicle calibration software to automate engine testing

Published Jul 31, 2024

About me

I am an automotive engineer with close to ten years of experience who loves scripting.

The problem I wanted to solve

Misfire monitor, as the name implies, monitors missed combustion cycles as a California Air & Resources (C.A.R.B.) regulatory requirement. For their approval of sale they require verification of adequate detection of engine misfiring at all engine operating points. For the 4 cylinder engine I was working on, this came out to be 308 speed load points total (since there are 7 types of misfire) that required tuning and verification for. This can become quite the headache and requires two people for testing - one to set the override switches in the calibration software to each engine speed / torque, name/start/stop the data recorders, and finally post process the data.

What is I built a library of functions in matlab that interacts with a vehicle calibration software to automate engine testing?

I built a library of scripts called by the main script which does all of the above without human involvement. I used to have to go to a test track with an intern when they were available to record misfire data. Now I could collect data on my way to and from work.

Tech stack

I used Matlab and our calibration software ATI Vision

The process of building I built a library of functions in matlab that interacts with a vehicle calibration software to automate engine testing

Initially i tried for many months to get a function to work to no avail. It was too complicated to be done in one long script. Then I had the brilliant idea to make smaller building blocks that i could call that would do things like start the recorder or set the engine speed and this was a game changer.

Challenges I faced

Initially keeping the code organized before I created a library of Blackbox functions

Key learnings

Everything is easier when you start with simple tasks and build complexity

Tips and advice

Final thoughts and next steps

Discover and read more posts from Joshua Boerger
get started