Virtual system integration can help you reduce dependence on prototype hardware and enable all engineers to access the system virtually at any stage of the product development cycle. You can use Simulink® to model, simulate, and analyze complex virtual systems comprised of physical hardware, embedded software, algorithms, and the environment in which the system operates.
With Simulink, you can:
- Describe system architecture using intuitive architecture models
- Model systems spanning multiple domains using domain-specific tools and prebuilt blocks
- Develop maintainable large-scale models with reusable and ready to run components
- Integrate components from different teams and tools into one system-level simulation easily and robustly
- Simulate and analyze to understand and validate system behaviors
- Run massive simulation jobs in parallel on your multicore desktop or computer cluster or in the cloud
- Deploy simulations as standalone executables, web apps, and Functional Mockup Units (FMUs)
“There is no other tool that provides a simulation environment along with hardware verification and validation. In this single environment, I get these together: That is why I use MATLAB and Simulink.”Dr. Deepak Mishra, Indian Space Research Organization
Describe System Architecture
Specify and analyze system architecture with System Composer™. Create descriptive system architecture models that bridge into detailed Simulink implementation models. The connected environment ensures items across the architecture and design workflows stay in sync.
Make a virtual system template using these architecture models. With pre-defined structures, configure a system simulation and assemble the virtual system automatically.
Model Systems Spanning Multiple Domains
Complex virtual systems can contain multiple-domain components. In one model, build continuous-time, discrete-time, and hybrid simulation components using Simulink. Also, your Simulink model can include combinatorial and sequential logic with state machines in Stateflow®, and represent agents and event-driven processes with SimEvents®. Describe a model of your physical system with Simscape™.
Design industry-specific applications in Simulink using prebuilt blocks, so you don’t have to create them yourself. For example, use blocks to model and simulate automotive powertrains in the Powertrain Blockset™, aircraft propulsion systems with Aerospace Blockset™, or audio and video systems with Signal Processing tools.
Develop Maintainable Large-Scale Models
Create large and complex designs in Simulink through system componentization, using subsystems and model references. With these techniques, massive models can be assembled and simulated. Build custom libraries to share and reuse parts and components across your organization. With model referencing, develop your design concurrently with other team members and independently verify your components before integrating them with the system. To adopt model DevOps workflows, run tests using MATLAB® Unit Test framework in continuous integration (CI) systems such as Jenkins™.
Integrate Components from Multiple Sources
Use Simulink to bring design components together—no matter their origin. Use block libraries or components from more than 50 dedicated add-on products for Simulink and more than 100 modeling and simulation connection partners. Use Simulink to bring code into your design written in MATLAB, C/C++, Python, and other languages.
Simulink supports open simulation standards such as Functional Mock-Up Interface (FMI). Use the FMI import block in Simulink to bring in external FMUs. Integrate external simulation framework through middleware such as ROS or DDS.
Combine components modeled at different levels of fidelity using model order reduction techniques to manage and match component fidelities across your model.
Simulate and Analyze
System simulation lets you detect and correct system design issues at modeling time. Use simulation pacing to run simulation at a specified rate to observe the system’s behavior clearly. Step your simulation forward and backward to gain insights into the system and understand the causes of unexpected behavior.
Use dashboard blocks to interactively control parameter values and see how a collection of signals respond. Log data from your simulation using Simulation Data Inspector to view and compare results and MATLAB for further analysis.
Run Massive Simulation Jobs on Clusters and in the Cloud
Configure Simulink to run tasks such as Monte Carlo simulations, design optimization, or automated testing to cover all the design cases of your virtual system. Achieve system design insights faster by executing your simulation jobs on a cluster or in the cloud. The multiple simulation panel in Simulink helps you to create massive simulation jobs without scripting. Use Simulation Manager to monitor, inspect, and visualize simulation progress and results.
Simulink incrementally loads and logs your data into memory during the simulations using data streaming. The simulation data is processed one chunk at a time without having to load the entire dataset into the memory. This eliminates system memory bottlenecks even with massive simulations that use and produce big data.
Share simulations with collaborators, suppliers, and clients while choosing the right level of functionality. With Simulink Compiler™, you can automatically generate a simulation app from your model and compile it into a standalone executable or a web app for browser-based access.
You can export an FMU from your model to use with external simulation environments. You can also share your model as a protected model, with which you can optionally include a web view of the model, generated code, and password protection.