+++
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
: ([Bibel and Malyevac 1992](#org47391fd))

Author(s)
: Bibel, J. E., & Malyevac, D. S.

Year
: 1992


## Properties of feedback control {#properties-of-feedback-control}

<a id="org55b0783"></a>

{{< figure src="/ox-hugo/bibel92_control_diag.png" caption="Figure 1: Control System Diagram" >}}

From the figure [1](#org55b0783), 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="orgbbca2ea"></a>

{{< figure src="/ox-hugo/bibel92_general_plant.png" caption="Figure 2: \\(\mathcal{H}\_\infty\\) control framework" >}}

New design framework (figure [2](#orgbbca2ea)): \\(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](#org75a0ac3)).

<a id="org75a0ac3"></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](#orgd3e0294)).

<a id="orgd3e0294"></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](#org6d5884c).

<a id="org6d5884c"></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 {#bibliography}

<a id="org47391fd"></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.
