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

## See also

- g_margin
- show_margins
- repfreq
- black
- bode
- nicholschart
- nyquist