| Version 6.6 (R2007a) Simulink® Software Release Notes | ![]() |
This table summarizes what's new in Version 6.6 (R2007a):
| 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
New Functions Copy a Model to a Subsystem or Subsystem to Model
New Block, Model Advisor Check, and Utility Function for Bus to Vector Conversion
Model Explorer Customization Option Displays Properties of Selected Object
Simulink.Bus.save Function Enhanced To Allow Suppression of Bus Object Creation
This release includes support for multidimensional signals, including:
Sourcing of multidimensional signals
Logging or displaying of multidimensional signals
Large-scale modeling applications, such as those from model referencing
Buses and nonvirtual buses
Code generation with Real-Time Workshop
S-functions, including Level-2 M-File S-functions
Stateflow charts
For further details, see:
Simulink software supports signals with up to 32 dimensions. Do not use signals with more than 32 dimensions.
The following blocks were updated to support multidimensional signals. See Signal Dimensions in the Simulinkdocumentation for further details.
Gain (only if the Multiplication parameter specifies Element-wise(K*u))
Math Function (no multidimensional signal support for the transpose and hermitian functions)
Product, Product of Elements — only if the Multiplication parameter specifies Element-wise
Add, Subtract, Sum, Sum of Elements — along specified dimension
The Block Support Table does not list which blocks support multidimensional signals. To see if a block supports multidimensional signals, check for the entry Multidimensionalized in the Characteristics table of a block.
To use multidimensional signals in S-functions, you must use the new SimStruct function, ssAllowSignalsWithMoreThan2D.
To use multidimensional signals in Level-2 M-file S-functions, you must set the new Simulink.MSFcnRunTimeBlock property, AllowSignalsWithMoreThan2D.
This release introduces the following common block parameters.
PreCopyFcn: Allows you to assign a function to call before the block is copied. See Block Callback Parameters in the Simulinkdocumentation for details.
PreDeleteFcn: Allows you to assign a function to call before the block is deleted. See Block Callback Parameters in the Simulinkdocumentation for details.
StaticLinkStatus: Allows you to obtain the link status of a block without updating out-of-date reference blocks See Determining Link Status in the Simulinkdocumentation for details.
This release upgrades the GNU® compiler to GCC 4.0.3 on Mac® platforms and GCC 4.1.1 on Linux platforms. The Fortran runtime libraries for the previous GCC 3.x versions are no longer included with MATLAB.
C, C++, or Fortran MEX-files built with the previous 3.x version of the GCC compiler are not guaranteed to load in this release. Rebuild the source code for these S-functions using the new version of the GCC compiler.
This release includes the following changes to the Concatenate block:
Its Mode parameter provides two settings, namely, Vector and Multidimensional array.
Its parameter dialog box contains a new option, Concatenate dimension, specifying the output dimension along which to concatenate the input arrays.
The block displays a new icon when its Mode parameter is set to Multidimensional array.
This release updates Concatenate blocks when loading models created in previous releases.
This release includes the following changes to the Assignment block:
Enter the number of dimensions in the Number of output dimensions parameter, then configure the input and output with the Index Option, Index, and Output Size parameters.
The parameter dialog box has the following new parameters:
Number of output dimensions
Index Option
Index
Output Size
The Initialize output (Y) parameter replaces Output (Y) and has renamed options.
The Action if any output element is not assigned parameter replaces Diagnostic if not all required dimensions populated.
The block displays a new icon depending on the value of Number of input dimensions and the Index Option settings.
The following parameters are obsolete:
Input type
Use index as start value
Source of element indices
Elements
Source of row indices
Rows
Source of column indices
Columns
Output dimensions
This release updates Assignment blocks when loading models created in previous releases.
This release includes the following changes to the Selector block:
Enter the number of dimensions in the Number of input dimensions parameter, then configure the input and output with the Index Option, Index, and Output Size parameters.
The parameter dialog box has the following new parameters:
Number of input dimensions
Index Option
Index
Output Size
The behavior of the Sample time parameter has changed. See the Selector block Sample time parameter for details.
The block displays a new icon depending on the value of Number of input dimensions and the Index Option settings.
The following parameters are obsolete:
Input type
Use index as starting value
Source of row indices
Rows
Source of column indices
Columns
Output port dimensions
This release updates Selector blocks when loading models created in previous releases.
This release improves the Model Advisor graphical user interface (GUI) for navigating lists of checks and viewing the status of completed checks. While Model Advisor functionality and content are largely unchanged from R2006b, the Model Advisor checks display and are navigated differently than in previous versions, and the generated Model Advisor report, if requested, displays in a MATLAB web browser window that is separate from the Model Advisor GUI.
To exercise the new features, open Model Advisor for a model (for example, enter modeladvisor('vdp') at the MATLAB command line) and then follow the instructions in the Model Advisor window. For more information about Model Advisor navigation and display, see Consulting the Model Advisor in the Simulink documentation.
In this release, when using the getModelAdvisor method defined by the Simulink.ModelAdvisor class to change Model Advisor working scope to a different model, you must either close the previous model or invoke the getModelAdvisor method with 'new' as the second argument. For example, if you previously set scope to modelX with
Obj = Simulink.ModelAdvisor.getModelAdvisor('modelX');and you want to change scope to modelY, you must either close modelX or use
Obj = Simulink.ModelAdvisor.getModelAdvisor('modelY', 'new');If you try to change scope between models without the 'new' argument, an error message is displayed.
In previous releases, you could change Model Advisor working scope without closing the current session. This is no longer allowed.
If your code contains a code pattern such as the following,
Obj = Simulink.ModelAdvisor.getModelAdvisor('modelX');
...
Obj = Simulink.ModelAdvisor.getModelAdvisor('modelY');you must add the 'new' argument to the second and subsequent invocations of getModeladvisor. For example:
Obj = Simulink.ModelAdvisor.getModelAdvisor('modelX');
...
Obj = Simulink.ModelAdvisor.getModelAdvisor('modelY', 'new');Alternatively, you can close ModelX before issuing Simulink.ModelAdvisor.getModelAdvisor('modelY').
This release introduces the following blocks:
The Permute Dimensions block enables you to rearrange the dimensions of a multidimensional signal.
The Squeeze block enables you to remove singleton dimensions from a multidimensional signal.
If a model includes a Level-2 M-File S-Function block, and an error occurs in the S-function, the Level-2 M-File S-Function block will display M-file stack trace information for the error in a dialog box. Click OK to remove the dialog box. In previous releases, this block did not display the stack trace information.
The model dependencies manifest tools identify files required by your model. You can list required files in a 'manifest' file, package the model with required files into a ZIP file, or compare two file manifests.
See Model Dependencies for more information.
Warnings if a model file is changed on disk by another user or application while the model is loaded in Simulink software. (see Model File Change Notification in Managing Model Versions).
Warning to notify the user if multiple models or libraries with the same name exist, as Simulink software may not be using the one the user expects. (see Shadowed Files).
New fields in the Legacy Code Tool data structure: InitializeConditionsFcnSpec and SampleTime. InitializeConditionsFcnSpec defines a function specification for a reentrant function that the S-function calls to initialize and reset states. SampleTime allows you to specify whether sample time is inherited from the source block, represented as a tunable parameter, or fixed.
Support for state (persistent memory) arguments in registered function specifications.
Support for complex numbers specified for input, output, and parameter arguments in function specifications. This support is limited to use with Simulink built-in data types.
Support for multidimensional arrays specified for input and output arguments in function specifications. Previously, multidimensional array support applied to parameters only.
Ability to apply the size function to any dimension of function input data—input, output, parameter, or state. The data type of the size function's return value can be any type except complex, bus, or fixed-point.
A new Legacy Code Tool option, 'backward_compatibility', which you can specify with the legacy_code function. This option enables Legacy Code Tool syntax, as made available from MATLAB Central in releases prior to R2006b, for a given MATLAB session.
The following new demos:
| sldemo_lct_sampletime |
| sldemo_lct_work |
| sldemo_lct_cplxgain |
| sldemo_lct_ndarray |
For more information, see
Integrating Existing C Functions into Simulink Models with the Legacy Code Tool in the Writing S-Functions documentation
Automating the Generation of Files for Fully Inlined S-Functions Using Legacy Code Tool in the Real-Time Workshop documentation
legacy_code function reference page
If you are using a version of the Legacy Code Tool that was accessible from MATLAB Central before R2006b, the syntax for using the tool differs from the syntax currently supported by Simulink software. To continue using the old style syntax, for example, legacy_code_initialize.m, issue the following call to legacy_code for a given MATLAB session:
legacy_code('backward_compatibility');State names can now be assigned in those blocks that employ continuous states. The names are assigned with the ContinuousStateAttributes Block-Specific Parameters parameter, or in the Blocks Parameter dialog box.
The following blocks support continuous state names:
Integrator
State-Space
Transfer Fcn
Variable Transport Delay
Zero-Pole
Logging of continuous states is illustrated in the sldemo_hydrod demo.
This release introduces the following changes to the Embedded MATLAB Function block:
Embedded MATLAB function blocks introduce a new function, Embedded MATLAB MEX (emlmex), that checks M-code for compliance with the syntax and semantics of the Embedded MATLAB subset. You can add Embedded MATLAB-compliant code to Embedded MATLAB Function blocks and Truth Table blocks in Simulink models. For more information, see Working with Embedded MATLAB MEX in the Embedded MATLAB documentation.
Embedded MATLAB Function blocks now supports multidimensional signals and parameter data, where the number of dimensions can be greater than 2. This feature is fully integrated with support for multidimensional signals in Simulink software. Supported functions in the Embedded MATLAB Function Library Reference have been enhanced to handle multidimensional data.
Embedded MATLAB Function blocks now support function handles for invoking functions indirectly and parameterizing operations that you repeat frequently in your code. For more information, see the section on using function handles in Working with the Embedded MATLAB Subset in the Embedded MATLAB documentation.
Embedded MATLAB Function blocks can now input and output frame-based signals directly in Simulink models. You no longer need to attach Frame Conversion blocks to inputs and outputs to achieve this functionality. See Working with Frame-Based Signals in the Simulink documentation.
Embedded MATLAB Function blocks provide 31 new runtime library functions in the following categories:
See Embedded MATLAB Function Library Reference for a list of all supported functions.
Derivative and Integral Functions.
Filtering and Convolution Functions.
Embedded MATLAB Function blocks no longer support & and | operators in if and while conditional statements.
Compatibility Considerations. In prior releases, these operators compiled without error, but their short-circuiting behavior was not implemented correctly. Substitute && and || operators instead.
Embedded MATLAB Function blocks now support the Fixed-Point Toolbox™ get function for returning the properties of fi objects.
Compatibility Considerations. To get properties of non-fixed-point objects in Embedded MATLAB Function blocks, you must first declare get to be an extrinsic function; otherwise, your code will error. For more information refer to Calling MATLAB Functions in the Embedded MATLAB documentation.
Documentation on the Embedded MATLAB subset and its syntax, semantics, and supported functions has moved out of the Simulink Reference. See Embedded MATLAB User's Guide for the newEmbedded MATLAB documentation.
The simulation start time of all models in a model reference hierarchy was previously required to be 0. Now the simulation start time can be nonzero. The start time of all models in a model reference hierarchy must be the same. See Referencing a Model and Specifying a Simulation Start and Stop Time for information about these capabilities. See Referencing Configuration Sets for information about a convenient way to give all models in a hierarchy the same configuration parameters, including simulation start time.
Two new functions exist that you can use to copy contents between a block diagram and a subsystem.
Copies the contents of a block diagram to an empty subsystem.
Copies the contents of a subsystem to an empty block diagram.
For details, see the reference documentation for each function.
Two new functions exist that you can use to delete the contents of a block diagram or subsystem.
Deletes the contents of a block diagram.
Deletes the contents of a subsystem.
For details, see the reference documentation for each function.
In the Configuration Parameters dialog, Diagnostics > Data Validity pane, the default setting for Signal resolution is now Explicit only. Previously, the default was Explicit and warn implicit. Equivalently, the default value of the SignalResolutionControl parameter is now UseLocalSettings (previously TryResolveAllWithWarnings). See Diagnostics Pane: Data Validity for more information.
Due to this change, labeling a signal is no longer enough to cause it to resolve by default to a signal object. You must also do one of the following:
In the signal's Signal Properties dialog, select Signal name must resolve to Simulink data object and specify a Simulink.Signal object in the Signal name field. Simulink software then resolves that signal to that signal object.
In the Configuration Parameters dialog, set Diagnostics > Data Validity > Signal resolution to Explicit and warn implicit (to post warnings) or Explicit and implicit (to suppress warnings). Simulink software then resolves all labeled signals to signal objects by matching their names, posting a warning of each resolution if so directed.
Models built in R2007a will default to Explicit only. Models created in previous versions will retain the Signal resolution value with which they were saved, and will run as they did before. New models may therefore behave differently from existing models that retain the previous default behavior. To specify the previous default behavior in a new model, change Signal resolution to Explicit and warn implicit.
Conversion Function. The MathWorks discourages using implicit signal resolution except for fast prototyping, because implicit resolution slows performance, complicates model validation, and can have nondeterministic effects. Simulink software provides the disableimplicitsignalresolution function, which you can use to change settings throughout a model so that it does not use implicit signal resolution. See the function's reference documentation, or type:
help disableimplicitsignalresolution
in the MATLAB Command Window.
This release provides configuration references (Simulink.ConfigSetRef class), which you can use to link multiple models to a configuration set stored on the base workspace. All of those models then share the same configuration set, and therefore have the same configuration parameter values. Changing a parameter value in a shared configuration set changes that value for every model that uses the set. With configuration references, you can:
Assign the same configuration set to any number of models
Replace the configuration sets of any number of models without changing the model files
Use different configuration sets for a referenced model in different contexts without changing the model file
See Configuration Sets and Referencing Configuration Sets for more information.
You cannot change configuration parameter values by operating directly on a configuration reference as you can a configuration set. Instead, you must use the configuration reference to retrieve the configuration set and operate on the set. If you reconfigure a model to access configuration parameters using a configuration reference, you must update any scripts that change parameter values to incorporate the extra step of obtaining the configuration set from the reference before changing the values. See Creating a Freestanding Configuration Set for details.
When the diagnostic Configuration Parameters > Connectivity > Buses > Bus signal treated as vector is disabled or none, you can input a homogeneous virtual bus to many blocks that accept vectors but are not formally defined as accepting buses. Simulink software transparently converts the bus to a vector, allowing the block to accept the bus.
However, The MathWorks discourages intermixing buses and vectors, because such mixtures cause ambiguities that preclude strong type checking. The practice may become unsupported at some future time, and should not be used in new applications.
Simulink software provides diagnostics that report cases where buses are mixed with vectors, and includes capabilities that you can use to upgrade a model to eliminate such mixtures, as described in the following sections of the Simulink documentation:
Using Composite Signals — A new chapter in R2007a that describes the specification and use of composite signals.
Avoiding Mux/Bus Mixtures — Ambiguities that arise when composite signal types are intermixed, and the tools available for eliminating such mixtures.
Using Diagnostics for Mux/Bus Mixtures — Two diagnostic options for detecting mixed composite signals: Mux blocks used to create bus signals and Bus signal treated as vector.
Using the Model Advisor for Mux/Bus Mixtures — Model Advisor checks that detect mixed composite signals and recommend alternatives.
Bus to Vector — A block that you can insert into a bus used implicitly as a vector to explicitly convert the bus to a vector.
Simulink.BlockDiagram.addBusToVector — A function that creates a report of every bus used implicitly as a vector, and optionally inserts a Bus to Vector block into every such bus, replacing the implicit use with an explicit conversion.
Expressions that index into tunable parameters, such as P(1)+P(2)/P(i), retain their tunability in generated code, including simulation code that is generated for a referenced model. Both the indexed parameter and the index itself can be tuned.
Parameter expressions of the form P(i) retain their tunability if all of the following are true:
The index i is a constant or variable of double datatype
P is a 1D array, or a 2D array with one row or one column, of double datatype
P does not resolve to a mask parameter, but to a variable in the model or the base workspace
Previously, any loss of tunability generated a warning. In R2007a, you can use the Loss of Tunability diagnostic to control whether loss of tunability is ignored or generates a warning or error. See Detect loss of tunability for details.
Previously, resolution of port parameters of a masked subsystem began within the subsystem, which could violate the integrity of the mask. For example, if a subsystem mask defines parameter A, and a port of the subsystem uses A to set some port attribute, resolving A by starting within the masked block makes A externally visible, though it should be visible only within the mask.
To fix this problem, in R2007a masked subsystem port parameter resolution starts in the containing system rather than within the masked subsystem, then proceeds hierarchically upward as it did before. This change preserves the integrity of the masked subsystem, but can change model behavior if any subsystem port previously depended for resolution on a variable defined within the mask.
A model whose ports did not reference variables defined within a mask are unaffected. A model that resolved any port parameter by accessing a variable within a masked block may behave differently or become vulnerable to future changes in behavior, as follows:
If the port parameter's value cannot be evaluated, because the evaluation would require access to a variable defined only within the mask, an error occurs.
If an appropriate variable exists outside the mask but has a different value than the corresponding variable within the mask, no error occurs, but model behavior may change.
If an appropriate variable exists and has the same value inside and outside the mask, no behavioral change occurs, but later changes to the variable outside the mask may have unexpected effects.
To ensure correct results, change the model as needed so that any port parameter that previously depended on any variables defined within a mask give the intended results using the new resolution search path.
Previously, if a masked subsystem contained a block that needed to specify a data type using a data type object, the block could access the object only in the base workspace. The data type object could not be passed into the subsystem through a mask parameter. Parameterizing data types used by blocks under a mask was therefore not possible.
To support parameterized data types inside masked subsystems, you can now use a mask parameter to pass a data type object into a subsystem Blocks in the subsystem can then use the object to specify data types under the mask.
This release provides an expanded set of options for displaying port labels on a subsystem block. The options include displaying:
The label on the corresponding port block
The name of the corresponding port block
The name of the signal connected to the corresponding block
See the documentation for the Show Port Labels option on the Subsystem block's parameter dialog box for more information.
This release introduces a Selection Properties node to the Model Explorer's Customize Contents pane. The node allows you to customize the Model Explorer's Contents pane to display only the properties of the currently selected object. See Customize Contents Pane for more information.
In this release, when exporting a diagram as a graphic with the PaperPositionMode model parameter set to auto, Simulink software sizes the exported graphic to be the same size as the diagram's image on the screen when viewed at normal size. When PaperPositionMode is set to manual, Simulink software sizes the exported image to have the height and width specified by the model's PaperPosition parameter.
In previous releases, a model's PaperPosition parameter determined the size of the exported graphic regardless of the setting of the model's PaperPositionMode parameter. To reproduce the behavior of previous releases, set the PaperPositionMode parameter to manual.
A new function, Simulink.Bus.objectToCell, is available for converting bus objects to a cell array that contains bus information. For details, see the description of Simulink.Bus.objectToCell.
The Simulink.Bus.save function has been enhanced such that when using the 'cell' format you have the option of suppressing the creation of bus objects when the saved M-file executes. To suppress bus object creation, specify the optional argument 'false' when you execute the saved M-file.
For more detail, see the description of Simulink.Bus.save.
A change introduced in Version 6.5 (R2006b) introduces an incompatibility between this release and releases preceding Version 6.5 (R2006b). See Attempting to Reference a Symbol in an Uninitialized Mask Workspace Generates an Error for more information.
Simulink Acceleratornow defaults to nonverbose output when generating code. A new parameter, AccelVerboseBuild, has been added to control how much information is displayed. See Customizing the Build Process for more information.
![]() | Version 6.6.1 (R2007a+) Simulink Software | Version 6.5 (R2006b) Simulink Software | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |