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