# Documentation

## Linearizing Nonlinear Models

### What Is Linearization?

Linearization is a linear approximation of a nonlinear system that is valid in a small region around the operating point.

For example, suppose that the nonlinear function is $y={x}^{2}$. Linearizing this nonlinear function about the operating point x=1, y=1 results in a linear function $y=2x-1$.

Near the operating point, $y=2x-1$ is a good approximation to $y={x}^{2}$. Away from the operating point, the approximation is poor.

The next figure shows a possible region of good approximation for the linearization of $y={x}^{2}$. The actual region of validity depends on the nonlinear model.

Extending the concept of linearization to dynamic systems, you can write continuous-time nonlinear differential equations in this form:

$\begin{array}{l}\stackrel{˙}{x}\left(t\right)=f\left(x\left(t\right),u\left(t\right),t\right)\\ y\left(t\right)=g\left(x\left(t\right),u\left(t\right),t\right).\end{array}$

In these equations, x(t) represents the system states, u(t) represents the inputs to the system, and y(t) represents the outputs of the system.

A linearized model of this system is valid in a small region around the operating point t=t0, x(t0)=x0, u(t0)=u0, and y(t0)=g(x0,u0,t0)=y0.

To represent the linearized model, define new variables centered about the operating point:

$\begin{array}{l}\delta x\left(t\right)=x\left(t\right)-{x}_{0}\\ \delta u\left(t\right)=u\left(t\right)-{u}_{0}\\ \delta y\left(t\right)=y\left(t\right)-{y}_{0}\end{array}$

The linearized model in terms of δx, δu, and δy is valid when the values of these variables are small:

$\begin{array}{l}\delta \stackrel{˙}{x}\left(t\right)=A\delta x\left(t\right)+B\delta u\left(t\right)\\ \delta y\left(t\right)=C\delta x\left(t\right)+D\delta u\left(t\right)\end{array}$

### Applications of Linearization

Linearization is useful in model analysis and control design applications.

Exact linearization of the specified nonlinear Simulink® model produces linear state-space, transfer-function, or zero-pole-gain equations that you can use to:

• Plot the Bode response of the Simulink model.

• Evaluate loop stability margins by computing open-loop response.

• Analyze and compare plant response near different operating points.

• Design linear controller

Classical control system analysis and design methodologies require linear, time-invariant models. Simulink Control Design™ automatically linearizes the plant when you tune your compensator. See Choosing a Control Design Approach.

• Analyze closed-loop stability.

• Measure the size of resonances in frequency response by computing closed-loop linear model for control system.

• Generate controllers with reduced sensitivity to parameter variations and modeling errors (requires Robust Control Toolbox™).

### Linearization in Simulink Control Design

You can use Simulink Control Design to linearize continuous-time, discrete-time, or multirate Simulink models. The resulting linear time-invariant model is in state-space form.

Simulink Control Design uses a block-by-block approach to linearize models, instead of using full-model perturbation. This block-by-block approach individually linearizes each block in your Simulink model and combines the results to produce the linearization of the specified system.

The block-by-block linearization approach has several advantages to full-model numerical perturbation:

• Most Simulink blocks have preprogrammed linearization that provides Simulink Control Design an exact linearization of each block at the operating point.

• You can configure blocks to use custom linearizations without affecting your model simulation.

• Simulink Control Design automatically removes nonminimal states.

• Ability to specify linearization to be uncertain (requires Robust Control Toolbox)

### Choosing Linearization Tools

#### Choosing Simulink Control Design Linearization Tools

Simulink Control Design lets you perform linear analysis of nonlinear models using a graphical user interface, functions, or blocks.

Linearization ToolWhen to Use
Linear Analysis Tool
• Interactively explore Simulink model linearization under different operating conditions.

• Diagnose linearization problems.

• Batch linearize for varying model parameter values.

• Automatically generate MATLAB® code for batch linearization.

`linearize`
• Linearize a Simulink model for command-line analysis of poles and zeros, plot responses, and control design.

• Batch linearize for varying model parameter values and operating points.

`slLinearizer`

Batch linearize for varying model parameter values, operating points, and I/O sets.

Linear Analysis Plots blocks

• View bounds on linear characteristics of your Simulink model on plots.

• Optionally, check that the linear characteristics of your Simulink model satisfy specified bounds.

 Note:   Linear Analysis Plots blocks do not support code generation. You can only use these blocks in `Normal` simulation mode.

#### Choosing Exact Linearization Versus Frequency Response Estimation

In most cases, you should use exact linearization instead of frequency response estimation to obtaining a linear approximation of a Simulink model.

Exact linearization:

• Is faster because it does not require simulation of the Simulink model.

• Returns a parametric (state-space).

Frequency response estimation returns frequency response data. To create a transfer function or a state-space model from the resulting frequency response data requires an extra step using System Identification Toolbox™ to fit a model.

Use frequency response estimation:

• To validate exact linearization accuracy.

• To study the impact of amplitude size on frequency response.

How is Simulink `linmod` different from Simulink Control Design functionality for linearizing nonlinear models?

Although both Simulink Control Design and Simulink `linmod` perform block-by-block linearization, Simulink Control Design functionality is enhanced by a more flexible user interface and Control System Toolbox™ numerical algorithms.

Graphical-user interfaceYes
See Linearize Simulink Model at Model Operating Point.
No
Flexibility in defining which portion of the model to linearizeYes. Lets you specify linearization I/O points at any level of a Simulink model, either graphically or programmatically without having to modify your model.
See Linearize at Trimmed Operating Point.
No. Only root-level linearization I/O points, which is equivalent to linearizing the entire model.
Open-loop analysisYes. Lets you open feedback loops without deleting feedback signals in the model.
See Open-Loop Response of Control System for Stability Margin Analysis.
Yes, but requires that you delete feedback signals in your model to open the loop
Control linear model state orderingYes
See Ordering States in Linearized Model.
No
Control linearization of individual blocks Yes. Lets you specify custom linearization behavior for both blocks and subsystems.
See Controlling Block Linearization.
No
Linearization diagnosticsYes. Identifies problematic blocks and lets you examine the linearization value of each block.
See Linearization Troubleshooting Overview.
No
Block detection and reductionYes. Block reduction detects blocks that do not contribute to the overall linearization yielding a minimal realization.No
Control of rate conversion algorithm for multirate modelsYes No

### Model Requirements for Exact Linearization

Exact linearization supports most Simulink blocks.

However, Simulink blocks with strong discontinuities or event-based dynamics linearize (correctly) to zero or large (infinite) gain. Sources of event-based or discontinuous behavior exist in models that have Simulink Control Design requires special handling of models that include:

• Blocks from Discontinuities library

• Stateflow® charts

• Triggered subsystems

• Pulse width modulation (PWM) signals

For most applications, the states in your Simulink model should be at steady state. Otherwise, your linear model is only valid over a small time interval.

### Operating Point Impact on Linearization

Choosing the right operating point for linearization is critical for obtaining an accurate linear model. The linear model is an approximation of the nonlinear model that is valid only near the operating point at which you linearize the model.

Although you specify which Simulink blocks to linearize, all blocks in the model affect the operating point.

A nonlinear model can have two very different linear approximations when you linearize about different operating points.

The linearization result for this model is shown next, with the initial condition for the integration x0 = 0.

This table summarizes the different linearization results for two different operating points.

Operating PointLinearization Result
Initial Condition = 5, State `x1` = 530/s
Initial Condition = 0, State `x1` = 00