Troubleshooting Linearization Results

Fix systems and blocks that do not linearize as expected, linearize blocks for specialized applications

If your model does not linearize as expected, you can use the Simulink® Control Design™ troubleshooting tools to diagnose and fix linearization issues. For more information, see Linearization Troubleshooting Overview. When linearizing models in the Model Linearizer or at the command line, you can find blocks in your model that are potentially problematic for linearization. For more information, see Identify and Fix Common Linearization Issues.

Some Simulink blocks can produce poor linearization results. Typically, you must specify custom linearizations for such blocks. For more information, see When to Specify Individual Block Linearization.

Functions

expand all

adviseFind blocks that are potentially problematic for linearization
findFind blocks in linearization results that match specific criteria
highlightHighlight linearization path in Simulink model
getBlockInfoObtain diagnostic information for block linearizations
getBlockPathsObtain list of blocks in LinearizationAdvisor object
linqueryAdviseQuery object for finding blocks that are potentially problematic for linearization
linqueryAllBlocksQuery object for finding all linearized blocks
linqueryContributesToLinearizationQuery object for finding blocks that contribute to the model linearization result
linqueryHasDiagnosticsQuery object for finding blocks that have diagnostic messages regarding their linearization
linqueryHasInputsQuery object for finding blocks with specified number of inputs
linqueryHasOrderQuery object for finding blocks with specified number of states
linqueryHasOutputsQuery object for finding blocks with specified number of outputs
linqueryHasSampleTimeQuery object for finding blocks with specified sample time
linqueryHasZeroIOPairQuery object for finding blocks with at least one input/output pair that linearizes to zero
linqueryIsBlockSubstitutedQuery object for finding blocks that have custom block linearizations specified
linqueryIsBlockTypeQuery object for finding blocks of the specified type
linqueryIsExactQuery object for finding blocks linearized using their defined exact linearization
linqueryIsNumericallyPerturbedQuery object for finding blocks linearized using numerical perturbation
linqueryIsOnPathQuery object for finding blocks that are on the linearization path
linqueryIsZeroQuery object for finding blocks that linearize to zero

Objects

expand all

LinearizationAdvisorDiagnostic information for troubleshooting linearization results
BlockDiagnosticDiagnostic information for individual block linearization
BlockOperatingPointOperating point at which block is linearized
CompoundQueryComplex query object for finding specific blocks in linearization results

Topics

Troubleshooting Basics

Linearization Troubleshooting Overview

If you do not get expected results when you linearize your Simulink model, you can diagnose and fix potential linearization issues using Simulink Control Design troubleshooting tools.

Identify and Fix Common Linearization Issues

Troubleshoot Simulink model linearizations using the Linearization Advisor.

Speed Up Linearization of Complex Models

Large Simulink models and blocks with complex initialization functions can cause slow linearization.

Custom Block Linearizations

When to Specify Individual Block Linearization

Some Simulink blocks, including those with sharp discontinuities, can produce poor linearization results. Typically, you must specify custom linearizations for such blocks.

Specifying Custom Linearizations for Simulink Blocks

This example shows how to specify the linearization of a Simulink block or subsystem.

Specifying Linearization for Model Components Using System Identification

You can use System Identification Toolbox™ software to identify a linear system for a model component that does not linearize well, and use the identified system to specify its linearization.

Change Perturbation Level of Blocks Perturbed During Linearization

Blocks that do not have preprogrammed analytic Jacobians linearize using numerical perturbation. You can change the perturbation level for your application, which changes the linearization results.

Models and Blocks with Special Characteristics

Configure Models with Pulse Width Modulation Signals

Subsystems that contain PWM signals do not linearize well due to discontinuities in the signal.

Models with Time Delays

You can linearize models using exact representations or Padé approximations of continuous-time delays.

Linearize Multirate Models

You can linearize a Simulink model that contains blocks with different sample times.

Linearize Event-Based Subsystems (Externally Scheduled Subsystems)

Since linearization occurs at a specific moment in time, the trigger event for an externally scheduled subsystem never happens.

Linearize Blocks with Non-Floating-Point Signals or States

Blocks that have non-floating-point signals or states and have no preprogrammed exact linearization automatically linearize to zero. Linearizing such blocks requires converting all signals to double precision.

Linearize Simscape Networks

You can linearize models with Simscape™ components using Simulink Control Design software.