Pi engineers used MathWorks tools for Model-Based Design to create executable specifications, run simulations, automatically generate code, and create real-time prototypes for each of the three electronic control units.
Leveraging existing Ford designs, the Pi team worked with Ford engineers to develop a common hardware platform that would support all three planned ECUs as well as future projects. Using Simulink, engineers created a custom set of blocks that provide input, output, communications, and diagnostic services for a Freescale MPC555-based ECU. This shared platform enables the team to keep all application-specific functionality for each control unit in higher-level Simulink models.
Working from Ford requirements and with Ford engineers, the team then used Simulink to create models for each ECU, which defined data interfaces between subsystems.
Following a style guide to ensure efficiency, clarity, testability, and consistency, Pi engineers used Simulink to implement decision logic and control algorithms that would interface with the hardware platform through custom Simulink blocks.
The group used Stateflow to implement the state-based and sophisticated combinatorial logic required by the ECUs.
Using Simulink, the engineers then simulated the systems to validate functionality. This included testing modules that would be inaccessible at the hardware level in production. These simulations also enabled the team to easily test input combinations that would be difficult to achieve in the application running on target hardware.
The team used Simulink Coder and Simulink Real-Time to create rapid prototypes of the systems, which enabled development and real-time testing to progress before the target hardware was available. Later, code was automatically generated for the application, compiled without modification, and deployed onto the production MPC555 target hardware.
Pi performed extensive simulation-based and hardware-in-the-loop testing on each system. When test engineers identified problems during testing, development engineers resolved the issues in the model before automatically generating new code for follow-up tests. Throughout development, the team completed numerous iterations to incorporate design changes using this approach.
Ford customers are currently evaluating the fleet of fuel cell vehicles. Automatically generating code is enabling Ford engineers to make further changes to the software at a Simulink model level for formal development and experimental prototypes.
Pi Technology subsequently applied automatic code generation to add crank angle-based processing and I/O suitable for running gasoline engines, as the OpenECU rapid prototyping product. This has been applied in diverse applications, including engine management, CAN gateways, and catalyst modeling and control.