We were asked to assist in the development of the controls for a complex construction machine using Model Based Software Design (MBSD). This was the first project in which the OEM used MBSD and therefore it was a high-visibility project.
We faced many challenges in this project. The control algorithm was very complex, and had already been developed by the OEM in Matlab – the accuracy of the implementation of the algorithm was critical. Verification of the algorithm was a key component of this project. Adding to the complexity, the input signals to the system were very noisy and required disturbance rejection. Any instabilities in the system had the potential to cause injuries or property damage, so it was key to tune the system properly. Requirements for the project were also being developed in parallel to implementation.
To meet these challenges, we used MBSD to implement the system using Simulink. We were able to directly compare the Matlab algorithm to Simulink and verify the accuracy of the implementation. Auto code generation allowed a fast feedback loop for the OEM to perfect the algorithm and verify the changes on the machine almost immediately. MBSD also allowed rapid implementation of new features as the requirements were defined, and helped to avoid software “patches” to fit in the new code – avoiding code maintenance nightmares.
The final result of this project was an entire MBSD process which provided a one-click solution from the modeling domain to the embedded target. The model allowed discovery of a design flaw that required an additional sensor early in the process while it was less expensive to modify the machine and the software, and ultimately created a wildly successful product that blew away the competition. Mathworks tells us that one of their other customers came to them for help because the machine we worked on was so smart it made their product almost obsolete.