Model-Based Design is a process that enables fast and cost-effective development of dynamic systems, including control systems, signal processing, and communications systems. In Model-Based Design, a system model is at the center of the development process, from requirements development through design, implementation, and testing. The model is an executable specification that you continually refine throughout the development process. After model development, simulation shows whether the model works correctly.
When software and hardware implementation requirements are included with the model, such as fixed-point and timing behavior, you can generate code for embedded deployment and create test benches for system verification, saving time and avoiding manually coded errors.
Model-Based Design allows you to improve efficiency by:
Using a common design environment across project teams
Linking designs directly to requirements
Integrating testing with design to continuously identify and correct errors
Refining algorithms through multi-domain simulation
Generating embedded software code
Developing and reusing test suites
Reusing designs to deploy systems across multiple processors and hardware targets
With Simulink®, you can move beyond idealized linear models to explore realistic nonlinear models, factoring in friction, air resistance, gear slippage, hard stops, and the other parameters that describe real-world phenomena. Simulink enables you to think of the development environment as a laboratory for modeling and analyzing systems that would not be possible or practical otherwise.
Whether you are interested in the behavior of an automotive clutch system, the flutter of an airplane wing, or the effect of the monetary supply on the economy, Simulink provides you with the tools to model and simulate almost any real-world problem. Simulink also provides examples that model a wide variety of real-world phenomena.
Simulink provides a graphical editor for building models as block diagrams, allowing you to draw models as you would with pencil and paper. Simulink also includes a comprehensive library of sink, source, linear and nonlinear component, and connector blocks. If these blocks do not meet your needs, however, you can also create your own blocks. The interactive environment simplifies the modeling process, eliminating the need to formulate differential and difference equations in a language or program.
Models are hierarchical, so you can build models using both top-down and bottom-up approaches. You can view the system at a high level, then drill down to see increasing levels of model detail. This approach provides insight into how a model is organized and how parts interact.
After you define a model, you can simulate its dynamic behavior using a choice of mathematical integration methods, either interactively in Simulink or by entering commands in the MATLAB® Command Window. Commands are particularly useful for running a batch of simulations. For example, if you are doing Monte Carlo simulations or want to apply a parameter across a range of values, you can use MATLAB scripts.
Using scopes and other display blocks, you can see the simulation results while a simulation runs. You can then change parameters and see what happens for "what if" exploration. You can save simulation results in the MATLAB workspace for postprocessing and visualization.
Model analysis tools include linearization and trimming tools you can access from MATLAB, plus the many tools in MATLAB and its application toolboxes. Because MATLAB and Simulink are integrated, you can simulate, analyze, and revise your models in either environment.
Simulink software requires MATLAB to run, and it depends on it to define and evaluate model and block parameters. Simulink can also use many MATLAB features. For example, Simulink can use the MATLAB environment to:
Define model inputs.
Store model outputs for analysis and visualization.
Perform functions within a model, through integrated calls to MATLAB operators and functions.