# makepassive

Enforce passivity of rational fit

Since R2019a

## Syntax

``pfit = makepassive(fit,s)``
``pfit = makepassive(fit,s,'Display','on')``

## Description

example

````pfit = makepassive(fit,s)` produces a passive fit by modifying the input, `fit` while optimally matching the data of S-parameter input, `s`. `makepassive` function does modifies the residues of the `fit` to make it passive.```
````pfit = makepassive(fit,s,'Display','on')` solves as above, but turns on the display of iteration information. The default for `'Display'` is `'off'`.```

## Examples

collapse all

Read a file named `passive.s2p` and fit the 2x2 S-parameters.

``` S = sparameters('passive.s2p'); fit = rationalfit(S);```

Plot the passivity of the 2x2 fit, noting the violations.

``` figure passivity(fit)```

Optimize residues to produce a passive fit still close to S.

` pfit = makepassive(fit,S)`
```pfit = 2x2 rfmodel.rational array with properties: A C D Delay Name ```

To display iteration information:

` pfit = makepassive(fit,S,'Display','on' )`
```ITER H-INFTY NORM FREQUENCY ERRDB CONSTRAINTS 0 1 + 1.791e-02 17.6816 GHz -40.4702 1 1 + 2.678e-04 282.601 MHz -40.9167 5 2 1 + 7.110e-05 377.139 MHz -40.9077 8 3 1 + 1.361e-06 361.144 MHz -40.9066 9 4 1 - 1.800e-06 367.533 MHz -40.9064 10 ```
```pfit = 2x2 rfmodel.rational array with properties: A C D Delay Name ```

Plot the passivity of the new fit.

``` figure passivity(pfit)```

## Input Arguments

collapse all

Rational fit object, specified as an N-by-N array of a `rational` or `rationalfit` object.

S-parameters, specified as an RF Toolbox™ network parameter object. To create this type of object, use the `sparameters` function.

## Output Arguments

collapse all

`rfmodel.rational` objects, returned as N-by-N array.

## Version History

Introduced in R2019a