30 years ago DISTek founder Matt Dickinson took a leap of faith and stepped away from his Monday – Friday job at a company in the St Louis, Missouri area and started a consulting business from his basement. It is those humble beginnings that would lead to the formation of DISTek and pave the way for what it is today.
In June of this year I had the opportunity to attend our DISTek-led Modeling and Simulation training course. Currently, I am the lead of the Automation and Test group here at DISTek, but in my previous roles I have been heavily involved in desktop application development, as well as test system development primarily using LabVIEW. My exposure to modeling and embedded has been somewhat limited thus far, so I thought it would be a good experience to learn some of the basics.
Somehow we find ourselves at the beginning of September already and for those of us here at DISTek, it means that the annual SAE COMVEC show is just around the corner. This year’s show will once again be held in Rosemont, Illinois at the Hyatt Regency O’Hare September 11th – 13th. DISTek will be involved in several capacities from sales hosting a booth on the exhibit floor to engineering attending the technical sessions and panels to stay up to date on the latest technology. We are also pleased to have one of our own, Daniel Aceituna, featured in an expert panel discussion.
Have you ever played the game “telephone”? It’s where you have a line of people and starting on one end someone whispers something into someone’s ear. That message is then passed on to the next person and so on and so on. Once it reaches the final person, you may find out that the message was misinterpreted. “Big dog” may have changed to “bed bug”. This is one of the major problems that have plagued software design and something I see on a regular basis. Engineers receive requirements that were already passed down through other people, so the engineer is left to interpret them the best they can.
Every software engineer knows there are strengths and weaknesses to every programming language/architecture. Trade offs must be made to improve certain aspects of the system. AUTOSAR is no different. The key is finding the right tool for the job by determining which aspects you need more of and which you don’t. During my time working with AUTOSAR, I’ve found some aspects that AUTOSAR does well and some that it doesn’t. I’ll start with a brief overview of what AUTOSAR is and then jump into the nitty-gritty.
It’s been a crazy couple of weeks around the office. We’re moving what feels like a thousand miles a minute as we put the final touches on our presentation for CONEXPO-CON/AGG 2017. Yes, you read that right, the DISTek crew is headed to Las Vegas next week for THE international construction industry show. This year’s show is running March 7 – 11 at the Las Vegas Convention Center.
Recently my team was given the opportunity to completely redo a particularly messy and troublesome piece of legacy C code, and as a team we decided to give MBSD a try. We had tried a few simple models before, all of which turned out to be more complicated than had we written the C code ourselves. But this time we were determined to do it right: we allocated plenty of time, received one-on-one training from the local MBSD guru, and reviewed the original requirements to ensure they met the needs of the system. Finally after exhausting all of the time, continually pestering the guru with questions and modifying the requirements several times, we succeeded in having a model based software design that actually worked the first time we tested it on the vehicle. It was a valuable experience overall and helped illustrate the drawbacks and benefits of MBSD over the typical C development.
When I was attending classes at Northern Illinois University in pursuit of a Computer Science degree, I enrolled in a class called Software Engineering. The general idea of this class was training in the ability to elicit requirements from someone without a knowledge of how software works or how it should be created. The thinking was that someone with a better understanding of how a system should work would be led into providing the guidelines for the implementation so that the software developer could create their vision. But what if there was a way for that person to directly transfer their ideas into software, leaving the developer free to work with lower levels of implementation and the real nitty-gritty of the development?
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.