186 lines
8.0 KiB
Markdown
186 lines
8.0 KiB
Markdown
+++
|
|
title = "Guidelines for the selection of weighting functions for h-infinity control"
|
|
author = ["Thomas Dehaeze"]
|
|
draft = false
|
|
+++
|
|
|
|
Tags
|
|
: [H Infinity Control]({{< relref "h_infinity_control" >}})
|
|
|
|
Reference
|
|
: <sup id="5b41da575e27e6e86f1a1410a0170836"><a class="reference-link" href="#bibel92_guidel_h" title="Bibel \& Malyevac, Guidelines for the selection of weighting functions for H-infinity control, NAVAL SURFACE WARFARE CENTER DAHLGREN DIV VA, (1992).">(Bibel \& Malyevac, 1992)</a></sup>
|
|
|
|
Author(s)
|
|
: Bibel, J. E., & Malyevac, D. S.
|
|
|
|
Year
|
|
: 1992
|
|
|
|
|
|
## Properties of feedback control {#properties-of-feedback-control}
|
|
|
|
<a id="org5999225"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_control_diag.png" caption="Figure 1: Control System Diagram" >}}
|
|
|
|
From the figure [1](#org5999225), we have:
|
|
|
|
\begin{align\*}
|
|
y(s) &= T(s) r(s) + S(s) d(s) - T(s) n(s)\\\\\\
|
|
e(s) &= S(s) r(s) - S(s) d(s) - S(s) n(s)\\\\\\
|
|
u(s) &= S(s)K(s) r(s) - S(s)K(s) d(s) - S(s)K(s) n(s)
|
|
\end{align\*}
|
|
|
|
With the following definitions
|
|
|
|
- \\(L(s) = G(s)K(s)\\) is the **loop transfer matrix**
|
|
- \\(S(s) = [I+G(s)K(s)]^{-1}\\) is the **Sensitivity** function matrix
|
|
- \\(T(s) = [I+G(s)K(s)]^{-1}G(s)K(s)\\) is the **Transmissibility** function matrix
|
|
|
|
<div class="cbox">
|
|
<div></div>
|
|
|
|
\\[ S(s) + T(s) = 1 \\]
|
|
|
|
</div>
|
|
|
|
<div class="cbox">
|
|
<div></div>
|
|
|
|
- **Command following**: \\(S=0\\) and \\(T=1\\) => large gains
|
|
- **Disturbance rejection**: \\(S=0\\) => large gains
|
|
- **Sensor noise attenuation**: \\(T\\) small where the noise is concentrated
|
|
- **Control Sensitivity minimization**: \\(K S\\) small
|
|
- **Robustness to modeling errors**: \\(T\\) small in the frequency range of the expected model undertainties
|
|
|
|
</div>
|
|
|
|
|
|
## SISO tradeoff {#siso-tradeoff}
|
|
|
|
We want \\(S\\) small for command following and disturbance rejection.
|
|
We want \\(T\\) small to remain insensitive to sensor noise and modeling errors and to reduce control sensitivity.
|
|
|
|
However we cannot keep both \\(S\\) and \\(T\\) small as \\(S(s)+T(s)=1\\).
|
|
|
|
We must determine some **tradeoff** between the sensitivity and the complementary sensitivity functions.
|
|
|
|
Usually, reference signals and disturbances occur at low frequencies, while noise and modeling errors are concentrated at high frequencies. The tradeoff, in a SISO sense, is to make \\(|S(j\omega)|\\) small as low frequencies and \\(|T(j\omega)|\\) small at high frequencies.
|
|
|
|
|
|
## \\(H\_\infty\\) and weighting functions {#h-infty--and-weighting-functions}
|
|
|
|
<div class="cbox">
|
|
<div></div>
|
|
|
|
\\(\mathcal{H}\_\infty\\) control is a design technique with a state-space computation solution that utilizes frequency-dependent weighting functions to tune the controller's performance and robustness characteristics.
|
|
|
|
</div>
|
|
|
|
<a id="org4e0009c"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_general_plant.png" caption="Figure 2: \\(\mathcal{H}\_\infty\\) control framework" >}}
|
|
|
|
New design framework (figure [2](#org4e0009c)): \\(P(s)\\) is the **generalized plant** transfer function matrix:
|
|
|
|
- \\(w\\): exogenous inputs
|
|
- \\(z\\): regulated performance output
|
|
- \\(u\\): control inputs
|
|
- \\(y\\): measured output variables
|
|
|
|
The plant \\(P\\) has two inputs and two outputs, it can be decomposed into four sub-transfer function matrices:
|
|
\\[P = \begin{bmatrix}P\_{11} & P\_{12} \\ P\_{21} & P\_{22} \end{bmatrix}\\]
|
|
|
|
|
|
## Lower Linear Fractional Transformation {#lower-linear-fractional-transformation}
|
|
|
|
The transformation from the input \\(w\\) to the output \\(z\\), \\(T\_{zw}\\) is called the **Lower Linear Fractional Transformation** \\(F\_l (P, K)\\).
|
|
|
|
<div class="cbox">
|
|
<div></div>
|
|
|
|
\\[T\_{zw} = F\_l (P, K) = P\_{11} + P\_{12}K (I-P\_{22})^{-1} P\_{21}\\]
|
|
|
|
</div>
|
|
|
|
The \\(H\_\infty\\) control problem is to find a controller that minimizes \\(\\| T\_{zw} \\|\_\infty\\) over the space of all realizable controllers \\(K(s)\\) that stabilize the closed-loop system.
|
|
|
|
|
|
## Weights for inputs/outputs signals {#weights-for-inputs-outputs-signals}
|
|
|
|
Since \\(S\\) and \\(T\\) cannot be minimized together at all frequency, **weights are introduced to shape the solutions**. Not only can \\(S\\) and \\(T\\) be weighted, but other regulated performance variables and inputs (figure [3](#orgdd8fae0)).
|
|
|
|
<a id="orgdd8fae0"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_hinf_weights.png" caption="Figure 3: Input and Output weights in \\(\mathcal{H}\_\infty\\) framework" >}}
|
|
|
|
The weights on the input and output variables are selected to reflect the spatial and **frequency dependence** of the respective signals and performance specifications.
|
|
|
|
These inputs and output weighting functions are defined as rational, stable and **minimum-phase transfer function** (no poles or zero in the right half plane).
|
|
|
|
|
|
## General Guidelines for Weight Selection: \\(W\_S\\) {#general-guidelines-for-weight-selection--w-s}
|
|
|
|
\\(W\_S\\) is selected to reflect the desired **performance characteristics**.
|
|
The sensitivity function \\(S\\) should have low gain at low frequency for good tracking performance and high gain at high frequencies to limit overshoot.
|
|
We have to select \\(W\_S\\) such that \\({W\_S}^-1\\) reflects the desired shape of \\(S\\).
|
|
|
|
<div class="cbox">
|
|
<div></div>
|
|
|
|
- **Low frequency gain**: set to the inverse of the desired steady state tracking error
|
|
- **High frequency gain**: set to limit overshoot (\\(0.1\\) to \\(0.5\\) is a good compromise between overshoot and response speed)
|
|
- **Crossover frequency**: chosen to limit the maximum closed-loop time constant (\\(\omega\_c \approx 1/\tau\\))
|
|
|
|
</div>
|
|
|
|
|
|
## General Guidelines for Weight Selection: \\(W\_T\\) {#general-guidelines-for-weight-selection--w-t}
|
|
|
|
We want \\(T\\) near unity for good tracking of reference and near zero for noise suppresion.
|
|
|
|
<div class="cbox">
|
|
<div></div>
|
|
|
|
A high pass weight is usualy used on \\(T\\) because the noise energy is mostly concentrated at high frequencies. It should have the following characteristics:
|
|
|
|
- The **crossover frequency** is chosen to **limit the closed-loop bandwidth**
|
|
- The **high frequency gain** is set high to proide **sensor noise rejection** and high frequency gain attenuation
|
|
|
|
</div>
|
|
|
|
When using both \\(W\_S\\) and \\(W\_T\\), it is important to make sure that the magnitude of theise weights at the crossover frequency is less that one to not violate \\(S+T=1\\).
|
|
|
|
|
|
## Unmodeled dynamics weighting function {#unmodeled-dynamics-weighting-function}
|
|
|
|
Another method of limiting the controller bandwidth and providing high frequency gain attenuation is to use a high pass weight on an **unmodeled dynamics uncertainty block** that may be added from the plant input to the plant output (figure [4](#org0d13a20)).
|
|
|
|
<a id="org0d13a20"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_unmodeled_dynamics.png" caption="Figure 4: Unmodeled dynamics model" >}}
|
|
|
|
The weight is chosen to cover the expected worst case magnitude of the unmodeled dynamics. A typical unmodeled dynamics weighting function is shown figure [5](#org45b0983).
|
|
|
|
<a id="org45b0983"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_weight_dynamics.png" caption="Figure 5: Example of unmodeled dynamics weight" >}}
|
|
|
|
|
|
## Inputs and Output weighting function {#inputs-and-output-weighting-function}
|
|
|
|
It is possible to **weight the control input and actuator rate**.
|
|
This is used to **prevent actuator saturation** and **limit amplification of sensor noise signals** on the control input signal.
|
|
|
|
Typically actuator input weights are constant over frequency and set at the inverse of the saturation limit.
|
|
|
|
|
|
## Order of the weighting functions {#order-of-the-weighting-functions}
|
|
|
|
**The order of the optimal controller is equal to the order of the nominal plant model plus the order of the weights**. The complexity of the controller is increase as the order of the weights increases.
|
|
|
|
**The order of the weights should be kept reasonably low** to reduce the order of th resulting optimal compensator and avoid potential convergence problems in the DK interactions.
|
|
|
|
# Bibliography
|
|
<a class="bibtex-entry" id="bibel92_guidel_h">Bibel, J. E., & Malyevac, D. S., *Guidelines for the selection of weighting functions for h-infinity control* (1992).</a> [↩](#5b41da575e27e6e86f1a1410a0170836)
|