diff --git a/index.html b/index.html index 399c5a0..cbe0e32 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + A brief and practical introduction to \(\mathcal{H}_\infty\) Control @@ -30,56 +30,56 @@

Table of Contents

@@ -103,33 +103,33 @@ When possible, Matlab scripts used for the example/exercises are provided such t The general structure of this document is as follows:

-
-

1 Introduction to Model Based Control

+
+

1 Introduction to Model Based Control

- +

-
-

1.1 Model Based Control - Methodology

+
+

1.1 Model Based Control - Methodology

- +

-The typical methodology for Model Based Control techniques is schematically shown in Figure 1. +The typical methodology for Model Based Control techniques is schematically shown in Figure 1.

@@ -146,7 +146,7 @@ It consists of three steps: -

+

control-procedure.png

Figure 1: Typical Methodoly for Model Based Control

@@ -158,20 +158,20 @@ In this document, we will suppose a model of the plant is available (step 1 alre

-In Section 2, steps 2 and 3 will be described for a control techniques called classical (open-)loop shaping. +In Section 2, steps 2 and 3 will be described for a control techniques called classical (open-)loop shaping.

-Then, steps 2 and 3 for the \(\mathcal{H}_\infty\) Loop Shaping of closed-loop transfer functions will be discussed in Sections 4, 5 and 6. +Then, steps 2 and 3 for the \(\mathcal{H}_\infty\) Loop Shaping of closed-loop transfer functions will be discussed in Sections 4, 5 and 6.

-
-

1.2 From Classical Control to Robust Control

+
+

1.2 From Classical Control to Robust Control

- +

@@ -203,14 +203,14 @@ This robust control theory is the subject of this document.

-The three presented control methods are compared in Table 1. +The three presented control methods are compared in Table 1.

Note that in parallel, there have been numerous other developments, including non-linear control, adaptive control, machine-learning control just to name a few.

- +
@@ -358,11 +358,11 @@ Note that in parallel, there have been numerous other developments, including no -
-

1.3 Example System

+
+

1.3 Example System

- +

@@ -371,24 +371,24 @@ Most of them will be applied on a physical system presented in this section.

-This system is shown in Figure 2. +This system is shown in Figure 2. It could represent an active suspension stage supporting a payload. The inertial motion of the payload is measured using an inertial sensor and this is feedback to a force actuator. Such system could be used to actively isolate the payload (disturbance rejection problem) or to make it follow a trajectory (tracking problem).

-The notations used on Figure 2 are listed and described in Table 2. +The notations used on Figure 2 are listed and described in Table 2.

-
+

mech_sys_1dof_inertial_contr.png

Figure 2: Test System consisting of a payload with a mass \(m\) on top of an active system with a stiffness \(k\), damping \(c\) and an actuator. A feedback controller \(K(s)\) is added to position / isolate the payload.

-
Table 1: Table summurazing the main differences between classical, modern and robust control
+
@@ -474,7 +474,7 @@ The notations used on Figure 2 are listed and describe
Table 2: Example system variables
-
+

Derive the following open-loop transfer functions:

@@ -507,14 +507,14 @@ You can follow this generic procedure:

-Having obtained \(G(s)\) and \(G_d(s)\), we can transform the system shown in Figure 2 into a classical feedback architecture as shown in Figure 6. +Having obtained \(G(s)\) and \(G_d(s)\), we can transform the system shown in Figure 2 into a classical feedback architecture as shown in Figure 6.

-
+

classical_feedback_test_system.png

-

Figure 3: Block diagram corresponding to the example system of Figure 2

+

Figure 3: Block diagram corresponding to the example system of Figure 2

@@ -538,18 +538,18 @@ And now the system dynamics \(G(s)\) and \(G_d(s)\).

-The Bode plots of \(G(s)\) and \(G_d(s)\) are shown in Figures 4 and 5. +The Bode plots of \(G(s)\) and \(G_d(s)\) are shown in Figures 4 and 5.

-
+

bode_plot_example_afm.png

Figure 4: Bode plot of the plant \(G(s)\)

-
+

bode_plot_example_Gd.png

Figure 5: Magnitude of the disturbance transfer function \(G_d(s)\)

@@ -558,40 +558,40 @@ The Bode plots of \(G(s)\) and \(G_d(s)\) are shown in Figures -

2 Classical Open Loop Shaping

+
+

2 Classical Open Loop Shaping

- +

-After an introduction to classical Loop Shaping in Section 2.1, a practical example is given in Section 2.2. +After an introduction to classical Loop Shaping in Section 2.1, a practical example is given in Section 2.2. Such Loop Shaping is usually performed manually with tools coming from the classical control theory.

However, the \(\mathcal{H}_\infty\) synthesis can be used to automate the Loop Shaping process. -This is presented in Section 2.3 and applied on the same example in Section 2.4. +This is presented in Section 2.3 and applied on the same example in Section 2.4.

-
-

2.1 Introduction to Loop Shaping

+
+

2.1 Introduction to Loop Shaping

- +

-
+

Loop Shaping refers to a control design procedure that involves explicitly shaping the magnitude of the Loop Transfer Function \(L(s)\).

-
+

-The Loop Gain (or Loop transfer function) \(L(s)\) usually refers to as the product of the controller and the plant (see Figure 6): +The Loop Gain (or Loop transfer function) \(L(s)\) usually refers to as the product of the controller and the plant (see Figure 6):

\begin{equation} L(s) = G(s) \cdot K(s) \label{eq:loop_gain} @@ -602,7 +602,7 @@ Its name comes from the fact that this is actually the “gain around the lo

-
+

open_loop_shaping.png

Figure 6: Classical Feedback Architecture

@@ -626,12 +626,12 @@ It is widely used and generally successful as many characteristics of the closed

The shaping of the Loop Gain is done manually by combining several leads, lags, notches… This process is very much simplified by the fact that the loop gain \(L(s)\) depends linearly on \(K(s)\) \eqref{eq:loop_gain}. -A typical wanted Loop Shape is shown in Figure 7. +A typical wanted Loop Shape is shown in Figure 7. Another interesting Loop shape called “Bode Step” is described in [1].

-
+

open_loop_shaping_shape.png

Figure 7: Typical Wanted Shape for the Loop Gain \(L(s)\)

@@ -640,21 +640,21 @@ Another interesting Loop shape called “Bode Step” is described in The shaping of closed-loop transfer functions is obviously not as simple as they don’t depend linearly on \(K(s)\). But this is were the \(\mathcal{H}_\infty\) Synthesis will be useful! -More details on that in Sections 4 and 5. +More details on that in Sections 4 and 5.

-
-

2.2 Example of Manual Open Loop Shaping

+
+

2.2 Example of Manual Open Loop Shaping

- +

-
+

-Let’s take our example system described in Section 1.3 and design a controller using the Open-Loop shaping synthesis approach. +Let’s take our example system described in Section 1.3 and design a controller using the Open-Loop shaping synthesis approach. The specifications are:

    @@ -666,7 +666,7 @@ The specifications are:
-
+

Using SISOTOOL, design a controller that fulfills the specifications.

@@ -705,7 +705,7 @@ Let’s say we came up with the following controller.

-The bode plot of the Loop Gain is shown in Figure 8 and we can verify that we have the wanted stability margins using the margin command: +The bode plot of the Loop Gain is shown in Figure 8 and we can verify that we have the wanted stability margins using the margin command:

[Gm, Pm, ~, Wc] = margin(G*K)
@@ -745,7 +745,7 @@ The bode plot of the Loop Gain is shown in Figure 8 an
 
 
 
-
+

loop_gain_manual_afm.png

Figure 8: Bode Plot of the obtained Loop Gain \(L(s) = G(s) K(s)\)

@@ -753,11 +753,11 @@ The bode plot of the Loop Gain is shown in Figure 8 an
-
-

2.3 \(\mathcal{H}_\infty\) Loop Shaping Synthesis

+
+

2.3 \(\mathcal{H}_\infty\) Loop Shaping Synthesis

- +

@@ -780,7 +780,7 @@ where:

  • K is the synthesize controller
  • -
    +

    Matlab documentation of loopsyn (link).

    @@ -797,23 +797,23 @@ Even though we will not go into details and explain how such synthesis is workin
    -
    -

    2.4 Example of the \(\mathcal{H}_\infty\) Loop Shaping Synthesis

    +
    +

    2.4 Example of the \(\mathcal{H}_\infty\) Loop Shaping Synthesis

    - +

    To apply the \(\mathcal{H}_\infty\) Loop Shaping Synthesis, the wanted shape of the loop gain should be determined from the specifications. -This is summarized in Table 3. +This is summarized in Table 3.

    -Such shape corresponds to the typical wanted Loop gain Shape shown in Figure 7. +Such shape corresponds to the typical wanted Loop gain Shape shown in Figure 7.

    - +
    @@ -882,18 +882,18 @@ The \(\mathcal{H}_\infty\) open loop shaping synthesis is then performed using t

    -The obtained Loop Gain is shown in Figure 9 and matches the specified one by a factor \(\gamma \approx 2\). +The obtained Loop Gain is shown in Figure 9 and matches the specified one by a factor \(\gamma \approx 2\).

    -
    +

    open_loop_shaping_hinf_L.png

    Figure 9: Obtained Open Loop Gain \(L(s) = G(s) K(s)\) and comparison with the wanted Loop gain \(L_w\)

    -
    +

    When using the \(\mathcal{H}_\infty\) Synthesis, it is usually recommended to analyze the obtained controller.

    @@ -905,7 +905,7 @@ This is usually done by breaking down the controller into simple elements such a

    -Let’s briefly analyze the obtained controller which bode plot is shown in Figure 10: +Let’s briefly analyze the obtained controller which bode plot is shown in Figure 10:

    • two integrators are used at low frequency to have the wanted low frequency high gain
    • @@ -914,7 +914,7 @@ Let’s briefly analyze the obtained controller which bode plot is shown in
    -
    +

    open_loop_shaping_hinf_K.png

    Figure 10: Obtained controller \(K\) using the open-loop \(\mathcal{H}_\infty\) shaping

    @@ -922,10 +922,10 @@ Let’s briefly analyze the obtained controller which bode plot is shown in

    -Let’s finally compare the obtained stability margins of the \(\mathcal{H}_\infty\) controller and of the manually developed controller in Table 4. +Let’s finally compare the obtained stability margins of the \(\mathcal{H}_\infty\) controller and of the manually developed controller in Table 4.

    -
    Table 3: Wanted Loop Shape corresponding to each specification
    +
    @@ -966,38 +966,47 @@ Let’s finally compare the obtained stability margins of the \(\mathcal{H}_ -
    -

    3 A first Step into the \(\mathcal{H}_\infty\) world

    +
    +

    3 A first Step into the \(\mathcal{H}_\infty\) world

    - + +

    +

    +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. +

    + +

    +After the \(\mathcal{H}_\infty\) norm is defined in Section 3.1, the \(\mathcal{H}_\infty\) synthesis procedure is described in Section 3.2 . +

    + +

    +The generalized plant, a very useful tool to describe a control problem, is presented in Section 3.3. +The \(\mathcal{H}_\infty\) is then applied to this generalized plant in Section 3.4. +

    + +

    +Finally, an example showing how to convert a typical feedback control architecture into a generalized plant is given in Section 3.5.

    -
    -
    -

    3.1 The \(\mathcal{H}_\infty\) Norm

    +
    +

    3.1 The \(\mathcal{H}_\infty\) Norm

    - +

    -
    +

    -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} \|G(s)\|_\infty = \max_\omega \bar{\sigma}\big( G(j\omega) \big) \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} \|G(s)\|_\infty = \max_{\omega} |G(j\omega)| \label{eq:hinf_norm_siso} @@ -1005,7 +1014,7 @@ For a SISO system \(G(s)\), it is simply the peak value of \(|G(j\omega)|\) as a
    -
    +

    Let’s compute the \(\mathcal{H}_\infty\) norm of our test plant \(G(s)\) using the hinfnorm function:

    @@ -1020,11 +1029,11 @@ Let’s compute the \(\mathcal{H}_\infty\) norm of our test plant \(G(s)\) u

    -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 11. +We can see in Figure 11 that indeed, the \(\mathcal{H}_\infty\) norm of \(G(s)\) does corresponds to the peak value of \(|G(j\omega)|\).

    -
    +

    hinfinity_norm_siso_bode.png

    Figure 11: Example of the \(\mathcal{H}_\infty\) norm of a SISO system

    @@ -1034,35 +1043,39 @@ We can see that the \(\mathcal{H}_\infty\) norm of \(G(s)\) does corresponds to
    -
    -

    3.2 \(\mathcal{H}_\infty\) Synthesis

    +
    +

    3.2 \(\mathcal{H}_\infty\) Synthesis

    - +

    -
    +

    -\(\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.

    -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 4.

    - +

    -Then applying the \(\mathcal{H}_\infty\) synthesis to a plant, the engineer work usually consists of the following steps +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
    2. -
    3. Translate the specifications as \(\mathcal{H}_\infty\) norms of transfer functions
    4. -
    5. Make the synthesis and analyze the obtain controller
    6. -
    7. Reduce the order of the controller for implementation
    8. +
    9. Write the problem as standard \(\mathcal{H}_\infty\) problem using the generalized plant (described in the next section)
    10. +
    11. Translate the specifications as \(\mathcal{H}_\infty\) norms of transfer functions (Section 4)
    12. +
    13. Make the synthesis and analyze the obtained controller
    +

    +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. +

    + +

    Note that there are many ways to use the \(\mathcal{H}_\infty\) Synthesis: @@ -1077,43 +1090,43 @@ Note that there are many ways to use the \(\mathcal{H}_\infty\) Synthesis:

    -
    -

    3.3 The Generalized Plant

    +
    +

    3.3 The Generalized Plant

    - +

    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. -It makes things much easier for the following steps.

    -The generalized plant, usually noted \(P(s)\), is shown in Figure 12. -It has two inputs and two outputs (both could contains many signals). -The meaning of the inputs and outputs are summarized in Table 5. +The generalized plant, usually noted \(P(s)\), is shown in Figure 12. +It has two sets of inputs \([w,\,u]\) and two sets of outputs \([z\,v]\) such that:

    - -

    -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{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} +

    +The meaning of these inputs and outputs are summarized in Table 5. +

    -
    +

    +A practical example about how to derive the generalized plant for a classical control problem is given in Section 3.5. +

    + +
    + +

    general_plant.png

    Figure 12: Inputs and Outputs of the generalized Plant

    -
    -
    Table 4: Comparison of the characteristics obtained with the two methods
    +
    @@ -1159,44 +1172,41 @@ It can indeed represent feedback as well as feedforward control architectures. -
    -

    3.4 The \(\mathcal{H}_\infty\) Synthesis applied on the Generalized plant

    +
    +

    3.4 The \(\mathcal{H}_\infty\) Synthesis applied on the Generalized plant

    - +

    Once the generalized plant is obtained, the \(\mathcal{H}_\infty\) synthesis problem can be stated as follows:

    -
    +
    \(\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.

    -
    +

    +The obtained controller \(K\) and the generalized plant are connected as shown in Figure 13. +

    -
    +

    general_control_names.png

    Figure 13: General Control Configuration

    -

    -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 (documentation): @@ -1212,34 +1222,42 @@ where:

  • P is the generalized plant transfer function matrix
  • nmeas is the number of sensed output (size of \(v\))
  • 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 13, as its name implies, is quite general and can represent feedback control as well as feedforward control architectures. +

    -
    -

    3.5 From a Classical Feedback Architecture to a Generalized Plant

    +
    +

    3.5 From a Classical Feedback Architecture to a Generalized Plant

    - +

    -The procedure to convert a typical control architecture as the one shown in Figure 14 to a generalized Plant is as follows: +The procedure to convert a typical control architecture as the one shown in Figure 14 to a generalized Plant is as follows:

      -
    1. Define signals (\(w\), \(z\), \(u\) and \(v\)) of the generalized plant
    2. -
    3. Remove \(K\) and rearrange the inputs and outputs to match the generalized configuration shown in Figure 12
    4. +
    5. Define signals of the generalized plant: \(w\), \(z\), \(u\) and \(v\)
    6. +
    7. Remove \(K\) and rearrange the inputs and outputs to match the generalized configuration shown in Figure 12
    -
    +
    +

    +Consider the feedback control architecture shown in Figure 14. +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 tracking control architecture shown in Figure 14 to a generalized configuration
    2. -
    3. Compute the transfer function matrix using Matlab as a function or \(K\) and \(G\)
    4. +
    5. Convert the control architecture to a generalized configuration
    6. +
    7. Compute the transfer function matrix of the generalized plant \(P\) using Matlab as a function or \(K\) and \(G\)
    -
    +

    classical_feedback_tracking.png

    Figure 14: Classical Feedback Control Architecture (Tracking)

    @@ -1258,17 +1276,17 @@ Usually, we want to minimize the tracking errors \(\epsilon\) and the control si

    -Then, Remove \(K\) and rearrange the inputs and outputs as in Figure 12. +Then, Remove \(K\) and rearrange the inputs and outputs as in Figure 12.

    Answer

    -The obtained generalized plant shown in Figure 15. +The obtained generalized plant shown in Figure 15.

    -
    +

    mixed_sensitivity_ref_tracking.png

    Figure 15: Generalized plant of the Classical Feedback Control Architecture (Tracking)

    @@ -1292,21 +1310,21 @@ P.OutputName = {'e', 'u
    -
    -

    4 Modern Interpretation of Control Specifications

    +
    +

    4 Modern Interpretation of Control Specifications

    - +

    -As shown in Section 2, the loop gain \(L(s) = G(s) K(s)\) is a useful and easy tool when manually designing controllers. +As shown in Section 2, the loop gain \(L(s) = G(s) K(s)\) is a useful and easy tool when manually designing controllers. This is mainly due to the fact that \(L(s)\) is very easy to shape as it depends linearly on \(K(s)\). Moreover, important quantities such as the stability margins and the control bandwidth can be estimated from the shape/phase of \(L(s)\).

    @@ -1316,11 +1334,11 @@ However, the loop gain \(L(s)\) does not directly give the performances o

    -If we consider the feedback system shown in Figure 16, we can link to the following specifications to closed-loop transfer functions. -This is summarized in Table 6. +If we consider the feedback system shown in Figure 16, we can link to the following specifications to closed-loop transfer functions. +This is summarized in Table 6.

    -
    Table 5: Notations for the general configuration
    +
    @@ -1362,33 +1380,33 @@ This is summarized in Table 6. - +
    Table 6: Typical Specification and associated closed-loop transfer function
    Robustness (stability margins)Module margin (see Section 4.3)Module margin (see Section 4.3)
    -
    +

    gang_of_four_feedback.png

    Figure 16: Simple Feedback Architecture

    -
    -

    4.1 Closed Loop Transfer Functions

    +
    +

    4.1 Closed Loop Transfer Functions

    - +

    As the performances of a controlled system depend on the closed loop transfer functions, it is very important to derive these closed-loop transfer functions as a function of the plant \(G(s)\) and controller \(K(s)\).

    -
    +

    -Write the output signals \([\epsilon, u, y]\) as a function of the systems \(K(s), G(s)\) and of the input signals \([r, d, n]\) as shown in Figure 16. +Write the output signals \([\epsilon, u, y]\) as a function of the systems \(K(s), G(s)\) and of the input signals \([r, d, n]\) as shown in Figure 16.

    Hint @@ -1425,9 +1443,9 @@ The following equations should be obtained:
    -
    +

    -We can see that they are 4 different transfer functions describing the behavior of the system in Figure 16. +We can see that they are 4 different transfer functions describing the behavior of the system in Figure 16. These called the Gang of Four:

    \begin{align} @@ -1439,7 +1457,7 @@ These called the Gang of Four:
    -
    +

    If a feedforward controller is included, a Gang of Six transfer functions can be defined. More on that in this short video. @@ -1463,11 +1481,11 @@ Similarly, to reduce the effect of measurement noise \(n\) on the output \(y\),

    -
    -

    4.2 Sensitivity Function

    +
    +

    4.2 Sensitivity Function

    - +

    @@ -1478,14 +1496,14 @@ In this section, we will see how the shape of the sensitivity function will impa

    Suppose we have developed a “reference” controller \(K_r(s)\) and made three small changes to obtained three controllers \(K_1(s)\), \(K_2(s)\) and \(K_3(s)\). -The obtained sensitivity functions are shown in Figure 17 and the corresponding step responses are shown in Figure 18. +The obtained sensitivity functions are shown in Figure 17 and the corresponding step responses are shown in Figure 18.

    -The comparison of the sensitivity functions shapes and their effect on the step response is summarized in Table 7. +The comparison of the sensitivity functions shapes and their effect on the step response is summarized in Table 7.

    - +
    @@ -1524,20 +1542,20 @@ The comparison of the sensitivity functions shapes and their effect on the step
    Table 7: Comparison of the sensitivity function shape and the corresponding step response for the three controller variations
    -
    +

    sensitivity_shape_effect.png

    Figure 17: Sensitivity function magnitude \(|S(j\omega)|\) corresponding to the reference controller \(K_r(s)\) and the three modified controllers \(K_i(s)\)

    -
    +

    sensitivity_shape_effect_step.png

    Figure 18: Step response (response from \(r\) to \(y\)) for the different controllers

    -
    +
    Closed-Loop Bandwidth

    The closed-loop bandwidth \(\omega_b\) is the frequency where \(|S(j\omega)|\) first crosses \(1/\sqrt{2} = -3dB\) from below. @@ -1550,9 +1568,9 @@ In general, a large bandwidth corresponds to a faster rise time.

    -
    +

    -From the simple analysis above, we can draw a first estimation of the wanted shape for the sensitivity function in Figure 19. +From the simple analysis above, we can draw a first estimation of the wanted shape for the sensitivity function in Figure 19.

    @@ -1567,7 +1585,7 @@ This will become clear in the next section about the module margin. -

    +

    h-infinity-spec-S.png

    Figure 19: Typical wanted shape of the Sensitivity transfer function

    @@ -1577,18 +1595,18 @@ This will become clear in the next section about the module margin.
    -
    -

    4.3 Robustness: Module Margin

    +
    +

    4.3 Robustness: Module Margin

    - +

    Let’s start by an example demonstrating why the phase and gain margins might not be good indicators of robustness.

    -
    +

    Let’s consider the following plant \(G_t(s)\):

    @@ -1602,7 +1620,7 @@ Gt = 1/k*(s

    -Let’s say we have designed a controller \(K_t(s)\) that gives the loop gain shown in Figure 20. +Let’s say we have designed a controller \(K_t(s)\) that gives the loop gain shown in Figure 20.

    @@ -1611,7 +1629,7 @@ Let’s say we have designed a controller \(K_t(s)\) that gives the loop gai

    -The following characteristics can be determined from Figure 20: +The following characteristics can be determined from Figure 20:

    • bandwidth of \(\approx 10\, \text{Hz}\)
    • @@ -1624,7 +1642,7 @@ This might indicate very good robustness properties of the closed-loop system.

      -
      +

      phase_gain_margin_model_plant.png

      Figure 20: Bode plot of the obtained Loop Gain \(L(s)\)

      @@ -1640,7 +1658,7 @@ Now let’s suppose the “real” plant \(G_r(s)\) as a slightly lo

      -The obtained “real” loop gain is shown in Figure 21. +The obtained “real” loop gain is shown in Figure 21. At a frequency little bit above 100Hz, the phase of the loop gain reaches -180 degrees while its magnitude is more than one which indicated instability.

      @@ -1658,7 +1676,7 @@ It is confirmed by checking the stability of the closed loop system: -
      +

      phase_gain_margin_real_plant.png

      Figure 21: Bode plots of \(L(s)\) (loop gain corresponding the nominal plant) and \(L_r(s)\) (loop gain corresponding to the real plant)

      @@ -1678,7 +1696,7 @@ This is due to the fact that the gain and phase margin are robustness indicators Let’s now determine a new robustness indicator based on the Nyquist Stability Criteria.

      -
      +
      Nyquist Stability Criteria (for stable systems)
      If the open-loop transfer function \(L(s)\) is stable, then the closed-loop system is unstable for any encirclement of the point \(−1\) on the Nyquist plot.
      @@ -1687,7 +1705,7 @@ Let’s now determine a new robustness indicator based on the Nyquist Stabil
      -
      +

      For more information about the general Nyquist Stability Criteria, you may want to look at this video.

      @@ -1699,21 +1717,21 @@ From the Nyquist stability criteria, it is clear that we want \(L(j\omega)\) to This minimum distance is called the module margin.

      -
      +
      Module Margin
      The Module Margin \(\Delta M\) is defined as the minimum distance between the point \(-1\) and the loop gain \(L(j\omega)\) in the complex plane.
      -
      +

      -A typical Nyquist plot is shown in Figure 22. +A typical Nyquist plot is shown in Figure 22. The gain, phase and module margins are graphically shown to have an idea of what they represent.

      -
      +

      module_margin_example.png

      Figure 22: Nyquist plot with visual indication of the Gain margin \(\Delta G\), Phase margin \(\Delta \phi\) and Module margin \(\Delta M\)

      @@ -1722,7 +1740,7 @@ The gain, phase and module margins are graphically shown to have an idea of what

      -As expected from Figure 22, there is a close relationship between the module margin and the gain and phase margins. +As expected from Figure 22, there is a close relationship between the module margin and the gain and phase margins. We can indeed show that for a given value of the module margin \(\Delta M\), we have:

      \begin{equation} @@ -1741,7 +1759,7 @@ Let’s now try to express the Module margin \(\Delta M\) as an \(\mathcal{H &= \frac{1}{\|S\|_\infty} \end{align*} -
      +

      The \(\mathcal{H}_\infty\) norm of the sensitivity function \(\|S\|_\infty\) is a measure of the Module margin \(\Delta M\) and therefore an indicator of the system robustness.

      @@ -1761,14 +1779,14 @@ Note that this is why large peak value of \(|S(j\omega)|\) usually indicate robu And we know understand why setting an upper bound on the magnitude of \(S\) is generally a good idea.

      -
      +

      Typical, we require \(\|S\|_\infty < 2 (6dB)\) which implies \(\Delta G \ge 2\) and \(\Delta \phi \ge 29^o\)

      -
      +

      To learn more about module/disk margin, you can check out this video.

      @@ -1777,11 +1795,11 @@ To learn more about module/disk margin, you can check out -

      4.4 Other Requirements

      +
      +

      4.4 Other Requirements

      - +

      @@ -1810,7 +1828,7 @@ with: Noise Attenuation: typical wanted shape for \(T\)

      - +
      @@ -1863,11 +1881,11 @@ Noise Attenuation: typical wanted shape for \(T\) -
      -

      5 \(\mathcal{H}_\infty\) Shaping of closed-loop transfer functions

      +
      +

      5 \(\mathcal{H}_\infty\) Shaping of closed-loop transfer functions

      - +

      In the previous sections, we have seen that the performances of the system depends on the shape of the closed-loop transfer function. @@ -1884,22 +1902,22 @@ But don’t worry, the \(\mathcal{H}_\infty\) synthesis will do this job for

      This -Section 5.1 -Section 5.2 -Section 5.3 -Section 5.4 +Section 5.1 +Section 5.2 +Section 5.3 +Section 5.4

      -
      -

      5.1 How to Shape closed-loop transfer function? Using Weighting Functions!

      +
      +

      5.1 How to Shape closed-loop transfer function? Using Weighting Functions!

      - +

      -If the \(\mathcal{H}_\infty\) synthesis is applied on the generalized plant \(P(s)\) shown in Figure 23, it will generate a controller \(K(s)\) such that the \(\mathcal{H}_\infty\) norm of closed-loop transfer function from \(r\) to \(\epsilon\) is minimized. +If the \(\mathcal{H}_\infty\) synthesis is applied on the generalized plant \(P(s)\) shown in Figure 23, it will generate a controller \(K(s)\) such that the \(\mathcal{H}_\infty\) norm of closed-loop transfer function from \(r\) to \(\epsilon\) is minimized. This closed-loop transfer function actually correspond to the sensitivity function. Therefore, it will minimize the the \(\mathcal{H}_\infty\) norm of the sensitivity function: \(\|S\|_\infty\).

      @@ -1909,16 +1927,16 @@ However, as the \(\mathcal{H}_\infty\) norm is the maximum peak value of the tra

      -
      +

      loop_shaping_S_without_W.png

      Figure 23: Generalized Plant

      -
      +

      -The trick is to include a weighting function \(W_S(s)\) in the generalized plant as shown in Figure 24. +The trick is to include a weighting function \(W_S(s)\) in the generalized plant as shown in Figure 24.

      @@ -1936,7 +1954,7 @@ Let’s now show how this is equivalent as shaping the sensitivity fu \Leftrightarrow & \left| S(j\omega) \right| < \frac{1}{\left| W_s(j\omega) \right|} \quad \forall \omega \label{eq:sensitivity_shaping} \end{align} -

      +

      As shown in Equation \eqref{eq:sensitivity_shaping}, the \(\mathcal{H}_\infty\) synthesis applying on the weighted generalized plant allows to shape the magnitude of the sensitivity transfer function.

      @@ -1948,15 +1966,15 @@ Therefore, the choice of the weighting function \(W_s(s)\) is very important: it
      -
      +

      loop_shaping_S_with_W.png

      Figure 24: Weighted Generalized Plant

      -
      +

      -Using matlab, compute the weighted generalized plant shown in Figure 25 as a function of \(G(s)\) and \(W_S(s)\). +Using matlab, compute the weighted generalized plant shown in Figure 25 as a function of \(G(s)\) and \(W_S(s)\).

      Hint @@ -1994,18 +2012,18 @@ The second solution is however more general, and can also be used when weights a
      -
      -

      5.2 Design of Weighting Functions

      +
      +

      5.2 Design of Weighting Functions

      - +

      Weighting function included in the generalized plant must be proper, stable and minimum phase transfer functions.

      -
      +
      proper
      more poles than zeros, this implies \(\lim_{\omega \to \infty} |W(j\omega)| < \infty\)
      stable
      no poles in the right half plane
      @@ -2030,9 +2048,9 @@ with:
    • hfgain: high frequency gain
    • -
      +

      -The Matlab code below produces a weighting function with the following characteristics (Figure 25): +The Matlab code below produces a weighting function with the following characteristics (Figure 25):

      • Low frequency gain of 100
      • @@ -2046,7 +2064,7 @@ The Matlab code below produces a weighting function with the following character
      -
      +

      first_order_weight.png

      Figure 25: Obtained Magnitude of the Weighting Function

      @@ -2054,7 +2072,7 @@ The Matlab code below produces a weighting function with the following character
      -
      +

      Quite often, higher orders weights are required.

      @@ -2086,7 +2104,7 @@ A Matlab function implementing Equation \eqref{eq:weight_formula_advanced} is sh

      -
      function [W] = generateWeight(args)
      +
      function [W] = generateWeight(args)
           arguments
               args.G0 (1,1) double {mustBeNumeric, mustBePositive} = 0.1
               args.G1 (1,1) double {mustBeNumeric, mustBePositive} = 10
      @@ -2121,11 +2139,11 @@ W3 = generateWeight('G0', 1e2, 26.
      +The obtained shapes are shown in Figure 26.
       

      -
      +

      high_order_weight.png

      Figure 26: Higher order weights using Equation \eqref{eq:weight_formula_advanced}

      @@ -2135,11 +2153,11 @@ The obtained shapes are shown in Figure 26.
      -
      -

      5.3 Shaping the Sensitivity Function

      +
      +

      5.3 Shaping the Sensitivity Function

      - +

      @@ -2152,17 +2170,17 @@ Let’s design a controller using the \(\mathcal{H}_\infty\) synthesis that

      -As usual, the plant used is the one presented in Section 1.3. +As usual, the plant used is the one presented in Section 1.3.

      -
      +

      Translate the requirements as upper bounds on the Sensitivity function and design the corresponding Weight using Matlab.

      Hint

      -The typical wanted upper bound of the sensitivity function is shown in Figure 27. +The typical wanted upper bound of the sensitivity function is shown in Figure 27.

      @@ -2180,7 +2198,7 @@ Remember that the wanted upper bound of the sensitivity function is defined by t

      -
      +

      h-infinity-spec-S.png

      Figure 27: Typical wanted shape of the Sensitivity transfer function

      @@ -2245,7 +2263,7 @@ And the \(\mathcal{H}_\infty\) synthesis is performed on the weighted gen
      -
      +
       Test bounds:  0.5 <=  gamma  <=  0.51
       
        gamma        X>=0        Y>=0       rho(XY)<1    p/f
      @@ -2266,10 +2284,10 @@ Best performance (actual): 0.503
       \end{aligned}
       
       

      -This is indeed what we can see by comparing \(|S|\) and \(|W_S|\) in Figure 28. +This is indeed what we can see by comparing \(|S|\) and \(|W_S|\) in Figure 28.

      -
      +

      Having \(\gamma < 1\) means that the \(\mathcal{H}_\infty\) synthesis found a controller such that the specified closed-loop transfer functions are bellow the specified upper bounds.

      @@ -2282,7 +2300,7 @@ It just means that at some frequency, one of the closed-loop transfer functions
      -
      +

      results_sensitivity_hinf.png

      Figure 28: Weighting function and obtained closed-loop sensitivity

      @@ -2290,16 +2308,16 @@ It just means that at some frequency, one of the closed-loop transfer functions
      -
      -

      5.4 Shaping multiple closed-loop transfer functions

      +
      +

      5.4 Shaping multiple closed-loop transfer functions

      - +

      -As was shown in Section 4, depending on the specifications, up to four closed-loop transfer function may be shaped (the Gang of four). -This was summarized in Table 8. +As was shown in Section 4, depending on the specifications, up to four closed-loop transfer function may be shaped (the Gang of four). +This was summarized in Table 8.

      @@ -2307,7 +2325,7 @@ For instance to limit the control input \(u\), \(KS\) should be shaped while to

      -When multiple closed-loop transfer function are shaped at the same time, it is refereed to as “Mixed-Sensitivity \(\mathcal{H}_\infty\) Control” and is the subject of Section 6. +When multiple closed-loop transfer function are shaped at the same time, it is refereed to as “Mixed-Sensitivity \(\mathcal{H}_\infty\) Control” and is the subject of Section 6.

      @@ -2315,14 +2333,14 @@ Depending on the closed-loop transfer function being shaped, different general c

      Shaping of S and KS -
      +

      general_conf_shaping_S_KS.png

      Figure 29: Generalized Plant to shape \(S\) and \(KS\)

      -
      P = [W1 -G*W1
      +
      P = [W1 -G*W1
            0   W2
            1  -G];
       
      @@ -2335,14 +2353,14 @@ Depending on the closed-loop transfer function being shaped, different general c
      Shaping of S and T -
      +

      general_conf_shaping_S_T.png

      Figure 30: Generalized Plant to shape \(S\) and \(T\)

      -
      P = [W1 -G*W1
      +
      P = [W1 -G*W1
            0   G*W2
            1   -G];
       
      @@ -2355,14 +2373,14 @@ Depending on the closed-loop transfer function being shaped, different general c
      Shaping of S and GS -
      +

      general_conf_shaping_S_GS.png

      Figure 31: Generalized Plant to shape \(S\) and \(GS\)

      -
      P = [W1   -W1
      +
      P = [W1   -W1
            G*W2 -G*W2
            G    -G];
       
      @@ -2374,14 +2392,14 @@ Depending on the closed-loop transfer function being shaped, different general c
      Shaping of S, T and KS -
      +

      general_conf_shaping_S_T_KS.png

      Figure 32: Generalized Plant to shape \(S\), \(T\) and \(KS\)

      -
      P = [W1 -G*W1
      +
      P = [W1 -G*W1
            0   W2
            0   G*W3
            1   -G];
      @@ -2396,14 +2414,14 @@ Depending on the closed-loop transfer function being shaped, different general c
       
      Shaping of S, T and GS -
      +

      general_conf_shaping_S_T_GS.png

      Figure 33: Generalized Plant to shape \(S\), \(T\) and \(GS\)

      -
      P = [W1   -W1
      +
      P = [W1   -W1
            G*W2 -G*W2
            0     W3
            G    -G];
      @@ -2418,14 +2436,14 @@ Depending on the closed-loop transfer function being shaped, different general c
       
      Shaping of S, T, KS and GS -
      +

      general_conf_shaping_S_T_KS_GS.png

      Figure 34: Generalized Plant to shape \(S\), \(T\), \(KS\) and \(GS\)

      -
      P = [ W1  -W1*G*W3 -G*W1
      +
      P = [ W1  -W1*G*W3 -G*W1
             0    0        W2
             1   -G*W3    -G];
       
      @@ -2449,7 +2467,7 @@ When shaping multiple closed-loop transfer functions, one should be verify caref -
      +

      Mathematical relations are linking the closed-loop transfer functions. For instance, the sensitivity function \(S(s)\) and the complementary sensitivity function \(T(s)\) as link by the following well known relation: @@ -2482,7 +2500,7 @@ The control bandwidth is clearly limited by physical constrains such as sampling Similar relationship can be found for \(T\), \(KS\) and \(GS\).

      -
      +

      Determine the approximate norms of \(T\), \(KS\) and \(GS\) for large loop gains (\(|G(j\omega) K(j\omega)| \gg 1\)) and small loop gains (\(|G(j\omega) K(j\omega)| \ll 1\)).

      @@ -2500,7 +2518,7 @@ You can follows this procedure for \(T\), \(KS\) and \(GS\):
      Answer

      -The obtained constrains are shown in Figure 35. +The obtained constrains are shown in Figure 35.

      @@ -2513,17 +2531,17 @@ However, in some frequency bands, the norms do not depend on the controller and

      Therefore the weighting functions should only focus on certainty frequency range depending on the transfer function being shaped. -These regions are summarized in Figure 35. +These regions are summarized in Figure 35.

      -
      +

      h-infinity-4-blocs-constrains.png

      Figure 35: Shaping the Gang of Four: Limitations

      -
      +

      The order (resp. number of state) of the controller given by the \(\mathcal{H}_\infty\) synthesis is equal to the order (resp. number of state) of the weighted generalized plant. It is thus equal to the sum of the number of state of the non-weighted generalized plant and the number of state of all the weighting functions. @@ -2542,16 +2560,16 @@ Two approaches can be used to obtain controllers with reasonable order:

      -
      -

      6 Mixed-Sensitivity \(\mathcal{H}_\infty\) Control - Example

      +
      +

      6 Mixed-Sensitivity \(\mathcal{H}_\infty\) Control - Example

      - +

      -
      -

      6.1 Control Problem

      +
      +

      6.1 Control Problem

      • [ ] Control Diagram
      • @@ -2604,8 +2622,8 @@ d(t>0.5) = 5e-4;
      -
      -

      6.2 Control Design Procedure

      +
      +

      6.2 Control Design Procedure

      Table 8: Typical Specifications and corresponding wanted norms of open and closed loop tansfer functions
      @@ -2652,7 +2670,7 @@ d(t>0.5) = 5e-4;
      -
      +

      mixed_sensitivity_control_schematic.png

      Figure 36: Generalized Plant used for the Mixed Sensitivity Synthesis

      @@ -2674,11 +2692,11 @@ d(t>0.5) = 5e-4;
      -
      -

      6.3 Step 1 - Shaping of \(S\)

      +
      +

      6.3 Step 1 - Shaping of \(S\)

      - +

      @@ -2710,7 +2728,7 @@ W3 = tf(0.1);

    -
    +
     K1 = hinfsyn(Pw, 1, 1, 'Display', 'on');
     
       Test bounds:  0.5 <=  gamma  <=  0.552
    @@ -2771,11 +2789,11 @@ xlabel('Time [s]'); ylabel(
    -

    6.4 Step 2 - Shaping of \(KS\)

    +
    +

    6.4 Step 2 - Shaping of \(KS\)

    - +

    @@ -2796,7 +2814,7 @@ xlabel('Time [s]'); ylabel( +
     K1 = hinfsyn(Pw, 1, 1, 'Display', 'on');
     
       Test bounds:  0.51 <=  gamma  <=  1.2
    @@ -2855,11 +2873,11 @@ xlabel('Time [s]'); ylabel(
    -

    6.5 Step 3 - Shaping of \(T\)

    +
    +

    6.5 Step 3 - Shaping of \(T\)

    - +

    @@ -2880,7 +2898,7 @@ xlabel('Time [s]'); ylabel( +
     K3 = hinfsyn(Pw, 1, 1, 'Display', 'on');
     
       Test bounds:  0.578 <=  gamma  <=  1.66
    @@ -2942,18 +2960,18 @@ xlabel('Time [s]'); ylabel(
    -

    7 Conclusion

    +
    +

    7 Conclusion

    - +

    -
    -

    Resources

    -
    +
    +

    Resources

    +

    @@ -2973,7 +2991,7 @@ xlabel('Time [s]'); ylabel(

    Author: Dehaeze Thomas

    -

    Created: 2020-12-02 mer. 19:00

    +

    Created: 2020-12-02 mer. 19:53

    diff --git a/index.org b/index.org index 89b3e5b..cd56204 100644 --- a/index.org +++ b/index.org @@ -819,23 +819,25 @@ Let's finally compare the obtained stability margins of the $\mathcal{H}_\infty$ <> ** 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]] -- Section [[sec:h_infinity_synthesis]] -- Section [[sec:generalized_plant]] -- Section [[sec:h_infinity_general_synthesis]] -- Section [[sec:generalized_plant_derivation]] +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]] . + +The generalized plant, a very useful tool to describe a control problem, is presented in Section [[sec:generalized_plant]]. +The $\mathcal{H}_\infty$ is then applied to this generalized plant in Section [[sec:h_infinity_general_synthesis]]. + +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 <> #+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} \|G(s)\|_\infty = \max_\omega \bar{\sigma}\big( G(j\omega) \big) \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} \|G(s)\|_\infty = \max_{\omega} |G(j\omega)| \label{eq:hinf_norm_siso} \end{equation} @@ -850,7 +852,7 @@ Let's compute the $\mathcal{H}_\infty$ norm of our test plant $G(s)$ using the = #+RESULTS: : 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 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 <> #+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 -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 -1. Write the problem as standard $\mathcal{H}_\infty$ problem -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 - +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. +#+end_important 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]]) @@ -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. 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]]. -It has two inputs and two outputs (both could contains many signals). -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. - +It has two /sets/ of inputs $[w,\,u]$ and two /sets/ of outputs $[z\,v]$ such that: \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} +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{tikzpicture} \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_src +#+begin_important #+name: fig:general_plant #+caption: Inputs and Outputs of the generalized Plant #+RESULTS: [[file:figs/general_plant.png]] -#+begin_important #+name: tab:notation_general #+caption: Notations for the general configuration | Notation | Meaning | @@ -961,10 +962,11 @@ Once the generalized plant is obtained, the $\mathcal{H}_\infty$ synthesis probl #+begin_important - $\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. -#+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{tikzpicture} @@ -992,11 +994,7 @@ Once the generalized plant is obtained, the $\mathcal{H}_\infty$ synthesis probl #+caption: General Control Configuration #+RESULTS: [[file:figs/general_control_names.png]] - -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} +#+end_important 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 @@ -1006,13 +1004,15 @@ where: - =P= is the generalized plant transfer function matrix - =nmeas= is the number of sensed output (size of $v$) - =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 <> 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]] #+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 #+begin_exercice - 1. Convert the tracking control architecture shown in Figure [[fig:classical_feedback_tracking]] to a generalized configuration - 2. Compute the transfer function matrix using Matlab as a function or $K$ and $G$ + Consider the feedback control architecture shown in Figure [[fig:classical_feedback_tracking]]. + 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 #+caption: Classical Feedback Control Architecture (Tracking)