Using Simulink    

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


  About This Guide