digital-brain/content/zettels/nyquist_stability_criterion.md

73 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

2024-12-13 23:58:56 +01:00
+++
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>