| Products & Services | Solutions | 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 Version 6.5 (R2006b):
| New Features and Changes | Version Compatibility Considerations | Fixed Bugs and Known Problems | Related Documentation at Web Site |
|---|---|---|---|
| Yes Details below | Yes Summary | Bug
Reports Includes fixes | No |
New features and changes introduced in this version are
Simulink Software Now Uses Internal MATLAB Functions for Math Operations
Limitation on Number of Referenced Models Eliminated for Single References
Parameter Objects Can Now Be Used to Specify Model Configuration Parameters
Attempting to Reference a Symbol in an Uninitialized Mask Workspace Generates an Error
The Model Dependency Viewer displays a dependency view of a model that shows models and block libraries directly or indirectly referenced by the model. The dependency view allows you to quickly determine your model's dependencies on referenced models and block libraries. See Model Dependencies for more information.
This release replaces the PreLookup Index Search and Interpolation (n-D) Using PreLookup blocks with two new blocks: Prelookup and Interpolation Using Prelookup. The new blocks provide fixed-point arithmetic, consistency checking, more efficient code generation, and other enhancements over the blocks they replace.
The MathWorks plans on obsoleting the PreLookup Index Search and Interpolation (n-D) Using PreLookup blocks in a future release. In the meantime, the MathWorks will continue to support and enhance these blocks. For example, this release improves the precision with which the PreLookup Index Search block computes its fraction value if its Index search method parameter specifies Evenly Spaced Points.
We recommend that you use the Prelookup and Interpolation Using Prelookup blocks for all new model development.
The Legacy Code Tool generates an S-function from existing C code and specifications that you supply. It enables you to transform your C functions into C MEX S-functions for inclusion in a Simulink model. See Integrating Existing C Functions into Simulink Models with the Legacy Code Tool in Writing S-Functions for more information.
In previous releases, Simulink software used the host compiler's C++ Math Library functions to perform most mathematical operations on floating-point data. Some of those functions produced results that were slightly inconsistent with MATLAB results. In this release, Simulink software calls the same internal routines that MATLAB calls for most trigonometric, exponential, and rounding and remainder operations involving floating-point data. This ensures that when Simulink and MATLAB products operate on the same platform, they produce the same numerical results.
In particular, Simulink software now performs mathematical operations with the same internal functions that MATLAB uses to implement the following M-functions:
sin, cos, tan
asin, acos, atan, atan2
sinh, cosh, tanh
asinh, acosh, atanh
log, log2, log10
mod, rem
power
Note By default, in this release Real-Time Workshop software continues to use C Math Library functions in the code that it generates from a Simulink model. |
The sqrt operation in the Math Function block now supports built-in integer data types.
This release includes the following changes to model configuration parameters and configuration sets.
This release includes a new command, openDialog, that displays the Configuration Parameters dialog box for a specified configuration set. This command allows display of configuration sets that are not attached to any model.
The attachConfigSet command now includes an allowRename option that determines how the command handles naming conflicts when attaching a configuration set to a model.
This release includes a new attachConfigSetCopy command that attaches a copy of a specified configuration set to a model.
The new Sample hit time adjusting diagnostic controls whether Simulink software notifies you when the solver has to adjust a sample time specified by your model to solve the model. The associated model parameter is TimeAdjustmentMsg.
The default value of the Multitask data store diagnostic has changed from Warning to Error for new models. This change does not affect existing models.
The name of the Block reduction optimization parameter has changed to Block reduction.
The command
set_param(bdroot, 'SimulationCommand', 'WriteDataLogs')
writes all logging variables during simulation. See Logging Signals for more information.
This release includes commands for obtaining model and subsystem checksums.
Simulink.BlockDiagram.getChecksum
Get checksum for a model. Simulink Accelerator software uses this checksum to control regeneration of simulation targets. You can use this command to diagnose target rebuild problems.
Simulink.SubSystem.getChecksum
Get checksum for a subsystem. Real-Time Workshop software uses this checksum to control reuse of code generated from a subsystem that occurs more than once in a model. You can use the checksum to diagnose code reuse problems. See Determining Why Subsystem Code Is Not Reused.
The Sample hit time adjusting diagnostic controls whether Simulink software notifies you when the solver has to adjust a sample time specified by your model to solve the model. The associated model parameter is TimeAdjustmentMsg.
This release allows you to simulate a function-call model, i.e., a model that contains a root-level function-call trigger block, without having to reference the model. In previous releases, the function-call model had to be referenced by another model in order to be simulated.
This release adds printing options to the Signal Builder block's editor. It allows you to print waveforms displayed in the editor to a printer, file, the clipboard, or a figure window. For details, see Printing, Exporting, and Copying Waveforms.
This release introduces an isContentEqual method for Simulink data objects that allows you to determine whether a Simulink data object has the same property values as another Simulink data object. For more information, see Comparing Data Objects.
In this release, the Simulink Preferences dialog box displays font settings for blocks, lines, and annotations on a single pane instead of on separate tabbed panes as in previous releases. This simplifies selection of font preferences.
In previous releases, all distinct models referenced in a model hierarchy counted against the limitation imposed by Microsoft Windows on the number of distinct referenced models that can occur in a hierarchy. In this release, models configured to be instantiable only once do not account against this limit. This means that a model hierarchy can reference any number of distinct models on Windows platforms as long as they are referenced only once and are configured to be instantiable only once (see Simulink Model Referencing Limitations for more information).
This release allows you to use Simulink.Parameter objects to specify model configuration as well as block parameters. For example, you can specify a model's fixed step size as Ts and its stop time as 20*Ts where Ts is a workspace variable that references a parameter object. When compiling a model, Simulink software replaces a reference to a parameter object in a model configuration parameter expression with the object's value.
In previous releases, you could use expressions of the form p.Value(), where p references a parameter object, in model configuration parameter expressions. Such expressions cause expression evaluation errors in this release when you compile a model. You should replace such expressions with a simple reference to the parameter object itself, i.e., replace p.Value() with p.
In previous releases, the Parameter Pooling optimization was optional and was enabled by default. Due to internal improvements, disabling Parameter Pooling would no longer be useful in any context. The optimization is therefore part of standard R2006b operation, and has been removed from the user interface.
Upgrading a model to R2006b inherently provides the effect that enabling Parameter Pooling did in previous releases. No compatibility considerations result from this change. If the optimization was disabled in an existing model, a warning is generated when the model is first upgraded to R2006b. This warning requires no action and can be ignored.
In this release, attempting to reference an symbol in an uninitialized mask workspace generates an error. This can happen, for example, if a masked subsystem's initialization code attempts to set a parameter of a block that resides in a masked subsystem in the subsystem being initialized and one or more of the block's parameters reference variables defined by the mask of the subsystem in which it resides (see Initialization Command Limitations for more information).
In this release, updating or simulating models created in previous releases may generate unresolvable symbol error messages. This can happen if the model contains masked subsystems whose initialization code sets parameters on blocks residing in lower-level masked subsystems residing in the top-level masked subsystem. To eliminate these errors, change the initialization code to avoid the use of set_param commands to set parameters in lower-level masked subsystems. Instead, use mask variables in upper-level masked subsystems to specify the values of parameters of blocks residing in lower-level masked subsystems. See Defining Mask Parametersfor information on using mask variables to specify block parameter values.
This release changes the behavior of the level reset option of the Integrator block. In releases before Simulink 6.3, the level reset option resets the integrator's state if the reset signal is nonzero or changes from nonzero in the previous time step to zero in the current time step. In Simulink 6.3, 6.4, and 6.4.1, the option resets the integrator only if the reset signal is nonzero. This release restores the level reset behavior of releases that preceded Simulink 6.3. It also adds a level hold option that behaves like the level reset option of Simulink 6.3, 6.4, and 6.4.1.
A model that uses the level reset option could produce results that differ in this release from those produced in Simulink 6.3, 6.4, and 6.4.1. To reproduce the results of previous releases, change the model to use the new level hold option instead.
You can now define structures as inputs, outputs, local, and persistent variables in Embedded MATLAB Function blocks. With support for structures, Embedded MATLAB Function blocks give you the ability to read and write Simulink bus signals at inputs and outputs of Embedded MATLAB Function blocks. See Working with Structures in the Embedded MATLAB documentation.
The Embedded MATLAB Editor uses the MATLAB M-Lint Code Analyzer to automatically check your Embedded MATLAB function code for errors and recommend corrections. The editor displays an M-Lint bar that highlights offending lines of code and displays Embedded MATLAB diagnostics as well as MATLAB messages. See Using M-Lint with Embedded MATLAB Code in the Embedded MATLAB documentation.
Embedded MATLAB Function blocks provide 36 new runtime library functions in the following categories:
Interpolation and Computational Geometry.
To call external MATLAB functions from Embedded MATLAB Function blocks, you must first declare the functions to be extrinsic. (External MATLAB functions are functions that have not been implemented in the Embedded MATLAB runtime library.) MATLAB Function blocks do not compile or generate code for extrinsic functions; instead, they send the function to MATLAB for execution during simulation. There are two ways to call MATLAB functions as extrinsic functions in Embedded MATLAB Function blocks:
Use the new construct eml.extrinsic to declare the function extrinsic
Call the function using feval
For details, see Calling MATLAB Functions in the Embedded MATLAB documentation.
Compatibility Considerations. Currently, Embedded MATLAB Function blocks use implicit rules to handle calls to external functions:
For simulation, Embedded MATLAB Function blocks send the function to MATLAB for execution
For code generation, Embedded MATLAB Function blocks check whether the function affects the output of the Embedded MATLAB function in which it is called. If there is no effect on output, Embedded MATLAB Function blocks proceed with code generation, but exclude the function call from the generated code. Otherwise, Embedded MATLAB Function blocks generate a compiler error.
In future releases, Embedded MATLAB Function blocks will apply these rules only to external functions that you call as extrinsic functions. Otherwise, they will compile external functions by default, potentially causing unpredictable behavior or generating errors. For reliable simulation and code generation, The MathWorks recommends that you call external MATLAB functions as extrinsic functions.
Embedded MATLAB Function blocks now generate an error if the type and size of a value returned by a MATLAB function does not match the predeclared type and size.
Compatibility Considerations. In previous releases, Embedded MATLAB Function blocks attempted to silently convert values returned by MATLAB functions to predeclared data type and sizes if a mismatch occurred. Now, such mismatches always generate an error, as in this example:
x = int8(zeros(3,3)); % Predeclaration
x = eval('5'); % Calls MATLAB function evalThis code now generates an error because the Embedded MATLAB function predeclares x as a 3–by-3 matrix, but MATLAB function returns x as a scalar double. To avoid errors, reconcile predeclared data types and sizes with the actual types and sizes returned by MATLAB function calls in your Embedded MATLAB Function blocks.
Embedded MATLAB Function blocks now generate an error if any of its outputs is character data.
Compatibility Considerations. In the previous release, Embedded MATLAB Function blocks silently cast character array outputs to int8 scalar arrays. This behavior does not match MATLAB, which represents characters in 16–bit unicode.
![]() | Version 6.6 (R2007a) Simulink Software | Version 6.4.1 (R2006a+) 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 |