“Engineers working on IoT devices have to expand their thinking to the whole system, even if they are not building it all.”
Jim Tung, fellow, MathWorks Inc. speaks to Janani Gopalakrishnan Vikram about the complexity posed by the IoT, the mindset change required for engineers to handle this with sophistication, and how model-based design can help in this.
Can you give us a glimpse of what kind of complexity the IoT poses for engineers designing devices for this era? What mind-set change is required for engineers to handle such complexity in a more efficient way, without getting flustered?
The Internet of Things (IoT) emerges out of the convergence and evolution of several existing technologies. Much like the traditional Internet and World Wide Web, it is an ecosystem of technologies working together to create dynamic systems of physical devices and information. These systems may do several things like provide data, aggregate data provided by multiple systems, analyse the aggregated data to derive useful information and trends, present the information and trends to users in a timely manner on a range of platforms, including Web, mobile devices, and desktops/laptops, and change the system’s own behaviour based on the derived information and trends.
So the complexity of the IoT can be seen in:
a) The flexible and smart embedded systems, and systems of systems, that collect data and often solve specific problems locally
b) The sophistication of algorithms needed for data scientists to extract insight from the data and for system developers to build systems to operate and adapt autonomously; these algorithms may combine feedback control, computer vision, and machine learning, for example, and may include algorithms not yet imagined
c) The need to deploy algorithms quickly to where the data resides so that analysis takes place as efficiently and quickly as possible, whether the embedded processors and FPGAs are in a local node, multi-core server farms, or the cloud, perhaps using computational frameworks such as Hadoop
Engineers working on these systems of systems, or any of its components, should understand, at least at a high level, the requirements of the system as a whole and the capabilities of each of the subsystems. Creating an embedded system for a local device, for example, is only one part of designing an IoT system; if the engineers don’t understand how the data it generates might be used, they might design an embedded system optimised to a local problem, rather than the whole challenge. They have to expand their thinking to the whole system, even if they are not building it all.
Automating development tasks, such as code generation for embedded systems or deploying algorithms into a production IT infrastructure can also reduce complexity in key areas. The technology is well-proven, but it often requires a change in mindset to take advantage of it.
How can model-based design help here?
Model-Based Design (MBD) using Simulink, Stateflow and MATLAB, helps in several important ways. The models enable the engineer to think at a higher level of abstraction, which in turn makes it easier to conceptualise the entire system. Simulating those models enables the engineer to evaluate and improve the system’s behaviour across a wide range of scenarios, including those that are difficult to replicate in real life. Automatic code generation means fast and robust implementation to devices ranging from FPGAs and microcontrollers, to SoC devices such as the Xilinx Zync, to rugged industrial PLCs.
MATLAB and Simulink can also connect directly to popular low-cost and open-source hardware such as Arduino and Raspberry Pi, without the need for a code generator. Tethering and targeting the hardware support packages enables makers and developers to create devices of the future with today’s tools.
Since MBD provides capabilities for simulating the behaviour of the physical system, and not just the algorithms, it is very useful for developing algorithms that require comparison to a reference model to assess the behaviour of the system and detect anomalies.
How does MATLAB help handle complexity with ease, in the specific case of IoT products?
The MATLAB data analysis environment and the MATLAB language have a key role to play in IoT systems, alongside Simulink. The MATLAB Desktop is the ideal environment for engineers and scientists to explore, visualize, and gain insight into the data acquired by the IoT system. In addition, MATLAB can be used to develop and refine the algorithms that make up the “brains” of an IoT system. In addition, the MATLAB language is an ideal language to express the complex algorithms needed by these systems. Maintaining this intellectual property in a high-level language insulates you from the inevitable infrastructure churn that will accompany the evolution of the IoT.
Everybody seems to have an IoT slant to their operations now – what about MathWorks – do you have any specific vision for the IoT?
Our goal at MathWorks has always been to accelerate the pace of engineering and science, by providing tools that enable technical professionals to conceive, implement, and apply their innovative ideas. As I have discussed, the capabilities we have put in our products over the years are immediately relevant and useful for the IoT. The Internet of Things really just provides an opportunity and context; what it becomes will be the result of what engineers and scientists build with it and on it. At MathWorks, we expect our users to be at the forefront of that activity, both in research and in development.