Have you ever considered the aerodynamics and intelligence required of a bird landing on a branch? It does this so casually, while significantly outperforming the best human-designed control systems. A bird will rotate its body and wings to be almost perpendicular to the incoming airflow, ultimately increasing the aerodynamic drag on the bird (Figure 1). But here’s the caveat: the wings stalling may cause a loss of control authority and lift. So, the aerodynamics become non-linear, and more difficult to model and predict. And yet this bird perches seemingly effortlessly. Few pilots would attempt flying between skyscrapers, but many birds navigate jungles with ease.
Figure 1: Aerodynamics of bird and glider wings
Mimicking these movements requires highly sophisticated decisions, with complex kinematic and dynamic equations. At its birth, AI was a machine’s capability to imitate these intelligent behaviors. But in its modern life, AI’s objective is to exceed intelligent behavior. Since most natural systems only need a relatively low sampling rate and less reliable timing, robust AI architectures must suffice on low bandwidth with high latencies. To further complicate matters, AI system development timelines are typically tight. Time-consuming data preparation, followed by effort-intensive modeling and training tasks is conventional in an AI workflow. Time must be further allocated to testing the system, looping back to its initial stages for iterative improvements, and verifying its behavior – thus, rapid, and dependable development is critical.
The Model-Based Design (MBD) workflow adopted by Simulink seamlessly integrates with AI components to build reliable and complex overarching systems (Figure 2). This is especially important for algorithms under development, that will eventually be deployed. To facilitate integration of these workflows, system components that fall under the AI-umbrella can be incorporated in system- and component- level simulations.
To address obtaining system robustness, system requirements can be evaluated to ensure they are satisfied with use cases. And the AI components (and overall design) can eventually be deployed to desired targets, such as CPUs, GPUs, ECUs and FPGAs. This offers versatility in performance according to what hardware you have available, your budget and your timelines. Being able to swiftly implement and debug algorithms in MATLAB and Simulink addresses this need for speed. There are dozens of tools available to orchestrate this, and you can find some performance advice here. For example, speeding up essential or slow components can be done using C++ generated code with the Simulink Coder app.
Figure 2: Integration of the MBD and AI Workflows
Notably, Simulink and its components are quite adept at physical environment modeling too. These environments are often complex, natural systems that mathematical models may not effusively describe. Data-driven AI-based systems may be the only option to model these processes. So, assimilating AI and MBD into data-driven environment modeling is essential and well-established. You can replace high-fidelity components that simulate slowly with faster machine or deep learning (part of the AI-umbrella) models. This will improve the speed of your overall model. Your team is likely multi-disciplinary – so sharing these high-fidelity models comprised of hundreds of Simulink blocks with domain experts can be coordinated to target particular modeling tools.
To see the interaction of these workflows, check out this example on lane and vehicle detection. You can ramp-up on these AI-Simulink tools to boost your confidence in rapid prototyping of algorithms, optimize your strategies, visualise data and simulation results and develop highly sophisticated AI-hybrid models. We look forward to hearing about your glider’s wings navigating the dense forests of AI.
What Can I Do Next?