Troubleshooting Linearization Results

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

If you do not get good linearization results, you can use the Simulink® Control Design™ troubleshooting tools to diagnose and fix linearization issues. For more information on linearization troubleshooting, see Linearization Troubleshooting Overview.

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.


Identify and Fix Linearization Issues

Linearization Troubleshooting Overview

To find the cause of poor linearization results, use the Simulink Control Design troubleshooting tools.

Check Operating Point

To diagnose whether you used the correct operating point for linearization, simulate the model at the operating point you used for linearization.

Check Linearization I/O Points Placement

Incorrect placement of linearization I/O points can result in inappropriately excluded blocks from linearization.

Check Loop Opening Placement

Incorrect loop opening placement causes unwanted feedback signals in the linearized model.

Check Phase of Frequency Response for Models with Time Delays

Padé approximation of time delays in your model may cause insufficient phase lag.

Check Individual Block Linearization Values

View the linearization results for blocks with diagnostic messages indicating configuration warnings, unsupported blocks, and blocks that automatically linearize using numerical perturbation.

Check Large Models

Troubleshooting the linearization of large models is easier using a divide-and-conquer strategy.

Check Multirate Models

Incorrect sample time and rate conversion methods can cause poor linearization results in multirate models.

Speeding Up Linearization of Complex Models

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

Define Block Linearization

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.

Specify Linear System for Block Linearization Using MATLAB Expression

Specify the linearization of any block, subsystem, or model reference without having to replace this block in your Simulink model.

Specify D-Matrix System for Block Linearization Using Function

You can specify a substitute linearization for a block or subsystem in your Simulink model using a custom function on the MATLAB® path.

Augment the Linearization of a Block

Augment the linearization of a block with additional time delay dynamics, using a block linearization specification function.

Change Perturbation Level of Blocks Perturbed During Linearization

Blocks that do not have preprogrammed analytic Jacobians linearize using numerical perturbation. Changing the perturbation level changes the linearization results.

Linearize Blocks With Special Characteristics

Configure Models with Pulse Width Modulation (PWM) Signals

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

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.

Models with Time Delays

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

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 Nondouble Precision Data Type Signals

Blocks that have nondouble precision inputs or outputs and have no preprogrammed exact linearization automatically linearize to zero. Linearizing such blocks requires converting all signals to double precision.

Was this topic helpful?