Getting Started
What Is Simulink?
Tool for Simulation
Tool for Model-Based Design
Related Products
Running a Demo Model
Description of the Demo
Some Things to Try
What This Demo Illustrates
Other Useful Demos
Building a Model
Setting Simulink Preferences
Miscellaneous Preferences
Font Preferences
Simulation Preferences
How Simulink Works
Introduction
Modeling Dynamic Systems
Block Diagram Semantics
Creating Models
Time
States
Block Parameters
Tunable Parameters
Block Sample Times
Custom Blocks
Systems and Subsystems
Signals
Block Methods
Model Methods
Simulating Dynamic Systems
Model Compilation
Link Phase
Simulation Loop Phase
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
Constant Sample Time
Mixed Continuous and Discrete Systems
Simulink Basics
Starting Simulink
Opening Models
Opening Models with Different Character Encodings
Avoiding Initial Model Open Delay
Simulink Editor
Editor Components
Undoing a Command
Zooming Block Diagrams
Panning Block Diagrams
Saving a Model
Saving Models with Different Character Encodings
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
Manipulating Signal Labels
Manipulating Annotations
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
Displaying Sample Time Colors
Connecting Blocks
Automatically Connecting Blocks
Manually Connecting Blocks
Disconnecting Blocks
Annotating Diagrams
Using TeX Formatting Commands in Annotations
Creating Annotations Programmatically
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
Conditional Execution Behavior
Referencing Models
Model Referencing Versus Subsystems
Creating a Model Reference
Opening a Referenced Model
Parameterizing Model References
Using Model Arguments
Model Block Sample Times
Referenced Model I/O
Model Interfaces
Building Simulation Targets
Converting Subsystems to Model References
Modeling with Control Flow Blocks
Creating Conditional Control Flow Statements
Comparing Stateflow and Control Flow Statements
Using Callback Functions
Tracing Callbacks
Creating Model Callback Functions
Creating Block Callback Functions
Port Callback Parameters
Working with Model Workspaces
Changing Model Workspace Data
Model Workspace Dialog Box
Working with Data Stores
Defining Data Stores
Accessing Data Stores
Data Store Examples
The Model Advisor
Launching the Model Advisor
The Model Advisor Window
Checking Code-Generation Targets
Model Advisor Demo Models
Managing Model Versions
Specifying the Current User
Model Properties Dialog Box
Creating a Model Change History
Version Control Properties
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
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
Working with Block Parameters
Working with Tunable Parameters
Inlining Parameters
Block Properties Dialog Box
State Properties Dialog Box
Changing a Block's Appearance
Changing the Orientation of a Block
Resizing a Block
Displaying Parameters Beneath a Block
Using Drop Shadows
Manipulating Block Names
Specifying a Block's Color
Displaying Block Outputs
Enabling Port Values Display
Port Values Display Options
Controlling and Displaying the Sorted Order
How Simulink Determines the Sorted Order
Displaying the Sorted Order
Assigning Block Priorities
Lookup 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
Updating Links to Reflect Block Path Changes
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
Accessing Block Data During Simulation
About Block Runtime Objects
Accessing a Runtime Object
Listening for Method Execution Events
Working with Signals
Signal Basics
About Signals
Creating Signals
Signal Labels
Displaying Signal Values
Signal Data Types
Signal Dimensions
Complex Signals
Virtual Signals
Control Signals
Signal Buses
Checking Signal Connections
Signal Glossary
Determining Output Signal Dimensions
Signal and Parameter Dimension Rules
Scalar Expansion of Inputs and Parameters
The Signal & Scope Manager
Generator and Viewer Types
Generator and Viewer Objects
Signals connected to Generator/Viewer
The Signal Selector
Port/Axis Selector
Model Hierarchy
Inputs/Signals List
Logging Signals
Enabling Signal Logging
Specifying a Logging Name
Limiting the Data Logged for a Signal
Logging Referenced Model Signals
Accessing Logged Signal Data
Signal Properties Dialog Box
Logging and Accessibility Options
Real-Time Workshop Options
Documentation Options
Working with Test Points
Designating a Signal as a Test Point
Displaying Test Point Indicators
Displaying Signal Properties
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
Bus Editor
Bus types in base workspace
Bus elements
Bus name
Header file
Bus description
Working with Data
Working with Data Types
Data Types Supported by Simulink
Fixed-Point Data
Fixed-Point Settings Interface
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
About Data Object Classes
About Data Object Methods
Constructors
Using the Model Explorer to Create Data Objects
About Object Properties
Changing Object Properties
Handle Versus Value Classes
Saving and Loading Data Objects
Using Data Objects in Simulink Models
Creating Persistent Data Objects
Subclassing Simulink Data Classes
Associating User Data with Blocks
Modeling with Simulink
Modeling Equations
Converting Celsius to Fahrenheit
Modeling a Continuous System
Avoiding Invalid Loops
Tips for Building Models
Exploring, Searching, and Browsing Models
The Model Explorer
Setting the Model Explorer's Font Size
Model Hierarchy Pane
Contents Pane
Dialog Pane
Main Toolbar
Search Bar
The Finder
Filter Options
Search Criteria
The Model Browser
Running Simulations
Simulation Basics
Controlling Execution of a Simulation
Interacting with a Running Simulation
Specifying a Simulation Start and Stop Time
Choosing a Solver
Choosing a Solver Type
Choosing a Fixed-Step Solver
Choosing a Variable-Step Solver
Importing and Exporting Simulation Data
Importing Input Data from the MATLAB Workspace
Exporting Output Data to the MATLAB Workspace
Importing and Exporting States
Limiting Output
Specifying Output Options
Configuration Sets
Configuration Set Components
The Active Set
Displaying Configuration Sets
Activating a Configuration Set
Copying, Deleting, and Moving Configuration Sets
Copying Configuration Set Components
Creating Configuration Sets
Setting Values in Configuration Sets
Configuration Set API
The Model Configuration Dialog Box
The Model Configuration Preferences Dialog Box
The Configuration Parameters Dialog Box
The Solver Pane
Data Import/Export Pane
The Optimization Pane
The Diagnostics Pane
Hardware Implementation Pane
Model Referencing Pane
Diagnosing Simulation Errors
Simulation Diagnostics 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
Using the Debugger's Graphical User Interface
Toolbar
Breakpoints Pane
Simulation Loop Pane
Outputs Pane
Sorted List Pane
Status Pane
Using the Debugger's Command-Line Interface
Method ID
Block ID
Accessing the MATLAB Workspace
Getting Online Help
Starting the Debugger
Starting a Simulation
Running a Simulation Step by Step
Stepping Commands
Continuing a Simulation
Running a Simulation Nonstop
Debug Pointer
Setting Breakpoints
Setting Unconditional Breakpoints
Setting Conditional Breakpoints
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 Sorted Lists
Displaying a Block
Simulink Accelerator
The Simulink Accelerator
Accelerator Limitations
How the Accelerator Works
Running 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
Profiler
How the Profiler Works
Enabling the Profiler
The Simulation Profile
Using the Embedded MATLAB Function Block
Introduction to Embedded MATLAB Function Blocks
What Is an Embedded MATLAB Function Block?
Why Use Embedded MATLAB Function Blocks?
Creating an Example Embedded MATLAB Function
Adding an Embedded MATLAB Function Block to a Model
Programming the Embedded MATLAB Function
Checking the Function for Errors
Defining Inputs and Outputs
Debugging an Embedded MATLAB Function
Debugging the Function in Simulation
Watching Function Variables During Simulation
The Embedded MATLAB Function Editor
Changing the Embedded MATLAB Editor
Editing the Embedded MATLAB Function
Defining Embedded MATLAB Function Arguments
Debugging Embedded MATLAB Functions
Typing Function Arguments
Inheriting Argument Data Types
Selecting Types for Arguments
Specifying Argument Types with Expressions
Sizing Function Arguments
Inheriting Argument Sizes from Simulink
Specifying Argument Sizes with Expressions
Parameter Arguments in Embedded MATLAB Functions
Local Variables in Embedded MATLAB Functions
Declaring Local Variables Implicitly
Declaring Local Complex Variables Implicitly
Functions in Embedded MATLAB Functions
Calling Subfunctions in Embedded MATLAB Functions
Calling Embedded MATLAB Run-Time Library Functions
Calling MATLAB Functions