Getting Started
To the Reader
What Is Simulink?
How to Use This Manual
Related Products
Quick Start
Running a Demo Model
Description of the Demo
Some Things to Try
What This Demo Illustrates
Other Useful Demos
Building a Simple Model
Setting Simulink Preferences
Simulink Preferences
How Simulink Works
What Is Simulink
Modeling Dynamic Systems
Block Diagrams
Blocks
States
System Functions
Block Parameters
Continuous Versus Discrete Blocks
Subsystems
Custom Blocks
Signals
Data Types
Solvers
Simulating Dynamic Systems
Model Initialization Phase
Model Execution Phase
Processing at Each Time Step
Determining Block Update Order
Atomic Versus Virtual Subsystems
Solvers
Zero Crossing Detection
Algebraic Loops
Modeling and Simulating Discrete Systems
Discrete Blocks
Sample Time
Purely Discrete Systems
Multirate Systems
Determining Step Size for Discrete Systems
Sample Time Propagation
Invariant Constants
Mixed Continuous and Discrete Systems
Creating a Model
Starting Simulink
Creating a New Model
Editing an Existing Model
Entering Simulink Commands
Simulink Windows
Selecting Objects
Selecting One Object
Selecting More than One Object
Blocks
Block Data Tips
Virtual Blocks
Copying and Moving Blocks from One Window to Another
Moving Blocks in a Model
Copying Blocks in a Model
Block Parameters
Setting Block-Specific Parameters
Block Properties Dialog Box
Deleting Blocks
Changing the Orientation of Blocks
Resizing Blocks
Manipulating Block Names
Displaying Parameters Beneath a Block's Icon
Disconnecting Blocks
Assigning Block Priorities
Displaying Block Execution Order
Using Drop Shadows
Sample Time Colors
Connecting Blocks
Drawing a Line Between Blocks
Drawing a Branch Line
Drawing a Line Segment
Moving a Line Segment
Dividing a Line into Segments
Moving a Line Vertex
Inserting Blocks in a Line
Working with Signals
About Signals
Signal Buses
Signal Glossary
Determining Output Signal Dimensions
Signal and Parameter Dimension Rules
Scalar Expansion of Inputs and Parameters
Working with Complex Signals
Checking Signal Connections
Setting Signal Display Options
Signal Names
Signal Labels
Displaying Signals Represented by Virtual Signals
Setting Signal Properties
Signal Properties Dialog Box
Annotations
Working with Data Types
Data Types Supported by Simulink
Block Support for Data and Numeric Signal Types
Specifying Block Parameter Data Types
Creating Signals of a Specific Data Type
Displaying Port Data Types
Data Type Propagation
Data Typing Rules
Enabling Strict Boolean Type Checking
Typecasting Signals
Typecasting Parameters
Working with Data Objects
Data Object Classes
Creating Data Objects
Accessing Data Object Properties
Invoking Data Object Methods
Saving and Loading Data Objects
Using Data Objects in Simulink Models
Creating Data Object Classes
The Simulink Data Explorer
Summary of Mouse and Keyboard Actions
Creating Subsystems
Creating a Subsystem by Adding the Subsystem Block
Creating a Subsystem by Grouping Existing Blocks
Model Navigation Commands
Window Reuse
Labeling Subsystem Ports
Controlling Access to Subsystems
Using Callback Routines
Tracing Callbacks
Model Callback Parameters
Block Callback Parameters
Tips for Building Models
Libraries
Terminology
Creating a Library
Modifying a Library
Creating a Library Link
Disabling Library Links
Modifying a Linked Subsystem
Propagating Link Modifications
Updating a Linked Block
Breaking a Link to a Library Block
Finding the Library Block for a Reference Block
Library Link Status
Displaying Library Links
Getting Information About Library Blocks
Browsing Block Libraries
Adding Libraries to the Library Browser
Modeling Equations
Converting Celsius to Fahrenheit
Modeling a Simple Continuous System
Saving a Model
Printing a Block Diagram
Print Dialog Box
Print Command
Specifying Paper Size and Orientation
Positioning and Sizing a Diagram
Searching and Browsing Models
Searching for Objects
The Model Browser
Managing Model Versions
Specifying the Current User
Model Properties Dialog
Creating a Model Change History
Version Control Properties
Ending a Simulink Session
Running a Simulation
Introduction
Using Menu Commands
Running a Simulation from the Command Line
Running a Simulation Using Menu Commands
Setting Simulation Parameters and Choosing the Solver
Applying the Simulation Parameters
Starting the Simulation
Simulation Diagnostics Dialog Box
The Simulation Parameters Dialog Box
The Solver Pane
The Workspace I/O Pane
The Diagnostics Pane
The Advanced Pane
Improving Simulation Performance and Accuracy
Speeding Up the Simulation
Improving Simulation Accuracy
Running a Simulation from the Command Line
Using the sim Command
Using the set_param Command
sim
simplot
simset
simget
Analyzing Simulation Results
Viewing Output Trajectories
Using the Scope Block
Using Return Variables
Using the To Workspace Block
Linearization
Equilibrium Point Determination
linfun
trim
Using Masks to Customize Blocks
Introduction
A Sample Masked Subsystem
Creating Mask Dialog Box Prompts
Creating the Block Description and Help Text
Creating the Block Icon
The Mask Editor: An Overview
The Initialization Pane
Prompts and Associated Variables
Control Types
Default Values for Masked Block Parameters
Tunable Parameters
Initialization Commands
The Icon Pane
Displaying Text on the Block Icon
Displaying Graphics on the Block Icon
Displaying Images on Masks
Displaying a Transfer Function on the Block Icon
Controlling Icon Properties
The Documentation Pane
The Mask Type Field
The Block Description Field
The Mask Help Text Field
Creating Self-Modifying Masked Blocks
Creating Dynamic Dialogs for Masked Blocks
Setting Masked Block Dialog Parameters
Predefined Masked Dialog Parameters
Conditionally Executed Subsystems
Introduction
Enabled Subsystems
Creating an Enabled Subsystem
Blocks an Enabled Subsystem Can Contain
Triggered Subsystems
Creating a Triggered Subsystem
Function-Call Subsystems
Blocks That a Triggered Subsystem Can Contain
Triggered and Enabled Subsystems
Creating a Triggered and Enabled Subsystem
A Sample Triggered and Enabled Subsystem
Creating Alternately Executing Subsystems
Block Reference
What Each Block Reference Page Contains
Simulink Block Libraries
Abs
Algebraic Constraint
Backlash
Band-Limited White Noise
Bitwise Logical Operator
Bus Selector
Chirp Signal
Clock
Combinatorial Logic
Complex to Magnitude-Angle
Complex to Real-Imag
Configurable Subsystem
Constant
Coulomb and Viscous Friction
Data Store Memory
Data Store Read
Data Store Write
Data Type Conversion
Dead Zone
Demux
Derivative
Digital Clock
Direct Look-Up Table (n-D)
Discrete Filter
Discrete Pulse Generator
Discrete State-Space
Discrete-Time Integrator
Discrete Transfer Fcn
Discrete Zero-Pole
Display
Dot Product
Enable
Fcn
First-Order Hold
From
From File
From Workspace
Function-Call Generator
Gain
Goto
Goto Tag Visibility
Ground
Hit Crossing
IC
Inport
Integrator
Interpolation (n-D) Using PreLook-Up
Logical Operator
Look-Up Table
Look-Up Table (2-D)
Look-Up Table (n-D)
Magnitude-Angle to Complex
Manual Switch
Math Function
MATLAB Fcn
Matrix Concatenation
Matrix Gain
Memory
Merge
MinMax
Model Info
Multiport Switch
Mux
Outport
Polynomial
Prelook-Up Index Search
Product
Probe
Pulse Generator
Quantizer
Ramp
Random Number
Rate Limiter
Real-Imag to Complex
Relational Operator
Relay
Repeating Sequence
Reshape
Rounding Function
Saturation
Scope
Selector
S-Function
Sign
Signal Generator
Signal Specification
Sine Wave
Slider Gain
State-Space
Step
Stop Simulation
Subsystem
Sum
Switch
Terminator
To File
To Workspace
Transfer Fcn
Transport Delay
Trigger
Trigonometric Function
Uniform Random Number
Unit Delay
Variable Transport Delay
Width
XY Graph
Zero-Order Hold
Zero-Pole
Model Construction Commands
Introduction
How to Specify Parameters for the Commands
How to Specify a Path for a Simulink Object
add_block
add_line
bdclose
bdroot
close_system
delete_block
delete_line
find_system
gcb
gcbh
gcs
get_param
new_system
open_system
replace_block
save_system
set_param
simulink
Simulink Debugger
Starting the Debugger
Starting the Simulation
Using the Debugger's Command-Line Interface
About Block Indexes
Accessing the MATLAB Workspace
Getting Online Help
Running a Simulation
Continuing a Simulation
Running a Simulation Nonstop
Advancing to the Next Block
Advancing to the Next Time Step
Setting Breakpoints
Setting Breakpoints at Blocks
Setting Breakpoints at Time Steps
Breaking on Nonfinite Values
Breaking on Step-Size Limiting Steps
Breaking at Zero-Crossings
Displaying Information About the Simulation
Displaying Block I/O
Displaying Algebraic Loop Information
Displaying System States
Displaying Integration Information
Displaying Information About the Model
Displaying a Model's Block Execution Order
Displaying a Block
Debugger Command Reference
ashow
atrace
bafter
break
bshow
clear
continue
disp
help
ishow
minor
nanbreak
next
probe
quit
run
slist
states
systems
status
step
stop
tbreak
trace
undisp
untrace
xbreak
zcbreak
zclist
Performance Tools
About the Simulink Performance Tools Option
The Simulink Accelerator
How Does It Work?
How to Run the Simulink Accelerator
Handling Changes in Model Structure
Increasing Performance of Accelerator Mode
Blocks That Do Not Show Speed Improvements
Using the Simulink Accelerator with the Simulink Debugger
Interacting with the Simulink Accelerator Programmatically
Comparing Performance
Customizing the Simulink Accelerator Build Process
Controlling S-Function Execution
Model Differencing Tool
Display Options
Model Differences Report
Profiler
How the Profiler Works
Enabling the Profiler
The Simulation Profile
Model Coverage Tool
How the Model Coverage Tool Works
Using the Model Coverage Tool
Creating and Running Test Cases
The Coverage Report
Coverage Settings Dialog Box
Model Coverage Commands
Model and Block Parameters
Introduction
Model Parameters
Common Block Parameters
Block-Specific Parameters
Mask Parameters
Model File Format
Model File Contents
Model Section
BlockDefaults Section
AnnotationDefaults Section
System Section