184 lines
8.3 KiB
Markdown
184 lines
8.3 KiB
Markdown
+++
|
|
title = "Guidelines for the selection of weighting functions for h-infinity control"
|
|
author = ["Dehaeze Thomas"]
|
|
draft = false
|
|
+++
|
|
|
|
Tags
|
|
: [H Infinity Control]({{< relref "h_infinity_control.md" >}})
|
|
|
|
Reference
|
|
: (<a href="#citeproc_bib_item_1">Bibel and Malyevac 1992</a>)
|
|
|
|
Author(s)
|
|
: Bibel, J. E., & Malyevac, D. S.
|
|
|
|
Year
|
|
: 1992
|
|
|
|
|
|
## Properties of feedback control {#properties-of-feedback-control}
|
|
|
|
<a id="figure--fig:bibel92-control-diag"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_control_diag.png" caption="<span class=\"figure-number\">Figure 1: </span>Control System Diagram" >}}
|
|
|
|
From the figure [1](#figure--fig:bibel92-control-diag), 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">
|
|
|
|
\\[ S(s) + T(s) = 1 \\]
|
|
|
|
</div>
|
|
|
|
<div class="cbox">
|
|
|
|
- **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">
|
|
|
|
\\(\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="figure--fig:bibel92-general-plant"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_general_plant.png" caption="<span class=\"figure-number\">Figure 2: </span>\\(\mathcal{H}\_\infty\\) control framework" >}}
|
|
|
|
New design framework (figure [2](#figure--fig:bibel92-general-plant)): \\(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">
|
|
|
|
\\[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](#figure--fig:bibel92-hinf-weights)).
|
|
|
|
<a id="figure--fig:bibel92-hinf-weights"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_hinf_weights.png" caption="<span class=\"figure-number\">Figure 3: </span>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">
|
|
|
|
- **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">
|
|
|
|
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](#figure--fig:bibel92-unmodeled-dynamics)).
|
|
|
|
<a id="figure--fig:bibel92-unmodeled-dynamics"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_unmodeled_dynamics.png" caption="<span class=\"figure-number\">Figure 4: </span>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](#figure--fig:bibel92-weight-dynamics).
|
|
|
|
<a id="figure--fig:bibel92-weight-dynamics"></a>
|
|
|
|
{{< figure src="/ox-hugo/bibel92_weight_dynamics.png" caption="<span class=\"figure-number\">Figure 5: </span>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 {#bibliography}
|
|
|
|
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
|
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Bibel, John E, and D Stephen Malyevac. 1992. “Guidelines for the Selection of Weighting Functions for H-Infinity Control.” NAVAL SURFACE WARFARE CENTER DAHLGREN DIV VA.</div>
|
|
</div>
|