Documentation

## Change Perturbation Level of Blocks Perturbed During Linearization

Blocks that do not have preprogrammed analytic Jacobians linearize using numerical perturbation.

### Change Block Perturbation Level

This example shows how to change the perturbation level to the Magnetic Ball Plant block in the `magball` model. Changing the perturbation level changes the linearization results.

The default perturbation size is 10-5(1+|x|), where x is the operating point value of the perturbed state or the input.

Open the model before changing the perturbation level.

To change the perturbation level of the states to ${10}^{-7}\left(1+|x|\right)$, where x is the state value, type:

```blockname='magball/Magnetic Ball Plant' set_param(blockname,'StatePerturbationForJacobian','1e-7') ```

To change the perturbation level of the input to ${10}^{-7}\left(1+|x|\right)$, where x is the input signal value:

1. Open the system and get the block port handles.

```sys = 'magball'; open_system(sys) blockname = 'magball/Magnetic Ball Plant'; ph = get_param(blockname,'PortHandles') ```
2. Get the handle to the inport value.

```p_in = ph.Inport(1) ```
3. Set the inport perturbation level.

`set_param(p_in,'PerturbationForJacobian','1e-7')`

### Perturbation Levels of Integer Valued Blocks

A custom block that requires integer input ports for indexing might have linearization issues when this block:

• Does not support small perturbations in the input value

• Accepts double-precision inputs

To fix the problem, try setting the perturbation level of such a block to zero (which sets the block linearization to a gain of 1). 