Keynote: Model-Based Design for Digital Engineering: Impact and Directions
Model-Based Design has been a reliable and powerful framework for designing complex systems for more than two decades. Today’s engineers are confronting new workflows influenced by trends in software development, the integration of AI, and cloud computing. Learn how MathWorks is investing in Model-Based Design to deliver critical capabilities to automate design tasks, prevent defects, and scale to increasingly complex digital systems.
Published: 10 Nov 2023
This is the keynote talk. The opening line of the abstract for this talk said, "Model-based design has been a reliable and powerful framework for designing complex systems for more than two decades." And in the astonishingly fast-moving world of high tech, that's pretty remarkable.
Still today, 25 years on, model-based design is enabling technologists at so many companies, including many of you in this room, to engineer great products. Prove out systems for autonomous and electric vehicles. Design next-generation wireless systems. And beyond electric vehicles, make green energy a reality.
Now, we can abstract those three systems out to three broad application trends-- autonomous, the drive to autonomous vehicles and autonomous systems; connectivity, more and faster connections between devices and people; and electrification, the shift to electric vehicles and green energy.
Now as you gathered this morning, we asked you which of these applications you were working in, and hopefully people responded. So let's take a look at the results.
OK. So autonomous-- half the people-- and you could select more than one. So a lot of work in autonomous systems, electrification coming in at a close second, and wireless connectivity. So great. So I was-- that's a relief. At least-- everything got at least one vote.
Now, those three application trends impact what you work on. There are three workflow trends that change how you work. The growth of systems engineering as systems get more complex, more and more engineering organizations are incorporating a software focus and applying modern software development practices to engineering workflows. And, of course, AI is becoming so ingrained in what you do, it's becoming applied throughout the system development process.
So in this talk, I will dive into these three workflow trends, and I will highlight seven keys to success-- seven actions you can take right now to drive innovation based on MathWorks technology you have literally at your fingertips to engineer great products.
Then we will wrap up by coming back to those three application trends, and I will briefly highlight some recent developments from MathWorks to propel you forward. But starting with these seven keys to success mapped to those three workflow trends. And I will start with the four keys to success that are contained within the concept of systems engineering. And let's start with key to success number 1, automate everything.
Now we know model based design has been a game-changer for two decades. In that time, we have seen and continue to see lots of terms come and sometimes go that describe what is essentially the same concept. Terms like digital transformation, model-based systems engineering, early verification, shift-left verification, model-driven engineering, and so on.
These terms all relate to a similar fundamental concept-- use computational technology and software models to automate the process from design to deployment and complete lifecycle management.
Model-based design is a framework with models at the heart of the process, and these models are elaborated throughout the entire product lifecycle. It's a powerful approach to simulate and analyze a system before it is physically built.
Now I suspect many of that you can, for example, automate code generation. That's a separate key to success we'll get to in a minute. You may be less familiar with your ability to automate many additional aspects of the workflow, including requirements testing, defect detection, and certification.
The key to successful automation is full adoption of model-based design and finding ways to automate more and more of the entire process and workflow. Now one of the ways we can help you automate everything is by providing tools and services that work at all levels of complexity, and that leads to key to success number 2, scale from components and subsystems up to full complex systems. As the level of complexity accelerates, this ability to scale is a critical capability of model-based design.
Modeling small components and subsystems that are independently testable, to modeling constructs for well-defined interfaces and connections. You can handle increasing product line complexity with variant modeling. There are APIs to interoperate with other standard tools, allowing Simulink to play the role of the simulation integration platform. All of these allow you to build and integrate very large models.
But there's another important dimension to large systems-- architecture design. It's one thing to be able to design a model comprised of small independent components. What you need to also do, though, is model the communication-- the interconnects between those components. Model the communications and the services that occur between the components, and this is called service-oriented architecture.
And it's where System Composer comes in. You can break down complex systems into smaller independent components, model your service-oriented architecture in System Composer, fill in the component details in Simulink, and build it up into a full system.
And this brings us to the next key to success-- automatic code generation. Now again, as I said, I suspect most of about code generation. Model-based design lets you automatically generate error-free code, and this has been supporting this for over 20 years. Embedded software is very complex, all kinds of constraints, and it should never fail.
And today, over 3,700 organizations use automatic code generation to generate millions of lines of code. And you can target a vast range of devices. But not just devices. You can generate code for schedulers, middleware, and operating systems.
As one example, we are partnering with semiconductor companies to develop targets for their new chips. Just one example, here's a partnership we announced producing support for an important Infineon family of microcontrollers. Let's move on to key to success number 4, prevent defects as early as possible.
Now it's generally accepted that the earlier, you detect and correct a defect, the less costly it is to the organization, and the more quickly you can deliver reliable products to the market. In fact, Jason from BAE Systems will talk about this in more detail as soon as I wrap up here this morning.
OK, I need to warn you, I'm about to show my one heavy product slide. I think it's a requirement that at every MathWorks talk, you have to show a bunch of product slides. But I think in this case, the products that I'm going to show really do help communicate a defect detection framework that you have available to you with model-based design.
So again, these products fit into this framework that starts in the design phase and continues on to certification. In the design phase, tools for verification at the model level from software to VHDL and Verilog. In the test phase, for needs like model coverage and parameter sweeps. Code verification for hand code incorporated into the model. And at the certification phase with artifacts to manage the process.
And, Sam pointed out, we continue to add to this portfolio. 23a saw the release of MATLAB Test. 23b saw the release of Polyspace Test for dynamic testing of code. And Simulink Fault Analyzer to model and simulate faults and their impact on system safety.
This framework for defect detection allows you to find and eliminate defects earlier in the process, saving time and money, and improving product quality.
Now a great example of defect detection in action with model-based design is from Saft. Saft delivers battery management system software for uninterrupted power supplies in the event of a grid failure to mission-critical industrial applications such as those at hospitals, power grids, and industrial plants.
Their system, the Flex'ion Gen 2, provides up to 220 kilowatts of continuous power. And this is a story that involves this dramatic workflow shift to model-based design, working with a hardware partner as part of that shift and engineering a successful product that achieved UL certification.
So before-model based design, Saft manually coded in C, compiled the code, and ran it directly on the hardware. Any errors that were discovered were hard to trace to either the software or the hardware. And because testing could not start until hardware was available, problems were uncovered way too close to project deadlines. So they wanted to verify their designs earlier in the process using modeling simulation and model-based design.
So they developed a plant model in Simulink for the Flex'ion Gen 2 hardware, including DC-to-DC converters, circuit breakers, inverters, sensors, and hundreds of lithium ion battery cells. They created a battery cell model and replicated it for each of the 224 cells in the battery system. They created multiple variants of the model for differing levels of fidelity.
The team modeled the application software for the BMS using Simulink and Stateflow. With Requirements Toolbox, the team established a bidirectional traceability between requirements and the technical spec and the Simulink model elements that implemented those requirements.
To validate the application software model, they ran desktop simulations and measured model coverage, and identified untested elements of the model with Simulink coverage. They automated the desktop simulations with MATLAB scripts, developing a test suite that included more than 1,500 test cases.
Once the team had validated the application software using simulation, they shared the model with their partner, who then generated MISRA-compliant C code from the model. That partner then compiled and deployed the code to the production BMS hardware. And for HIL testing, Saft engineers generated seed code from the Simulink plant model using Simulink Coder.
They then executed the same test cases that they had developed for desktop simulation on the HIL Test Bench before testing the BMS software on the battery system. Saft received UL 1998 Certification for the Flex'ion Gen 2 which is now in production.
Development speed was doubled. Testing was moved earlier in the process. And even though this was their first project requiring UL 1998 Certification, they passed it on their first attempt.
All right, those were four keys to success within systems engineering. Automate everything, scale to complex systems, use automatic code generation, and prevent defects early. So now let's highlight two keys to success in modern software practices. Apply standard software workflows, and design and simulate in the cloud.
So I just love this quote from Jensen Huang from NVIDIA. "Software is the language of automation." Now he said this back in 2018, and he was talking specifically about AI, which we will get to in a minute. But today in 2023, I think his comment has a much broader implication. As one pretty visible example, we are seeing a massive transformation happening in the automotive industry with a shift to software-defined vehicles.
But it's not just the auto industry. We are seeing this migration happen in many industries. A software-first mindset and the adoption of standard software workflows. That brings us to key to success number 5, apply standard software workflows in your engineering design and development work.
The good news is that the flexibility of model-based design allows you to do this seamlessly. So let me show you some aspects of software workflows and how they connect to model-based design, and I will start with continuous integration.
So Continuous Integration, or CI, it's a software development practice that involves integrating code changes from multiple developers in a shared repository frequently, usually several times a day or more. So in the context of a software workflow, CI refers to the process of automatically and regularly building, testing, and integrating code-- code changes into a central code base.
We are definitely seeing our customers adopting this process-- practice quite dramatically. So now it's time to ask you a question about this. So we'd like to bring up a second poll and ask you where you are in your journey to continuous integration.
So, does your-- or if you can go to our Slido poll and answer the question, does your organization currently use a continuous integration CI system? And let's see let's see where we are today with this audience. I'm going to take a sip of water while you're voting.
All right. The team in the back thinks we've got some statistically significant data. Why don't we show the results? OK. 50-- what does it say? 58-- between 52 and 54% have already deployed a CI system, and pretty much everybody else is on their path. About 10%, not so much. All right, so let's get back to the regular slide.
So these were the results from the MAB, or MathWorks Advisory Board that was held back in June. We asked the same question there, and you can see the results here. We found 60% of the respondents had already deployed a CI system with almost 30% more planning to. So very, very identical results here as compared to six months ago.
So these organizations are integrating MathWorks, code generation, and testing tools into their CI process. When an engineer makes a change, the code is generated, tests are started, and the changes are integrated into a larger system.
Now more of you can adopt this workflow, and there are more and more capabilities to enable you. One of the requests we've heard from customers is more support for making this work. Now not just by improving the features and capabilities of our tools, but by providing tutorials, reference examples, case studies, and other getting started materials.
So as just one example, there is a white paper on MathWorks' website that talks you through a common CI workflow applying model-based design and linking to tools such as Jenkins and GitLab.
In addition, there is now a Process Advisor app that helps you deploy and automate your prequalification process. And as proof of concept, this app has been successfully adopted by Continental.
Continental, or Continental, has been working in a CI/CD workflow for over six years. And their first pipeline, back in 2017, employed Jenkins, Git, and GitHub, and MATLAB, Simulink, and Polyspace. But their switch to AUTOSAR Classic introduced a dramatic increase in the number of software components and required heavy customization.
They found that their Jenkins pipeline ran for anywhere from several hours to up to two days. So their solution? Become independent of the larger CI/CD system. And their approach to that? As Martin said in his talk, bring everything into MATLAB. That's their quote.
Now by everything, they mean artifact-handling, package management, repository handling, and source control. They leveraged system calls, GraphQL client, and the MATLAB Git client to bring it all into MATLAB, and they are now able to use Process Advisor to optimize the process on the desktop.
The Process Advisor has three key benefits. Number one, it leverages the digital thread. The digital thread is an electronic record of all interfaces, components, compositions, dependencies and other connected requirements. This allows the Process Advisor to scope a test run to only those aspects of the overall model that are dependent on any specific change that was made. So the breakthrough here is that the digital thread allows you to run only what is needed.
Benefit number two, identify stale tests. Because of that connection to the digital thread, Process Advisor can automatically identify-- oh, there go the cars. Automatically identify test and components that are no longer valid due to recently-made changes, and automatically notify the user of those items that either need to be rerun or retested.
And the third benefit-- interactivity. This allows the user to interact with the model, selecting specific tasks to run, isolate checks, confirm outputs all locally on the machine.
All of this testing at the interface component or composition level can be optimized and run locally before connecting back to the complete CI/CD system for a full system test. That's how they made themselves independent from their CI/CD system. Their effort has been cut in half. They have doubled the speed of their overall system.
Now what's next for Continental is one of the keys to success we already mentioned-- scale two complex systems. Their plan is to employ this to a future with more than 500 interfaces, more than 1,000 software components, and more than 100 software compositions.
Another critical aspect related to software workflows is leveraging the cloud for access and scalability. Software is moving quickly to the cloud. Not just collaboration. Probably every one of us collaborates with colleagues on some type of cloud platform every day. Design is moving to the cloud as well.
So key to success number 6 encourages you to embrace this. Design and simulate in the cloud. How can you get started? What you're seeing on the screen, for access, Simulink Online.
Now this was initially adopted notably in academia. With 23b, you can now run Simulink Online with MATLAB Online Server either on-prem or in the cloud. So you can leverage your own preferred IT infrastructure. For simulation scaling, we continue to expand the parsing capability for large-scale cloud deployment.
So parsing came out in 2017. Now, by connecting to MATLAB Parallel Server, you can run a massive number of simulations up into the millions. Going forward, we have more plans to make it even easier to run massive simulations in the cloud.
We also know that increasingly, large-scale multi-country projects, like those listed here, are demanding more and more capability to collaborate, innovate, and execute in the cloud, and MathWorks' investments in cloud technology continue with visions like this in mind.
All right, let's wrap up our workflow trend and key to success tour with the final workflow and final key to success wrapped around AI, specifically AI for system development.
Now first, a personal story. About 30 years ago, I was designing and running neural networks coded in Occam on Inmos transputers, which were invented-- anybody know? A mere 100 miles from here in Bristol. And we were detecting anomalies in otherwise normal images.
Now back then, our focus was solely on the algorithm achieving high accuracy, low false positives, and fast processing speed. Three decades later, as model-based design has expanded in adoption, obviously, so has the world of AI. We are seeing our customers apply AI throughout the product development lifecycle, and in fact, it's becoming a core part of their model-based design work.
And all of this leads to our final key to success-- design your system with AI. As I said, AI is basically entering every aspect of the model-based design workflow. Just a couple of examples. In the design phase, the injection of AI at the algorithm level across multiple engineering domains. One way to speed up system analysis is through Reduced Order Models, or ROM. One approach to ROM is use an AI data-driven model in place of a full fidelity model.
So at MathWorks, we're investing in AI across multiple domains as you'll see in a minute. To support implementation, there is a requirement for interoperability with open frameworks and support of AI through code generation.
All right, a few specifics. At the algorithm layer, here is just a sample of the domains in which AI workflows have been enabled in MATLAB and Simulink. Nearly every development team at MathWorks is investing in AI. If you go to the Examples page on Deep Learning Toolbox on the website, you'll see over 100 examples of ways in which AI is being applied.
And the interoperability with open source frameworks gives you flexibility in AI model development and deployment. First, you can design and train your own models directly in MATLAB. Second, you can incorporate pre-trained networks to get you close, but then also apply transfer learning if you need to for optimal performance. Third, with code generation, you can easily get to deployment or embedded as a seamless part of the workflow.
Now let me show you AI within a system in action. Here, the example is from Mercedes Benz. The AI is a deep neural network. And the system is a virtual piston sensor running in a production vehicle. So during development, many car manufacturers equip their cars with numerous hardware sensors to gather data for diagnosing issues and refining the design.
Now once the car goes to production, many of those sensors are removed for one reason to reduce costs. But in some cases, that hardware sensor can be replaced with a virtual sensor. A software sensor, that can improve safety, efficiency, or driver comfort.
Mercedes-Benz was using a Python deep learning framework, the QKeras library, to apply a quantized Long-Short-Term Memory, or LSTM, neural net for a particular sensor algorithm. To convert this from running in floating point on standard computers to running on the ECU in the vehicle meant translating Python code to C and transforming the model parameters and calculations into fixed-point operations.
This process took weeks to complete, produced unreliable results, and was difficult to teach to new team members. And they had to ensure that the C-based model would fit within the memory space of the ECU, and would run fast enough to provide real time inference for those time-sensitive operations-- in this case, such as sensing piston pressure. The team wanted a more reliable and a more automated approach. Enter MATLAB and Simulink.
So in this workflow, the Mercedes-Benz team still trains the quantized LSTM in Python using QKeras. They then use Deep Learning Toolbox to import that trained network into MATLAB. They run a MATLAB script to convert the imported neural network into a Simulink model. Fixed Point Designer is used to convert all parameters in the model from floating point to fixed point.
And after verifying the fixed point model using simulation in Simulink, they hand the model off to a third-party software integrator who implements it on the ECU with the other software components. The results, CPU, memory, and performance requirements met. A flexible process established.
Now this is a long quote, but I wanted to show it because it's pretty important. They are now using this automated workflow that they created with small adaptations to support deployment on different powertrain controllers. And the workflow is applicable to other types of deep learning models, such as-- they list some here. Gated recurrent units and fully connected neural nets. "We committed fewer errors in creating the model and the code."
And amazingly, development speed increased 600%. A sixfold improvement in development, and a flexible workflow for future applications, all because I was designed into the system.
All right, that completes our walkthrough of the seven keys to success. It's worth repeating them quickly here. Automate everything, scale to complex systems, use automatic code generation, prevent defects early, apply standard software workflows, design and simulate in the cloud, and design your system with AI.
But to wrap up, let's jump back to our three application trends, and I'll highlight current advancements and recent MathWorks investments, and we'll start with autonomous. In autonomous systems, the story that probably gets the most eyeballs is autonomous vehicles. MathWorks continues to invest in technologies that brings this exceedingly challenging engineering goal more within our reach.
Modular tools for braking and steering controls, specialized algorithm design, sensor simulation, and road network design. More recently, we launched RoadRunner Scenario where you can edit vehicle paths and define logic to simulate complex driving scenarios.
But it's not just autonomous cars. It's new capabilities in support of autonomous solutions in other industries, from UAVs to underwater vehicles and robotics.
OK, let's move on to connectivity. In an increasingly connected world, more than 90% of the people on Earth now have cell phones. And a key technology that has fueled recent growth rates is, of course 5G. 5G brought in a wave of new investments connecting people and smart devices.
And 5G provided an important standard in which the power of MATLAB was on full display. I think that's evidenced by this quote from Christopher Brinton. He's a Professor at Purdue University in the US talking about their application of 5G Toolbox.
Now going forward, there are important new technology innovations where we have been and continue to invest. 6G and AI for wireless. 6G promises yet another leap forward, potentially with terabit speeds, 1-microsecond latency, and far greater capacity than 5G. But that's going to require rigorous simulation and testing of algorithms, massive data-handling, and more. Essentially, the six technologies that are listed here.
All of these technologies can be explored, modeled, simulated, or tested with MathWorks tools we've been investing in for years, with more planned for future releases.
I also think this wireless communications area offers a beautiful example of the power of multi-domain tooling coming together in a single platform, MATLAB, that makes you so much more productive. And that simple example is AI for wireless communications.
This is a very key trend right now, and not just in the future with 6G. AI will be added in the 5G advanced standard, and different companies are investing now to find how wireless challenges can be solved by AI capabilities.
MathWorks Tools for Wireless Communications and AI work together beautifully. Whether it's using neural networks to compress channel state information fed back from the receiver to the transmitter, using AI to intelligently reduce the search space of beam pairs in a MIMO system, or increasing positioning accuracy.
In a single engineering platform, you can bring two domains together seamlessly to accelerate your work, increase your capability, and advance your research, and implementation speed. Those of you attending this workshop in the afternoon will learn more about this AI and wireless in more detail.
Finally, electrification, our last application, is a key megatrend in the world's March toward decarbonization. For electric vehicles, we've delivered solutions for electric motor modeling and control, battery pack design, full HV and HEV reference examples, and electric aerial vehicle models. The Polestar presentation will be an opportunity to learn about their advancements here as well.
But scaling beyond electric vehicles to green energy in general, you can use a wide range of shipping examples that cover everything from solar cells to wind turbines to hydroelectric power and green hydrogen.
Our goal is to enable our customers to adopt these clean solutions and accelerate the path to a greener world, and Siemens Energy is embracing that opportunity. Siemens Energy has an ambitious goal to act now to implement solutions to facilitate achieving net zero by 2040. And their strategy is threefold.
Number 1, they're engineering solutions in solar, biomass, hydrogen, and wind-- offshore and onshore wind. 2, they're exploiting their existing infrastructure, either retrofitting or upgrading existing power plants, for example. And third, they want to strengthen the electrical grid to achieve balance throughout the energy flow.
To do all this and do it quickly means a complete transformation of their engineering approach. So they're transforming away from what they called swim lane engineering where different development teams have different languages, different deployment targets, development platforms, and domains.
In swim lane engineering, the organization shapes the development process. So they are moving to what they call a centralized engineering ecosystem. All teams develop in the same modeling language-- Simulink. Tests can take place during development as model in the loop setups. There's a single point of transformation for target platforms.
Model-based design enables a collaborative engineering ecosystem where development extends across borders of the organization. That's the power of model-based design it lets them use a Simulink-based digital twin to analyze and test systems early in the workflow, which we've already seen is a key to success.
And, for them, it provides a second key benefit. With this framework in place, they can solve distinct individual customer projects and problems using a standardized approach. This is game-changing for them and for the world.
So that is it. Seven keys to success for you. A continuous wave of key technology investments from MathWorks. And I think this conference is a wonderful metaphor of the power of collaboration across engineering and engineering ecosystem. It's an opportunity for you to learn from us, but maybe more importantly, from each other about how best to apply those seven keys to success to advance your work and engineer great products that change the world. Thank you, have a great conference.
[APPLAUSE]