Jason is the Embedded Systems Development Manager at DISTek Integration and has been with the company since 2006. Jason has experience with Electro-hydraulic control systems, algorithm design, software architecture, transmission modeling, and large system software simulations. He is proficient with Matlab, Simulink, Stateflow, Simulink Coder, Simscape, SimMechanics, SimDriveline, C, and C++.
The book Team of Teams, by Stanley McChrystal, covers a lot of topics that strongly relate to the direction that DISTek is heading. Some of these concepts, such as shared consciousness, cooperation across silos, localized decision-making, and information sharing, I hope to write about in future blog posts. In this blog, however, I will discuss how the structure of Team of Teams fits with DISTek and how we are setting up our organization to be adaptable to growth.
For software engineers who use Simulink to do Model Based Software Development (MBSD), the ability to manage variables, also known as signals and parameters in Simulink, has always been a challenge. It has been possible but not without shortcomings, especially when dealing with large software systems.
For those not familiar with Simulink, Here is a brief outline of what the past issues have been.
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.