Re-worked Section 3
This commit is contained in:
parent
6ce8fb5cba
commit
e0ab1d863c
678
index.html
678
index.html
File diff suppressed because it is too large
Load Diff
74
index.org
74
index.org
@ -819,23 +819,25 @@ Let's finally compare the obtained stability margins of the $\mathcal{H}_\infty$
|
|||||||
<<sec:h_infinity_introduction>>
|
<<sec:h_infinity_introduction>>
|
||||||
|
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
|
In this section, the $\mathcal{H}_\infty$ Synthesis method, which is based on the optimization of the $\mathcal{H}_\infty$ norm of transfer functions, is introduced.
|
||||||
|
|
||||||
- Section [[sec:h_infinity_norm]]
|
After the $\mathcal{H}_\infty$ norm is defined in Section [[sec:h_infinity_norm]], the $\mathcal{H}_\infty$ synthesis procedure is described in Section [[sec:h_infinity_synthesis]] .
|
||||||
- Section [[sec:h_infinity_synthesis]]
|
|
||||||
- Section [[sec:generalized_plant]]
|
The generalized plant, a very useful tool to describe a control problem, is presented in Section [[sec:generalized_plant]].
|
||||||
- Section [[sec:h_infinity_general_synthesis]]
|
The $\mathcal{H}_\infty$ is then applied to this generalized plant in Section [[sec:h_infinity_general_synthesis]].
|
||||||
- Section [[sec:generalized_plant_derivation]]
|
|
||||||
|
Finally, an example showing how to convert a typical feedback control architecture into a generalized plant is given in Section [[sec:generalized_plant_derivation]].
|
||||||
|
|
||||||
** The $\mathcal{H}_\infty$ Norm
|
** The $\mathcal{H}_\infty$ Norm
|
||||||
<<sec:h_infinity_norm>>
|
<<sec:h_infinity_norm>>
|
||||||
|
|
||||||
#+begin_definition
|
#+begin_definition
|
||||||
The $\mathcal{H}_\infty$ norm is defined as the peak of the maximum singular value of the frequency response
|
The $\mathcal{H}_\infty$ norm of a multi-input multi-output system $G(s)$ is defined as the peak of the maximum singular value of its frequency response
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\|G(s)\|_\infty = \max_\omega \bar{\sigma}\big( G(j\omega) \big)
|
\|G(s)\|_\infty = \max_\omega \bar{\sigma}\big( G(j\omega) \big)
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
For a SISO system $G(s)$, it is simply the peak value of $|G(j\omega)|$ as a function of frequency:
|
For a single-input single-output system $G(s)$, it is simply the peak value of $|G(j\omega)|$ as a function of frequency:
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\|G(s)\|_\infty = \max_{\omega} |G(j\omega)| \label{eq:hinf_norm_siso}
|
\|G(s)\|_\infty = \max_{\omega} |G(j\omega)| \label{eq:hinf_norm_siso}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
@ -850,7 +852,7 @@ Let's compute the $\mathcal{H}_\infty$ norm of our test plant $G(s)$ using the =
|
|||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
: 7.9216e-06
|
: 7.9216e-06
|
||||||
|
|
||||||
We can see that the $\mathcal{H}_\infty$ norm of $G(s)$ does corresponds to the peak value of $|G(j\omega)|$ as a function of frequency as shown in Figure [[fig:hinfinity_norm_siso_bode]].
|
We can see in Figure [[fig:hinfinity_norm_siso_bode]] that indeed, the $\mathcal{H}_\infty$ norm of $G(s)$ does corresponds to the peak value of $|G(j\omega)|$.
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
freqs = logspace(0, 3, 1000);
|
freqs = logspace(0, 3, 1000);
|
||||||
@ -879,18 +881,19 @@ We can see that the $\mathcal{H}_\infty$ norm of $G(s)$ does corresponds to the
|
|||||||
<<sec:h_infinity_synthesis>>
|
<<sec:h_infinity_synthesis>>
|
||||||
|
|
||||||
#+begin_definition
|
#+begin_definition
|
||||||
$\mathcal{H}_\infty$ synthesis is a method that uses an *algorithm* (LMI optimization, Riccati equation) to find a controller that stabilize the system and that *minimizes* the $\mathcal{H}_\infty$ norms of defined transfer functions.
|
The $\mathcal{H}_\infty$ synthesis is a method that uses an *algorithm* (LMI optimization, Riccati equation) to find a controller that stabilizes the system and that *minimizes* the $\mathcal{H}_\infty$ norms of defined transfer functions.
|
||||||
#+end_definition
|
#+end_definition
|
||||||
|
|
||||||
Why optimizing the $\mathcal{H}_\infty$ norm of transfer functions is a pertinent choice will become clear when we will translate the typical control specifications into the $\mathcal{H}_\infty$ norm of transfer functions.
|
Why optimizing the $\mathcal{H}_\infty$ norm of transfer functions is a pertinent choice will become clear when we will translate the typical control specifications into the $\mathcal{H}_\infty$ norm of transfer functions in Section [[sec:modern_interpretation_specification]].
|
||||||
|
|
||||||
|
#+begin_important
|
||||||
|
Then applying the $\mathcal{H}_\infty$ synthesis to a plant, the engineer work usually consists of the following steps:
|
||||||
|
1. Write the problem as standard $\mathcal{H}_\infty$ problem using the generalized plant (described in the next section)
|
||||||
|
2. Translate the specifications as $\mathcal{H}_\infty$ norms of transfer functions (Section [[sec:modern_interpretation_specification]])
|
||||||
|
3. Make the synthesis and analyze the obtained controller
|
||||||
|
|
||||||
Then applying the $\mathcal{H}_\infty$ synthesis to a plant, the engineer work usually consists of the following steps
|
As the $\mathcal{H}_\infty$ synthesis usually gives very high order controllers, an additional step that reduces the controller order is sometimes required for practical implementation.
|
||||||
1. Write the problem as standard $\mathcal{H}_\infty$ problem
|
#+end_important
|
||||||
2. Translate the specifications as $\mathcal{H}_\infty$ norms of transfer functions
|
|
||||||
3. Make the synthesis and analyze the obtain controller
|
|
||||||
4. Reduce the order of the controller for implementation
|
|
||||||
|
|
||||||
|
|
||||||
Note that there are many ways to use the $\mathcal{H}_\infty$ Synthesis:
|
Note that there are many ways to use the $\mathcal{H}_\infty$ Synthesis:
|
||||||
- Traditional $\mathcal{H}_\infty$ Synthesis (=hinfsyn= [[https://www.mathworks.com/help/robust/ref/hinfsyn.html][doc]])
|
- Traditional $\mathcal{H}_\infty$ Synthesis (=hinfsyn= [[https://www.mathworks.com/help/robust/ref/hinfsyn.html][doc]])
|
||||||
@ -904,19 +907,17 @@ Note that there are many ways to use the $\mathcal{H}_\infty$ Synthesis:
|
|||||||
|
|
||||||
The first step when applying the $\mathcal{H}_\infty$ synthesis is usually to write the problem as a standard $\mathcal{H}_\infty$ problem.
|
The first step when applying the $\mathcal{H}_\infty$ synthesis is usually to write the problem as a standard $\mathcal{H}_\infty$ problem.
|
||||||
This consist of deriving the *Generalized Plant* for the current problem.
|
This consist of deriving the *Generalized Plant* for the current problem.
|
||||||
It makes things much easier for the following steps.
|
|
||||||
|
|
||||||
The generalized plant, usually noted $P(s)$, is shown in Figure [[fig:general_plant]].
|
The generalized plant, usually noted $P(s)$, is shown in Figure [[fig:general_plant]].
|
||||||
It has two inputs and two outputs (both could contains many signals).
|
It has two /sets/ of inputs $[w,\,u]$ and two /sets/ of outputs $[z\,v]$ such that:
|
||||||
The meaning of the inputs and outputs are summarized in Table [[tab:notation_general]].
|
|
||||||
|
|
||||||
Note that this generalized plant is as its name implies, quite /general/.
|
|
||||||
It can indeed represent feedback as well as feedforward control architectures.
|
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\begin{bmatrix} z \\ v \end{bmatrix} = P \begin{bmatrix} w \\ u \end{bmatrix} = \begin{bmatrix} P_{11} & P_{12} \\ P_{21} & P_{22} \end{bmatrix} \begin{bmatrix} w \\ u \end{bmatrix}
|
\begin{bmatrix} z \\ v \end{bmatrix} = P \begin{bmatrix} w \\ u \end{bmatrix}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
|
The meaning of these inputs and outputs are summarized in Table [[tab:notation_general]].
|
||||||
|
|
||||||
|
A practical example about how to derive the generalized plant for a classical control problem is given in Section [[sec:generalized_plant_derivation]].
|
||||||
|
|
||||||
#+begin_src latex :file general_plant.pdf
|
#+begin_src latex :file general_plant.pdf
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\node[block={2.0cm}{2.0cm}] (P) {$P$};
|
\node[block={2.0cm}{2.0cm}] (P) {$P$};
|
||||||
@ -937,12 +938,12 @@ It can indeed represent feedback as well as feedforward control architectures.
|
|||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_important
|
||||||
#+name: fig:general_plant
|
#+name: fig:general_plant
|
||||||
#+caption: Inputs and Outputs of the generalized Plant
|
#+caption: Inputs and Outputs of the generalized Plant
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:figs/general_plant.png]]
|
[[file:figs/general_plant.png]]
|
||||||
|
|
||||||
#+begin_important
|
|
||||||
#+name: tab:notation_general
|
#+name: tab:notation_general
|
||||||
#+caption: Notations for the general configuration
|
#+caption: Notations for the general configuration
|
||||||
| Notation | Meaning |
|
| Notation | Meaning |
|
||||||
@ -961,10 +962,11 @@ Once the generalized plant is obtained, the $\mathcal{H}_\infty$ synthesis probl
|
|||||||
|
|
||||||
#+begin_important
|
#+begin_important
|
||||||
- $\mathcal{H}_\infty$ Synthesis applied on the generalized plant ::
|
- $\mathcal{H}_\infty$ Synthesis applied on the generalized plant ::
|
||||||
Find a stabilizing controller $K$ that, using the sensed output $v$, generates a control signal $u$ such that the $\mathcal{H}_\infty$ norm of the closed-loop transfer function from $w$ to $z$ is minimized.
|
Find a stabilizing controller $K$ that, using the sensed outputs $v$, generates control signals $u$ such that the $\mathcal{H}_\infty$ norm of the closed-loop transfer function from $w$ to $z$ is minimized.
|
||||||
|
|
||||||
After $K$ is found, the system is /robustified/ by adjusting the response around the unity gain frequency to increase stability margins.
|
After $K$ is found, the system is /robustified/ by adjusting the response around the unity gain frequency to increase stability margins.
|
||||||
#+end_important
|
|
||||||
|
The obtained controller $K$ and the generalized plant are connected as shown in Figure [[fig:general_control_names]].
|
||||||
|
|
||||||
#+begin_src latex :file general_control_names.pdf
|
#+begin_src latex :file general_control_names.pdf
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
@ -992,11 +994,7 @@ Once the generalized plant is obtained, the $\mathcal{H}_\infty$ synthesis probl
|
|||||||
#+caption: General Control Configuration
|
#+caption: General Control Configuration
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:figs/general_control_names.png]]
|
[[file:figs/general_control_names.png]]
|
||||||
|
#+end_important
|
||||||
Note that the closed-loop transfer function from $w$ to $z$ is:
|
|
||||||
\begin{equation}
|
|
||||||
\frac{z}{w} = P_{11} + P_{12} K \big( I - P_{22} K \big)^{-1} P_{21} \triangleq F_l(P, K)
|
|
||||||
\end{equation}
|
|
||||||
|
|
||||||
Using Matlab, the $\mathcal{H}_\infty$ Synthesis applied on a Generalized plant can be applied using the =hinfsyn= command ([[https://www.mathworks.com/help/robust/ref/hinfsyn.html][documentation]]):
|
Using Matlab, the $\mathcal{H}_\infty$ Synthesis applied on a Generalized plant can be applied using the =hinfsyn= command ([[https://www.mathworks.com/help/robust/ref/hinfsyn.html][documentation]]):
|
||||||
#+begin_src matlab :eval no :tangoe no
|
#+begin_src matlab :eval no :tangoe no
|
||||||
@ -1006,13 +1004,15 @@ where:
|
|||||||
- =P= is the generalized plant transfer function matrix
|
- =P= is the generalized plant transfer function matrix
|
||||||
- =nmeas= is the number of sensed output (size of $v$)
|
- =nmeas= is the number of sensed output (size of $v$)
|
||||||
- =ncont= is the number of control signals (size of $u$)
|
- =ncont= is the number of control signals (size of $u$)
|
||||||
- =K= obtained controller that minimized the $\mathcal{H}_\infty$ norm from $w$ to $z$
|
- =K= obtained controller (of size =ncont x nmeas=) that minimizes the $\mathcal{H}_\infty$ norm from $w$ to $z$.
|
||||||
|
|
||||||
|
Note that the general control configure of Figure [[fig:general_control_names]], as its name implies, is quite /general/ and can represent feedback control as well as feedforward control architectures.
|
||||||
|
|
||||||
** From a Classical Feedback Architecture to a Generalized Plant
|
** From a Classical Feedback Architecture to a Generalized Plant
|
||||||
<<sec:generalized_plant_derivation>>
|
<<sec:generalized_plant_derivation>>
|
||||||
|
|
||||||
The procedure to convert a typical control architecture as the one shown in Figure [[fig:classical_feedback_tracking]] to a generalized Plant is as follows:
|
The procedure to convert a typical control architecture as the one shown in Figure [[fig:classical_feedback_tracking]] to a generalized Plant is as follows:
|
||||||
1. Define signals ($w$, $z$, $u$ and $v$) of the generalized plant
|
1. Define signals of the generalized plant: $w$, $z$, $u$ and $v$
|
||||||
2. Remove $K$ and rearrange the inputs and outputs to match the generalized configuration shown in Figure [[fig:general_plant]]
|
2. Remove $K$ and rearrange the inputs and outputs to match the generalized configuration shown in Figure [[fig:general_plant]]
|
||||||
|
|
||||||
#+begin_src latex :file classical_feedback_tracking.pdf
|
#+begin_src latex :file classical_feedback_tracking.pdf
|
||||||
@ -1060,8 +1060,10 @@ The procedure to convert a typical control architecture as the one shown in Figu
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_exercice
|
#+begin_exercice
|
||||||
1. Convert the tracking control architecture shown in Figure [[fig:classical_feedback_tracking]] to a generalized configuration
|
Consider the feedback control architecture shown in Figure [[fig:classical_feedback_tracking]].
|
||||||
2. Compute the transfer function matrix using Matlab as a function or $K$ and $G$
|
Suppose we want to design $K$ using the general $\mathcal{H}_\infty$ synthesis, and suppose the signals to be minimized are the control input $u$ and the tracking error $\epsilon$.
|
||||||
|
1. Convert the control architecture to a generalized configuration
|
||||||
|
2. Compute the transfer function matrix of the generalized plant $P$ using Matlab as a function or $K$ and $G$
|
||||||
|
|
||||||
#+name: fig:classical_feedback_tracking
|
#+name: fig:classical_feedback_tracking
|
||||||
#+caption: Classical Feedback Control Architecture (Tracking)
|
#+caption: Classical Feedback Control Architecture (Tracking)
|
||||||
|
Loading…
Reference in New Issue
Block a user