Introduction to Simulink
Todd Atkins
tatkins@mathworks.com
1
Outline
What is Simulink?
Working with Simulink
How Simulink works
Componentizing models
Continuous and discrete models
4
Simulink Applications
5
Simulink
Simulink is a software package for
modeling, simulating, and analyzing
dynamical systems
• Block diagram editing
• Nonlinear simulation
• Hybrid (continuous and discrete) models
• Asynchronous (non-uniform sampling)
simulation
• Fully integrated with MATLAB, MATLAB
toolboxes and blocksets.
6
Simulink
Accurately design, implement, and
test:
– Control systems
– Signal Processing systems
– Communications systems
– Embedded systems
– Physical systems
– other Dynamical systems
7
Model Based Design with Simulink
Modeling and simulation
– Multidomain Dynamic Systems
– Nonlinear Systems
– Continuous-time , Discrete-time, Multi-Rate systems
Plant and Controller Design
– Rapidly model what-if scenarios
– Communicate design ideas
– Embody performance specifications
– Select/Optimize control architecture and parameters
Implementation
– Automatic code generation
– Rapid prototyping for HIL, SIL
– Verification and validation
8
Bell Helicopter Develops the First Civilian
Tiltrotor, Using Model-Based Design
Challenge
To design and build the BA609, the first and fastest
commercially available tiltrotor aircraft in the world
The BA609, flying in airplane mode.
Solution
Use Model-Based Design with MATLAB, Simulink,
and Real-Time Workshop software to model, simulate, "Simulations and a rapid, iterative
test, and verify designs approach enabled us to minimize
Results the unknowns and ensure that we
Full collaboration with suppliers via Simulink models had established enough margin
Flight control system code generated automatically that when we ran into a surprise we
from models could continue to have a safe flight
40% improvement in design and development time test program—and run it with
Flawless first flight, which went exactly like unprecedented efficiency.”
the simulation
David King
Bell Helicopter
Link to technical article
10
Outline
Why Simulink?
Working with Simulink
How Simulink works
Componentizing models
Continuous and discrete models
11
Launching Simulink
12
Simulink Library Browser
13
Finding Blocks
14
Getting Help
Context sensitive help
Simulink documentation
15
Demo
y = 4 ∗ sin(t ) − 10
Working with a simple model
Changing block parameters
Labeling blocks and signals
Running a simulation
Defining parameters with MATLAB variables
Saving/opening a model
16
Outline
Why Simulink?
Working with Simulink
How Simulink works
Componentizing models
Continuous and discrete models
17
How Simulink Works
Engine provides variable-step and fixed-
step ODE solvers
Block Diagram representation of
dynamic systems
Blocks define governing equations
Signals are propagated between blocks
over time
signal
18
Simulink Solvers
Solver?
– Determines solution at current time step
– Determines the next simulation time step
Solver options: Fixed-Step Variable-Step
Ode1 Ode45
Ode2 Ode23
Ode3 Ode113
Ode4 Ode15s
Ode5 Ode23s
Ode8 Ode23t
Ode23tb
19
Outline
Why Simulink?
Working with Simulink
How Simulink works
Componentizing models
Continuous and discrete models
24
Creating Subsystem
Context menu -> Create Subsystem
Subsystem ports
Inside a subsystem
How to undo ‘Create Subsystem’?
26
Subsystems
Why?
– Reduce blocks displayed in a model window
– Keep functionally related block together
– Establish hierarchical block diagram
29
Model Referencing
One model in another- parent and referenced
model
Advantages:
– Componentization/Modularization
– IP protection
– Multiple referencing
– Acceleration
30
Block Library
Collection of blocks
Prototype block vs Reference block
Library Links
– Disable link
– Restore link
– Break link
Other features
– Display in Simulink Library Browser
– Add documentation
31
Outline
Why Simulink?
Working with Simulink
How Simulink works
Componentizing models
Continuous and discrete models
32
‘Continuous’ Library
33
Continuous systems: Time-Domain
Representation using Integrator Block
x' (t ) = 3x(t ) + u (t )
34
Continuous systems: Frequency-Domain
Representation using Transfer Function Block
X (s ) 1
x' (t ) = 3x(t ) + u (t ) ⇔ = Transfer function:
U (s ) s − 3 sx = 3x + u
x = u/(s-3)
x/u = 1/(s-3)
35
Simulink Demo: Foucault Pendulum
Model with VRML Visualization
sldemo_foucault_vr.mdl
38
Other Demos for Continuous Systems
39
Discrete Systems
System that takes an input sequence of
samples and outputs a sequence of samples
Sampling
y[k ] = 0.1x[k ] + x[k − 1]
x[k + 1] = −0.5 x[k ] + u[k ]
System
x[n] y[n]
40
‘Discrete’ Library
41
Discrete system example
Second order FIR filter
x[k ] + ax[k − 2]
y[k ] =
2
42
Summary
Why Simulink?
Working with Simulink
How Simulink works
Componentizing models
Continuous and discrete models
48
More on Simulink
Simulink Tutorials
Demos and Webinars
Documentation
49