Dr. Joe Porter is a research scientist studying embedded software systems design at Vanderbilt University’s Institute for Software Integrated Systems (ISIS).
Their most recent project focused on modeling and simulating large vehicle designs. Joe led the integration of custom tools for modeling controllers, generating code, and simulating the results of the controller code.
As Joe builds out demo controllers, he runs a multitude of simulations. He uses Initial State’s various tools to help him more effectively generate and simulate model-based controller code.
Model-Based Controller Code Generation and Simulation
Joe and his team created a set of modeling tools that automatically integrate generated Simulink controller code into a larger vehicle simulation for testing and verification.
Transmission Control Logic
Joe told the Initial State team, “our main example consists of a set of controllers for the vehicle transmission: to determine the next gear setting and to signal the torque converter to lock out changes when appropriate.”
Shift Controller Logic in Stateflow
Debugging the Generated Controller Code
When Joe debugs the controller code, he compares the signal trace from the simulation against traces from the reference logic.
Essentially, we simultaneously debug the modeling tools, the code generator, the controller logic models, and the generated code. I have to find any bugs quickly, isolate them to a particular layer, and create a fix. Normally I would use Matlab: write a handful of scripts to handle the different formats and data types, and then manage the log data files myself to do the comparisons.
Using Initial State Log Visualization
Joe joined our Beta program a few months ago.
He uses Log Manager to keep his most recent log files organized, particularly as he makes changes to the code generation tools.
The side-by-side visualization of Waves helps him find and fix problems much more quickly. Joe simply modifies the simulation code to produce time-stamped log data.
“It’s a great tool,” Joe writes, “straightforward to use and gets me to the problem very quickly.”