About This Guide
To the Reader
What Is Simulink?
Using This Manual
Related Products
Typographical Conventions
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
Specifying Sample Time
Purely Discrete Systems
Multirate Systems
Determining Step Size for Discrete Systems
Sample Time Propagation
Invariant Constants
Mixed Continuous and Discrete Systems
Simulink Basics
Starting Simulink
Opening Models
Entering Simulink Commands
Using the Simulink Menu Bar to Enter Commands
Using Context-Sensitive Menus to Enter Commands
Using the Simulink Toolbar to Enter Commands
Using the MATLAB Window to Enter Commands
Undoing a Command
Simulink Windows
Status Bar
Zooming Block Diagrams
Saving a Model
Saving a Model in Earlier Formats
Printing a Block Diagram
Print Dialog Box
Print Command
Specifying Paper Size and Orientation
Positioning and Sizing a Diagram
Generating a Model Report
Model Report Options
Summary of Mouse and Keyboard Actions
Manipulating Blocks
Manipulating Lines
Ending a Simulink Session
Creating a Model
Creating a New Model
Selecting Objects
Selecting One Object
Selecting More Than One Object
Specifying Block Diagram Colors
Choosing a Custom Color
Defining a Custom Color
Specifying Colors Programmatically
Enabling Sample Time Colors
Connecting Blocks
Automatically Connecting Blocks
Manually Connecting Blocks
Disconnecting Blocks
Annotating Diagrams
Using TeX Formatting Commands in Annotations
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
Creating Conditionally Executed Subsystems
Enabled Subsystems
Triggered Subsystems
Triggered and Enabled Subsystems
Control Flow Blocks
Model Discretizer
Requirements
Discretizing a Model from the Model Discretizer GUI
Viewing the Discretized Model
Discretizing Blocks from the Simulink Model
Discretizing a Model from the MATLAB Command Window
Using Callback Routines
Tracing Callbacks
Creating Model Callback Functions
Creating Block Callback Functions
Port Callback Parameters
Managing Model Versions
Specifying the Current User
Model Properties Dialog Box
Creating a Model Change History
Version Control Properties
Working with Blocks
About Blocks
Block Data Tips
Virtual Blocks
Editing Blocks
Copying and Moving Blocks from One Window to Another
Moving Blocks in a Model
Copying Blocks in a Model
Deleting Blocks
Setting Block Parameters
Setting Block-Specific Parameters
Block Properties Dialog Box
State Properties Dialog Box
Changing a Block's Appearance
Changing the Orientation of a Block
Resizing a Block's Icon
Displaying Parameters Beneath a Block's Icon
Using Drop Shadows
Manipulating Block Names
Specifying a Block's Color
Controlling and Displaying Block Execution Order
Assigning Block Priorities
Displaying Block Execution Order
Look-Up Table Editor
Browsing LUT Blocks
Editing Table Values
Displaying N-D Tables
Plotting LUT Tables
Editing Custom LUT Blocks
Working with Block Libraries
Terminology
Simulink Block Library
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
Working with Signals
Signal Basics
About Signals
Control Signals
Signal Buses
Signal Glossary
Determining Output Signal Dimensions
Signal and Parameter Dimension Rules
Scalar Expansion of Inputs and Parameters
Setting Signal Properties
Signal Properties Dialog Box
Working with Complex Signals
Checking Signal Connections
Displaying Signals
Signal Names
Signal Labels
Displaying Signals Represented by Virtual Signals
Working with Signal Groups
Creating a Signal Group Set
The Signal Builder Dialog Box
Editing Signal Groups
Editing Signals
Editing Waveforms
Signal Builder Time Range
Exporting Signal Group Data
Simulating with Signal Groups
Simulation Options Dialog Box
Working with Data
Working with Data Types
Data Types Supported by Simulink
Fixed-Point Data
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
Associating User Data with Blocks
Modeling with Simulink
Modeling Equations
Converting Celsius to Fahrenheit
Modeling a Simple Continuous System
Avoiding Invalid Loops
Tips for Building Models
Browsing and Searching Models
Finding Objects
Filter Options
Search Criteria
The Model Browser
Using the Model Browser on Windows
Using the Model Browser on UNIX
Running a Simulation
Simulation Basics
Specifying Simulation Parameters
Controlling Execution of a Simulation
Interacting with a Running Simulation
The Simulation Parameters Dialog Box
The Solver Pane
The Workspace I/O Pane
The Diagnostics Pane
The Advanced Pane
Diagnosing Simulation Errors
Simulation Diagnostic Viewer
Creating Custom Simulation Error Messages
Improving Simulation Performance and Accuracy
Speeding Up the Simulation
Improving Simulation Accuracy
Running a Simulation Programmatically
Using the sim Command
Using the set_param Command
Analyzing Simulation Results
Viewing Output Trajectories
Using the Scope Block
Using Return Variables
Using the To Workspace Block
Linearizing Models
Finding Steady-State Points
Creating Masked Subsystems
About Masks
Mask Features
Creating Masks
Masked Subsystem Example
Creating Mask Dialog Box Prompts
Creating the Block Description and Help Text
Creating the Block Icon
Masking a Subsystem
The Mask Editor
The Icon Pane
The Parameters Pane
Control Types
The Initialization Pane
The Documentation Pane
Linking Mask Parameters to Block Parameters
Creating Dynamic Dialogs for Masked Blocks
Setting Masked Block Dialog Parameters
Predefined Masked Dialog Parameters
Simulink Debugger
Introduction
Starting the Debugger
Starting the Simulation
Using the Debugger's Command-Line Interface
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 Summary
Performance Tools
About the Simulink Performance Tools Option
The Simulink Accelerator
Accelerator Limitations
How the Accelerator Works
Runnning 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
Graphical Merge Tool
Comparing Models
The Graphical Merge Tool Window
Navigating Model Differences
Merging Model Differences
Generating a 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
HTML Settings
Model Coverage Commands