Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

5.
Summary by VersionVersion (Release) New Features and Version Fixed Bugs and Changes Compatibility Known Problems ConsiderationsV4.1 (R12+) Yes Yes Fixed Bugs Details SummaryV4.0 (R12) Yes Yes No Details Summary Using Release Notes Use release notes when upgrading to a newer version to learn about: • New features • Changes • Potential impact on your existing files and practices Review the release notes for other MathWorks® products required for this product (for example, MATLAB® or Simulink®). Determine if enhancements, bugs, or compatibility considerations in other products impact you. If you are upgrading from a software version other than the most recent one, review the current release notes and all interim versions. For example, when you upgrade from V1.0 to V1.2, review the release notes for V1.1 and V1.2. What Is in the Release Notes New Features and Changes • New functionality • Changes to existing functionality Version Compatibility Considerations When a new feature or change introduces a reported incompatibility between versions, the Compatibility Considerations subsection explains the impact. 3

6.
Simulink® Release Notes Compatibility issues reported after the product release appear under Bug Reports at the MathWorks Web site. Bug fixes can sometimes result in incompatibilities, so review the fixed bugs in Bug Reports for any compatibility impact. Fixed Bugs and Known Problems MathWorks offers a user-searchable Bug Reports database so you can view Bug Reports. The development team updates this database at release time and as more information becomes available. Bug Reports include provisions for any known workarounds or file replacements. Information is available for bugs existing in or fixed in Release 14SP2 or later. Information is not available for all bugs in earlier releases. Access Bug Reports using your MathWorks Account. Documentation on the MathWorks Web Site Related documentation is available on mathworks.com for the latest release and for previous releases: • Latest product documentation • Archived documentation4

7.
Version 7.9 (R2012a) Simulink® SoftwareVersion 7.9 (R2012a) Simulink Software This table summarizes what’s new in V7.9 (R2012a):New Features and Changes Version Compatibility Fixed Bugs and Known Considerations ProblemsYes Yes—Details labeled Bug ReportsDetails below as Compatibility Includes fixes Considerations, below. See also Summary. New features and changes introduced in this version are organized by these topics: • “Component-Based Modeling” on page 5 • “MATLAB Function Blocks” on page 8 • “Execution on Target Hardware” on page 32 • “File Management” on page 17 • “Signal Management” on page 20 • “Block Enhancements” on page 25 • “User Interface Enhancements” on page 28 • “Modeling Guidelines” on page 31 • “Execution on Target Hardware” on page 32 Component-Based Modeling Interactive Library Forwarding Tables for Updating Links Use the new Forwarding Table to map old library blocks to new library blocks. In previous releases, you could create forwarding tables for a library only at the command line. Now you can interactively create forwarding tables for a library to specify how to update links in models to reflect changes in the parameters. To set up a forwarding table for a library, select File > Library Properties. 5

8.
Simulink® Release Notes You can also specify transformation functions to update old link parameter data using a MATLAB file on the MATLAB path. Transforming old link parameter data for the new library block enables you to load old links and preserve parameter data. After you specify the forwarding table, any links to old library blocks are updated when you open a model containing links to the library. Library authors can use the forwarding tables to automatically transform old links into updated links without any loss of functionality and data. Use the forwarding table to solve compatibility issues with models containing old links that cannot load in the current version of Simulink. Library authors do not need to run slupdate to upgrade old links, and can reduce maintenance of legacy blocks. For details, see “Making Backward-Compatible Changes to Libraries” in the Simulink documentation. Automatic Refresh of Links and Model Blocks When you save changes to a library block, Simulink now automatically refreshes all links to the block in open Model Editor windows. You no longer need to manually select Edit > Links and Model Blocks > Refresh. When you edit a library block (in the Model Editor or at the command line), Simulink now indicates stale links which are open in the Model Editor by showing that the linked blocks are unavailable. When you click the Model Editor window, Simulink refreshes any stale links to edited blocks, even if you have not saved the library yet. For details, see “Updating a Linked Block” in the Simulink documentation. Model Configuration for Targets with Multicore Processors You can now configure models for concurrent execution using configuration reference objects or configuration sets. In the previous release, you could use only configuration sets. Existing configuration sets continue to work. The workflow to configure a model for concurrent execution has these changes: • To preserve existing configuration settings for your model, in Model Explorer, expand the model node. Under the model, right-click6

9.
Version 7.9 (R2012a) Simulink® Software Configuration, then select the Show Concurrent Execution option. This action updates the Solver pane to display a Concurrent execution options section.• To create new configuration settings, in Model Explorer, right-click the model and select Configuration > Add Configuration for Concurrent Execution. This action updates the Solver pane to display a Concurrent execution options section.The following changes have also been made:• The Ensure deterministic transfer (minimum delay) data transfer now supports continuous and discrete signals. In the previous release, this data transfer type supported only continuous signals.• Data transfer has been enhanced to allow signal branch points outside of referenced models. In previous releases, signal branching was supported only within referenced models.• The following Simulink.SoftwareTarget.TaskConfiguration methods have new names. Use the new method names. Old Name New Name addAperiodicTaskGroup addAperiodicTrigger deleteTaskGroup deleteTrigger findTaskGroup findTrigger• The sldemo_concurrent_execution demo has been updated to reflect the updated software. It also now contains an example of how to configure the model for an asynchronous interrupt.• In the Concurrent Execution dialog box, the Map Blocks To Tasks node has changed to Tasks and Mapping. The Periodic and Interrupt nodes are now hierarchically under the Tasks and Mapping node.For more information, see “Configuring Models for Targets with MulticoreProcessors” in the Simulink User’s Guide. 7

10.
Simulink® Release Notes MATLAB Function Blocks Integration of MATLAB Function Block Editor into MATLAB Editor There is now a single editor for developing all MATLAB code, including code for the MATLAB Function block. Code Generation for MATLAB Objects There is preliminary support in MATLAB Function blocks for code generation for MATLAB classes targeted at supporting user-defined System objects. For more information about generating code for MATLAB classes, see “Code Generation for MATLAB Classes”. For more information about generating code for System objects, see the DSP System Toolbox™, Computer Vision System Toolbox™, or the Communications System Toolbox™ documentation. Specification of Custom Header Files Required for Enumerated Types If data in your MATLAB Function block uses an enumerated type with a custom header file, include the header information in the Simulation Target > Custom Code pane of the Configuration Parameters dialog box. In the Header file section, add the following statement: #include "<custom_header_file_for_enum>.h" Compatibility Considerations. In earlier releases, you did not need to include custom header files for enumerated types in the Configuration Parameters dialog box. Data Management New Infrastructure for Extending Simulink Data Classes Using MATLAB Class Syntax Previously, you could use only the Data Class Designer to create user-defined subclasses of Simulink data classes such as Simulink.Parameter or Simulink.Signal.8

11.
Version 7.9 (R2012a) Simulink® SoftwareThe Data Class Designer, which is based on level-1 data class infrastructure,allows you to create, modify, or delete user-defined packages containinguser-defined subclasses.In a future release, support for level-1 data class infrastructure is beingremoved.There are disadvantages to using the level-1 data class infrastructure:• The syntax for defining data classes using this infrastructure is not documented.• The data classes are defined in P-code.• The infrastructure offers limited capability for defining data classes. - It does not allow you to add methods to your data classes. - It does not allow you to add private or protected properties to your data classes.• It permits partial property matching and does not enforce case sensitivity. For example, after creating a Simulink.Parameter data object a = Simulink.Parameter; you could set the property Value of the data object by using the following command: a.value = 5;In R2012a, a replacement called level-2 data class infrastructure is beingintroduced. This infrastructure allows you to extend Simulink data classesusing MATLAB class syntax.Features of level-2 data class infrastructure:• Ability to upgrade data classes you defined using level-1 data class infrastructure. To learn how to upgrade, see “Upgrade Level-1 Data Classes to Level-2”.• Complete flexibility in defining your data classes, which can now have their own methods and private properties. 9

12.
Simulink® Release Notes • Simplified mechanism for defining custom storage classes for your data classes. • Strict matching for properties, methods, and enumeration property values. • Ability to define data classes as readable MATLAB code, not P-code. With class definitions in MATLAB code, it is easier to understand how these classes work, to integrate code using configuration management, and to perform peer code reviews. See the detailed example, “Define Level-2 Data Classes Using MATLAB Class Syntax”. Compatibility Considerations. When you migrate your level-1 data classes to level-2 data classes, the way that MATLAB code is generated and model files are loaded remains the same. However, you may encounter errors if your code includes the following capabilities specific to level-1 data classes: • Inexact property names such as a.value instead of the stricter a.Value. • The set method to get a list of allowable values for an enumeration property. • Vector matrix containing Simulink.Parameter and Simulink.Signal data objects. Previously, using level-1 data classes, you could define a vector matrix v as follows: a = Simulink.Signal; b = Simulink.Parameter; v = [a b]; However, level-2 data classes do not support such mixed vector matrices. In these cases, modify your code to replace these capabilities with those supported by level-2 data classes. For more information on how to make these replacements, see MATLAB Object Oriented Programming. Change in Behavior of isequal Previously, when you used function isequal to compare two Simulink data objects, the function compared only the handles of the two objects. This behavior was incorrect and did not conform to the intended behavior of isequal in MATLAB. Consider the following example:10

13.
Version 7.9 (R2012a) Simulink® Softwarea = Simulink.Parameter;b = Simulink.Parameter;isequal(a,b);ans = falseIn R2012a, the behavior of isequal has changed to conform to the intendedbehavior of isequal in MATLAB. Now, isequal compares two Simulinkdata objects by comparing their individual property values. Based on theabove example, provided objects a and b have similar property values, thenew result will be as follows.a = Simulink.Parameter;b = Simulink.Parameter;isequal(a,b);ans = trueisContentEqual Will Be Removed in a Future ReleasePreviously, you could use method isContentEqual to compare the propertyvalues of two Simulink data objects.In this release, the behavior of isequal has been changed so that it canreplace isContentEqual.In a future release, support for isContentEqual will be removed. Useisequal instead.Compatibility Considerations. If you are using the isContentEqualmethod in your MATLAB code to compare Simulink data objects, replace allinstances of isContentEqual with isequal.Change in Behavior of int32 Property TypePreviously, when you created int32 properties for a level-1 data class usingthe Data Class Designer, the property value was stored as a double-precisionvalue.In R2012a, the behavior of int32 properties has changed. Now, int32properties for a level-2 data classes are stored as a single-precision values. 11

14.
Simulink® Release Notes RTWInfo Property Renamed In R2012a, the property RTWInfo of a Simulink data object has been renamed as CoderInfo. Compatibility Considerations. If your code uses the RTWInfo property to access data object parameters such as StorageClass, replace instances of RTWInfo in your code with CoderInfo. Your existing code will continue to work as before. deepCopy Method Will Be Removed in a Future Release Previously, you could use a Simulink data object’s deepCopy method to create a copy of the data object along with its properties. a = Simulink.Parameter; b = a.deepCopy; In a future release, the deepCopy method will be removed. Use the copy method instead. a = Simulink.Parameter; b = a.copy; The copy does not create a reference. To create a reference, use the following commands. a = Simulink.Parameter; b = a; New Methods for Querying Workspace Variables Previously, you could query model workspace variables using the evalin method, but you had to resave your model after using this method. In R2012a, use two new Simulink.Workspace methods to query workspace variables without having to resave your model: • hasVariable: Determines if a variable exists in the workspace. • getVariable: Gets the value of a variable from the workspace.12

15.
Version 7.9 (R2012a) Simulink® SoftwareDefault Package Specification for Data ObjectsIn R2012a, you can specify a default data package other than Simulink. Setthe default package in the Data Management Defaults pane of the SimulinkPreferences dialog box.Simulink applies your default package setting to the Model Explorer, DataObject Wizard, and Signal Properties dialog box.Simulink.Parameter EnhancementsThe following enhancements have been made to Simulink.Parameter dataobjects:• You can now explicitly specify the data type property of a Simulink.Parameter object as double.• When casting values to specified data types, the values of Simulink.Parameter objects are now cast using the casting diagnostic used for block parameters. - Scalar value is cast to fixed-point data type. - Array or matrix value is cast to fixed-point data type. - Structure value is cast to bus data type. For more information on creating typesafe models, see “Data Typing Rules”Custom Storage Class Specification for Discrete States on BlockDialog BoxPreviously, you could specify custom storage classes (CSCs) for discrete statesonly by creating a signal object in the base workspace, associating it with thediscrete state, and assigning the CSC to the signal object.In R2012a, you can specify CSCs for discrete states directly on the blockdialog box.For example, you can specify a CSC for the discrete state of a Unit Delayblock as follows:1 Open the block dialog box. 13

16.
Simulink® Release Notes 2 Click the State Attributes tab. 3 Select a Package. 4 Select the desired CSC from the Storage class drop-down list. 5 Set Custom attributes for the storage class. Enhancement to set_param Previously, when you used set_param to make changes to the value of a parameter, Simulink allowed the change to be committed even if the set_param operation failed. Consequently, an invalid value persisted in the parameter and an error was generated during model simulation. In this release, the behavior of set_param has been enhanced so that Simulink does not change the value of a parameter if the set_param operation fails. Instead, the parameter retains its original value. Compatibility Considerations. 1 Sections of your code might not work if they depend on the value of a parameter set using set_param within a try-catch block. Consider revising such sections of code to account for the new behavior. 2 If you are setting dependent parameters using separate set_param commands for each parameter, consider revising the code so that all dependent parameters are set using a single command. Setting individual parameters might cause the set_param operation to fail for the dependent parameters. For example, consider three dependent parameters of the Integrator block: Lower Saturation, Upper Saturation, and Initial Condition. The dependency condition among these parameters is as follows: Lower Saturation ≤ Initial Condition ≤ Upper Saturation. Here, setting one parameter at a time might cause the set_param operation to fail if a dependency condition is not satisfied. It might be better to set all parameters together using a single set_param command. Avoid14

17.
Version 7.9 (R2012a) Simulink® Software try set_param(Handle, Param1, Value1) end set_param(Handle, Param2, Value2) Better set_param(Handle, Param1, Value1, Param2, Value2)Simulink.findVars Support for Active Configuration SetsSimulink.findVars now searches for variables that are used in a model’sactive configuration set. For example, you can now use Simulink.findVarsto search for variables that are used to specify configuration parameters suchas “Start time” and “Stop time”.Use either the Model Explorer or the Simulink.findVars command-lineinterface to search for variables used by an active configuration set.Bus Support for To File and From File BlocksThe To File block supports saving virtual and nonvirtual bus data.The From File block supports loading nonvirtual bus data.Bus Support for To Workspace and From Workspace BlocksThe To Workspace block supports saving bus data, with a new default saveformat, Timeseries. For bus data, the Timeseries format uses a structureof MATLAB timeseries objects, and for non-bus data, a MATLAB timeseriesobject.The From Workspace block now supports loading bus data. To do so, specify abus object as the output data type.Logging Fixed-Point Data to the To Workspace BlockIf you configure the To Workspace block to log fixed-point data as fi objects,then the workspace variable should use the same data type as the input. Topreserve the data type of scaled doubles inputs, Simulink logs them to fiobjects. 15

18.
Simulink® Release Notes Compatibility Considerations. In releases prior to R2012a, when you configured the To Workspace block to log fixed-point data as fi objects and the input data type was scaled doubles, then Simulink discarded the scaled doubles data type and logged the data as doubles. Improved Algorithm for Best Precision Scaling In R2012a, using best-precision scaling is less likely to result in proposed data types that could result in overflows. The new algorithm prevents overflows for all rounding modes except Ceiling. For example, consider a Data Type Conversion block with an Output minimum of -128.6, and rounding mode Floor, and data type specified as fixdt(1,8). In previous releases, for an input signal value of -128.6, best precision scaling set the output data type to fixdt(1,8,0) which resulted in an overflow. In R2012a, for the same model, best precision scaling now prevents such overflows by setting the output data type to fixdt(1,8,-1) and the signal value becomes -128. Compatibility Considerations. Best-precision scaling in R2012a calculates a different data type from that calculated in R2011b only if the value being scaled is between (RepMin - LSB) and RepMin, where RepMin is the representable minimum of the proposed data type. Under these conditions, the output data type used by the block might change to avoid overflow. This change might reduce precision and result in the propagation of different data types. It might also affect the data types proposed by the Fixed-Point Advisor and Fixed-Point Tool. Enhancement of Mask Parameter Promotion The manner in which promoted variables are named in the mask editor has changed. Consider the following example. You mask a subsystem that contains two parameters that are candidates for promotion: Upper Limit and Lower Limit. You promote parameter Upper Limit, but later decide to promote a different parameter. So you remove your original promotion of Upper Limit and promote parameter Lower Limit instead.16

19.
Version 7.9 (R2012a) Simulink® SoftwareIn previous releases, even though you changed the promotion to parameterLower Limit, the auto-generated name and prompt for this parameterremained UpperLimit.In this release, when you change the promotion to parameter Lower Limit,the variable name and the prompt of the parameter change to LowerLimit.However, if you had manually changed the variable name for your originallypromoted parameter Upper Limit to ChangedLimit, the variable name forthe new promotion will also be ChangedLimit.File ManagementSLX Format for Model FilesIn R2012a, Simulink provides a new option to save your model file in theSLX format, with file extension .slx. The SLX file format contains the sameinformation as an MDL file and is a compressed package that conforms to theOpen Packaging Conventions (OPC) interoperability standard. SLX storesmodel information using Unicode UTF-8 in XML and other internationalformats.Saving Simulink in the SLX format:• Typically reduces file size. The file size reduction between MDL and SLX varies depending on the model.• Solves some problems in previous releases with loading and saving MDL files containing Korean and Chinese characters.• Supports new features in future releases not supported with MDL format.The default file format remains MDL, and the MDL format will remainavailable for the foreseeable future.To use the SLX format, see “File format for new models and libraries” in theSimulink Preferences documentation. 17

20.
Simulink® Release Notes Compatibility Considerations. SLX will become the default file format in a future release. In R2012a you can optionally save your models in the SLX format. All functionality and APIs that currently exist for working with models, such as the get_param and set_param commands, are also available when using the SLX file format. The MDL file format will continue to be supported, but, after R2012a, new features might be available only if you use the SLX file format. When you use the SLX file format, the new file extension .slx might cause compatibility issues if your scripts contain hard-coded references to file names with extension .mdl. To check for future problems, verify that your code works with both the MDL and SLX formats. If you find any places in your scripts that need to be updated, use functions like which and what instead of strings with .mdl. Caution If you use third-party source control tools, be sure to register the model file extension .slx as a binary file format. If you do not, these third-party tools might corrupt SLX files when you submit them. Release Operations What Happens Action with Possible Compatibility Considerations R2012a In 12a, SLX is Nothing, unless None. optional. No you choose to try compatibility SLX. considerations, If you try SLX, unless you see the following choose to save rows for possible as SLX. impact. Future release Hard-coded Scripts cannot Make your code with SLX references to find or process work with both default. file names with models saved the .mdl and extension .mdl. with new file .slx extension. extension .slx. Use functions like which and18

21.
Version 7.9 (R2012a) Simulink® Software Release Operations What Happens Action with Possible Compatibility Considerations what instead of strings with .mdl. Third-party Binary format Register .slx source control of SLX files can as a binary file tools that assume cause third-party format with a text format by tools to corrupt third-party default. the files when source control you submit them. tools.For more information, see “Saving Models in the SLX File Format” in theSimulink documentation.The format of content within MDL and SLX files is subject to change. Usedocumented APIs (such as get_param, find_system, and Simulink.MDLInfo)to operate on model data.Simulink Project EnhancementsIn R2012a, Simulink projects include the following enhancements:• New export to Zip file capability to package and share project files.• Dependency analysis graph views to visualize project file dependencies.• Easily compare and merge project file labels and shortcuts to resolve conflicts during peer review workflow.• New ability to load a project and use the project API to run setup tasks on a MATLAB worker.• Extended source control support with the Source Control Adapter SDK for authoring integration with third-party tools.For more information on using projects, see “Managing Projects” in theSimulink documentation. 19

22.
Simulink® Release Notes Compatibility Considerations. Functionality What Happens Use This Compatibility When You Functionality Considerations Use This Instead Functionality? getRootDirectory Warns getRootFolder Replace all instances of getRootDirectory with getRootFolder See the Simulink.ModelManagement.Project.CurrentProject reference page. Signal Management Signal Hierarchy Viewer To display the signal hierarchy for a signal: 1 Right-click a signal. 2 Select the Signal Hierarchy option to open the new Signal Hierarchy Viewer. For details, see “Signal Hierarchy Viewer”. Signal Label Propagation Improvements Prior to R2012a, signal label propagation behaved inconsistently in different modeling contexts. Signal label propagation is the process that Simulink uses when it passes signal labels to downstream connection blocks (for example, Subsystem and Signal Specification blocks). In R2012a, signal label propagation is consistent: • For different modeling constructs (for example, different kinds of signals, different kinds of buses, model referencing, variants, and libraries)20

23.
Version 7.9 (R2012a) Simulink® Software• In models with or without hidden blocks, which Simulink inserts in certain cases to enable simulation• At model load, edit, update, and simulation timesFor details, see “Signal Label Propagation”.Compatibility Considerations. In the Signal Properties dialog box, for theShow propagated signals parameter, you can no longer specify the alloption. When you save a pre-R2012a model in R2012a, Simulink changesthe all settings to on.The following blocks no longer support signal label propagation. When youopen legacy models that have signal label propagation enabled for theseblocks, Simulink does not display a warning or error, and does not propagatethe signal label.• Assignment• Bus Assignment• Bus Creator• Bus Selector• Demux• Matrix Concatenate• Mux• Selector• Vector Concatenate• Bus-capable blocks (Memory, Merge, Multiport Switch, Permute Dimensions, Probe, Rate Transition, Reshape, S-Function, Switch, Unit Delay, Width, and Zero-Order Hold)You can name the output of a Bus Creator block and choose to have that namepropagated to any downstream connection blocks.To view the hierarchy for any bus signal, use the new Signal HierarchyViewer. 21

24.
Simulink® Release Notes Frame-Based Processing: Inherited Option of the Input Processing Parameter Now Provides a Warning Some Simulink blocks are able to process both sample- and frame-based signals. After the transition to the new way of handling frame-based processing, signals will no longer carry information about their frame status. Blocks that can perform both sample- and frame-based processing will have a new parameter that allows you to specify the appropriate processing behavior. To prepare for this change, many blocks received a new Input processing parameter in previous releases. You can set this parameter to Columns as channels (frame based) or Elements as channels (sample based), depending upon the type of processing you want. The third choice, Inherited (this choice will be removed - see release notes), is a temporary selection that is available to help you migrate your existing models from the old paradigm of frame-based processing to the new paradigm. In this release, your model provides a warning when the following conditions are all met for any block in your model: • The Input processing parameter is set to Inherited (this choice will be removed - see release notes). • The input signal is sample-based. • The input signal is a vector, matrix, or N-dimensional array. Compatibility Considerations. To eliminate this warning, you must upgrade your existing models using the slupdate function. The function detects all blocks that have Inherited (this choice will be removed - see release notes) selected for the Input processing parameter. It then asks you whether you would like to upgrade each block. If you select yes, the function detects the status of the frame bit on the input port of the block. If the frame bit is 1 (frames), the function sets the Input processing parameter to Columns as channels (frame based). If the bit is 0 (samples), the function sets the parameter to Elements as channels (sample based). In a future release, the frame bit and the Inherited (this choice will be removed - see release notes) option will be removed. At that time, the Input processing parameter in models that have not been upgraded will automatically be set to either Columns as channels (frame based) or Elements as channels (sample based). The option set will depend on22

25.
Version 7.9 (R2012a) Simulink® Softwarethe library default setting for each block. If the library default setting doesnot match the parameter setting in your model, your model will produceunexpected results. Additionally, after the frame bit is removed, you will nolonger be able to upgrade your models using the slupdate function. Therefore,you should upgrade your existing modes using slupdate as soon as possible.Logging Frame-Based SignalsIn this release, a new warning message appears when a Simulink modelis logging frame-based signals and the Signal logging format is set toModelDataLogs. In ModelDataLogs mode, signals are logged differentlydepending on the status of the frame bit, as shown in the following table. Status of Frame Bit Today When Frame Bit Is Removed Sample-based 3-D array with samples 3-D array with samples in time in the third in time in the third dimension dimension Frame-based 2-D array with frames 3-D array with samples in time concatenated in in time in the third the first dimension dimensionThis warning advises you to switch your Signal logging format to Dataset.The Dataset logging mode logs all 2-D signals as 3-D arrays, so its behavior isnot dependent on the status of the frame bit.When you get the warning message, to continue logging signals as a 2-D array:1 Select Simulation > Configuration Parameters > Data Import/Export, and change Signal logging format to Dataset. To do so for multiple models, click the link provided in the warning message.2 Simulate the model.3 Use the dsp.util.getLogsArray function to extract the logged signal as a 2-D array. 23

26.
Simulink® Release Notes Frame-Based Processing: Model Reference and Using slupdate In this release, the Model block has been updated so that its operation does not depend on the frame status of its input signals. Compatibility Considerations. In a future release, signals will not have a frameness attribute, therefore models that use the Model block must be updated to retain their behavior. If you are using a model with a Model block in it, follow these steps to update your model: 1 For both the child and the parent models: • In the Configuration Parameters dialog box, select the Diagnostics > Compatibility pane. • Change the Block behavior depends on input frame status parameter to warning. 2 For both the child and the parent models, run slupdate. 3 For the child model only: • In the Configuration Parameters dialog box, select the Diagnostics > Compatibility pane. • Change the Block behavior depends on input frame status parameter to error. Removing Mixed Frameness Support for Bus Signals on Unit Delay and Delay This release phases out support for buses with mixed sample and frame-based elements on the Unit Delay and Delay blocks in Simulink. When the frame bit is removed in a future release, any Delay block that has a bus input of mixed frameness will start producing different results. This incompatibility is phased over multiple releases. In R2012a the blocks will start warning. In a future release, when the frame bit is removed, the blocks will error.24

27.
Version 7.9 (R2012a) Simulink® SoftwareBlock EnhancementsDelay Block Accepts Buses and Variable-Size Signals at theData Input PortIn R2012a, the Delay block provides the following support for bus signals:• The data input port u accepts virtual and nonvirtual bus signals. The other input ports do not accept bus signals.• The output port has the same bus type as the data input port u for bus inputs.• Buses work with: - Sample-based and frame-based processing - Fixed and variable delay length - Array and circular buffersTo use a bus signal as the input to a Delay block, you must specify the initialcondition in the dialog box. In other words, the initial condition cannot comefrom the input port x0.In R2012a, the Delay block also provides the following support forvariable-size signals:• The data input port u accepts variable-size signals. The other input ports do not accept variable-size signals.• The output port has the same signal dimensions as the data input port u for variable-size inputs.The rules for variable-size signal support depend on the input processingmode of the Delay block. See the block reference page for details.n-D Lookup Table Block Has New Default SettingsIn R2012a, the default values of the Table data and Breakpoints 3parameters of the n-D Lookup Table block have changed: 25

28.
Simulink® Release Notes • Table data — reshape(repmat([4 5 6;16 19 20;10 18 23],1,2),[3,3,2]) • Breakpoints 3 — [5, 7] The default values of all other block parameters remain the same. Blocks with Discrete States Can Specify Custom Storage Classes in the Dialog Box In R2012a, the following blocks have additional parameters on the State Attributes tab to support specification of custom storage classes: • Data Store Memory • Delay • Discrete Filter • Discrete State-Space • Discrete Transfer Fcn • Discrete Zero-Pole • Discrete-Time Integrator • Memory • PID Controller • PID Controller (2 DOF) • Unit Delay In previous releases, specifying a custom storage class for a block required creating a signal object in the base workspace. In R2012a, you can specify the custom storage class on the State Attributes tab of the block dialog box. Inherited Option of the Input Processing Parameter Now Provides a Warning Some Simulink blocks are able to process both sample- and frame-based signals. After the transition to the new way of handling frame-based processing, signals will no longer carry information about their frame status. Blocks that can perform both sample- and frame-based processing will have a26

29.
Version 7.9 (R2012a) Simulink® Softwarenew parameter that allows you to specify the appropriate processing behavior.To prepare for this change, many blocks received a new Input processingparameter in previous releases. See “Version 7.8 (R2011b) Simulink Software”on page 33 for details. You can set this parameter to Columns as channels(frame based) or Elements as channels (sample based), depending onthe type of processing you want. The third choice, Inherited, is a temporaryselection that is available to help you migrate your existing models from theold paradigm of frame-based processing to the new paradigm.In this release, your model will provide a warning for the following blockswhen the Input processing parameter is set to Inherited, the input signal isframe-based, and the input signal is a vector, matrix, or N-dimensional array:• Unit Delay• Delay• Bias• Tapped DelayCompatibility Considerations. To eliminate this warning, you mustupgrade your existing models using the slupdate function. The functiondetects all blocks that have Inherited selected for the Input processingparameter, and asks you whether you would like to upgrade each block. Ifyou select yes, the function detects the status of the frame bit on the inputport of the block. If the frame bit is 1 (frames), the function sets the Inputprocessing parameter to Columns as channels (frame based). If the bitis 0 (samples), the function sets the parameter to Elements as channels(sample based).In a future release, the frame bit and the Inherited option will be removed.At that time, the Input processing parameter in models that have not beenupgraded will automatically be set to either Columns as channels (framebased) or Elements as channels (sample based), depending on the librarydefault setting for each block. If the library default setting does not match theparameter setting in your model, your model will produce unexpected results.Also, after the frame bit is removed, you will no longer be able to upgrade yourmodels using the slupdate function. Therefore, upgrade your existing modelsusing slupdate as soon as possible. 27

30.
Simulink® Release Notes User Interface Enhancements Model Advisor: Highlighting When a Model Advisor analysis is complete, you can specify that the Model Advisor highlight blocks in a model diagram relevant to warning and failure conditions reported for individual Model Advisor checks. When you click a check, in the model window you can easily see which objects pass, receive a warning, or fail the check. See “Consulting the Model Advisor”. Model Explorer: Grouping Enhancements In the object property table, you can now group data objects by the object type property. (As in earlier releases, you can also group data objects by other property columns.) 1 Right-click the empty heading in the first column (the column that displays icons such as the block icon ( )). 2 In the context menu, select Group By This Column. The object property table also displays the number of objects in each group.28

31.
Version 7.9 (R2012a) Simulink® SoftwareFor details about grouping, see “Grouping by a Property”.Model Explorer: Row Filter ButtonYou can access the row filter options by using the new Row Filter button,which is to the right of the object count at the top of the Contents pane.As an alternative, you also can access the row filter options by selectingView > Row Filter.For details, see “Using the Row Filter Option”.Simulation Data Inspector EnhancementsSignal Data Organization. In R2012a, the Group Signals option allowsyou to customize the organization of the signal data in the Signal Browsertable. By default, the data is first grouped by Run Name. You can then groupthe signal data by model hierarchy or by the logged variable name. Chooseoptions that help you more easily find signals for viewing or comparing. Formore information, see “Modify Grouping in Signal Browser Table”. 29

32.
Simulink® Release Notes Block Name Column. The Signal Browser Table now includes a Block Name column. For the signal data, the Block Name column displays the name of the block that feeds the signal. To add this column to the table, right-click the Signal Browser table, and from the Columns list, select Block Name. For more information, see “Add/Delete a Column in the Signal Browser Table”. Plot Check Box Moved. In the Signal Browser table, the plot check box is no longer in a separate Plot column. To select a signal for plotting, go to the left-most column where the plot check box is now located. Parallel Simulation Support. The Simulation Data Inspector API now works with parallel simulations using the parfor command. To use the Simulation Data Inspector to record and view the results from parallel simulations, you can use the following methods to get and set the location of the Simulation Data Inspector repository: • Simulink.sdi.getSource • Simulink.sdi.setSource • Simulink.sdi.refresh For more information, see “Record Data During Parallel Simulations” Port Value Displays The behavior of port value displays for blocks has changed. In addition to performance improvements, the changes include: • Port values are now port-based instead of block-based. • Block Output Display Options dialog box has been changed to Value Label Display Options. • Show none display option name has been changed to Remove All. • You can now right-click a signal line and select Show Port Value. In previous releases, you enable port value displays only through the Block Output Display Options dialog box. • The port value display is an empty box you toggle or hover on a block and have not yet run the simulation. In previous releases, it displayed xx.xx.30

33.
Version 7.9 (R2012a) Simulink® Software• The port value displays the string wait when you toggle or hover on a block that Simulink has optimized out of the simulation.For more information, see “Displaying Port Values” in the Simulink User’sGuide.Modeling GuidelinesIn R2012a, Simulink includes new and updated Modeling Guidelines.Modeling Guidelines for High-Integrity SystemsFollowing are the new modeling guidelines to develop models and generatecode for high-integrity systems:• “hisl_0101: Avoid invariant comparison operations to improve MISRA-C:2004 compliance”• “hisl_0102: Data type of loop control variables to improve MISRA-C:2004 compliance”• “hisl_0202: Use of data conversion blocks to improve MISRA-C:2004 compliance”• “hisl_0312: Specify target specific configuration parameters to improve MISRA-C:2004 compliance”• “hisl_0313: Selection of bitfield data types to improve MISRA-C:2004 compliance”• “hisl_0401: Encapsulation of code to improve MISRA-C:2004 compliance”• “hisl_0402: Use of custom #pragma to improve MISRA-C:2004 compliance”• “hisl_0403: Use of char data type improve MISRA-C:2004 compliance”For more information, see “Modeling Guidelines for High-Integrity Systems”.MathWorks Automotive Advisory Board Control AlgorithmModeling Guidelines Using MATLAB, Simulink, and StateflowThe MathWorks Automotive Advisory Board (MAAB) working group createdVersion 2.2 of the MAAB Guidelines Using MATLAB, Simulink, andStateflow®. For more information, see “MathWorks Automotive Advisory 31

34.
Simulink® Release Notes Board Control Algorithm Modeling Guidelines Using MATLAB, Simulink, and Stateflow”. Execution on Target Hardware New Feature for Running Models Directly from Simulink on Target Hardware Use the new Run on Target Hardware feature to automatically run a Simulink model on target hardware. The feature supports the following target hardware: • BeagleBoard™ • LEGO® MINDSTORMS® NXT™ As part of the Run on Target Hardware feature, use the Target Installer to download and install support for your target hardware. To start the Target Installer, enter targetinstaller in a MATLAB Command Window, or open a Simulink model and select Tools > Run on Target Hardware > Install/Update Support Package.... When the Target Installer utility has finished, demos and a block library for your target hardware are available. To view the demos, enter doc in the MATLAB Command Window. In the product help window that opens, look for Other Demos near the bottom, under the Contents tab. To view the block library, enter simulink in the MATLAB Command Window. This action will launch the Simulink Library Browser. When the Simulink Library Browser opens, look for one of the following block libraries: • Target for Use with BeagleBoard Hardware • Target for Use with LEGO MINDSTORMS NXT Hardware For more information, you can read the documentation for “Running Models on Target Hardware”.32

36.
Simulink® Release Notes Component-Based Modeling For Each Subsystem Support for Continuous Dynamics For Each Subsystem blocks support continuous dynamics. This feature simplifies modeling a system of identical plant models. The continuous dynamics support includes: • Non-trigger sample time, including multi-rate and multitasking • Continuous states • Algebraic loops • Blocks in the SimDriveline™, SimElectronics®, and SimHydraulics® products To see an example using continuous dynamics with a For Each Subsystem block, run the sldemo_metro_foreach demo. Enable Port as an Input to a Root-Level Model You can add an Enable port to the root level of a model. The referenced model can also use a Trigger port. Using a root-level Enable port takes advantage of model referencing benefits, without your having to do either of these extra steps: • Put all blocks in an enabled subsystem into a referenced model • Put the entire enabled subsystem in a referenced model Compatibility Considerations. When you add an enable port to the root-level of a model, if you use the File > Save As option to specify a release before R2011b, then Simulink replaces the enable port with an empty subsystem. Finder Option for Looking Inside Referenced Models The Finder tool has a new Look inside referenced models option that allows you to search within a model reference hierarchy.34

37.
Version 7.8 (R2011b) Simulink® SoftwareFor details, see “Specifying Kinds of Systems To Search”.Improved Detection for Rebuilding Model Reference TargetsTo determine when to rebuild model reference simulation and SimulinkCoder™ targets, Simulink uses structural checksums of file contents. The useof checksums provides more accurate detection of file changes that require arebuild. Checksum checking is particularly valuable in environments thatstore models in content management systems.For details, see “Rebuild”.Model Reference Target Generation Closes Unneeded LibrariesWhen building model reference simulation and Simulink Coder targets,Simulink opens any unloaded libraries necessary for the build. Before R2011b,Simulink did not close the libraries that it opened during the build process.In R2011b, Simulink closes all libraries no longer needed for target generationor simulation. Simulink leaves the following kinds of libraries open:• Libraries used by referenced models running in Normal mode• Libraries that were already open at the start of the target generation processConcurrent Execution SupportThis release extends the modeling capabilities within the Simulink product tocapture and simulate the effects of deploying your design to multicore systems.In addition, you can deploy your designs to an actual multicore system usingSimulink Coder, Embedded Coder™, and xPC Target™ software. You can:• Create a new model configuration or extend existing configurations for concurrent execution.• Use Model blocks to define potential opportunities for concurrency in your design.• Easily set up and configure concurrent on-target tasks using a task editing interface. 35

38.
Simulink® Release Notes • Use either the GUI or command-line APIs to iteratively map design partitions (based on Model blocks) to tasks to find optimal concurrent execution scenarios. • Generate code that leverages threading APIs for Windows®, Linux®, VxWorks®, and xPC Target platforms for concurrent on-target execution. For further information, see “Configuring Models for Targets with Multicore Processors” in the Simulink User’s Guide. Finer Control of Library Links Libraries and links have been enhanced with the following features: • New option to lock links to libraries. Lockable library links enable control of end user editing, to prevent unintentional disabling of these links. This feature ensures robust usage of mature stable libraries. • New check for read-only library files when you try to save, and option to try to make library writable. • New options in Links Tool to push or restore individual edited links, in addition to existing option to push or restore entire hierarchies of links. • get_param and set_param enhanced to perform loading of library links, making programmatic manipulation of models easier and more robust. For example, Simulink now loads links consistently if you use either load_system or open_system before using get_param. For details, see “Working with Library Links” in the Simulink documentation. Mask Built-In Blocks with the Mask Editor You can now mask built-in blocks with the Mask Editor to provide custom icons and dialogs. In previous releases, you could mask only Subsystem, Model, and S-Function blocks. Now, in the Mask Editor, you can choose to promote any underlying parameter of any block to the mask. For subsystems, you can choose to promote parameters from any child blocks. You can associate a single mask parameter with multiple promoted parameters if they are of the same type. Changing the value of the mask parameter also sets the value of the associated promoted parameters.36

39.
Version 7.8 (R2011b) Simulink® SoftwareYou cannot mask blocks that already have masks. For example, someSimulink blocks, such as Ramp and Chirp Signal in the Sources library,cannot be masked.For details, see “Masking Blocks and Promoting Parameters” in the Simulinkdocumentation.Parameter Checking in Masked BlocksMasked blocks now prevent you entering invalid parameter values byreporting an error when you edit the mask dialog values. Now the parameterchecking behaviour of built-in and masked blocks is unified. Both blocktypes check for valid parameter values when you change block dialog values.Parameter checking at edit time prevents you saving a model with syntaxerrors or invalid values.Previously only built-in blocks reported an error at the time you enter aninvalid parameter with a syntax error, but masked blocks accepted invalidvalues. In previous releases you could enter invalid values in masked blockdialogs and not see an error until you compiled the model. If the model wasnot compiled you could save a model with syntax errors or other invalidvalues. In R2011b, parameter checking prevents this problem.Parameter checking applies both in the mask dialog and at the commandline for invalid parameters due to syntax errors (e.g. a blank parameter orinvalid parameter names). Parameter checking only applies in the maskdialog for errors defined by the block. Blocks can define valid parameters,for example, the upper limit must be higher than the lower limit, or thefrequency of a signal cannot be negative etc. This type of parameter checkingdoes not apply to changes you make at the command line. This allows youto set up blocks with multiple calls to set_param, without requiring thateach step checks for errors.Menu Options to Control VariantsYou can now select or open Model Variants and Variant Subsystems with theEdit and context menus. You can use the menus to open any variant choice oroverride the block using any variant choice. These options were previouslyaccessible only by opening the block dialog boxes. 37

40.
Simulink® Release Notes For details, see “Modeling Variant Systems” in the Simulink documentation. MATLAB Function Blocks Simulation Supported When the Current Folder Is a UNC Path In R2011b, you can simulate models with MATLAB Function blocks when the current folder is a UNC path. In previous releases, simulation of those models required that the current folder not be a UNC path. Simulink Data Management Default Design Minimum and Maximum are []/[], Not -inf/inf In R2011b, the default design minimum and maximum values for Simulink.Signal, Simulink.Parameter, Simulink.BusElement, and all blocks are []/[] instead of the previous default -inf/inf. You can no longer specify design minimum and maximum values of -inf/inf for blocks and these data objects. Compatibility Considerations. Simulink generates a warning or error depending on the scenario that led to -inf/inf being specified as design minimum and maximum values. The following scenarios are possible. • When a Simulink data object is loaded from an old MAT-file or MATLAB file in which the design maximum and minimum values of the data object were specified as -inf/inf, Simulink generates a warning that -inf/inf is not supported and changes the design values to the new default, namely, []/[]. • If you set the design minimum and maximum values for the above mentioned data objects as -inf/inf, Simulink generates a warning that -inf/inf is not supported and changes the design values to the new default, namely, []/[]. • If the design minimum and maximum values evaluate to -inf/inf during compilation or at run-time, Simulink generates an error that -inf/inf is not supported.38

41.
Version 7.8 (R2011b) Simulink® Software• If your model contains an embedded signal object with design minimum and maximum values specified as -inf/inf, Simulink generates a warning that -inf/inf is not supported.Bus Elements Now Have Design Minimum and MaximumPropertiesIn previous releases, you could specify design minimum and maximum for anydata, including data with a bus data type. This was done by specifying theminimum and maximum parameters on the associated blocks or data objects.In R2011b, you can specify design minimum and maximum for each elementof a bus object. You can use this capability to check the values of thecorresponding data elements during update diagram and simulation. Withthis change, Simulink no longer checks minimum or maximum specified onblock dialogs or data objects for the whole bus.Compatibility considerations. If you specify the minimum or maximumfor bus data on block dialogs or data objects, even if these values are scalar,Simulink generates a warning and does not use the minimum or maximumfor checking the values of the corresponding data elements.Compiled Design Minimum and Maximum Values Exposedon Block Inport and OutportIn R2011b, you can view the compiled design minimum and maximum valuesat a block outport from the Model Editor. See “Design Ranges”. In addition,you can access the compiled design minimum and maximum values for ablock’s inport and outport from the command line. See “Common BlockParameters”.Command-Line Interface for Accessing Compiled Design Minimumand Maximum. Use parameters CompiledPortDesignMax andCompiledPortDesignMin to access the design minimum of port signals atcompile time. You must place the model in the compile state before queryingthis parameter. For example, to obtain the compiled design minimum at theoutport of a block, use the following set of commands:feval(gcs, [],[],[],compile);ports = get_param(gcb,PortHandles); 39

42.
Simulink® Release Notes outportMax = get_param(ports.Outport, CompiledPortDesignMax) feval(model, [],[],[],term); CompiledPortDesignMax and CompiledPortDesignMin return different values depending on the type of signal. • [] if none of the signals has compiled minimum or maximum • scalar if all signals have the same specified compiled minimum or maximum • cell array for Mux signals • when the model is set to strict bus mode: structure for bus signals • when the model is not set to strict bus mode: [] for virtual bus signals Back-Propagated Minimum and Maximum of Portion of Wide Signal Are Now Ignored In previous releases, Simulink back-propagated the design minimum and maximum of a portion of a wide signal to the source port of that portion. The back-propagated design minimum and maximum were used in range checking. In R2011b, Simulink generates a warning and ignores the back-propagated design minimum and maximum of a portion of a wide signal during range checking. If you want to use the back-propagated design minimum and maximum for range checking of a portion of a wide signal, insert a Signal Conversion block with its Output parameter set to Signal copy in front of that portion. Easier Importing of Signal Logging Data You can load logged signal data into a model more easily in R2011b. You can load elements of a Simulink.SimulationData.Signal object. When you set the Configuration Parameters > Data Import/Export > Signal logging format parameter to Dataset, the signal logging output includes Simulink.SimulationData.Signal objects. You can then use the Simulink.SimulationData.Dataset.getElement method to specify signal elements for the Configuration Parameters > Data Import/Export > Input parameter.40

43.
Version 7.8 (R2011b) Simulink® Software For an example of loading logged signal data into a model, open the sldemo_mdlref_bus demo. For more information, see “Importing Signal Logging Data”. Partial Specification of External Input Data You can load external data for a subset of root-level Inport ports, without having to create data structures for the ports for which you want to use ground values. Using the Configuration Parameters > Data Import/Export > Input parameter, in the comma-separated list, enter an empty matrix to specify ground values for a port. Using an empty matrix for ports for which you want to use ground values simplifies the specification of external data to input. Also, you can use an empty matrix for an array of buses signal, which you cannot load into a root-level Inport block. Command-Line Interface for Signal Logging You can now use the MATLAB command line to perform the same signal logging tasks that you can perform with the Signal Logging Selector tool. To configure signal logging from the command line, use methods for the following classes:Simulink.SimulationData Class Signal Logging Configuration ComponentModelLoggingInfo Signals to log for a given simulation. Use to override the logging settings stored within a given model or referenced model.SignalLoggingInfo Logging settings for a single signal within a model.LoggingInfo Collection of signal logging properties. Use to change logging settings, such as decimation, for a signal. For more information, see “Command-Line Interface for Overriding Signal Logging Settings”. 41

44.
Simulink® Release Notes Access to the Data Import/Export Pane from the Signal Logging Selector The Signal Logging Selector toolbar includes a button ( ) to open the Configuration Parameters > Data Import/Export pane. Use the Data Import/Export pane to configure the export of output signal and state data to the MATLAB® workspace during simulation. Inexact Property Names for User-Defined Data Objects Will Not Be Supported in a Future Release In previous releases, you could access a property of a user-defined data object using an inexact property name. For example, after creating a Simulink.Parameter data object a = Simulink.Parameter; you could set the property Value of the data object by using the following command. a.v = 5; In R2011b, Simulink generates a warning if you access a property of a user-defined data object using an inexact property name. While Simulink accesses the property using the inexact match, support for this type of matching will be removed in a future release. Based on the example above, set the Value of the data object using the following command instead. a.Value = 5; Alias Types No Longer Supported with the slDataTypeAndScale Function Simulink no longer supports calls to slDataTypeAndScale when: • The first argument is a Simulink.AliasType object • The first argument is a Simulink.NumericType object with property IsAlias set to true42

45.
Version 7.8 (R2011b) Simulink® SoftwareCompatibility Considerations. If your model calls the internal functionslDataTypeAndScale, you might encounter a compilation error for thismodel even though it previously compiled successfully. In this case, followthe advice of the error message to update your model to remove the call toslDataTypeAndScale.Simulink.StructType Objects Will Not Be Supported in a FutureReleaseIn a future release, support for Simulink.StructType objects will be removed.Use structured parameters or arrays of buses instead.Old Block-specific Data Type Parameters No Longer SupportedIn R2011b, Simulink generates a warning if you try to access any ofthese old block-specific data type parameters: DataType, DataTypeMode,DataTypeScalingMode, and Scaling. In a future release, support for thesedata type parameters will be removed. Use DataTypeStr instead.Simulink.Signal and Simulink.Parameter Will Not Accept InputArgumentsSimulink generates an error if you pass an input argument to the classesSimulink.Signal and Simulink.Parameter.Compatibility Considerations. Simulink.Signal andSimulink.Parameter classes accepted input arguments inprevious versions. However, the arguments were ignored for both classes.Data Import/Export Pane ChangesThe following parameters of the Configuration Parameters >Import/Export pane have changed to improve their usability. 43

46.
Simulink® Release Notes Pre-R2011b Parameter Name Changed R2011b Parameter Name Signal Logging Selector Configure Signals to Log Return as single object Save simulation output as single object Inspect signal logs when Record and inspect simulation simulation is paused/stopped output Simulation Data Inspector Tool Replaces Time Series Tool The Simulation Data Inspector is now the default browser for logged simulation results. Use the Simulation Data Inspector for viewing all Simulink logged data results, including as a replacement for the Time Series tool. Compatibility Consideration. In R2011b, the Time Series tool (tstool) no longer supports Simulink data results. Simulink File Management Project Management Organise large modelling projects with new Simulink Projects. Find all your required files, manage and share files, settings, and user-defined tasks, and interact with source control. Projects can promote more efficient team work and local productivity by helping you: • Find all the files that belong with your project • Share projects using integration with external source control tool Subversion • View and label modified files for peer review workflows • Create standard ways to initialize and shutdown a project • Create, store and easily access common operations44