Print Preview C:\TEMP\Apdf_2541_3068\home\AppData\Local\PTC\Arbortext\Editor\.aptcache\ae384hih/tf384yff Simulink User's Guide
User Manual:
Open the PDF directly: View PDF
Page Count: 2839 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- toc
- Introduction to Simulink
- Simulink Basics
- Start the Simulink Software
- Open a Model
- Load a Model
- Save a Model
- How to Tell If a Model Needs Saving
- Save a Model for the First Time
- Model Names
- Save a Previously Saved Model
- What Happens When You Save a Model?
- Saving Models in the SLX File Format
- Saving Models with Different Character Encodings
- Export a Model to a Previous Simulink Version
- Save from One Earlier Simulink Version to Another
- Simulink Editor
- Zoom and Pan Block Diagrams
- Update a Block Diagram
- Copy Models to Third-Party Applications
- Print a Block Diagram
- Generate a Model Report
- End a Simulink Session
- Keyboard and Mouse Shortcuts for Simulink
- Simulink Demos Are Now Called Examples
- Simulation Stepping
- How Simulink Works
- How Simulink Works
- Modeling Dynamic Systems
- Simulating Dynamic Systems
- Model Compilation
- Link Phase
- Simulation Loop Phase
- Solvers
- Zero-Crossing Detection
- Algebraic Loops
- What Is an Algebraic Loop?
- Problems Caused by Algebraic Loops
- Identifying Algebraic Loops in Your Model
- What If I Have an Algebraic Loop in My Model?
- Simulink Algebraic Loop Solver
- Removing Algebraic Loops
- Additional Techniques to Help the Algebraic Loop Solver
- Changing Block Priorities Does Not Remove Algebraic Loops
- Artificial Algebraic Loops
- Simulink Basics
- Modeling Dynamic Systems
- Creating a Model
- Create an Empty Model
- Populate a Model
- Select Modeling Objects
- Specify Block Diagram Colors
- Connect Blocks
- Align, Distribute, and Resize Groups of Blocks
- Annotate Diagrams
- Create a Subsystem
- Subsystem Advantages
- Two Ways to Create a Subsystem
- Create a Subsystem by Adding the Subsystem Block
- Create a Subsystem by Grouping Existing Blocks
- Subsystem Execution
- Navigate Model Hierarchy
- Label Subsystem Ports
- Control Access to Subsystems
- Interconvert Subsystems and Block Diagrams
- Empty Subsystems and Block Diagrams
- Control Flow Logic
- Callback Functions
- Model Workspaces
- Symbol Resolution
- Consult the Model Advisor
- About the Model Advisor
- Start the Model Advisor
- Overview of the Model Advisor Window
- Overview of the Model Advisor Dashboard
- Run Model Advisor Checks
- Run Checks Using Model Advisor Dashboard
- Highlight Model Advisor Analysis Results
- Fix a Warning or Failure
- Revert Changes Using Restore Points
- View and Save Model Advisor Reports
- Run the Model Advisor Programmatically
- Check Support for Libraries
- Model Advisor Limitations
- Consult the Upgrade Advisor
- Manage Model Versions
- Model Discretizer
- Working with Sample Times
- What Is Sample Time?
- Specify Sample Time
- Designate Sample Times
- Specify Block-Based Sample Times Interactively
- Specify Port-Based Sample Times Interactively
- Specify Block-Based Sample Times Programmatically
- Specify Port-Based Sample Times Programmatically
- Access Sample Time Information Programmatically
- Specify Sample Times for a Custom Block
- Determining Sample Time Units
- Change the Sample Time After Simulation Start Time
- View Sample Time Information
- Print Sample Time Information
- Types of Sample Time
- Block Compiled Sample Time
- Sample Times in Subsystems
- Sample Times in Systems
- Resolve Rate Transitions
- How Propagation Affects Inherited Sample Times
- Monitor Backpropagation in Sample Times
- Referencing a Model
- Overview of Model Referencing
- Create a Model Reference
- Convert a Subsystem to a Referenced Model
- Referenced Model Simulation Modes
- View a Model Reference Hierarchy
- Model Reference Simulation Targets
- Simulink Model Referencing Requirements
- Parameterize Model References
- Conditional Referenced Models
- Protected Model
- Use Protected Model in Simulation
- Inherit Sample Times
- Refresh Model Blocks
- S-Functions with Model Referencing
- Buses in Referenced Models
- Signal Logging in Referenced Models
- Model Referencing Limitations
- Creating Conditional Subsystems
- About Conditional Subsystems
- Enabled Subsystems
- Triggered Subsystems
- Triggered and Enabled Subsystems
- Function-Call Subsystems
- Conditional Execution Behavior
- Modeling Variant Systems
- Exploring, Searching, and Browsing Models
- Model Explorer Overview
- Model Explorer: Model Hierarchy Pane
- What You Can Do with the Model Hierarchy Pane
- Simulink Root
- Base Workspace
- Configuration Preferences
- Model Nodes
- Displaying Partial or Whole Model Hierarchy Contents
- Displaying Linked Library Subsystems
- Displaying Masked Subsystems
- Linked Library and Masked Subsystems
- Displaying Node Contents
- Navigating to the Block Diagram
- Working with Configuration Sets
- Expanding Model References
- Cutting, Copying, and Pasting Objects
- Model Explorer: Contents Pane
- Control Model Explorer Contents Using Views
- Organize Data Display in Model Explorer
- Filter Objects in the Model Explorer
- Workspace Variables in Model Explorer
- Search Using Model Explorer
- Model Explorer: Property Dialog Pane
- Finder
- Model Browser
- Model Dependency Viewer
- About Model Dependency Views
- Opening the Model Dependency Viewer
- Manipulating a Dependency View
- Changing Dependency View Type
- Excluding Block Libraries from a File Dependency View
- Including Simulink Blocksets in a File Dependency View
- Changing View Orientation
- Expanding or Collapsing Views
- Zooming a Dependency View
- Moving a Dependency View
- Rearranging a Dependency View
- Displaying and Hiding a Dependency View's Legend
- Displaying Full Paths of Referenced Model Instances
- Refreshing a Dependency View
- Browsing Dependencies
- Saving a Dependency View
- Printing a Dependency View
- View Linked Requirements in Models and Blocks
- Managing Model Configurations
- About Model Configurations
- Multiple Configuration Sets in a Model
- Share a Configuration for Multiple Models
- Share a Configuration Across Referenced Models
- Convert Configuration Set to Configuration Reference
- Propagate a Configuration Reference
- Undo a Configuration Reference Propagation
- Manage a Configuration Set
- Create a Configuration Set in a Model
- Create a Configuration Set in the Base Workspace
- Open a Configuration Set in the Configuration Parameters Dialog
- Activate a Configuration Set
- Set Values in a Configuration Set
- Copy, Delete, and Move a Configuration Set
- Save a Configuration Set
- Load a Saved Configuration Set
- Copy Configuration Set Components
- Manage a Configuration Reference
- Create and Attach a Configuration Reference
- Resolve a Configuration Reference
- Activate a Configuration Reference
- Manage Configuration Reference Across Referenced Models
- Change Parameter Values in a Referenced Configuration Set
- Save a Referenced Configuration Set
- Load a Saved Referenced Configuration Set
- Why is the Build Button Not Available for a Configuration Refere
- About Configuration Sets
- About Configuration References
- Model Configuration Command Line Interface
- Overview
- Load and Activate a Configuration Set at the Command Line
- Save a Configuration Set at the Command Line
- Create a Freestanding Configuration Set at the Command Line
- Create and Attach a Configuration Reference at the Command Line
- Attach a Configuration Reference to Multiple Models at the Comma
- Get Values from a Referenced Configuration Set
- Change Values in a Referenced Configuration Set
- Obtain a Configuration Reference Handle
- Use refresh When Replacing a Referenced Configuration Set
- Configuring Models for Targets with Multicore Processors
- Introduction to Concurrent Execution
- Design Considerations
- Modeling Process for Concurrent Execution
- Configure Your Model
- Baseline Analysis Using Configuration Defaults
- Customize Concurrent Execution Settings
- Interpret Simulation Results
- Build and Download to a Multicore Target
- Concurrent Execution Example Model
- Command-Line Interface
- Modeling Best Practices
- Managing Projects
- Organize Large Modeling Projects
- Try Simulink Project Tools with the Airframe Project
- Explore the Airframe Project
- Set Up the Project Files and Open the Simulink Project Tool
- View, Search, and Sort Project Files
- Automate Project Startup and Shutdown Tasks
- Open and Run Frequently Used Files
- Review Changes in Modified Files
- Run Project Integrity Checks
- Run Dependency Analysis
- Commit Modified Files
- Upgrade Model Files to SLX and Preserve Revision History
- View Source Control and Project Information
- Create a New Simulink Project
- Analyze Project Dependencies
- Manage Project Files
- Automate Project Startup and Run Frequent Tasks
- Run Batch Functions on Project Files
- Use Source Control with Projects
- Retrieve and Check Out Files Under Source Control
- Review Changes and Commit Modified Files
- Use Templates to Create Standard Project Settings
- Archive Projects in Zip Files
- Analyze Model Dependencies
- Creating a Model
- Simulating Dynamic Systems
- Running Simulations
- Simulation Basics
- Control Execution of a Simulation
- Specify Simulation Start and Stop Time
- Choose a Solver
- Interact with a Running Simulation
- Save and Restore Simulation State as SimState
- Diagnose Simulation Errors
- Running a Simulation Programmatically
- About Programmatic Simulation
- Run Simulation Using the sim Command
- Control Simulation using the set_param Command
- Run Parallel Simulations
- Error Handling in Simulink Using MSLException
- Visualizing and Comparing Simulation Results
- Inspecting and Comparing Logged Signal Data
- Inspect Signal Data with Simulation Data Inspector
- Requirements for Recording Data
- Record Simulation Data
- Import Logged Signal Data
- Load Previously Recorded Data from a MAT-file
- Inspect Signal Data
- Compare Signal Data
- Comparison of One Signal From Multiple Simulations
- Compare All Logged Signal Data From Multiple Simulations
- Create Simulation Data Inspector Report
- Export Results in the Simulation Data Inspector Tool
- How the Simulation Data Inspector Tool Aligns Signals
- How the Simulation Data Inspector Tool Compares Time Series Data
- Customize the Simulation Data Inspector Interface
- Overview
- Open the Simulation Data Inspector Tool
- Why Is the Simulation Data Inspector Tool Empty?
- Add/Delete a Column in the Signal Browser Table
- Modify Grouping in Signal Browser Table
- Rename a Run
- Specify the Line Configuration
- Select a Run or Signal Option in the Signal Browser Table
- Display Run Properties
- Modify a Plot in the Simulation Data Inspector Tool
- Toolbar
- Limitations of the Simulation Data Inspector Tool
- Record and Inspect Signal Data Programmatically
- Analyzing Simulation Results
- Improving Simulation Performance and Accuracy
- Performance Advisor
- Consult the Performance Advisor
- About the Performance Advisor
- Prepare to Use Performance Advisor
- Start the Performance Advisor
- Overview of the Performance Advisor Window
- Performance Advisor Workflow
- Create Baseline
- Run Performance Advisor Checks
- View and Save Performance Advisor Reports
- Understand Performance Advisor Analysis Results
- Fix a Warning
- Review the Actions Taken
- Save Your Model
- Performance Advisor Limitations
- Consult the Performance Advisor
- Simulink Debugger
- Introduction to the Debugger
- Debugger Graphical User Interface
- Debugger Command-Line Interface
- Debugger Online Help
- Start the Simulink Debugger
- Start a Simulation
- Run a Simulation Step by Step
- Set Breakpoints
- Display Information About the Simulation
- Display Information About the Model
- Accelerating Models
- What Is Acceleration?
- How Acceleration Modes Work
- Code Regeneration in Accelerated Models
- Choosing a Simulation Mode
- Design Your Model for Effective Acceleration
- Perform Acceleration
- Interact with the Acceleration Modes Programmatically
- Run Accelerator Mode with the Simulink Debugger
- Capture Performance Data
- Running Simulations
- Managing Blocks
- Working with Blocks
- About Blocks
- Add Blocks
- Edit Blocks
- Set Block Properties
- Change the Appearance of a Block
- Display Port Values
- Control and Displaying the Sorted Order
- Access Block Data During Simulation
- Configure a Block for Code Generation
- Working with Block Parameters
- Working with Lookup Tables
- About Lookup Table Blocks
- Anatomy of a Lookup Table
- Lookup Tables Block Library
- Guidelines for Choosing a Lookup Table
- Enter Breakpoints and Table Data
- Characteristics of Lookup Table Data
- Methods for Estimating Missing Points
- Edit Existing LookupTables
- When to Use the Lookup Table Editor
- Layout of the Lookup Table Editor
- Browsing Lookup Table Blocks
- Editing Table Values
- Working with Table Data of Standard Format
- Working with Table Data of Nonstandard Format
- How to Propagate Changes in the Lookup Table Editor to Workspace
- How to Register a Customization Function for the Lookup Table Ed
- What Happens When Multiple Customization Functions Exist
- How to Respond to Prompts in the Lookup Table Editor
- Example of Propagating a Change for Table Data of Nonstandard Fo
- Importing Data from an Excel Spreadsheet
- Adding and Removing Rows and Columns in a Table
- Displaying N-Dimensional Tables in the Editor
- Plotting Lookup Tables
- Editing Custom Lookup Table Blocks
- Create a Logarithm Lookup Table
- Prelookup and Interpolation Blocks
- Optimize Generated Code for Lookup Table Blocks
- Update Lookup Table Blocks to New Versions
- Lookup Table Glossary
- Working with Block Masks
- Block Masks
- How Mask Parameters Work
- Mask Code Execution
- Mask Terminology
- Mask a Block
- Create mask
- Define mask parameters
- Set mask parameter values
- Draw Mask Icon
- Draw static icon
- Draw dynamic icon
- Additional examples
- Create Mask Documentation
- Initialize Mask
- Best Practices for Masking
- Considerations for Masking Model Blocks
- Masks on Blocks in User Libraries
- Promote Underlying Block Parameters to Mask
- Create Custom Interface for Simulink Blocks
- Rules for Promoting Parameters
- Mask Blocks and Promote Parameters
- Operate on Existing Masks
- Calculate Values Used Under the Mask
- Control Masks Programmatically
- Create Dynamic Mask Dialog Boxes
- Create Dynamic Masked Subsystems
- How Do I Debug Masks That Use MATLAB Code?
- Creating Custom Blocks
- When to Create Custom Blocks
- Types of Custom Blocks
- Comparison of Custom Block Functionality
- Expanding Custom Block Functionality
- Create a Custom Block
- Custom Block Examples
- Working with Block Libraries
- Using the MATLAB Function Block
- Integrate MATLAB Algorithm in Model
- What Is a MATLAB Function Block?
- Why Use MATLAB Function Blocks?
- Create Model That Uses MATLAB Function Block
- Code Generation Readiness Tool
- Check Code Using the Code Generation Readiness Tool
- Debugging a MATLAB Function Block
- MATLAB Function Block Editor
- MATLAB Function Reports
- About MATLAB Function Reports
- Location of MATLAB Function Reports
- Opening MATLAB Function Reports
- Description of MATLAB Function Reports
- Viewing Your MATLAB Function Code
- Viewing Call Stack Information
- Viewing the Compilation Summary Information
- Viewing Error and Warning Messages
- Viewing Variables in Your MATLAB Code
- Keyboard Shortcuts for the MATLAB Function Report
- Report Limitations
- varargin and varargout
- Loop Unrolling
- Dead Code
- Structures
- Column Headings on Variables Tab
- Multiline Matrices
- Type Function Arguments
- Size Function Arguments
- Add Parameter Arguments
- Resolve Signal Objects for Output Data
- Types of Structures in MATLAB Function Blocks
- Attach Bus Signals to MATLAB Function Blocks
- How Structure Inputs and Outputs Interface with Bus Signals
- Rules for Defining Structures in MATLAB Function Blocks
- Index Substructures and Fields
- Create Structures in MATLAB Function Blocks
- Assign Values to Structures and Fields
- Initialize a Matrix Using a Non-Tunable Structure Parameter
- Define and Use Structure Parameters
- Limitations of Structures and Buses in MATLAB Function Blocks
- What Is Variable-Size Data?
- How MATLAB Function Blocks Implement Variable-Size Data
- Enable Support for Variable-Size Data
- Declare Variable-Size Inputs and Outputs
- Filter a Variable-Size Signal
- Enumerated Types Supported in MATLAB Function Blocks
- Define Enumerated Data Types for MATLAB Function Blocks
- Add Inputs, Outputs, and Parameters as Enumerated Data
- Basic Approach for Adding Enumerated Data to MATLAB Function Blo
- Instantiate Enumerated Data in MATLAB Function Blocks
- Control an LED Display
- Operations on Enumerated Data
- Using Enumerated Data in MATLAB Function Blocks
- Share Data Globally
- When Do You Need to Use Global Data?
- Using Global Data with the MATLAB Function Block
- Choosing How to Store Global Data
- How to Use Data Store Memory Blocks
- How to Use Simulink.Signal Objects
- Using Data Store Diagnostics to Detect Memory Access Issues
- Limitations of Using Shared Data in MATLAB Function Blocks
- Add Frame-Based Signals
- Create Custom Block Libraries
- Use Traceability in MATLAB Function Blocks
- Include MATLAB Code as Comments in Generated Code
- Enhance Code Readability for MATLAB Function Blocks
- Speed Up Simulation with Basic Linear Algebra Subprograms
- Control Run-Time Checks
- Track Object Using MATLAB Code
- Learning Objectives
- Tutorial Prerequisites
- Example: The Kalman Filter
- Files for the Tutorial
- Tutorial Steps
- Copying Files Locally
- Setting Up Your C Compiler
- About the ex_kalman00 Model
- Adding a MATLAB Function Block to Your Model
- Checking the ex_kalman11 Model
- Simulating the ex_kalman11 Model
- Modifying the Filter to Accept a Fixed-Size Input
- Using the Filter to Accept a Variable-Size Input
- Debugging the MATLAB Function Block
- Generating C Code
- Best Practices Used in This Tutorial
- Best Practice — Saving Incremental Code Updates
- Key Points to Remember
- Where to Learn More
- Filter Audio Signal Using MATLAB Code
- Learning Objectives
- Tutorial Prerequisites
- Example: The LMS Filter
- Files for the Tutorial
- Tutorial Steps
- Copying Files Locally
- Setting Up Your C Compiler
- Running the acoustic_environment Model
- Adding a MATLAB Function Block to Your Model
- Calling Your MATLAB Code As an Extrinsic Function for Rapid Prot
- Simulating the noise_cancel_01 Model
- Why Does the Filter Reset Every 2 Seconds?
- Modifying the Filter to Use Streaming
- Adding Adapt and Reset Controls
- Generating Code
- Optimizing the LMS Filter Algorithm
- Design Considerations for C/C++ Code Generation
- When to Generate Code from MATLAB Algorithms
- Which Code Generation Feature to Use
- Prerequisites for C/C++ Code Generation from MATLAB
- MATLAB Code Design Considerations for Code Generation
- Expected Differences in Behavior After Compiling MATLAB Code
- Why Are There Differences?
- Character Size
- Order of Evaluation in Expressions
- Termination Behavior
- Size of Variable-Size N-D Arrays
- Size of Empty Arrays
- Floating-Point Numerical Results
- When computer hardware uses extended precision registers
- For certain advanced library functions
- For implementation of BLAS library functions
- NaN and Infinity Patterns
- Code Generation Target
- MATLAB Class Initial Values
- Variable-Size Support for Code Generation
- MATLAB Language Features Supported for C/C++ Code Generation
- Functions Supported for Code Generation
- Functions Supported for Code Generation — Alphabetical List
- Functions Supported for Code Generation — Categorical List
- Aerospace Toolbox Functions
- Arithmetic Operator Functions
- Bit-Wise Operation Functions
- Casting Functions
- Communications System Toolbox Functions
- Complex Number Functions
- Computer Vision System Toolbox Functions
- Data Type Functions
- Derivative and Integral Functions
- Discrete Math Functions
- Error Handling Functions
- Exponential Functions
- Filtering and Convolution Functions
- Fixed-Point Toolbox Functions
- Histogram Functions
- Image Processing Toolbox Functions
- Input and Output Functions
- Interpolation and Computational Geometry
- Linear Algebra
- Logical Operator Functions
- MATLAB Compiler Functions
- Matrix and Array Functions
- Nonlinear Numerical Methods
- Polynomial Functions
- Relational Operator Functions
- Rounding and Remainder Functions
- Set Functions
- Signal Processing Functions in MATLAB
- Signal Processing Toolbox Functions
- Special Values
- Specialized Math
- Statistical Functions
- String Functions
- Structure Functions
- Trigonometric Functions
- System Objects Supported for Code Generation
- Defining MATLAB Variables for C/C++ Code Generation
- Variables Definition for Code Generation
- Best Practices for Defining Variables for C/C++ Code Generation
- Eliminate Redundant Copies of Variables in Generated Code
- Reassignment of Variable Properties
- Dynamically sized variables
- Variables reused in the code for different purposes
- Define and Initialize Persistent Variables
- Reuse the Same Variable with Different Properties
- Avoid Overflows in for-Loops
- Supported Variable Types
- Defining Data for Code Generation
- Code Generation for Variable-Size Data
- What Is Variable-Size Data?
- Variable-Size Data Definition for Code Generation
- Bounded Versus Unbounded Variable-Size Data
- Control Memory Allocation of Variable-Size Data
- Specify Variable-Size Data Without Dynamic Memory Allocation
- Variable-Size Data in Code Generation Reports
- Define Variable-Size Data for Code Generation
- C Code Interface for Arrays
- Troubleshooting Issues with Variable-Size Data
- Diagnosing and Fixing Size Mismatch Errors
- Assigning Variable-Size Matrices to Fixed-Size Matrices
- Empty Matrix Reshaped to Match Variable-Size Specification
- Performing Binary Operations on Fixed and Variable-Size Operands
- Diagnosing and Fixing Errors in Detecting Upper Bounds
- Using Nonconstant Dimensions in a Matrix Constructor
- Incompatibilities with MATLAB in Variable-Size Support for Code
- Incompatibility with MATLAB for Scalar Expansion
- Incompatibility with MATLAB in Determining Size of Variable-Size
- Incompatibility with MATLAB in Determining Size of Empty Arrays
- Incompatibility with MATLAB in Vector-Vector Indexing
- Incompatibility with MATLAB in Matrix Indexing Operations for Co
- Dynamic Memory Allocation Not Supported for MATLAB Function Bloc
- Restrictions on Variable Sizing in Toolbox Functions Supported f
- Code Generation for MATLAB Structures
- Structure Definition for Code Generation
- Structure Operations Allowed for Code Generation
- Define Scalar Structures for Code Generation
- Define Arrays of Structures for Code Generation
- Make Structures Persistent
- Index Substructures and Fields
- Reference substructure field values individually using dot notat
- Reference field values individually in structure arrays
- Do not reference fields dynamically
- Assign Values to Structures and Fields
- Field properties must be consistent across structure-to-structur
- Do not use field values as constants
- Do not assign mxArrays to structures
- Pass Large Structures as Input Parameters
- Code Generation for Enumerated Data
- Enumerated Data Definition for Code Generation
- Enumerated Types Supported for Code Generation
- When to Use Enumerated Data for Code Generation
- Generate Code for Enumerated Data from MATLAB Function Blocks
- Define Enumerated Data for Code Generation
- Instantiate Enumerated Types for Code Generation
- Operations on Enumerated Data Allowed for Code Generation
- Include Enumerated Data in Control Flow Statements
- Customize Enumerated Types Based on Simulink.IntEnumType
- Control Names of Enumerated Type Values in Generated Code
- Change and Reload Enumerated Data Types
- Restrictions on Use of Enumerated Data in for-Loops
- Do not use enumerated data as the loop counter variable in for-
- Toolbox Functions That Support Enumerated Types for Code Generat
- Code Generation for MATLAB Classes
- Code Generation for Function Handles
- Function Handles Definition for Code Generation
- Define and Pass Function Handles for Code Generation
- Function Handle Limitations for Code Generation
- Function handles must be scalar values.
- You cannot use the same bound variable to reference different fu
- You cannot pass function handles to or from extrinsic functions.
- You cannot pass function handles to or from primary functions.
- You cannot view function handles from the debugger
- Defining Functions for Code Generation
- Specify Variable Numbers of Arguments
- Supported Index Expressions
- Apply Operations to a Variable Number of Arguments
- Implement Wrapper Functions
- Pass Property/Value Pairs
- Variable Length Argument Lists for Code Generation
- Do not use varargin or varargout in top-level functions
- Use curly braces {} to index into the argument list
- Verify that indices can be computed at compile time
- Do not write to varargin
- Calling Functions for Code Generation
- Resolution of Function Calls in MATLAB Generated Code
- Resolution of Files Types on Code Generation Path
- Compilation Directive %#codegen
- Call Local Functions
- Call Supported Toolbox Functions
- Call MATLAB Functions
- Generating Efficient and Reusable Code
- Working with Blocks
- Managing Data
- Working with Data
- Data Types
- About Data Types
- Data Types Supported by Simulink
- Fixed-Point Data
- Enumerations
- Bus Objects
- Block Support for Data and Numeric Signal Types
- Create Signals of a Specific Data Type
- Specify Block Output Data Types
- Specify Data Types Using Data Type Assistant
- Display Port Data Types
- Data Type Propagation
- Data Typing Rules
- Typecast Signals
- Validate a Floating-Point Embedded Model
- Validate a Single-Precision Model
- Data Objects
- About Data Object Classes
- About Data Object Methods
- Using the Model Explorer to Create Data Objects
- About Object Properties
- Changing Object Properties
- Handle Versus Value Classes
- Comparing Data Objects
- Saving and Loading Data Objects
- Using Data Objects in Simulink Models
- Creating Persistent Data Objects
- Data Object Wizard
- Define Level-2 Data Classes
- Define data class
- Optional: Add properties to data class
- Optional: Add initialization code to data class
- Optional: Define custom storage classes
- Optional: Define custom attributes for custom storage classes
- Alternate way of defining level-2 data classes
- Supported Property Types
- Upgrade Level-1 Data Classes
- Infrastructure for Extending Simulink Data Classes
- Define Level-1 Data Classes
- Associating User Data with Blocks
- Design Minimum and Maximum
- Data Types
- Enumerations and Modeling
- About Simulink Enumerations
- Define Simulink Enumerations
- Use Enumerated Data in Simulink Models
- Simulink Constructs that Support Enumerations
- Simulink Enumeration Limitations
- Importing and Exporting Simulation Data
- Using Simulation Data
- Export Simulation Data
- Data Format for Exported Simulation Data
- Limit Amount of Exported Data
- Control Samples to Export for Variable-Step Solvers
- Export Signal Data Using Signal Logging
- Configure a Signal for Signal Logging
- View Signal Logging Configuration
- Enable Signal Logging for a Model
- Override Signal Logging Settings
- Access Signal Logging Data
- Techniques for Importing Signal Data
- Import Data to Model a Continuous Plant
- Import Data to Test a Discrete Algorithm
- Import Data for an Input Test Case
- Import Signal Logging Data
- Import Data to Root-Level Input Ports
- Import and Map Data to Root-Level Inports
- Import MATLAB timeseries Data
- Import Structures of timeseries Objects for Buses
- Import Simulink.Timeseries and Simulink.TsArray Data
- Import Data Arrays
- Import MATLAB Time Expression Data
- Import Data Structures
- Import and Export States
- Working with Data Stores
- About Data Stores
- Data Stores with Data Store Memory Blocks
- Data Stores with Signal Objects
- Access Data Stores with Simulink Blocks
- Data Store Examples
- Log Data Stores
- Logging Local and Global Data Store Values
- Supported Data Types, Dimensions, and Complexity for Logging Dat
- Data Store Logging Limitations
- Logging Data Stores Created with a Data Store Memory Block
- Logging Icon for the Data Store Memory Block
- Logging Data Stores Created with a Simulink.Signal Object
- Accessing Data Store Logging Data
- Order Data Store Access
- Data Store Diagnostics
- Data Stores and Software Verification
- Working with Data
- Managing Signals
- Working with Signals
- Signal Basics
- Signal Types
- Virtual Signals
- Signal Values
- Signal Names and Labels
- Signal Label Propagation
- Signal Dimensions
- Determine Output Signal Dimensions
- Display Signal Sources and Destinations
- Signal Ranges
- Initialize Signals and Discrete States
- About Initialization
- Using Block Parameters to Initialize Signals and Discrete States
- Using Signal Objects to Initialize Signals and Discrete States
- Using Signal Objects to Tune Initial Values
- Example: Using a Signal Object to Initialize a Subsystem Output
- Initialization Behavior Summary for Signal Objects
- Test Points
- Display Signal Attributes
- Signal Groups
- Using Composite Signals
- About Composite Signals
- Virtual and Nonvirtual Buses
- Create and Access a Bus
- Nest Buses
- Bus-Capable Blocks
- Bus Objects
- Bus Object API
- Manage Bus Objects with the Bus Editor
- Store and Load Bus Objects
- Map Bus Objects to Models
- Filter Displayed Bus Objects
- Customize Bus Object Import and Export
- Connect Buses to Inports and Outports
- Specify Initial Conditions for Bus Signals
- Combine Buses into an Array of Buses
- Bus Data Crossing Model Reference Boundaries
- Buses and Libraries
- Avoid Mux/Bus Mixtures
- Buses in Generated Code
- Composite Signal Limitations
- Working with Variable-Size Signals
- Variable-Size Signal Basics
- Simulink Models Using Variable-Size Signals
- S-Functions Using Variable-Size Signals
- Simulink Block Support for Variable-Size Signals
- Variable-Size Signal Limitations
- Working with Signals
- Customizing Simulink Environment and Printed Models
- Customizing the Simulink User Interface
- Add Items to Model Editor Menus
- Disable and Hide Model Editor Menu Items
- Disable and Hide Dialog Box Controls
- Customize the Library Browser
- Registering Customizations
- PrintFrame Editor
- Customizing the Simulink User Interface
- Running Models on Target Hardware
- About Run on Target Hardware Feature
- Work with Arduino Hardware
- Install Support for Arduino Hardware
- Open Block Libraries for Arduino Hardware
- Run Model on Arduino Hardware
- Tune and Monitor Models Running on Arduino Mega 2560 Hardware
- Use Serial Communications with Arduino Hardware
- Detect and Fix Task Overruns on Arduino Hardware
- Troubleshoot Running Models on Arduino Hardware
- Configure Host COM Port Manually
- Work with BeagleBoard Hardware
- Install Support for BeagleBoard Hardware
- Replace Firmware on BeagleBoard Hardware
- Choose the Type of Serial Cable
- Connect to Serial Port on BeagleBoard Hardware
- Configure Network Connection with BeagleBoard Hardware
- Get IP Address of BeagleBoard Hardware
- Open Block Library for BeagleBoard Hardware
- Run Model on BeagleBoard Hardware
- Tune and Monitor Model Running on BeagleBoard Hardware
- Detect and Fix Task Overruns on BeagleBoard Hardware
- Work with LEGO MINDSTORMS NXT Hardware
- Install Support for LEGO MINDSTORMS NXT Hardware
- Replace Firmware on NXT Brick
- Open Block Library for LEGO MINDSTORMS NXT Hardware
- Run Model on NXT Brick
- Tune Parameters and Monitor Data in a Model Running on NXT Brick
- Detect and Fix Task Overruns on NXT Brick
- Exchange Data Between Two NXT Bricks
- Set Up A Bluetooth Connection
- Work with PandaBoard Hardware
- Install Support for PandaBoard Hardware
- Replace Firmware on PandaBoard Hardware
- Choose the Type of Serial Cable
- Connect to Serial Port on PandaBoard Hardware
- Configure Network Connection with PandaBoard Hardware
- Get IP Address of PandaBoard Hardware
- Open Block Library for PandaBoard Hardware
- Run Model on PandaBoard Hardware
- Tune and Monitor Model Running on PandaBoard Hardware
- Detect and Fix Task Overruns on PandaBoard Hardware
- Access the Linux Desktop Directly Using Desktop Computer Periphe
- Access the Linux Desktop Remotely Using VNC
- Configure Wi-Fi on PandaBoard Hardware
- Examples
- Simulink Basics
- How Simulink Works
- Creating a Model
- Executing Commands From Models
- Working with Lookup Tables
- Creating Block Masks
- Creating Custom Simulink Blocks
- Working with Blocks
- Data Management
- Code Generation for Variable-Size Data
- Code Generation for Structures
- Code Generation for Enumerated Data
- Code Generation for Function Handles
- Using Variable-Length Argument Lists
- Optimizing Generated Code
- Index
- Introduction to Simulink
- tables
- Designations of Sample Time Information
- Data Transfer Options
- Data Protection and Synchronization APIs that Embedded Coder and
- Column Options for the Inspect Signals and Compare Signals Tabs
- Column Options for Compare Runs Tab
- Modeling Requirements
- Speed and Code Generation Requirements
- Supported Computer Vision System Toolbox System Objects
- Supported Communications System Toolbox System Objects
- Supported DSP System Toolbox System Objects