Select Index


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