Products & Services Industries Academia Support User Community Company

Learn more about Simulink   

Version 7.3 (R2009a) Simulink Software

This table summarizes what's new in V7.3 (R2009a):

New Features and ChangesVersion Compatibility ConsiderationsFixed Bugs and Known ProblemsRelated Documentation at Web Site
Yes
Details below
Yes—Details labeled as Compatibility Considerations, below. See also Summary.Bug Reports
Includes fixes
No

New features and changes introduced in this version are organized by these topics:

Simulation Performance

Saving and Restoring the Complete SimState

Use the new SimState feature to save the complete simulation state. Unlike the final states stored in earlier versions of Simulink, the SimState contains the complete simulation state of the model (including block states that are logged). You can then restore the state at a later time and continue simulation from the exact instant at which you stopped the simulation.

Save Simulink Profiler Results

Save the results of the Simulink Profiler and later regenerate reports for review or for comparison.

Component-Based Modeling

Port Value Displays in Referenced Models

In R2009a, port value displays can appear for blocks in a Normal mode referenced model. To control port value displays, choose View > Port Values in the model window. For complete information about port value displays, see Displaying Block Outputs.

Parallel Builds Enable Faster Diagram Updates for Large Model Reference Hierarchies In Accelerator Mode

R2009a provides potentially faster diagram updates for models containing large model reference hierarchies by building referenced models that are configured in Accelerator mode in parallel whenever possible. For example, updating of each model block can be distributed across the cores of a multicore host computer.

To take advantage of this feature, Parallel Computing Toolbox™ software must be licensed and installed in your development environment. If Parallel Computing Toolbox software is available, updating a model diagram rebuilds referenced models configured in Accelerator mode in parallel whenever possible.

For example, to use parallel building for updating a large model reference hierarchy on a desktop machine with four cores, you could perform the following steps:

  1. Issue the MATLAB command 'matlabpool 4' to set up a pool of four MATLAB workers, one for each core, in the Parallel Computing Toolbox environment.

  2. Open your model and make sure that the referenced models are configured in Accelerator mode.

  3. Optionally, inspect the model reference hierarchy. For example, you can use the Model Dependency Viewer from the Tools menu of Model Explorer to determine, based on model dependencies, which models will be built in parallel.

  4. Update your model. Messages in the MATLAB command window record when each parallel or serial build starts and finishes.

The performance gain realized by using parallel builds for updating referenced models depends on several factors, including how many models can be built in parallel for a given model referencing hierarchy, the size of the referenced models, and host machine attributes such as amount of RAM and number of cores.

The following notes apply to using parallel builds for updating model reference hierarchies:

Embedded MATLAB Function Blocks

Support for Enumerated Types

Embedded MATLAB Function blocks now support Simulink enumerated types and generate C code for enumerated data. See Using Enumerated Data in Embedded MATLAB Function Blocks in the Simulink documentation.

Use of Basic Linear Algebra Subprograms (BLAS) Libraries for Speed

Embedded MATLAB Function blocks now use BLAS libraries to speed up low-level matrix operations during simulation. See Speeding Up Simulation with the Basic Linear Algebra Subprograms (BLAS) Library in the Simulink documentation.

Data Management

Signal Can Resolve to at Most One Signal Object

You can resolve a named signal to a signal object. The object can then specify or validate properties of the signal. For more information, see Simulink.Signal, Using Signal Objects to Initialize Signals and Discrete States, Using Signal Objects to Tune Initial Values, and Applying CSCs to Parameters and Signals.

In previous releases, you could associate a signal with multiple signal objects, provided that the multiple objects specified compatible signal attributes. In R2009a, a signal can be associated with at most one signal object. The signal can reference the object more than once, but every reference must resolve to exactly the same object. A different signal object that has exactly the same properties will not meet the requirement. See Multiple Signal Objects for more information.

Compatibility Considerations.   A compile-time error occurs in R2009a if a model associates more than one signal object with any signal. To prevent the error, decide which object the signal will use, and delete or reconfigure all references to any other signal objects so that all remaining references resolve to the chosen signal object. See Displaying Signal Sources and Destinations for a description of techniques that you can use to trace the full extent of a signal.

"Signed" Renamed to "Signedness" in the Simulink.NumericType class

In previous releases, the Property dialog of a Simulink.NumericType object whose Data type mode was any Fixed-point mode showed a property named Signed, which was a checkbox. Selecting the checkbox specified a signed type; clearing it specified an unsigned type. The API equivalent of Signed was Signed, a Boolean whose values could be 1 (signed) or 0 (unsigned).

In R2009a, a property named Signedness replaces Signed in the Property dialog of a Simulink.NumericType object. You can set Signedness to Signed (the default), Unsigned, or Auto, which specifies that the object inherits its Signedness. The API equivalent of Signedness is Signedness, which can be 1 (signed), 0 (unsigned), or Auto.

For compatibility with existing models, the property Signed remains available in R2009a. Setting Signed in R2009a sets Signedness accordingly. Accessing Signed in R2009a returns the value of Signedness if that value is 0 or 1, or generates an error if the value of Signedness is Auto, because that is not a legal value for Signed.

Do not use the Signed with Simulink.NumericType in new models; use Signedness instead. See Simulink.NumericType for more information.

"Sign" Renamed to "Signedness" in the Data Type Assistant

For blocks and classes that support fixed-point data types, the property Sign previously appeared in the Data Type Assistant when the Mode was Fixed point. In R2009a, this property appears in the Data Type Assistant as Signedness. Only the GUI label of the property differs; its behavior and API are unchanged in all contexts.

Tab Completion for Enumerated Data Types

Tab completion now works for enumerated data types in the same way that it does for other MATLAB classes. See Tab Completion in Instantiating an Enumerated Type in MATLAB for details.

Simulink File Management

Model Dependencies Tools

Enhanced file dependency analysis has the following new features:

Block Enhancements

Prelookup and Interpolation Using Prelookup Blocks Support Parameter Data Types Different from Signal Data Types

The Prelookup block supports breakpoint data types that differ from input data types. This enhancement provides these benefits:

The Interpolation Using Prelookup block supports table data types that differ from output data types. This enhancement provides these benefits:

The Interpolation Using Prelookup block also supports separate data type specification for intermediate results. This enhancement enables use of a greater precision for internal computations than for table data or output data.

Lookup Table (n-D) and Interpolation Using Prelookup Blocks Perform Efficient Fixed-Point Interpolations

Whenever possible, Lookup Table (n-D) and Interpolation Using Prelookup blocks use a faster overflow-free subtraction algorithm for fixed-point interpolation. To achieve this efficiency, the blocks use a data type of larger container size to perform the overflow-free subtraction, instead of using control-flow branches as in previous releases. Also, Real-Time Workshop generated code for fixed-point interpolation is now smaller.

Compatibility Considerations.   Due to the change in the overflow-free subtraction algorithm, fixed-point interpolation in Lookup Table (n-D) and Interpolation Using Prelookup blocks might, in a few cases, introduce different rounding results from previous releases. Both simulation and code generation use the new overflow-free algorithm, so they have the same rounding behavior and provide bit-true consistency.

Expanded Support for Simplest Rounding Mode to Maximize Block Efficiency

In R2009a, support for the Simplest rounding mode has been expanded to enable more blocks to handle mixed floating-point and fixed-point data types:

For more information, see Rounding Mode: Simplest in the Simulink Fixed Point User's Guide.

New Rounding Modes Added to Multiple Blocks

For the following Simulink blocks, the dialog box now displays Convergent and Round as possible rounding modes. These modes enable numerical agreement with embedded hardware and MATLAB results.

In the dialog box for these blocks, the field Round integer calculations toward has been renamed Integer rounding mode. The command-line parameter remains the same.

For more information, see Rounding Mode: Convergent and Rounding Mode: Round in the Simulink Fixed Point User's Guide.

Compatibility Considerations.   If you use an earlier version of Simulink software to open a model that uses the Convergent or Round rounding mode, the mode changes automatically to Nearest.

Lookup Table (n-D) Block Performs Faster Calculation of Index and Fraction for Power of 2 Evenly-Spaced Breakpoint Data

For power of 2 evenly-spaced breakpoint data, the Lookup Table (n-D) block uses bit shifts to calculate the index and fraction, instead of division. This enhancement provides these benefits:

Discrete FIR Filter Block Supports More Filter Structures

The following filter structures have been added to the Discrete FIR Filter block:

Running a model with these filter structures requires a Signal Processing Blockset™ license.

Discrete Filter Block Performance, Data Type, Dimension, and Complexity Enhancements

The following enhancements have been made to the Discrete Filter block:

Compatibility Considerations.   Due to these enhancements, you might encounter the compatibility issues in the following sections.

Realization parameter removed.  The Real-Time Workshop software realization parameter has been removed from this block. You can no longer use the set_param and get_param functions on this block parameter. The generated code for this block has been improved to be similar to the former 'sparse' realization, while maintaining tunability as in the former 'general' realization.

State changes.  Due to the reduction in the number of divide operations performed by the block, you might notice that your logged states have changed when the leading denominator coefficient is not one.

MinMax Block Performs More Efficient and Accurate Comparison Operations

For multiple inputs with mixed floating-point and fixed-point data types, the MinMax block selects an appropriate data type for performing comparison operations, instead of using the output data type for all comparisons, as in previous releases. This enhancement provides these benefits:

Logical Operator Block Supports NXOR Boolean Operator

In R2009a, the Logical Operator block has been enhanced with a new NXOR Boolean operator. When you select this operator, the block returns TRUE when an even number of inputs are TRUE. Similarly, the block returns FALSE when an even number of inputs are FALSE.

Use NXOR to replace serial XOR and NOT operations in a model.

Discrete-Time Integrator Block Uses Efficient Integration-Limiting Algorithm for Forward Euler Method

When you select the Limit output check box for the Forward Euler method, the Discrete-Time Integrator block uses only one saturation when a second saturation is unnecessary. This change in the integration-limiting algorithm provides these benefits:

Dot Product Block Converted from S-Function to Core Block

Conversion of the Dot Product block from a masked S-Function to a core block enables more efficient simulation and better handling of the block in Simulink models.

Due to this conversion, you can specify sample time and values for the output minimum and maximum for the Dot Product block.

Compatibility Considerations.   In R2009a, signal dimension propagation might behave differently from previous releases. As a result, your model might not compile under these conditions:

If your model does not compile, set dimensions for signals that are not fully specified.

For example, your model might not compile in this case:

To ensure that your model compiles in this case, connect Constant blocks to the second and third input ports of the Transfer Fcn Direct Form II Time Varying block and specify the signal dimensions for both ports explicitly.

Pulse Generator Block Uses New Default Values for Period and Pulse Width

For the Pulse Generator block, the default Period value has changed from 2 to 10, and the default Pulse Width value has changed from 50 to 5. These changes enable easier transitions between time-based and sample-based mode for the pulse type.

Random Number and Unit Delay Blocks Use New Default Values for Sample Time

The default Sample time values for the Random Number and Unit Delay blocks have changed:

Trigonometric Function Block Provides Better Support of Accelerator Mode

The Trigonometric Function block now supports Accelerator mode for all cases with real inputs and Normal mode support. For more information about simulation modes, see Accelerating Models in the Simulink User's Guide.

Reshape Block Enhanced with New Input Port

The Reshape block Output dimensionality parameter has a new option, Derive from reference input port. This option creates a second input port, Ref, on the block and derives the dimensions of the output signal from the dimensions of the signal input to the Ref input port. Similarly, the Reshape block command-line parameter, OutputDimensionality, has the new option, Derive from reference input port.

Multidimensional Signals in Simulink Blocks

The following blocks were updated to support multidimensional signals. For more information, see Signal Dimensions in the Simulink User's Guide.

Subsystem Blocks Enhanced with Read-Only Property That Indicates Virtual Status

The following subsystem blocks now have the property, IsSubsystemVirtual. This read-only property returns a Boolean value, on or off, to indicate if a subsystem is virtual.

User Interface Enhancements

Port Value Displays in Referenced Models

In R2009a, port value displays can appear for blocks in a Normal mode referenced model. To control port value displays, choose View > Port Values in the model window. For complete information about port value displays, see Displaying Block Outputs.

Print Sample Time Legend

Print the Sample Time Legend either as an option of the block diagram print dialog box or directly from the legend. In either case, the legend will print on a separate sheet of paper. For more information, see Print Sample Time Legend.

M-API for Access to Compiled Sample Time Information

New MATLAB API provides access to the compiled sample time data, color, and annotations for a specific block or the entire block diagram directly from M code.

Model Advisor Report Enhancements

In R2009a, the Model Advisor report is enhanced with:

See Consulting the Model Advisor in the Simulink User's Guide.

Counterclockwise Block Rotation

This release lets you rotate blocks counterclockwise as well as clockwise (see How to Rotate a Block for more information).

Physical Port Rotation for Masked Blocks

This release lets you specify that the ports of a masked block not be repositioned after a clockwise rotation to maintain a left-to-right and top-to-bottom numbering of the ports. This enhancement facilitates use of masked blocks in mechanical systems, hydraulic systems, and other modeling applications where block diagrams do not have a preferred orientation (see Port Rotation Type for more information.)

Smart Guides

In R2009a, when you drag a block, Simulink draws lines, called smart guides, that indicate when the block's ports, center, and edges align with the ports, centers, and edges of other blocks in the same diagram. This helps you create well-laid-out diagrams (see Smart Guides for more information).

Customizing the Library Browser's User Interface

Release 2009a lets you customize the Library Browser's user interface. You can change the order in which libraries appear in the Library Browser, disable or hide libraries, sublibraries, and blocks, and add, disable, or hide items on the Library Browser's menus. See Customizing the Library Browser for more information.

Subsystem Creation Command

This release adds a command, Simulink.BlockDiagram.createSubSystem, that creates a subsystem from a specified group of blocks.

S-Functions

Level-1 Fortran S-Functions

In this release, if you attempt to compile or simulate a model with a Level-1 Fortran S-function, you will receive an error due to the use of the newly deprecated function 'MXCREATEFULL' within the Fortran S-function wrapper 'simulink.F'. If your S-function does not explicitly use 'MXCREATEFULL', simply recompile the S-function. If your S-function uses 'MXCREATEFULL', replace each instance with 'MXCREATEDOUBLEMATRIX' and recompile the S-function.

Removal of Lookup Table Designer from the Lookup Table Editor

In R2009a, the Lookup Table Designer is no longer available in the Lookup Table Editor.

Compatibility Considerations

Previously, you could select Edit > Design Table in the Lookup Table Editor to launch the Lookup Table Designer. In R2009a, this menu item is no longer available.

  


Related Products & Applications

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS