# dlinmod

Extract discrete-time linear state-space model around operating point

## Syntax

## Description

computes the linear state-space model with sample time `[A,B,C,D]`

= dlinmod(`mdl`

,`Ts`

)`Ts`

of the
discrete-time system represented in the model `mdl`

by linearizing each
block in a model one by one. Inport and Outport blocks in the
model represent the system inputs and outputs. You can use the `dlinmod`

function to linearize discrete systems, multirate systems, and hybrid systems that contain
both discrete and continuous dynamics.

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).

returns the
discrete linear model in transfer function form.`[n,d]`

= dlinmod(___)

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

= dlinmod(___)

## 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

You can use the

`dlinmod`

function to convert a system to a different sample time, including converting a discrete system to a continuous system and vice versa.To find the frequency response of a discrete or continuous system, use the

`bode`

function.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**