# linmod

Extract continuous-time linear state-space model around operating point using block by block linearization algorithm

## Syntax

## Description

computes the linear state-space model of the system of ordinary differential equations
represented in the model `[A,B,C,D]`

= linmod(`mdl`

)`mdl`

by linearizing each block one by one.
Inport and Outport blocks in the model represent the system
inputs and outputs.

The block-by-block analytic algorithm uses preprogrammed analytic block Jacobians for
most blocks, which typically results in more accurate linearization compared to the
perturbation algorithm. The Simulink^{®}
Control Design™ documentation contains a list of blocks that have preprogrammed analytic
Jacobians and a discussion of the block-by-block analytic algorithm for
linearization.

The block-by-block analytical algorithm also allows for special treatment of problematic blocks such as the Transport Delay block and the Quantizer block.

**Note**

The `linmod`

function provides only basic linearization
capabilities. For full linearization functionality, use Simulink
Control Design software. For more information, see Choose Linearization Tools (Simulink Control Design).

uses the perturbation algorithm from versions 5.3 and earlier to compute the linear
state-space model of the system of ordinary differential equations represented in the model
`[A,B,C,D]`

= linmod(`mdl`

,`x`

,`u`

,-v5)`mdl`

at the operating point specified as the state
`x`

and inputs `u`

. Using the perturbation algorithm
is equivalent to using the `linmodv5`

function.

returns the
transfer function representation of the linearized model.`[n,d]`

= linmod(___)

returns a
structure that contains the linearized model, state names, input and output names, and
information about the operating point.`sys`

= linmod(___)

## Examples

## Input Arguments

## Output Arguments

## Limitations

The

`linmod`

function provides only basic linearization capabilities. For full linearization functionality, use Simulink Control Design software. For more information, see Choose Linearization Tools (Simulink Control Design).When you linearize a model reference hierarchy, configure the top and referenced models to simulate in normal mode. Multiple limitations exist for linearizing multirate referenced models that simulate in accelerator mode.

When you linearize a model reference hierarchy that contains referenced models configured to simulate in accelerator mode, the software uses the default algorithm to linearize the top model and the numeric perturbation algorithm to linearize the referenced model.

Linearization is not supported for models that contain one or more referenced models configured to use a local solver. For more information, see Use Local Solvers in Referenced Models.

## Tips

By default, the system time is zero. For systems that are dependent on time, you can specify the system time using the second element of the

`opts`

input argument.State order is maintained in linearization such that the order of states in the linearized model matches the order of states in the nonlinear model. You can get information about the states in a model and the blocks associated with the states by using the model name as a programmatic interface to execute the sizes phase. The return argument named

`blks`

is a vector that contains the name of each block associated with a state. For more information, see Use Model Name as Programmatic Interface.`[sys,x0,blks,st] = modelName([],[],[],'sizes');`

You can convert the state-space linearized representation of a linearized single-input, multiple-output system to another form using these functions:

You can create a state-space model object from a linearized model using the

`ss`

(Control System Toolbox) function. You can use state-space model objects to represent a linear time invariant (LTI) system for control design. You can also combine multiple LTI state-space models to represent more complex systems.After creating a state-space model object, you can convert to transfer function form using the

`tf`

(Control System Toolbox) function or convert to zero-pole-gain form using the`zpk`

(Control System Toolbox) function.The default block-by-block algorithm is recommended for linearizing models that contain Transport Delay or Derivative blocks. The block-by-block algorithm replaces Transport Delay and Derivative blocks with Pade approximations. Using the

`v5`

perturbation algorithm to linearize models that contain Transport Delay or Derivative blocks can be troublesome. For more information, see Linearizing Models.Before linearizing a model that contains Transport Delay or Derivative blocks using the

`v5`

perturbation algorithm, replace the Transport Delay and Derivative blocks with the specialized blocks available in the Linearization library inside the Simulink Extras library.

## Version History

**Introduced in R2007a**

## See Also

### Functions

`dlinmod`

|`linmod2`

|`linmodv5`

|`linearize`

(Simulink Control Design) |`slLinearizer`

(Simulink Control Design)

### Apps

- Model Linearizer (Simulink Control Design)

### Topics

- Choose Linearization Tools (Simulink Control Design)
- Linearize Nonlinear Models (Simulink Control Design)
- Exact Linearization Algorithm (Simulink Control Design)