| Products & Services | Industries | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Simulink |
| Contents | Index |
| Learn more about Simulink |
This table summarizes what's new in V7.3 (R2009a):
| New Features and Changes | Version Compatibility Considerations | Fixed Bugs and Known Problems | Related 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:
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 the results of the Simulink Profiler and later regenerate reports for review or for comparison.
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.
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:
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.
Open your model and make sure that the referenced models are configured in Accelerator mode.
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.
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:
Parallel builds of referenced models support only local MATLAB workers. They do not support remote workers in MATLAB® Distributed Computing Server™ configurations.
The host machine should have an appropriate amount of RAM available for supporting the number of local workers (MATLAB sessions) that you plan to use. For example, setting matlabpool to 4 results in five MATLAB sessions on your machine, each using approximately 120 MB of memory at startup.
The same MATLAB environment must be set up in each MATLAB worker session as in the MATLAB client session — for example, the same base workspace variables, MATLAB path settings, and so forth. You can do this using the PreLoadFcn callback of the top model. Since the top model is loaded with each MATLAB worker session, its preload function can be used for any MATLAB worker session setup.
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.
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.
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.
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.
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 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.
Enhanced file dependency analysis has the following new features:
Files in the Simulink manifest are now recorded relative to a project root folder making manifests easier to share, compare and read. See Generating Manifests and Editing Manifests.
Command-line dependency analysis can now report toolbox dependencies, and when discovering file dependencies you can optionally generate a manifest file. See Command-Line Dependency Analysis
The Prelookup block supports breakpoint data types that differ from input data types. This enhancement provides these benefits:
Enables lower memory requirement for storing breakpoint data that uses a smaller type than the input signal
Enables sharing of prescaled breakpoint data between two Prelookup blocks with different input data types
Enables sharing of custom storage breakpoint data in Real-Time Workshop generated code for blocks with different input data types
The Interpolation Using Prelookup block supports table data types that differ from output data types. This enhancement provides these benefits:
Enables lower memory requirement for storing table data that uses a smaller type than the output signal
Enables sharing of prescaled table data between two Interpolation Using Prelookup blocks with different output data types
Enables sharing of custom storage table data in Real-Time Workshop generated code for blocks with different output data types
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.
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.
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:
Math Function (for the magnitude^2, reciprocal, square, and sqrt functions)
For more information, see Rounding Mode: Simplest in the Simulink Fixed Point User's Guide.
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.
Math Function (for the magnitude^2, reciprocal, square, and sqrt functions)
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.
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:
Faster calculation of index and fraction for power of 2 evenly-spaced breakpoint data
Smaller size of Real-Time Workshop generated code for the Lookup Table (n-D) block
The following filter structures have been added to the Discrete FIR Filter block:
Direct form symmetric
Direct form antisymmetric
Direct form transposed
Lattice MA
Running a model with these filter structures requires a Signal Processing Blockset™ license.
The following enhancements have been made to the Discrete Filter block:
Improved numerics and run-time performance of outputs and states by reducing the number of divide operations in the filter to at most one
Support for signed fixed-point and integer data types
Support for vector and matrix inputs
Support for complex inputs and filter coefficients, where inputs and coefficients can each be real or complex, independently of the other
A new Initial states parameter allows you to enter non-zero initial states
A new Leading denominator coefficient equals 1 parameter provides a more efficient implementation by eliminating all divides when the leading denominator coefficient is one
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.
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:
Faster comparison operations, with fewer fixed-point overflows
Smaller size of Real-Time Workshop generated code for the MinMax block
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.
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:
Faster integration
Smaller size of Real-Time Workshop generated code for the Discrete-Time Integrator 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:
Your model contains a Dot Product block in a source loop.
Your model has underspecified signal dimensions.
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:
Your model contains a Transfer Fcn Direct Form II Time Varying block, which is a masked S-Function with a Dot Product block in a source loop.
The second and third input ports of the Transfer Fcn Direct Form II Time Varying block are unconnected, which results in underspecified signal dimensions.
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.
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.
The default Sample time values for the Random Number and Unit Delay blocks have changed:
The default Sample time value for the Random Number block has changed from 0 to 0.1.
The default Sample time value for the Unit Delay block has changed from 1 to -1.
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.
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.
The following blocks were updated to support multidimensional signals. For more information, see Signal Dimensions in the Simulink User's Guide.
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.
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 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.
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.
In R2009a, the Model Advisor report is enhanced with:
The ability to save the report to a location that you specify.
Improved readability, including the ability to:
Filter the report to view results according to the result status. For example, you can now filter the report to show errors and warnings only.
Collapse and expand the folder view in the report.
View a summary of results for each folder in the report.
See Consulting the Model Advisor in the Simulink User's Guide.
This release lets you rotate blocks counterclockwise as well as clockwise (see How to Rotate a Block for more information).
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.)
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).
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.
This release adds a command, Simulink.BlockDiagram.createSubSystem, that creates a subsystem from a specified group of blocks.
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.
In R2009a, the Lookup Table Designer is no longer available in the Lookup Table Editor.
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.
![]() | Version 7.4 (R2009b) Simulink Software | Version 7.2 (R2008b) Simulink Software | ![]() |

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 |