+++
title = "Nyquist stability criterion"
author = ["Dehaeze Thomas"]
draft = false
+++

Tags
:


## Theory {#theory}

The main reason why the Nyquist plot is used it that it can be used with the experimental FRF data!

The zeros and pole of a MIMO system are the zeros and pole of the determinant of \\(G(s)\\).
\\[ \det(G(s)) = \frac{z\_G(s)}{p\_G(s)} \\]
The polynomial \\(p\_G(s)\\) is normally called the **open-loop characteristic** polynomial.

In a MIMO feedback system:

-   The transfer function matrix open-loop is:
    \\[ L(s) = G(s) K(s) \neq K(s) G(s) \\]
-   The transfer function matrix closed-loop is:
    \\[ T(s) = [I + L(s)]^{-1} L(s) \\]
-   **Return difference matrix**:
    \\[ F(s) = [I + L(s)] \\]

The closed-loop system is stable if the zeros of the closed-loop characteristic polynomial lie in the complex open left half plane.
There are the zeros of:
\\[ \det(I + GK) \\]

<div class="important">

**MIMO Nyquist stability criteria**:
\\[ \det(I + G(s)K(s)) = 0 \quad \text{for} \quad \text{Re}(s)<0 \\]
To check the closed-loop stability graphically, plot the Nyquist of \\(\det(I + GK)\\) and evaluate the encirclement with respect to the point \\((0,0)\\).
The Nyquist plot is the image of the imaginary axis (\\(j\omega\\)) under \\(\det(I + GK)\\), i.e. it is the evolution of \\(\det(I + G(j\omega)K(j\omega))\\) in the complex plane.
Note that there is a single plot, even in the MIMO case.

</div>

<div class="important">

**Eigenvalue loci**:
The eigenvalue loci (sometimes called the characteristic loci) are defined as the eigenvalues of the frequency response function of the open-loop transfer function matrix \\(G(s)K(s)\\).
This time, there are \\(n\\) plots, where \\(n\\) is the size of the system.

</div>


## Matlab Example {#matlab-example}

Sure we have identified a system with 6 inputs and 6 outputs.
The Matlab object has dimension `6 x 6 x n` with `n` is the number of frequency points.

First, compute the open-loop gain:

```matlab
L  = zeros(6, 6, length(f));

for i_f = 1:length(f)
    L(:,:,i_f)  = squeeze(G(:,:,i_f))*freqresp(K, f(i_f), 'Hz');
end
```

Then, compute the eigenvalues of this open-loop gain:
Finally, plot the (complex) eigenvalues in the complex plane:


## Bibliography {#bibliography}

<./biblio/references.bib>