R2026a

New Features, Bug Fixes, Compatibility Considerations

  Improved Workflow for Physical Assembly: Use new functions to define interfaces and create physical couplings

You can now use the new functions addInterface and assemble to create physical assembly of components. These functions replace the interface function and can handle more general situations when working in non-nodal (general) coordinates and allow you to create physical assemblies for ss and sparss models. The notion of coupling for mechss models remains the same as with interface, as you can still define the coupling interface using the index of interface nodes using the addInterface function.

For examples, see Assemble Parts of System Using Coupling Interfaces, and the addInterface and assemble function reference pages.

 Compatibility Considerations

As a result of this change, interface is not recommended.

Model Reducer App: Support for Frequency Response Fitting and Zero-Pole Truncation methods

You can now obtain reduced-order models using the Frequency Response Fitting and Zero-Pole Truncation methods in the Model Reducer app.

  • Frequency Response Fitting — Fit low-order models to obtain low-order approximations of sparse LTI models in the frequency band of interest. The frequency response fitting method is applicable to all types of sparse models with fewer limitations than Balanced Truncation or POD. In particular, it is effective at reducing models with unstable or undamped poles. Frequency response fitting is also applicable to non-sparse models but is usually less effective than Balanced Truncation for such models. Additionally, this method uses the AAA interpolation algorithm rather than a least-squared fitting algorithm. Accordingly, you must not use this method to fit models to noisy data as the algorithm will tend to interpolate noise and produce poor results.

  • Zero-Pole Truncation — Obtain low-order zero-pole-gain approximations of sparse state-space models. This method computes a subset of the zeros and poles of sparse models, typically in a specific low-frequency band [0 fmax]. It can yield better low-frequency approximations than modal truncation at the expense of more computation. This method also provides direct control over the roll-off slope past the frequency fmax. Because this method calculates zeros for each input-output pair, it is most suitable for models with small input-output sizes. Additionally, this method is applicable only to models with a valid sparss representation.

Reduce Model Order Live Task: Support for multiple frequency and time intervals of focus for balanced truncation

You can now specify multiple time and frequency intervals to limit the analysis of state contributions to those intervals when using the Balanced Truncation method. Previously, Reduce Model Order Live Editor task supported only a single frequency interval and no time intervals.

modalsep and modalreal: Support for sparse models

You can now use modalsep and modalreal to compute a truncated modal form of sparse state-space models. This is helpful when you want to quickly obtain a truncated modal form of sparse models. For more flexibility, it is recommended you use reducespec to first obtain a reduced-order model, then apply modalsep and modalreal to the reduced model.

 lyapchol and dlyapchol: Support for LR-ADI algorithm for solving equations with sparse matrices

lyapchol and dlyapchol now use the low-rank alternating directions implicit (LR-ADI) algorithm to compute a low-rank Cholesky factorization when both A and E are sparse matrices.

 Compatibility Considerations

Previously, the function converted A and E to full matrices before computing the factorization.

lyap and dlyap: New option to disable automatic scaling

lyap and dlyap now support disabling automatic scaling of matrices. Use the new Scaling input argument to enable or disable scaling.

lyap(__,Scaling="off")
dlyap(__,Scaling="off")

augdelay: Append internal delay signals to outputs of state-space model

Use the augdelay function to append the internal delay signals as extra outputs of the model. This is helpful when you want to monitor the contribution of these internal signals.

  Linear Analysis Plots: Specify response properties using name-value arguments

When creating linear analysis plots, you can now specify response properties using name-value arguments. Any properties that you specify using name-value arguments override other arguments that set the same property. For example, the following command sets the plot color to red.

stepplot(sys,Color=[1 0 0])
 Compatibility Considerations

As a result of this change, response properties that were once subproperties of Responses.SourceData are now subproperties of Responses. For more information, see Chart object subproperties of Responses.SourceData property are now subproperties of Responses property.

Linear Analysis Plots: Control automatic styling of responses

For linear analysis plots, you can now control the automatic color, line style, and marker style of responses in the plot.

This table shows the color, line style, and marker style properties for response chart objects, such as stepplot and bodeplot.

New Chart Object PropertyDescription
ColorOrder

Color order for multiple response plots

(not supported for HSV plots)

LineStyleOrder

Line style order for multiple response plots

(not supported for pzplot, iopzplot, or HSV plots)

MarkerStyleOrder

Marker style order for multiple response plots

(not supported for pzplot, iopzplot, or HSV plots)

ColorOrderMode

Indicates whether the property value of ColorOrder, LineStyleOrder, or MarkerStyleOrder is user-specified ("manual") or automatically specified by the software ("auto").

LineStyleOrderMode
MarkerStyleOrderMode
NextSeriesIndexSeries index for the next response that you add to the chart. Once the software assigns this series index to a response, it increments NextSeriesIndex by one.

The Responses property of each chart object contains one response object for each response in a chart. This table shows the new style properties for response objects.

New Response Object PropertyDescription
ColorMode

Indicates whether the property value of Color, LineStyle, or MarkerStyle is user-specified ("manual") or automatically specified by the software ("auto").

LineStyleMode
MarkerStyleMode
SeriesIndex

Series index, which determines the color, line style, and marker style to select from the corresponding order property of the chart object.

When you add a response to a chart, the software sets its series index to the value of the NextSeriesIndex property of the chart object.

SeriesIndexMode

Indicates whether the property value of SeriesIndex is user-specified ("manual") or automatically specified by the software ("auto").

Linear Analysis Plots: Time and frequency unit mode properties

Linear analysis chart objects now have TimeUnitMode and FrequencyUnitMode properties that indicate the specification modes of the TimeUnit and FrequencyUnit properties.

If you do not specify a time or frequency unit, the corresponding TimeUnitMode or FrequencyUnitMode property value is "auto". In this case, the plot uses the unit of the first response being plotted.

If you specify a time or frequency unit, the corresponding TimeUnitMode or FrequencyUnitMode property value is "manual".

 Linear Analysis Plots: Configure legends using Legend property

For all linear analysis plots, configure legends using the Legend property of the chart object. Also, you can now configure legend properties using name-value arguments with the legend function.

You can now configure the following legend properties:

  • Axes

  • Location

  • AxesMode

  • Orientation

  • Visible

  • Interpreter

  • FontSize

  • FontWeight

  • FontAngle

  • FontName

 Compatibility Considerations

The following object properties are now subproperties of the Legend property and their names have changed. The previous property names still work, but using them is not recommended.

Previous PropertyNew Property
LegendAxesLegend.Axes
LegendAxesModeLegend.AxesMode
LegendVisibleLegend.Visible
LegendLocationLegend.Location
LegendOrientationLegend.Orientation

Linear Analysis Plots: Customize plot settings using Property Inspector

For all linear analysis plots, you can now configure the plot settings using the Property Inspector.

Control System Toolbox settings moved to MATLAB Settings dialog box

Control System Toolbox™ settings have been moved to the MATLAB® Settings dialog box.

The ctrlpref function now opens the Control System Toolbox section of the MATLAB Settings dialog box.

 Linear Analysis Plots with Custom Grids: Specify grid styling with new and updated properties

For linear analysis plots with custom grids, you can now specify grid styling using the following new or updated chart object properties.

Chart ObjectsPropertyDescription of Change
AxesStyle.GridType
  • Includes the new "cartesian" grid type.

  • No longer includes the "default" grid type.

AxesStyle.GridTypeMode

New property that indicates whether the AxesStyle.GridType property is user-specified ("manual") or automatically specified by the software ("auto").

AxesStyle.GridType

New property for setting the grid type of Nichols and Nyquist plots to one of these values:

  • "n-grid" — Use a grid with contours for constant gain and phase values.

  • "cartesian" — Use a Cartesian grid.

AxesStyle.GridTypeMode

New property that indicates whether the AxesStyle.GridType property is user-specified ("manual") or automatically specified by the software ("auto").

AxesStyle.GridMagnitudeSpecNew property for specifying gain values of grid contours when AxesStyle.GridType is "n-grid"
AxesStyle.GridPhaseSpecNew property for specifying phase values of grid contours when AxesStyle.GridType is "n-grid"

Impulse Response: Support for sparse index-2 DAEs

You can now use impulse and impulseplot to compute the impulse response of sparse index-2 DAEs.

As a result of this change, proper orthogonal decomposition (ProperOrthogonalDecomposition) now supports impulse-based excitation of sparse index-2 DAEs.

stepinfo: Support for arrays of LTI systems

Using the stepinfo function, you can now compute step-response characteristics for an array of LTI systems.

ProperOrthogonalDecompositionOptions: Support for parallel execution with UseParallel option

You can now use the UseParallel option when you want to use a parallel pool for parallel execution when using getrom (pod).

This table shows how to specify the setting depending on your goal.

GoalSetting
Write code that runs on the MATLAB client and uses built-in multithreading to make best use of the local resources.R.Options.UseParallel="off" (default)
Write portable code that runs on a parallel pool and, if a pool is not available, runs on the MATLAB client.R.Options.UseParallel="auto"
Write code that runs on a parallel pool and errors if a pool is not available.R.Options.UseParallel="on"

 Enhanced control over parallel execution

You now have more control over when to use a parallel pool to run the functions that support parallel execution.

The UseParallel argument of these functions (or their corresponding option set) now accepts new "off", "auto" or "on" values. Specify UseParallel as "auto" to automatically use a parallel pool if one is available or as "on" to always use a parallel pool.

 Compatibility Considerations

Starting in R2026a, specifying the UseParallel as true or false is not recommended. For more information, see Logical values for UseParallel argument not recommended.

Models with Internal Delays: Simulation now based on approximate c2d discretization

Simulating state-space models with internal delays is now based on approximate c2d discretization.

In general, when you simulate models with internal delays:

  • Accuracy increases as the time step size decreases. The accuracy may deteriorate for large time step sizes.

  • Simulations with zero-order hold (ZOH) and first-order hold (FOH) approximate internal signals w(t) by piecewise-constant or piecewise-linear signals.

  • To gauge whether the selected time step size is small enough, you can compare sys and c2d(sys,t(2)-t(1),method) in frequency domain.

For an example, see Validate Simulation Results for Models with Internal Delays.

c2d: Returns matching initial condition for models with internal delays

The output argument G of c2d now has extra columns corresponding to w[0] initial conditions for models with internal delays.

Additionally, the mapping of the discrete states is given by:

xd[k]=G[xc(kTs)u((k−Nu)Ts)w(kTs)].

The matrix G is useful to map continuous-time initial conditions to equivalent discrete-time initial conditions. Note that this expression depends on the input u delayed by the discrete input delays Nu.

Sparse Balanced Truncation: Support for automatic scaling

Use the new Scaling option of SparseBalancedTruncationOptions to enable or disable automatic scaling. Scaling can improve conditioning and accuracy of LR-ADI iterations by compressing the numerical range. This option uses equilibrate for scaling the sparse matrices.

 Functionality being removed or changed

Specifying axes object as parent of linear analysis plot not recommended

Still runs

Specifying an Axes object or a UIAxes object as the parent container of a linear analysis plot is not recommended. Instead, specify the parent container as one of these objects:

  • Figure

  • TiledChartLayout

  • UIFigure

  • UIGridLayout

  • UIPanel

  • UITab

Chart object subproperties of Responses.SourceData property are now subproperties of Responses property

Behavior change

For all linear analysis plot chart objects, subproperties under the Responses.SourceData property are now direct subproperties of the Responses property. The Responses.SourceData property has been removed.

Peak response characteristic properties of frequency-domain plots renamed

Behavior change

For frequency-domain linear analysis plots, the peak response characteristic property names have changed. The behavior of the properties remains the same.

Chart ObjectOld Property NameNew Property Name
BodePlotCharacteristics.FrequencyPeakResponseCharacteristics.PeakResponse
NyquistPlot
NicholsPlot
SigmaPlotCharacteristics.SigmaPeakResponse

Specify multiline titles and labels in linear analysis plots using string arrays

Behavior change

When creating linear analysis plots, you can now specify multiline titles and axis labels using string arrays or cell arrays of character vectors.

stepplot(sys)
title(["first line";"second line"]);

Before R2026a, specify multiline titles and labels using a newline character.

stepplot(sys)
title("first line" + newline + "second line");

interface not recommended

Still runs

The interface function is not recommended. To perform assembly of components, use the new commands addInterface and assemble. These new functions handle more general situations when working with non-nodal (general) coordinates. The notion of physical coupling remains the same as for interface.

lyapchol and dlyapchol no longer converts sparse inputs to full

Behavior change

lyapchol and dlyapchol now support sparse inputs A and E, and use LR-ADI algorithm to compute a low-rank factorization. Previously, the function converted A and E to full matrices before computing the factorization. To get the old behavior, you can call lyapchol and dlyapchol with full(A) instead of A as input.

Linear Simulation Tool no longer supports importing input signals from files

Behavior change

The Linear Simulation Tool no longer supports importing signal values from the following files.

  • Import from a MAT file

  • Microsoft® Excel® spreadsheet.

  • Comma-separated variable file

  • Text file

Starting in R2026a, to import data from files, first import the data to the MATLAB workspace. You can then import the data into Linear Simulation Tool.

For more information on importing data from files, see Supported File Formats for Import and Export.

Logical values for UseParallel argument not recommended

Still runs

Starting in R2026a, for the following functions, specifying the UseParallel argument as true or false is not recommended. Use "off", "auto", or "on" values instead.

This table shows how to update your code depending on your goal.

GoalNot recommendedRecommended
Write code that runs on the MATLAB client and uses built-in multithreading to make best use of the local resources.UseParallel=falseUseParallel="off" (default)
Write portable code that runs on a parallel pool and, if a pool is not available, runs on the MATLAB client.UseParallel=trueUseParallel="auto"
Write code that runs on a parallel pool and errors if a pool is not available.N/AUseParallel="on"

Unified input and output behavior for Control System Toolbox blocks in Simulink

Behavior change

Control System Toolbox blocks in Simulink® now have consistent input and output port behavior and validation. In particular:

  • Output ports that can generate scalar or vector signals now output 1-D array signals. Previously, blocks output a mixture 1-D arrays, 2-D arrays, and inherited signals.

  • Data input ports to the same block must now must now have the same data type. Therefore, you must explicitly resolve data type differences outside of the block. Previously, you could use different data types, relying on Simulink to resolve data type differences.

  • Discrete-time blocks support only double or single input data ports. Previously, you could connect these ports to integer or fixed-point signals. Continuous-time blocks continue to support only double input data ports.

In most cases, you will not notice any behavior differences in your models. If a block in your model does encounter an issue due to this change, follow the corrective action suggested by the corresponding error message.