Simulink Major Bug Fixes

This document describes major bug fixes in this release. Click on a problem area listed below to read how it has been fixed.

A SegV happens when changing mask parameters on an open mask dialog.
Applying configuration parameter changes can cause an error
Cannot connect muxed output of a Bus Selector to a Model block
Constraint on how to specify output points is removed
Data type alias can incorrectly cause a switch block error
Discrete Integrator exhibits undesirable level reset behavior
Flaw in sample-time consistency check for model reference root ports
Help->Blocksets submenu sometimes fails to appear
Incompatible simulation targets for model references not removed
LifeSpan parameter specification causes model reference error
Logged signals may be sampled at too fast a rate
Misleading bus sample time mismatch error
Model reference blocks do not propagate fixed-point alias outputs
Model reference simulation target may fail to compile
Models containing nonvirtual subsystems incorrectly linearized in some cases
Nonempty D matrix setting for a state space block can cause a segv
Noninlined S-functions accessing elaped time cause crashes
Parts of a block's name remain after it is dragged
Setting hardware device type parameter causes dialog box error
Signal object consistency check can fail for signals inside triggered subsystems
Simulating a parent model can cause a segmentation violation
Simulink crashes when inserting rate transition block
Simulink fails to recognize changes made to M-files
Some built-in blocks do not honor whether a mask is enabled or not
Specifying many Bus Creator block inputs can fail
ssIsSpecialSampleHit can return the wrong value
The set_param command does not accept multiple parameters for configuration set objects
Transport Delay block gives incorrect results for zero delay
Unable to override zero crossing settings on blocks
Updating a diagram can cause a segmentation violation
Using symbolic expressions to specify model parameters can cause errors
Variable step solver quietly takes steps smaller than the minimum step size
Warning message incorrectly displayed by slupdate

A SegV happens when changing mask parameters on an open mask dialog.

Changing mask parameters on an open mask dialog is not allowed. Previous versions of Simulink would close an open mask dialog if a callback was changing mask parameters. Simulink 6.0-6.1 did not close the mask dialog but the behavior has been restored in 6.2.

Applying configuration parameter changes can cause an error

In R14SP1, if you move the Configuration Parameters dialog to the bottom right portion of your screen and the dialog is small enough, Simulink might display the following error when you try to apply dialog changes.

Error ocurred when evaluating preapply callback

This release fixes the problem.

Cannot connect muxed output of a Bus Selector to a Model block

In previous releases, Simulink incorrectly displays an error if you attempt to connect the muxed output of a Bus Selector block to the input of a Model block. This release fixes the problem.

Constraint on how to specify output points is removed

In previous releases, the sim command requires you to specify output points as integers times a fundamental step size, e.g., to specify [1:100]*0.01] rather than [1:0.01:100]. This release removes this constraint.

Data type alias can incorrectly cause a switch block error

In previous releases, if you connect signals having the same base data type but different aliases to the inputs of a switch block that requires all inputs to be of the same data type, Simulink can incorrectly report an error, depending on the order in which you connect the signals to the switch block. This release fixes the problem.

Discrete Integrator exhibits undesirable level reset behavior

In the Release 13 and Release 13SP1 versions of Simulink, the Discrete Integrator block updates its states differently when a reset occurs, depending on the type of reset. If a reset occurs, the block's output method sets the block's state and output to the block's initial condition value. Then, if the reset is a trigger reset, the block's update method updates the block's state. If the reset is a level reset, the update method does not update the state. The reset behavior for the Discrete Integrator and Accumulator blocks in the Fixed Point blockset is the same as the trigger reset behavior described above.

In the Release 14FCS and Release 14SP1 versions of Simulink, the behavior for level reset is the same as that for trigger reset. In particular the Discrete Integrator block's update method does not check for a reset condition when updating states. It update states even when a level reset occurs. This change turns out to be undesirable.

Therefore, in this release, the Discrete Integrator's level reset behavior reverts to its behavior in Release 13SP1. In particular, the block's update method checks for a level reset first before updating states. If a level reset occurs, the method does not update the block's state, i.e., the state remains at the initial condition value.

Flaw in sample-time consistency check for model reference root ports

In the previous release, the check for sample-time consistency between the root ports of a referenced model and downstream/upstream blocks passes a unit delay or zero order hold block even if the block's sample time does not match the root port's and the block is not being used as a rate transition block. This release correctly produces an error message in such cases.

Help->Blocksets submenu sometimes fails to appear

The Blocksets submenu sometimes fails to appear when selected from the model window's Help menu. If this happens, click anywhere in the model window and then select "Blocksets" from the Help menu. This problem has been fixed.

Incompatible simulation targets for model references not removed

In this release and in previous releases, if Simulink detects a model reference simulation target project (slproj) created by a previous release that is incompatible with the current release, it displays a dialog box that asks whether to remove the old project. In the previous release, if you elect to remove the old project, Simulink removes the old project directory but does not remove the simulation targets built with the old project. In this release, Simulink deletes the old project directory and removes any model reference simulation targets in the current directory.

LifeSpan parameter specification causes model reference error

In previous releases, if a top model references a model whose LifeSpan parameter is either an expression or a workspace variable, the simulation target for the model reference may fail to compile or may not match the top model's LifeSpan parameter. This release fixes the problem.

Logged signals may be sampled at too fast a rate

In previous releases, Simulink logs signals nested below the top level in a model reference hierarchy at the fastest rate of the top-level referenced model, regardless of the actual sample times of the logged signals. This release fixes the problem, i.e., Simulink logs all signals at their actual sample times.

Misleading bus sample time mismatch error

In previous releases, Simulink reports a bus sample time mismatch error message if a bus passes through a block that changes the bus's sample time, e.g., a Rate Transition or Unit Delay block, and the bus's associated bus object does not, as required, specify the bus's sample time as inherited. This release reports an error message that correctly identifies the cause of the problem.

Model reference blocks do not propagate fixed-point alias outputs

In previous releases, if a model outputs an alias for a fixed-point type, the model reference block propagates the base fixed point type to the parent model, instead of the alias. This release fixes the problem.

Model reference simulation target may fail to compile

If a submodel has a triggered subsystem with a constant sample time and the submodel also has a continuous sample time, the model reference code may fail to compile. This release fixes the problem.

Models containing nonvirtual subsystems incorrectly linearized in some cases

In previous releases, Simulink incorrectly linearizes a model that meets the following conditions:

This release correctly linearizes such models.

Nonempty D matrix setting for a state space block can cause a segv

In previous releases, if a model contains a state space block that has an empty B matrix and a nonempty D matrix, simulating or generating code from the model can cause a memory segmentation violation error. For example, the following state space quadruple can expose this issue: {A,B,C,D} = {- 1,ones(1,0),1,1}. This release fixes the problem.

Noninlined S-functions accessing elaped time cause crashes

In previous releases, code generated from a model containing a noninlined S-function (i.e., an S-function that lacks an associated TLC file) or an S- function that does not specify the SS_OPTION_USE_TLC_WITH_ACCELERATOR option causes a segmentation violation (segV) when the S-function accesses elapsed time. The segV can occur either in a standalone executable or while running the model in accelerated simulation mode, using the Simulink Accelerator. This release fixes the problem.

Parts of a block's name remain after it is dragged

In previous releases, the model editor occasionally left parts of a block's name on the diagram after you dragged the block. This release fixes the problem.

Setting hardware device type parameter causes dialog box error

In previous releases, using set_param to set the ProdHWDeviceType or TargetHWDeviceType parameters could cause an error to occur when opening the Configuration Parameters dialog box. This could occur if the parameter was set to an unknown hardware type. This release avoids the problem by checking the value set by set_param and issuing an error message if the specified hardware type is unknown. Use getHardwareConfigs('Production') to get a list of supported production hardware devices. Use getHardwareConfigs('Target') to get a list of supported target hardware devices.

Signal object consistency check can fail for signals inside triggered subsystems

In previous releases, Simulink always reports a sample time mismatch error for a signal that resides in a triggered subsystem and references a Simulink.Signal object that specifies a noninherited sample time for the signal. This release correctly does not report an error if the specified signal sample time matches the sample time of the task in which the triggered subsystem runs.

Simulating a parent model can cause a segmentation violation

In previous releases, simulating a model that references another model can cause a segmentation violation if you previously deleted a ToFile block from the referenced model. This release fixes the problem.

Simulink crashes when inserting rate transition block

In the previous release, Simulink can crash during simulation or code generation when trying to insert a rate transition block between rates whose greatest common divisor is a rate that occurs nowhere else in the model. In this release, Simulink reports an error in this case.

Simulink fails to recognize changes made to M-files

In previous releases, if you simulate a model, then use an editor other than the MATLAB editor to change an M-file referenced by the model, e.g., a model callback, and then initiate another simulation of the model from the Simulink GUI, Simulink can fail to reload the edited M-file from disk, causing the old version still in memory to be used in the simulation. This release fixes the problem.

Some built-in blocks do not honor whether a mask is enabled or not

Some built-in previous releases do not honor whether a mask is enabled or not. These blocks are: This issue is fixed in Simulink 6.2.

Specifying many Bus Creator block inputs can fail

In previous releases, changing the number of inputs setting on the Bus Creator block's dialog box and then pressing the Apply or OK button sometimes resets the number of inputs to its original value. This can happen if the number of inputs is changed to a large value. This release resolves the problem.

ssIsSpecialSampleHit can return the wrong value

In previous releases of Simulink, the ssIsSpecialSampleHit macro returns the wrong value when the model has both a continuous and a continuous-fixed-in-minor-step task. This release fixes the problem.

The set_param command does not accept multiple parameters for configuration set objects

In Release 14SP1, the set_param command does not support setting multiple parameters of a configuration set in a single invocation as it does on other types of objects. This release enhances set_param to allow setting multiple parameters of a configuration set in a single invocation.

Transport Delay block gives incorrect results for zero delay

In previous releases, the Transport Delay block returns incorrect results when its Time Delay parameter is set to be zero. This release fixes the problem. If the Time Delay parameter is zero, the block outputs its input (y = u) and its direct feedthrough flag is on.

Unable to override zero crossing settings on blocks

In previous versions of Simulink, selecting enable all zero crossings on a model's Configuration Parameters dialog box does not, as expected, override the zero crossing settings on the dialog boxes of the model's blocks. This release fixes the problem.

Updating a diagram can cause a segmentation violation

In previous releases, updating a diagram can cause a segmentation violation to occur in the function, tryResolveSrcTsRecForOutputPortRegion. This release fixes the problem.

Using symbolic expressions to specify model parameters can cause errors

In previous releases, using symbolic expressions to specify model paramaters causes uninitialized variable errors if any of the symbols used in the expressions are defined in the model workspace but not in the MATLAB workspace. In this release, Simulink attempts to evaluate the expressions in the model workspace before evaluating them in the base workspace. This allows you to store the associated variables as part of the model itself.

Variable step solver quietly takes steps smaller than the minimum step size

Previously, a variable step solver might take a step smaller than the minimum step size and not issue a message. This might happen if the solver is taking the step at the request of a block with variable sample time (for example, a pulse generator). In this release, the solver issues a message if the minimum step size solver diagnostic is enabled.

Warning message incorrectly displayed by slupdate

In Simulink 6.1 installations that do not include the Real-Time Workshop, running the slupdate command on a model can cause the command to display incorrectly the following warning message:

Warning: Cannot create target component.

This release fixes the problem.

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