In Simulink 6.0, connecting a fixed-point signal with a nonzero scaling bias to the input of a Bias block causes a simulation error and generation of incorrect code from the model. This release fixes the problem.
Simulink 6.0 can fail to check that buses satisfy constraints specified by bus objects. This can happen for buses that pass through bus-capable blocks. Simulink 6.1 correctly performs bus consistency checks in these cases.
In Simulink 6.0 (R14FCS), models that contain referenced models to which buses are connected must meet the following requirements.
- Root level Inport and Outport blocks of the referenced model that accept or output buses must specify bus objects defining the buses.
- A Bus Creator block that creates a bus that is connected to an input of a Model Reference block must specify the same bus object as the corresponding root level Inport block in the referenced model.
- A Bus Creator block inside the referenced model that generates a bus connected to a root level Outport block of the referenced model must specify the same bus object as the Outport block.
In this release, only the root level Inport and Outport blocks of the reference model must specify bus objects. Bus Creator blocks that generate virtual buses connected to Model block input ports or that generate buses connected to root level Outport blocks in referenced models do not need to specify bus objects.
Simulink 6.0 can generate code for a referenced model simulation target
that contains undefined identifiers (starting with
mdlref_MODEL_NAME_global) and hence cannot be compiled.
This can occur if the referenced model contains S-functions that use
global variables. This release fixes the problem.
In previous releases, Simulink could not correctly linearize blocks with
complex-valued states or states whose data type was other than
double. This release fixes this problem.
Simulink 6.0 might not be able to resolve a reference in a masked subsystem to a bus object in the base workspace. This release fixes the problem.
Simulink 6.0 (Release 14) did not allow simulation of model references that use both global tunable parameters and model arguments. This release fixes the problem.
In Simulink 6.0, using a Bus Assignment block in a triggered subsystem could incorrectly cause an invalid sample time error during model compilation. This release fixes the problem.
Simulink 6.0 may not save changes to a model that result from refreshing Model blocks to reflect changes in the properties of the models that the Model blocks reference, such as model version number, signal names, port names, and bus names. This can happen if you do not make any other changes to the top model before closing it. This release fixes the problem.
In previous releases, changing the number of an input or output port number in a subsystem can cause an extra port to be added to the subsystem block in the parent system. Simulink 6.1 (R14SP1) fixes this problem.
In Simulink 6.0, changing the initial condition of a Rate Transition block while a simulation is running can crash MATLAB. This occurs if the transition is from a faster to a slower rate, a case where initial conditions do not apply. Simulink 6.1 fixes this problem.
In previous releases, changing the Latch (buffer) input of an Inport block in a subsystem can lead to incorrect results or memory access errors during simulation. This can happen in particular if you enable the Latch (buffer) input option on a subsystem Inport block, update the model's diagram, then disable the option and update the diagram again. In this case, Simulink fails to assign a constant sample time to blocks in the subsystem that should have constant sample time, potentially leading to incorrect simulation results. A similar problem exists with the Output as nonvirtual bus option on the Bus Creator block. If you enable this option, update the model diagram, then disable the option and reupdate the diagram, Simulink fails to assign a constant sample time to blocks that should inherit a constant sample time via their connections to the bus, e.g., via a Signal Selector block. This release fixes these problems.
After model compilation, Simulink 6.0 incorrectly displays the attributes, e.g., data type, dimensionality, of Inport blocks that are duplicates of other Inport blocks. The duplicate blocks should display the same attributes as the blocks of which they are duplicates. This release fixes this problem.
In Simulink 6.0, creating a subsystem from a block selection can cause a segmentation violation if the selection includes duplicate Inport blocks and the Inport block names exceed 32 characters in length. This release fixes the problem.
In Simulink 6.0, it is possible for Simulink to propagate the base type specified by a Simulink.AliasType object to a port that should inherit the alias type specified by the object. This does not affect the results of simulating the model or executing code generated from the model. However, it is potentially confusing to someone expecting to see the alias type on the block diagram or in the generated code. This release fixes the problem.
The Simulink 6.0 version of the Model Explorer may not display the slope and bias settings of a Simulink.NumericType object to their full precision. This can lead to truncation of the values if you edit them. The Simulink 6.1 version of the Model Explorer avoids this problem by displaying slope and bias settings to their full precision.
In Simulink 6.0, enabling signal logging for signals in a block library has no effect. In particular, it does not cause Simulink to log instances of those signals included in a model. This release fixes this problem, i.e., it does log instances of logging-enabled signals included from a block library.
Simulink 6.0 (R14FCS) may not be able to load a model containing a line that has more than 128 branch levels. Attempting to load such a model can cause MATLAB to crash. This release increases the line branch level limit to 1024 branches. Attempting to load or save a model with excessive branches causes Simulink to display an error message.
This release adds a diagnostic that issues a warning if one or more of the
outputs of a function-call subsystem is connected directly or indirectly
to its inputs, such that its inputs depends on its outputs and hence must
be computed in the same execution context. Such loops can, in some cases,
cause simulation results to be unexpectedly and incorrectly sensitive to
the sorted order of blocks in the function-call subsystem's execution
context. See sl_subsys_semantics for examples of such cases.
This diagnostic is off by default. You can enable the diagnostic globally
by selecting Warn if function-call inputs arise inside called
context on the Configuration Parameters dialog box or for a
specific subsystem by selecting the same option on the subsystem's
parameter dialog box. See the online Simulink documentation for more
information.
In previous releases, using Ground blocks to terminate a block input that expects a vector or matrix signal could produce incorrect simulation results. This release fixes this problem.
Simulink 6.0 may fail to detect or report the wrong error message when it detects that a function-call subsystem has multiple triggers and some of the triggers are periodic. (Simulink allows a function-call subsystem to have multiple triggers only if all of the triggers are generated by asynchronous S-functions.) This release correctly reports an error if all triggers are not asynchronous.
In previous releases, Simulink can incorrectly linearize models that limit the output of Integrator and Discrete-Time Integrator blocks when the operating point is outside the limits. This release fixes the problem by including analytical Jacobeans for the blocks.
Using Simulink 6.0 to simulate a model containing a triggered subsystem that contains an internally unconnected Inport block can cause a segmentation violation. This can occur if the external signal connected to the input has a sample time that differs from the triggered subsystem's sample time and the model's Automatically handle rate transition option is selected. This release fixes this problem.
Simulink 6.0 can fail to propagate dimensions from the Interpolation n-D Using Prelookup block in some cases where the block is configured for 1-D interpolation. This can cause dimension propagation errors reported by other blocks. The resulting error messages are misleading because they can point to the other blocks rather than the true source of the error, which is the n-D interpolation block. This release fixes the problem.
In previous releases, a model with a large annotation could cause a segmentation error during autorouting. This has been fixed.
In Simulink 6.0, you are supposed to be able to change model workspace variables defined by a MAT file or M code only by changing the MAT file or M code itself. This is intended to prevent you from losing changes to these variables when you close the model. Accordingly, Simulink 6.0 does not allow you to change such variables at the MATLAB command line and designates them as "read-only" in the Model Explorer. Despite this, you can change the value of a "read-only" variable by editing the value displayed in the Model Explorer.
This release does not attempt to prevent you from changing the value of any workspace variable in any way. It considers all model workspace variables to be writable, regardless of their source. It allows you to edit any model workspace variable at the MATLAB command line. Also the Model Explorer no longer labels variables defined by MAT files or M code as read-only.
These changes require that you keep model workspaces in sync with their MAT files and M code sources and vice versa. In other words, if you change a variable at the command line or in the model workspace, you must edit the corresponding data source to make the change permanent. Similarly, if you change a data source while a model is open, you must reload the data source to make the change effective in the current session. This release adds a button to the Model Explorer for loading data sources. See the online Simulink documentation for more information.
In Simulink 6.0, with inline parameters enabled, referencing a model that connects a Width block to a root-level Inport block can cause Simulink to report an error stating incorrectly that the sample times of the Inport block and the Width block do not match. Simulink 6.1 fixes this problem.
In Simulink 6.0, the model reference signal logging dialog box shows all signals in the model reference hierarchy except those that are instances of signals defined in block libraries. This release shows the library instances as well, allowing you to enable or disable logging for any signal in the model reference hierarchy.
This release adds a diagnostic that detects modeling scenarios in which one task updates a Data Store Memory block that is being read by another task. Such a situation is safe only if one of the tasks cannot interrupt the other, e.g., the updating task uses an atomic copy operation to update a scalar store or the target does not allow the tasks to preempt each other. You should therefore disable this diagnostic, i.e., set it to none, only if the application warrants it, e.g. the application uses a cyclic scheduler that prevents tasks from preempting each other. For more information, see "Multitask data store" in the "Sample Time Diagnostics" section of the online Simulink documentation. This release also introduces the use of sample time colors to indicate that different tasks are updating and reading from a Data Store Memory block. In this case, Simulink colors the Data Store Memory block yellow when sample time colors is enabled. Otherwise, Simulink colors the block the sample time color of the task that updates and reads the block, assuming the task is periodic.
Simulink 6.0 does not allow a model to connect a bus created by a chain of Bus Creator blocks to a Model block if a Mux block precedes the chain of Bus Creator blocks. If the model violates this rule, Simulink 6.0 reports an error. This release removes this limitation.
In Simulink 6.0, a model that contains a For Interator Subsystem that references a model that itself contains a For Iterator Subystem can give incorrect results at the start of simulation. This can happen if the nested For Iterator Subsystem resets states at the start of an iteration. Simulink 6.1 fixes this problem.
In Simulink 6.0, the output port of a Rate Transition block connected to a block having a continuous sample time inherits that sample time. This is an error because the Rate Transition block is a discrete block and hence does not support continuous solutions of its output that entail taking minor time steps. In this release, the Rate Transition block inherits the model's fundamental discrete sample time if the model uses a fixed-step solver and a fixed-in-minor-time-step sample time if the solver is a variable-step solver.
Simulink 6.0 can incorrectly report an error if you attempt to update or
simulate a model that references another model that contains a rootlevel
Outport block whose sample time is constant (inf). This can
occur if, in the referenced model, the block connected to the Outport
block has a nonconstant (e.g., triggered) sample time. Simulink 6.1 does
not report an error in this case.
Simulink 6.0 can generate a simulation target for a referenced model that contains undefined identifiers of the formrty_*(where*is an integer) and hence fails to compile. This can occur if the referenced model contains a nonreusable subsystem that calls a reusable function-call subsystem. This release fixes the problem.
Simulink 6.0 can incorrectly report that the sample time of a signal connected to a Bus Creator block does not match the sample time specified by the Bus Creator block's bus object. This can happen if the bus object specifies a sample time other than inherited (-1) and the source of the signal is a block that resides in a triggered subsystem. Simulink 6.1 does not report an error in this case.
In Simulink 6.0, saving a model containing an open subsystem whose
PaperPositionMode parameter is set to manual can crash
MATLAB. This release fixes the problem.
In Simulink 6.0, the disableimplicitsignalresolution script
aborts if it encounters a signal label containing a single quotation mark
('). This release fixes the problem.
In Simulink 6.0, simulating a model that specifies a bus object for an Inport block that has a duplicate results in a segmentation violation. This release fixes the problem.
In Simulink 6.0 (R14FCS), the Case conditions parameter of the Switch Case block accepts integer values of typedoubleonly. In this release, the parameter accepts any integer data type as well as typedouble.
In Simulink 6.0 (Release 14) and previous releases, the Variable Transport Delay block can give incorrect results for models having the following characteristics:
- small initial buffer
- small maximum delay
- large initial step size that subsequently becomes very much smaller than the maximum delay, causing the buffer size to increase
This bug has been fixed.
In previous releases, zooming the Y-axis on the Scope block's display can clip the most significant digits of the Y-axis tick labels. This occurrs when the labels contained more than 6 digits. This release fixes the problem.