MATLAB: When linearizing a Simulink model, are there any blocks with behaviors that can pose difficulties

controldesignissueslinearizationlinearizesimulinktroubleshoot

When I attempt to linearize my model using the LINMOD (In Simulink) or LINEARIZE (In Simulink Control Design) command or an equivalent, I receive confusing results. I would like to know if there are any block behaviors that I should be aware of to help to linearize this model.

Best Answer

This change has been incorporated into the documentation in Release 14 Service Pack 3 (R14SP3). For previous releases, read below for any additional information:
The Simulink linearization functions are able to provide linearizations for a wide array of Simulink models. However, the model must fundamentally still be linearizable, which means that it should not contain large discontinuities or event-based actions.
In particular, the following block features will likely cause problems:
  • Triggered Subsystems-- Triggered Subsystems, Triggered-Enabled Subsystems, Function-Call Subsystem, and other event-based conditionally executed Subsystems will not linearize correctly, since a trigger is an event that is defined by the level of a signal in the past and the current time, so they do not exhibit continuous behavior. Note that Enabled Subsystems are supported for linearization in Simulink 5.0 (R13) and later, and action subsystem (If-Then-Else, Switch-Case) are supported for linearization in Simulink 6.0 (R14) and later.
  • Integrator blocks with externally supplied initial conditions-- The block driving the Integrator initial condition port must be an Initial Condition (IC) block or a Constant block. For more information, see the following Related Solution 1-OERRA.
  • Continuous or discrete integrator blocks which are near the saturation point-- For example, an Integrator block with an initial state of 90, an input of 1, and an upper limit of 90 will give problematic results since the block's linearization is numerically computed. If your model is near at a saturation point it is best to turn off the "Limit Output" checkbox before linearizing.
Also, an enhancement to the linearization of the Integrator block has been made for Release 14 SP1 (R14SP1). It now has an "Ignore limit and reset when linearizing" option. Selecting this option will cause Simulink linearization commands to treat this block as unresettable and as having no limits on its output, regardless of the settings of the block's reset and output limitation options. This allows you to linearize a model around an operating point that causes the integrator to reset or saturate.