Feedback

Accelerating the Pace and Scope of Control System Design

Hello, everybody. Welcome to Boston. It’s a pretty good time to be a controls engineer. With today’s technology trends, the world has more things to control than ever before. Almost anything you can dream of you can build these days, and this altogether is magnifying the impact that us in the room, control engineers, can make on the world.

I have two stories to tell you today. The first story is about the origins of MATLAB and controls. Danny sort of challenged me to talk about that. Then along the journey since then, industry ran into some trouble, and the second story is about a solution to that trouble which arose that’s called Model-Based Design. And after that, I’d like to talk about some of the amazing trends that we’re seeing out there today. I’d like to show how design tools are evolving to support them, and share some of those amazing control applications we’re seeing out there in industry right now. And then I’d like to leave you at the end with some challenges and some calls to action.

So, the origins of MATLAB. There was a movie that came out about a year and a half ago called The Imitation Game. Who’s seen that movie? So, some number of people. Great movie, strongly recommend it. Definitely a sort of engineer and computer scientist as a hero of World War II. The film has prompted interest in this man. You recognize him? Of course, it’s Alan Turing. The film discusses his work cracking the Enigma code machines. As kind of a sidelight, the two lines of MATLAB code at the bottom completely perform the calculations that the Enigma machine did with its coding. So, that’s two lines of MATLAB to perform the Enigma coding. The first—these were matrix operations. The Rs at the bottom are permutation matrices that transform the input character to the output character. At the top of the machine, you see four dials. Each of those is a permutation matrix. The P corresponds to the plug board, which is another permutation matrix, and so if you multiply all those together, and then at the bottom, you use matrix inverse and a couple more matrix multiplies that transforms the operation. One wonders whether Turing thought of the math this way when he was working on these.

Here's a picture of the mechanical calculator that Turing helped create to crack the Enigma code. Wasn’t quite a computer. It was missing some key elements like programmability and storage.

Turing wrote this amazing paper in 1936, proving the Halting theorem. Anybody here read that paper? Who’s seen that paper? A couple people, okay. This is an amazing paper. Okay, while he was proving the Halting theorem in this paper, as kind of an aside, he basically laid the theoretical foundation for computer science with this remarkable single line: “The universal computing machine: It is possible to invent a single machine is used to compute any computable sequence.” Truly spectacular. You know, when I saw this, it was like seeing the Magna Carta for the first time, okay? I mean, this is really everything we do today in computing, and it was in this remarkable few paragraphs in this one paper.

The Turing machine, which actually can be built, is simply a tape, an infinite tape that can go back and forth, and you can read, write, and erase ones and zeros on that tape. And that architecture is the basis for all machines we use today, and Turing really made that claim and that’s why he’s known as the father of computer science. Turing proposed a project to the British National Physics Laboratory to build one of the first computers in the world. It was going to be called ACE, the Automatic Computing Engine. Here’s a paper he wrote around that time. It’s called “Round-off Errors in Matrix Processes.” This is the table of contents for the paper. It’s really quite remarkable. This table of contents could be the table of contents in a numerical analysis course you could take today. And so, what’s really interesting is that Turing was thinking about matrix computations. And also, essentially matrix computations are what the computer was invented to do. That was a means, a purpose of those things. It wasn’t video games. It wasn’t word processing. It wasn’t all those things. It was really about matrix computations. Unfortunately, the management at his labs chose not to approve the building of the ACE, believing it was too ambitious.

Jim Wilkinson was a junior colleague of Turing at the National Physics Lab. Jim was also interested in matrix computations and building computers, and the torch was passed from Turing to Jim Wilkinson. Jim led a project that successfully built a scaled-out version of the ACE, which was called the pilot ACE, and this was one of the world’s earliest computers.

Jim went on to continue this matrix computation bent, and he developed a lot of the fundamental algorithms in linear algebra—inverse; singular ID composition; least squares; all of those—and did that over a period of years which culminated in this handbook that he published in 1971 that had a lot of these algorithms together.

Cleve Moler was a junior colleague of Jim Wilkinson. Cleve’s interests were also matrix computation and numerical analysis. The torch was passed again here. Cleve went on to take the algorithms that Jim and his colleagues had created, and he created LINPACK, along with a team of people. LINPACK was an organized collection of Fortran subroutines, all written in standard format, all in Fortran. Jim’s stuff had been in ALGOL and all sorts of other languages. And this was done by a team, and it was really ruggedized. If you invert a matrix, or you fit a curve through data using almost any software today, whether it’s Excel or JavaScript online, you’re using algorithms from this library. They may have been recoded into many different languages, but essentially, they come from this work. Now, Cleve wanted to teach his students using these Fortran routines in a class that he was teaching, but it wasn’t supposed to be a programming class, and that’s why he invented MATLAB, which was simple, interactive access to that.

So, I suppose that if you’ve collaborated with Cleve Moler, or perhaps just used MATLAB, this means you in the room have two degrees of separation from Alan Turing, back through these matrix calculations, with matrix calculations being some of the reasons why computers were invented in the first place. So, it was really a straight heritage here.

This is kind of when I kind of emerged on the scene. So, I was a graduate student at Stanford around 1980. I was taking what was Kailath’s linear systems course and some other digital control courses at Stanford, and we had to solve Ricatti equations. Well, believe it or not, we had to punch cards, you know, at Stanford in 1980, okay. There were mini-computers and other computers, but the state of computer-aided control system design was not good.

As a young graduate student, I learned the areas of mathematics through important control theory. These, of course, include linear algebra, particularly eigenvalues and the SVD. To model dynamic systems, there were ordinary differential equations. There was the linear time and varied state space case, and transfer function forms. There’s, of course, the discrete-time equivalent of the differential equations. This includes state space and transfer function form. It goes by names like digital filter and signal processing, or ARMA, if you’re an economist. Also, the FFT. So, this short list of mathematics is very important in the study and practice of controls and signal processing. They formed what you might call a set of golden equations. But we had to do this math with punch cards.

In 1984, from a different direction, there was the beginning of a significant innovation megatrend: the birth of personal computers. Here’s a picture of a young Bill Gates and Steve Jobs. The newspaper clipping shows the yearly sales of personal computers at that time; it was about a million. To put it in perspective, that’s less than a half a percent of the 300 million that are sold yearly these days. You know, so if I was in a room with this many people, if there were 300 people here, only one of you would use a PC when MATLAB first came out.

Here’s a list of the technology innovation trends around 1984: the PC; floating point math built into chips; interactive software instead of punch cards and Fortran; C and Unix; window systems. In 1984, MathWorks was formed. We built on these technologies to introduce a new version of MATLAB for PC, Mac, and Unix, and we added the “golden equations” from controls and signal processing to that.

The result was interactive engineering math on inexpensive personal computers, the “golden equations” of control and signal processing available for anybody to use easily. This is a picture of the first brochure, where we introduced MATLAB, on the PC in 1984.

This is a favorite example of mine that I think captures the power of MATLAB. This is eight lines of MATLAB code that solves the linear quadratic optimal control problem. All the variables in this code are matrices. There was a Stanford Ph.D. thesis in 1970 by Earl Hall that was thousands of lines of Fortran code to solve this problem, and so with MATLAB, the Stanford Ph.D. thesis is reduced to about these eight lines of code.

From 1984 to today, a most wonderful thing happened: this table shows the specs for a standard PC, like Danny was talking about earlier, in 1984. Here they are today. The increases in performance are actually really astonishing. I don’t think you even realize, Danny, the changes here. Look at this: 60,000 times more memory; 100,000 times larger disk storage. At the end of the table, FLOPS stands for Floating Point Operations Per Second. That’s the speed and operations per second of a matrix multiply in MATLAB. Since 1984, it’s grown from 17 kilo-FLOPS to 50 billion FLOPS. That’s an incredible 3 million times faster than that first PC used. Now, this amazing increase has been transformational in my business, which is making software for computer-aided control system design. It’s made possible larger-scale design, analysis, and modeling right at your fingertips on your desktop.

The world back in the ’70s had no airbags, no antilock brakes, no cassettes. If you had a transistor in your car, it was in your radio. It wasn’t anywhere else. And part of what’s happened over this time interval is the transformation, for example, to the automobile of today that has 50 to 100 microcontrollers. They’re in powertrain. They’re in chassis systems. They’re in safety systems. They’re in convenience systems, just throughout the automobile. A remarkable transformation over that time.

During that transformation, however, over that time period, trouble emerged in industry. And to talk about that, I want to talk about traditional development process at the time. Traditional development process includes requirements, specifications, design, implementation, and test. Typically, the software algorithms, mechanical and electrical components were separately designed. The traditional development process quickly ran into problems by the growth in software complexity that occurred over this time interval. The problems start with the walls that exist between stages. There’s always a gap between what’s written on paper and what’s designed using this old process that industry was using. The separate design of components results in walls between these design flows, until integration and tests pulls them together at the end. And there’s more: requirements documents are difficult to analyze. Paper specs are inexact and almost always out of date. Physical prototypes are expensive. Think, for example, automobiles and airplanes. And, worst of all, writing code is very expensive, and introduces defects. And then, of course, testing finds them late in the process when they’re harder to fix. So, this is kind of the state of things when industry started to run into a problem.

And there was more trouble. This culminated in a lot of recalls, in missed shipping dates, and in a whole variety of issues in industry from all this sudden increase in complexity, increase of software that was being put into things.

So, trouble, more trouble, and then big trouble. I think of the maiden flight of Ariane 5 as being iconic of the old ways of doing things. I’m going to show a video of this. How many have seen the video of the Ariane 5? Couple here. Okay, so this, I think is one of the most famous software failures out there. This is the first flight of the Ariane 5. The previous vehicle had been the Ariane 4. And within 15 seconds after liftoff, this is what happens. Okay, as a control engineer, you don’t want to see that. Okay, this is a $500 million failure. What happened here was they took the control system, the hardware, and the software from the Ariane 4 and they moved it over to the Ariane 5 and bolted it on. Unfortunately, the Ariane 5 had much stronger rockets, and the rocket had greater horizontal motion than the Ariane 4. And when the thrusters went to gimble to correct for some wind during takeoff, the processor overflowed. The fixed-point computations overflowed. And when you wrap a fixed-point variable, good things don’t happen to your actuators, okay, and it quickly self-destructed.

Now, while you could’ve written software to catch that, I don’t consider this—although it is a software defect, what happened is they really didn’t model and simulate it. It would’ve been easy to model this ahead of time and see that this condition was going to be caused. It was essentially a requirements failure, and that would’ve been easy to detect during simulation.

Okay, now I’m going to move to the second part of my talk, which talks about the rise of Model-Based Design to help with these issues. And the solution to the trouble in industry really came in two parts. The first part is multidomain system modeling. We can look at the evolution of modeling software. It began in the old days with textual ODE languages. SIMNON from Lund University was one of the originals that started with that. Then the world moved to graphical block diagrams that handle control diagrams. But really, the evolution that’s needed to really model these systems correctly is multidomain systems modeling. And that’s what I want to talk about.

I would like to take a look at the modeling domains—and I use domain loosely here—that such a concept requires to fully model a system, and there are six of those. The first domain is obvious: The system models need to include continuous-time models. These are often used for plant modeling, environment modeling, analog elements. The second domain is discrete-time controls. This enables digital control, image processing, video processing. The third domain is physical models. This includes electronics, mechanical linkages, hydraulics, fluids, thermal. And these models are different than control diagrams because they have bidirectional flow on the diagram lines, and they’re simulated using differential algebraic equations. The physical models become really important these days, because of a big increase in the mechatronics in modern products. The fourth domain is state machine models. State chart notation describes control and mode logic, like this diagram of an automobile power window controller. This type of mode logic actually accounts for a large percentage of embedded software that you find in automobiles, airplane, and other devices. The fifth domain is discrete-event modeling. These modeling elements include messages, servers, queues, and it can be used to model computer networks and buses with network packet queues. These are important in cars with can buses and other types of networks. The sixth and last domain is simply text-based code models. It turns out that some elements of system models are simply best described better with text code than with graphical models. The example here I’m showing right now is a model of an extended Kalman filter, and it takes only 16 lines of MATLAB code. The Kalman filter is most naturally described using textual matrix operations. If you make it graphical, good things don’t happen.

Okay, I’d like to show you an example of all this working together. This example, okay, this is a picture of a wind turbine farm, and I’m going to show you a multidomain model of a wind turbine. So, here’s a multidomain model of a single wind turbine. Here are the blades. This is in a cell, which is the compartment that holds everything but the blades. This is the tower. We even have a model of the electrical grid here. Here’s the pitch controller, the yaw controller, and the main controller. This is a model of the wind, which is an input to the system. Let’s open up then, a cell. Here we find a gear train—it’s hard to see from back there, isn’t it?—a generator and actuator models. Let’s open up the wind input. The input will be a wind speed that ramps up and settles back down. We specify changes in wind direction in there, and then the power grid includes the transmission line. We can look now at the main controller. This is a Stateflow model that controls the turbine. It has separate modes of park, start-up, generating, and braking. Here’s the yaw controller. For this example, it’s a simple PID controller.

Okay, I want to show all this working together, this multidomain simulation. A lot going on there. We’re going to run this at two times speed. If you look on the upper left corner, you can see the wind speed increasing. Over on the right, you can see the angle of the pitch command of the blades going into the wind, and then they’re starting to control it. In the lower right, you can see the rotor speed. So, you see it speeding up and eventually hitting 15 rpm. In the top, you can see the pitch controller now, working to maintain the speed, despite the wind changes. In the upper left, you can see that the wind is changing, and on the lower left you can see that the cell is changing to point into the wind. In the upper right upper left, you see the wind speed is starting to drop, and so the controller in the upper right starts to work hard to try to maintain the speed. Eventually it gives up and puts on braking and feathers the blades to the wind. So, there’s a lot going on there. You know, you guys may not have seen something as multidomain. This was sort of purposely built with a whole bunch of domains all working at once to sort of demonstrate the concept. Most people use a subset of that, but this is an example of all those working.

And the goal we have at MathWorks, and have been working on, is to build a single modeling environment that can model the entire physical system: mechanical, digital, hardware, the software, the environment, the whole thing. And it requires all these different domains I’m talking about. And this has been a major quest of 25 years we’ve had at the MathWorks. It’s been the life’s work of a big team of people to build this, an environment that can simulate all these together.

The second part of the solution to troubles in industry was a process innovation. The traditional waterfall process was replaced by a new process that we call Model-Based Design. In Model-Based Design, the model is the spec. It’s executable. It results in unambiguous specification, and you can start validation and test development immediately. You don’t wait until the very end. Design is refined iteratively. This allows you to do fast design exploration. You can try a lot of different ideas early on. You can optimize the design before you build it, and again, you can find flaws early. Here’s one of the huge stages of Model-Based Design. This is the idea of automatically generating code. And this eliminates hand coding. That alone is a reason why many of the major industrial customers use Model-Based Design. In the automotive industry, this saves literally billions of dollars in terms of the cost, taking cost out of the system of creating embedded software. And it completely eliminates hand code errors. The test and verification is done continuously. It doesn’t wait until the end. It’s all the way through the process. And this obviously allows you to detect areas earlier and implementations that work the first time when you go to the hardware. So, the traditional process has been replaced by this new process called the Model-Based Design workflow.

I’d like to talk now about the impact in industry. Now, we’re actually very lucky as control engineers, because control is at the heart of important things, so if you see important things happening in the world or being built, you’re probably going to find a control engineer there and some controls going on, okay. And so, I’ve got some showcase examples of Model-Based Design, but they’re really showcase designs of the amazing part of what automatic control is.

This is a picture of me in the first Chevy Volt in the state of Massachusetts a couple years ago. The powertrain of the Volt, the GM Volt, consists of electric drive unit, lithium-ion battery, electric generator, and a lot of control strategies. This quote from the development team at GM emphasizes the interdependencies between battery, electric drive, and engine that were really important to the overall design. And then here’s a slide from GM themselves talking about how they’ve scaled up Model-Based Design. In building their cars, they have models with millions of blocks. They release them every six weeks. They have hundreds, and really thousands, of engineers that are geographically dispersed around the globe. So, this type of design, you know, scales up pretty well.

But small companies can use it, too. Tesla, also in the automotive industry, they simulated hundreds of powertrain configurations without physical prototypes. Here’s a quote from an engineer there, and it shows that Model-Based Design was enabling. It enabled a small company to build a car at a company that just didn’t have the resources to do this any other way.

Aerospace is always a fun place to look for showcase examples. The joint strike fighter is the next generation U.S. military aircraft program. It’s a short takeoff and vertical landing airplane. You could look at the nozzle in the back. You can see that points down. And right behind the pilot there’s a fan that points straight down under the ground. The main design was done a few years ago, but the first aircraft carrier test was last year. This is an incredible controls problem. This a so-called six degrees of freedom control problem. You’re controlling the XYZ coordinates as well as the pitch, yaw, and roll. You’re also landing on a moving aircraft carrier, as well. Just, you know, control of unstable systems is just always fun to watch, right? And so, MBD was used to design and fully automatically code the flight control for this airplane.

A second aerospace example of Model-Based Design is the Orion. The United States currently does not have the ability to launch humans into space. Orion is the next manned spacecraft for the U.S. to replace the space shuttle. It’s intended to carry four to six astronauts. The first orbital Orion test flight was about a year and a half ago. And again, back to my premise is, at the core of interesting things, you’ll find control, and these things are a success for control engineering, as well as Model-Based Design as a whole.

Here’s another aerospace application. Applied Physics Laboratory at Johns Hopkins built the New Horizons spacecraft. This was Model-Based Design for the GNC. And this went on last year to do a flyby of Pluto, and allowed humans to see what Pluto was for the first time in human history. Again, I look at these as remarkable success of the controls community. You know, the GNC is the heart of a spacecraft in my mind, and so these are controls problems that are making these possible.

Here’s a smaller application. This is Model-Based Design of neuro-prosthetic arms at APL. First, the control software is trained using a virtual model of the arm. The patient learns to control the arm just by thinking about it. There are sensors at the nerve endings on the body that pick up the signals sent by the brain. After training the control software, he was fitted with one of these arms. And so, here’s a bilateral amputee that has his life transformed by the fusion of sensing, computing, communications, and control. I didn’t even know this was possible when I first saw this application about a year and a half ago. An example of what a small team can do in building controls.

I have a couple of examples in education of the impacts of Model-Based Design. And one area in education that had a big impact is in the whole area of project-based learning and engineering contests. All right, here’s a fun one. This is the electric diwheel is used for fourth-year capstone projects and research at Adelaide University. So, this is running without a controller. You can see it’s basically unstable. It rocks a lot. You can maneuver it, but it’s really hard to control it. Step one in the projects is derive the math equations of motion. Step two is they design a control system. Step three is they simulate it on the control systems on the model. And step four is they generate code and run it in real time as part of this project. And you can see it’s nice and stable now. Now, as these projects go, there’s always a step five, which is showing off, and so their showing off on this particular project was to stabilize this upside down as well, and have some fun there.

Here’s a comment from the professor at the university just pointing out that by the time you finish your project lists, some of the best students are really well on the way towards being seasoned controls engineers after making all this work.

Here’s another couple examples here. At the Formula Student Germany competition, there’s 115 teams from 25 nations that compete in eight disciplines. The teams use Model-Based Design to simulate strategies, analyze performance, design experiments, and implement controllers. I wish my controls in graduate school were like that. This is robo-boat. This is autonomous channel navigation, image processing, control. Again, the students get, obviously, really into these things. You know, this is an important technical trend. This is at TU Munich. Students in this program design flight control systems, but then they fly them in a realistic flight simulator that the school has on their campus. And boy, what a great way to feel your control gains and your control designs, but to sit in a flight simulator and bring the thing in for a landing based upon your control system.

There’s a meta-impact of Model-Based Design that I just want to mention, and the meta-impact, the long terms in product development, are towards more time on design and less in implementation and test. Now, that’s a good trend. You know, design is the fun part. Who wants to do the implementation and test? And so, this chart, we’re going to study by Arthur Little has shown the changes over time here. Model-Based Design is a velocity enabler in this trend, allowing you to spend less time on implementation and test.

And this is an example from the automotive industry where in the past this was the breakdown by automaker and suppliers in terms of different stages of the development. And what happens today is the automaker is doing more design. Suppliers are doing just as much design as they’ve always done, but everybody wants to be in design, because that’s where the IP is. That’s where the high ground is. That’s where the innovation is occurring. And so, Model-Based Design has helped encourage this path that allows automakers to get back into doing more design than they’ve done in the past.

The overall impact of Model-Based Design on industry has been to increase the math and algorithmic content in systems, drive innovation through early design iterations. One of the most important ones I’ve mentioned is eliminate hand coding. The quality improves—less defects, less recalls—because the early verification and validation. It helps collaboration across disciplines, across development stages, and a result has been a dramatic change in the industry in how systems are designed, implemented, and tested.

Now, one of the things that’s interesting is MATLAB really came out of education, came out of universities. That’s where it first got started and controls area first caught on. Model-Based Design actually started first in industry and was developed based on needs and use cases and requirements of industry, and then moved back into education as a tool that was useful there. So, as a company, it’s just interesting to us to see the sort of two platforms that were driven from different origins.

Okay, my final section of my talk, I would like to talk about some of the amazing trends today that we’re seeing, and these trends are pretty powerful these days. They’re going to affect the outcomes of companies and industries. Industry is actually racing frantically to keep up with some of the trends going on right now. I’m also going to show how some of the design tools are evolving to support these trends, and I’d also like to share some more amazing industry and education applications that we’ve been seeing associated with these trends.

The first big trend I want to mention is software, algorithms, and math in everything. We’re really participating in the build-out of software in everything in the world. By everything, I mean all devices. What’s a device? Well, a device is a washing machine. It’s a refrigerator. Your car is a device. It has 30 to 100 processors in it. Or the elevator in this hotel. You know, you guys have been in the elevator in the hotel. That didn’t exist two years ago. And so, we’re really participating in the putting of software in everything. I’ve heard some people have said software is eating the world. Okay. The fundamental enabler of the digital age is the transistor. The first one was made in 1947. There were 25 million trillion made in 2014. That’s actually 30 billion for every human on the planet. And more transistors made in 2014 than every year up through 2011. Now, there’s more. There’s actually been a huge surge in the last 15 years or so. There’s an acceleration, even an explosion, in the growth of the transistors, as measured by companies like Intel. We’re really heading towards software to find everything. So that’s really, in my mind, the biggest trend there is going on these days. And this, of course, is leading to smarter systems: adaptive; autonomous; collaborative; multi-function. You know, there’s tracks of this conference that are focused on these particular aspects. Obviously, an enormous change.

If you look out to industry, a lot of this has happened in, you know, kind of three to five years, and everybody is executing hard on these trends right now. But you look out in industry, it’s amazing, okay. You have start-up companies that are building launch vehicles that land vertically, and both had their landings in the last year or so. You have internet companies that are getting into the aerospace business. You have internet companies getting in the automotive business. You have them getting into auto and aero devices. Okay. We’re seeing control engineers that are streaming from the larger companies to these newer companies, and they’re bringing their Model-Based Design approaches along. Model-Based Design is aimed directly at the rapid development and short development cycles that these companies are targeting. And, of course, there’s, you know, thousands and thousands of other applications that are just all part of what’s going on out there.

Trend number two is the Internet of Things. I’m not going to belabor this, but there is an interesting model that I always like of when I heard about the Internet of Things. In the beginning of the 1800s, there’s a good chance you lived your whole life without ever leaving your village, and the first connectivity on the globe was transportation systems. In that sort of hundred years, locomotive, steamships, trains, automobiles, airplanes really connected all the places on the planet. The next level of connectivity was people connectivity, and this happened through mobile devices. And this is largely Steve Jobs and his era. It’s really pretty recently, the last 10 years, to literally connect every person on the planet. And that was the second wave. And now, of course, the big wave is to connect all the things on the planet. So, I always think of this as a good context for understanding that.

Now, we at MathWorks, from a standpoint of looking at controls, and software and tools, we think of the internet things as having three parts. Smart connected devices are the things on the Internet of Things. They often operate autonomously, they feed information back to the cloud, and they do some local closed-loop control and data reduction. Exploratory analysis are the tools for gaining insight into the data after it’s been collected, and then you have IoT platforms, and those are in the cloud, and they collect, organize, and store the data from the devices. So, the missing piece for Model-Based Design has been the IoT platform. So, we’ve recently introduced an IoT cloud we call ThingSpeak to support IoT applications in Model-Based Design. And this is a cloud that allows an application that allows you to collect data from devices. You can analyze them, you can write MATLAB, upload MATLAB scripts, and then you can take action on them. You can exert control actions there. So, this is meant to sort of complete the IoT connection to Model-Based Design.

The third big trend that’s happened in the last couple of years has been in the growth of low-cost embedded processors and experiment hardware. This is the Arduino, Raspberry Pi, LEGO Mindstorms. You know, these are not more than a few months old. Also, drones and other low-cost experiments. It’s really quite spectacular how quickly these have jumped onto the scene and created maker communities and things like that.

At MathWorks, we created hardware support packages to support Model-Based Design through MATLAB and Simulink. We have 170 packages today—each one of them is a toolbox that allows you to program these devices, things like the iPhone or the Raspberry Pi, without knowing anything about those devices. It’s just a familiar library of functions you can call. It allows you to get connected and running quickly. And we’ve seen really exponential growth. There was over 300,000 downloads in the last year, and this curve here really shows the growth of these hardware devices from sort of almost not existing just three, four years ago to the amount of use that they’re getting around the world today.

These are being used as part of the design competition in robotics. This is an application for LEGO Mindstorms where you can use Simulink blocks, Model-Based Design blocks to do edge following. These are used in design competitions all around the world. Here’s one, for example, ET-Robocon in Tokyo. Here at ACC, the MathWorks exhibit downstairs will have a small-scale version of this contest if you’re interested to try your hand out at designing a controller in just a few minutes.

Fourth megatrend that’s important to the world is the growth of apps. Now, here’s a model for thinking about apps. The first platform was the mainframe platform and that had millions of users and thousands of applications. The second major platform in history was the PC. That’s the one that Danny talks about. That had hundreds of millions of users and tens of thousands of applications. The world is now on the third platform. This is cloud, mobile, browser-based applications, and this has billions of users and millions of apps. The MathWorks was founded on the second platform megatrend, and now the whole world and everybody is working to build out the third platform.

The controls community has always had a lot of different apps with a lot of different toolboxes. At MathWorks, as part of Model-Based Design, we’ve taken some steps to try make it easier to build apps. We’ve built a place on the tool strip that allows you easy access to the apps. We’ve improved the way you design and build them. And, of course, you can create and share those apps on the file exchange. I want to give you an example of an app here and show you some of the power of this. The example app I want to show is called the control system tuner, and this is going to do H-infinity synthesis. Now, to motivate this, this is a picture of the world as robust control theorists like to see it in terms of the mathematics. However, the real world is messy. The engineer looks at a screen and sees a block diagram like this, and says, “How the heck do I tune that using H-infinity?”

Now, this chart here shows the flexibility versus tractability of some of the popular synthesis methods in control, and so it’s tractability versus flexibility. Obviously, the goal would be that blue ribbon on the upper right, but you can see existing methods, you know, tend to fall in the different corners, with the generic optimization in the lower right corner being the brute force method. Through some work by Pascal Gahinet and Pierre Apkarian, they introduced a new concept called structured H-infinity synthesis. They really invented this new approach and published a paper on that a few years ago. And so, that’s what I want to talk about. Pascal built a control system tuner app that uses this fixed structured H-infinity loop-shaping algorithm. And this app, it tunes a controller in Simulink. It goes through five different steps. You specify the blocks you want to tune, specify the goals, you do the synthesis, and then you can visualize the results and update the parameters back to Simulink.

So, what I’m going to show you here is H-infinity control in 60 seconds. That’s what a good app should do, right? Allow you to do this quickly. So, you have to watch closely, because this moves pretty quickly. But, here we have a Simulink model of a DC motor and we want to control the motor speed. We had a step response goal and a loop shape goal. Okay, here we go. Here’s the model. These are the two blocks that we want to tune. We go up here and we run the simulation. We look at the response, and you can see extremely poor response to that step input from that. We now go up here and we select the tuner app, and we go in here and we specify the blocks we’re going to select. Then we go up there to the top again, and we choose the step response goal, what the inputs are or the outputs are that’s going to happen over. And we specify the time constant. Then we go up and we select a loop shape goal again, specify where the loop will run from in the model and then we can specify the crossover frequency of that. And then here’s how that looks in the frequency domain. Then we run the synthesis. That just takes a few seconds on today’s modern computers. We can upload the model and we can run it again. And there you see much-improved step response and overall disturbance rejection, as well. So, here you have H-infinity control in 60 seconds. That’s the goal of apps: to make something easy to use, in a practical way for an engineer.

Now, this method of structure H-infinity was actually used recently, or fairly recently, on the Rosetta spacecraft. This is a mission to orbit Comet 67P. It was on a 10-year trip, and it woke after three years of hibernation, and there were problems that it had encountered on that mission: loss of efficiency in one of the thrusters; the flexible modes in the solar panels were not being controlled that well. And so, they retuned the controller prior to the encounter to cope better with these problems, and they used the structured H-infinity in the Robust Control Toolbox that Pierre and Pascal worked on. And the redesigned controllers were uploaded to Rosetta in the May of 2014, and the test maneuver confirmed that better performance was achieved. This went on to perform some braking maneuvers, entered orbit around the comet, and they had a probe that landed on the comet.

And this resulted in this picture of a comet, and you know, I look at this and I say, humans have never seen this before. You know, humans have never seen a comet up close. This is the first picture humanity has ever seen. And I look at this and I say triumph of H-infinity control, you know? There’s a control engineer at the core of this problem, and you know, here’s H-infinity contributing directly to important problems that are useful by humanity.

A postscript to this: they’re actually attempting to land the Rosetta orbiter on the comet in September of this year. I put quotes around “land” because, you know, it could actually crash into the comet, but because the orbit isn’t that fast and the gravity is not that strong, they think it might survive the crash, and they’re hoping they can get some other telemetry once they crash it. So, we all should look for it in September to see how that goes.

Number five: data analytics. Machine learning and big data are broad megatrends, but it’s particularly interesting to see how they’re being used and applied to control systems. Here’s an example of a company in Australia called BuildingIQ, and they’re using MATLAB to develop adaptive heating control systems for—actually, I should say Model-Based Design developed adaptive heating and cooling systems for office buildings. And you know, what I have here is sort of the traditional control that buildings use. And they’re going to factor in specifically the comfort of the occupants. They’re going to look at the time of use of energy prices and demand response, and also factor in the weather. And then they’re going to run an optimization program up in the cloud to help perform all this control. And so, they moved them the old way, where a set point is changed twice per day to the new way, using all of the controls where is an adaptive set point. And this has achieved a 25% reduction in cost. And, again, this is a small start-up company putting software in things, figuring out how to do this stuff.

Trend number six, that, you know, many people in this room are working on is, of course, robotics and autonomous systems. I have an example here of autonomous emergency braking of a truck. And this is done by Scania. They use Model-Based Design, censor fusion, big data, and machine learning. In this design, they fused radar and camera data together. But they start with 80 terabyte of video and radar data from vehicle logs, and then they used machine learning to develop fusion algorithms for situation detection. And based on that, they’d create a predictive model they put into the vehicle. And here’s a very short video clip of them testing out their collision avoidance system. Now, as a driver who drives on the highways with trucks behind me, I hope every truck gets this thing installed.

Two more short examples of autonomous systems seen out there. Aurora Centaur is building a pilot-optional aircraft, so you could buy an airplane that sometimes you flew yourself, sometimes it would fly autonomously. And, here’s my favorite part: you still have to have the ground person waving to the airplane to get it started. But if you look inside the plane, you can see there’s actually nobody sitting there. It’s just a camera. And so, here’s the pilot-optional aircraft taking off. You can see the stick is being controlled by robotic arms there. If you’re a passenger, you’d be sitting in the back of the airplane while this thing is being flown. And then it’s being brought in for a landing. So, this is built today, and, again, a relatively small company able to do this. Here’s another example: Yamaha has built something called Motobot, where they’ve slapped a robot on top of a motorcycle and are making it drive a motorcycle. It’s a pretty mean-looking device until you see the training wheels. Then it’s not quite so scary.

And so, it’s just crazy out there, the stuff that’s going on. You know, every month we see something new that amazes us in terms of customer applications on these things. Here’s a university example. Maybe some of you have seen this. Who’s seen the RoboCup videos and things like that? A couple. Okay, a fair number here. Okay, RoboCup is a robotics competition whose goal by 2050 is to beat a human soccer team from the World Cup in soccer. And here’s the TU Eindhoven team. They’re in the middle-sized division. And this is just an amazing controls problem. They’re using controls, vision, autonomous systems, collaborative. There’s also strategy. It’s soccer, after all. And this is done by students using Model-Based Design tools. It’s really impressive what they’re doing here, and it’s a very, very competitive environment. Now, the team has advantages with Model-Based Design, because they can do design adjustments between games. In fact, they could regenerate the controls code if they want to, you know, right in between games, and this Eindhoven team is particularly good, and has had a series of top finishes over the last several years.

Okay, so here’s the six trends that I talked about. These are important megatrends that we all need to respond to. They’re pretty big waves. You know, most of them should be familiar, but they’re important. They’re important for most companies these days. Many executives are running hard to keep up with these things at all sorts of industries. They’re important to industry. They’re important to the controls community, important to tool vendors like MathWorks. We have to be aware of these, taking actions on them.

So, the key ideas of my talk? I have three of them. The first one is MATLAB emerged from the numerical analysis community and really the beginnings of computing. It was first adopted widely by Danny and his friends in the controls community, because it was so good at matrices, and the control community had a lot of matrices with the state-space formulation.

The second key idea is the multidomain and system modeling and Model-Based Design, starting from industry, it really transformed how the development of complex systems are done, but also project-based learning and research at universities.

And the third one is there’s just amazing technology megatrends over the last several years, and the combination of that with design automation directly from mathematics is just magnifying the impact of everybody in this room and accelerating the number of controls applications in the world.

So, in summary, I think we’re in the middle of a really exciting time. The current technology trends are just outstanding for control applications. There’s incredible robotics and other projects happening at universities, talks at this conference. There’s actually an explosion of innovation and small-scale development that’s leading to start-up companies and transforming existing industries from all of this. Universities have turned out to be the seabed of this next wave of development and economic growth that’s happening worldwide. You also can use design automation software to work at the math model level and push a button to generate working implementations without coding. So, everything is kind of combining here to extend the reach of control engineering and magnify the impact that we have in this room on the world.

Now, just to be controversial, I’ve got some calls to action. I thought I’d be specific on some ideas for you. So, I have a couple of ideas here. Add a project to your course using low-cost hardware like Arduino or something. Organize a student design competition. Become a maker. Build your own IoT application in the cloud. It’s not that hard. Apply advanced algorithms to real hardware and invent something new and start a company. Everybody seems to be doing it. Create an app that allows others to easily apply your theory. Research new techniques for model-based verification and other capabilities that industry is desperate for. Or, and most of you are doing this already, but it’s really important to be research for some of the control technologies associated with these megatrends that are happening today.

So, these actions are all motivated by technology megatrends. They’re also actions that Model-Based Design tools are specifically designed to accelerate. So, we’ve come a long way from punch cards for computer-aided control system design. Thank you for listening.

Recorded: 5 Jul 2016