Change language to:
Français - 日本語 - Português - Русский

See the recommended documentation of this function

# p_margin

phase margin and associated crossover frequency

### Syntax

```[phm,fr] = p_margin(h)
phm = p_margin(h)```

### Arguments

h

a SISO linear system (see :syslin).

phm

a number, the phase margin in degree if it exists or an empty matrix.

fr

a number, the corresponding frequency (in Hz) or an empty matrix.

### Description

Given a SISO linear system in continuous or discrete time, `p_margin` returns `phm`, the phase margin in degree of `h` and `fr`, the achieved corresponding frequency in Hz.

The phase margin is the values of the phase at frequency points where the nyquist plot of `h` crosses the unit circle. In other words the phase margin is the difference between the phase of the frequency response of `h` and -180° when the gain of `h` is 1.

The algorithm uses polynomial root finder to solve the equations:

h(s)*h(-s)=1

for the continuous time case.

h(z)*h(1/z)=1

for the discrete time case.

### Examples

```//continuous case
h=syslin('c',-1+%s,3+2*%s+%s^2)
[p,fr]=p_margin(h)
[p,fr]=p_margin(h+0.7)
show_margins(h+0.7,'nyquist')

//discrete case
h = syslin(0.1,0.04798*%z+0.0464,%z^2-1.81*%z+0.9048);//ok
[p ,f]=p_margin(h)
show_margins(h,'nyquist')```