lecture-h-infinity/index.html

880 lines
26 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-11-27 ven. 18:20 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Robust Control - \(\mathcal{H}_\infty\) Synthesis</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script>MathJax = {
tex: {
tags: 'ams',
macros: {bm: ["\\boldsymbol{#1}",1],}
}
};
</script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Robust Control - \(\mathcal{H}_\infty\) Synthesis</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org482cee2">1. Introduction to the Control Methodology - Model Based Control</a>
<ul>
<li><a href="#org279a16f">1.1. Control Methodology</a></li>
<li><a href="#orgca6e3d9">1.2. Some Background: From Classical Control to Robust Control</a></li>
<li><a href="#orgc1a54dd">1.3. Example System</a></li>
</ul>
</li>
<li><a href="#org1336132">2. Classical Open Loop Shaping</a>
<ul>
<li><a href="#org1c9ddc9">2.1. Introduction ot Open Loop Shaping</a></li>
<li><a href="#org3cd2ec2">2.2. Example of Open Loop Shaping</a></li>
<li><a href="#orgafc190d">2.3. \(\mathcal{H}_\infty\) Loop Shaping Synthesis</a></li>
<li><a href="#org386c720">2.4. Example of the \(\mathcal{H}_\infty\) Loop Shaping Synthesis</a></li>
</ul>
</li>
<li><a href="#orgcf6b2a6">3. The \(\mathcal{H}_\infty\) Norm</a></li>
<li><a href="#org5bc80a8">4. \(\mathcal{H}_\infty\) Synthesis</a></li>
<li><a href="#org3a241a5">5. The Generalized Plant</a></li>
<li><a href="#org49fe7df">6. Problem Formulation</a></li>
<li><a href="#orgf671631">7. Classical feedback control and closed loop transfer functions</a></li>
<li><a href="#orgd118710">8. From a Classical Feedback Architecture to a Generalized Plant</a></li>
<li><a href="#orgdd1c5fa">9. Modern Interpretation of the Control Specifications</a>
<ul>
<li><a href="#org00cad5d">9.1. Introduction</a></li>
</ul>
</li>
<li><a href="#org0e07a10">10. Resources</a></li>
</ul>
</div>
</div>
<div id="outline-container-org482cee2" class="outline-2">
<h2 id="org482cee2"><span class="section-number-2">1</span> Introduction to the Control Methodology - Model Based Control</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org279a16f" class="outline-3">
<h3 id="org279a16f"><span class="section-number-3">1.1</span> Control Methodology</h3>
<div class="outline-text-3" id="text-1-1">
<p>
The typical methodology when applying Model Based Control to a plant is schematically shown in Figure <a href="#org3328399">1</a>.
It consists of three steps:
</p>
<ol class="org-ol">
<li><b>Identification or modeling</b>: \(\Longrightarrow\) mathematical model</li>
<li><b>Translate the specifications into mathematical criteria</b>:
<ul class="org-ul">
<li><span class="underline">Specifications</span>: Response Time, Noise Rejection, Maximum input amplitude, Robustness, &#x2026;</li>
<li><span class="underline">Mathematical Criteria</span>: Cost Function, Shape of TF</li>
</ul></li>
<li><b>Synthesis</b>: research of \(K\) that satisfies the specifications for the model of the system</li>
</ol>
<div id="org3328399" class="figure">
<p><img src="figs/control-procedure.png" alt="control-procedure.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Typical Methodoly for Model Based Control</p>
</div>
<p>
In this document, we will mainly focus on steps 2 and 3.
</p>
</div>
</div>
<div id="outline-container-orgca6e3d9" class="outline-3">
<h3 id="orgca6e3d9"><span class="section-number-3">1.2</span> Some Background: From Classical Control to Robust Control</h3>
<div class="outline-text-3" id="text-1-2">
<p>
Classical Control (1930)
</p>
<ul class="org-ul">
<li>Tools:
<ul class="org-ul">
<li>TF (input-output)</li>
<li>Nyquist, Bode, Black, \ldots</li>
<li>P-PI-PID, Phase lead-lag, \ldots</li>
</ul></li>
<li>Advantages:
<ul class="org-ul">
<li>Stability</li>
<li>Performances</li>
<li>Robustness</li>
</ul></li>
<li>Disadvantages:
<ul class="org-ul">
<li>Manual Method</li>
<li>Only SISO</li>
</ul></li>
</ul>
<p>
Modern Control (1960)
</p>
<ul class="org-ul">
<li>Tools:
<ul class="org-ul">
<li>State Space</li>
<li>Optimal Command</li>
<li>LQR, LQG</li>
</ul></li>
<li>Advantages:
<ul class="org-ul">
<li>Automatic Synthesis</li>
<li>MIMO</li>
<li>Optimisation problem</li>
</ul></li>
<li>Disadvantages:
<ul class="org-ul">
<li>Robustness</li>
<li>Rejection of Perturbations</li>
</ul></li>
</ul>
<p>
Robust Control (1980)
</p>
<ul class="org-ul">
<li>Tools:
<ul class="org-ul">
<li>Disk Margin</li>
<li>Systems and Signals norms (\(\mathcal{H}_\infty\) and \(\mathcal{H}_2\) norms)</li>
<li>Closed Loop Transfer Functions</li>
<li>Loop Shaping</li>
</ul></li>
<li>Advantages:
<ul class="org-ul">
<li>Stability</li>
<li>Performances</li>
<li>Robustness</li>
<li>Automatic Synthesis</li>
<li>MIMO</li>
<li>Optimization Problem</li>
</ul></li>
<li>Disadvantages:
<ul class="org-ul">
<li>Requires the knowledge of specific tools</li>
<li>Need a reasonably good model of the system</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-orgc1a54dd" class="outline-3">
<h3 id="orgc1a54dd"><span class="section-number-3">1.3</span> Example System</h3>
<div class="outline-text-3" id="text-1-3">
<p>
Let&rsquo;s consider the test-system shown in Figure <a href="#orgbec3f57">2</a>.
The notations used are listed in Table <a href="#orgf10115b">1</a>.
</p>
<div id="orgbec3f57" class="figure">
<p><img src="figs/mech_sys_1dof_inertial_contr.png" alt="mech_sys_1dof_inertial_contr.png" />
</p>
<p><span class="figure-number">Figure 2: </span>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.</p>
</div>
<table id="orgf10115b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Example system variables</caption>
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left"><b>Notation</b></th>
<th scope="col" class="org-left"><b>Description</b></th>
<th scope="col" class="org-left"><b>Value</b></th>
<th scope="col" class="org-left"><b>Unit</b></th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">\(m\)</td>
<td class="org-left">Payload&rsquo;s mass to position / isolate</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[kg]</td>
</tr>
<tr>
<td class="org-left">\(k\)</td>
<td class="org-left">Stiffness of the suspension system</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[N/m]</td>
</tr>
<tr>
<td class="org-left">\(c\)</td>
<td class="org-left">Damping coefficient of the suspension system</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[N/(m/s)]</td>
</tr>
<tr>
<td class="org-left">\(y\)</td>
<td class="org-left">Payload absolute displacement (measured by an inertial sensor)</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[m]</td>
</tr>
<tr>
<td class="org-left">\(d\)</td>
<td class="org-left">Ground displacement, it acts as a disturbance</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[m]</td>
</tr>
<tr>
<td class="org-left">\(u\)</td>
<td class="org-left">Actuator force</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[N]</td>
</tr>
<tr>
<td class="org-left">\(r\)</td>
<td class="org-left">Wanted position of the mass (the reference)</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[m]</td>
</tr>
<tr>
<td class="org-left">\(\epsilon = r - y\)</td>
<td class="org-left">Position error</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">[m]</td>
</tr>
<tr>
<td class="org-left">\(K\)</td>
<td class="org-left">Feedback controller</td>
<td class="org-left">to be designed</td>
<td class="org-left">[N/m]</td>
</tr>
</tbody>
</table>
<div class="exercice" id="org09b2f15">
<p>
Derive the following open-loop transfer functions:
</p>
\begin{align}
G(s) &= \frac{y}{u} \\
G_d(s) &= \frac{y}{d}
\end{align}
<p>
<b>Hint:</b> You can follow this generic procedure:
</p>
<ol class="org-ol">
<li>List all applied forces ot the mass: Actuator force, Stiffness force (Hooke&rsquo;s law), &#x2026;</li>
<li>Apply the Newton&rsquo;s Second Law on the payload
\[ m \ddot{y} = \Sigma F \]</li>
<li>Transform the differential equations into the Laplace domain:
\[ \frac{d\ \cdot}{dt} \Leftrightarrow \cdot \times s \]</li>
<li>Write \(y(s)\) as a function of \(u(s)\) and \(w(s)\)</li>
</ol>
</div>
<p>
Having obtained \(G(s)\) and \(G_d(s)\), we can transform the system shown in Figure <a href="#orgbec3f57">2</a> into a classical feedback form as shown in Figure <a href="#orge09e85e">4</a>.
</p>
<div id="orge1cf983" class="figure">
<p><img src="figs/classical_feedback_test_system.png" alt="classical_feedback_test_system.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Block diagram corresponding to the example system</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org1336132" class="outline-2">
<h2 id="org1336132"><span class="section-number-2">2</span> Classical Open Loop Shaping</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org1c9ddc9" class="outline-3">
<h3 id="org1c9ddc9"><span class="section-number-3">2.1</span> Introduction ot Open Loop Shaping</h3>
<div class="outline-text-3" id="text-2-1">
<p>
Usually, the controller \(K(s)\) is designed such that the loop gain \(L(s)\) has desirable shape.
This technique is called <b>Open Loop Shaping</b>.
</p>
<div class="inlinetask">
<b>Explain why the Loop gain si an important &ldquo;value&rdquo;</b><br />
<p>
For instance example all the specifications can usually be explained in terms of the open loop gain.
</p>
</div>
<div id="orge09e85e" class="figure">
<p><img src="figs/open_loop_shaping.png" alt="open_loop_shaping.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Classical Feedback Architecture</p>
</div>
<p>
This is usually done manually has the loop gain \(L(s)\) depends linearly of \(K(s)\):
</p>
\begin{equation}
L(s) = G(s) K(s)
\end{equation}
<ul class="org-ul">
<li>where \(L(s)\) is called the <b>Loop Gain Transfer Function</b></li>
</ul>
<p>
\(K(s)\) then consists of a combination of leads, lags, notches, etc. such that its product with \(G(s)\) has wanted shape.
</p>
</div>
</div>
<div id="outline-container-org3cd2ec2" class="outline-3">
<h3 id="org3cd2ec2"><span class="section-number-3">2.2</span> Example of Open Loop Shaping</h3>
<div class="outline-text-3" id="text-2-2">
<div class="org-src-container">
<pre class="src src-matlab">k = 1e<span class="org-type">-</span>6;
m = 10;
c = 10;
G =
</pre>
</div>
<div id="org846352b" class="figure">
<p><img src="figs/bode_plot_example_afm.png" alt="bode_plot_example_afm.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Bode plot of the plant \(G(s)\)</p>
</div>
<p>
Specifications:
</p>
<ul class="org-ul">
<li><b>Performance</b>: Bandwidth of approximately 50Hz</li>
<li><b>Noise Attenuation</b>: Roll-off of -40dB/decade past 250Hz</li>
<li><b>Robustness</b>: Gain margin &gt; 5dB and Phase margin &gt; 40 deg</li>
</ul>
<div class="exercice" id="orge257cef">
<p>
Using <code>SISOTOOL</code>, design a controller that fulfill the specifications.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sisotool(G)
</pre>
</div>
</div>
<p>
In order to have the wanted Roll-off, two integrators are used, a lead is also added to have sufficient phase margin.
</p>
<p>
The obtained controller is shown below, and the bode plot of the Loop Gain is shown in Figure <a href="#orgd8a3cda">6</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = 6e4 <span class="org-type">*</span> ...<span class="org-comment"> % Gain</span>
1<span class="org-type">/</span>(s<span class="org-type">^</span>2) <span class="org-type">*</span> ...<span class="org-comment"> % Double Integrator</span>
(1 <span class="org-type">+</span> s<span class="org-type">/</span>111)<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>888); <span class="org-comment">% Lead</span>
</pre>
</div>
<div id="orgd8a3cda" class="figure">
<p><img src="figs/loop_gain_manual_afm.png" alt="loop_gain_manual_afm.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Bode Plot of the obtained Loop Gain \(L(s) = G(s) K(s)\)</p>
</div>
<p>
And we can verify that we have the wanted stability margins:
</p>
<div class="org-src-container">
<pre class="src src-matlab">[Gm, Pm, <span class="org-type">~</span>, Wc] = margin(G<span class="org-type">*</span>K)
</pre>
</div>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-right" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-right">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Gain Margin [dB]</td>
<td class="org-right">7.2</td>
</tr>
<tr>
<td class="org-left">Phase Margin [deg]</td>
<td class="org-right">48.1</td>
</tr>
<tr>
<td class="org-left">Crossover [Hz]</td>
<td class="org-right">50.7</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgafc190d" class="outline-3">
<h3 id="orgafc190d"><span class="section-number-3">2.3</span> \(\mathcal{H}_\infty\) Loop Shaping Synthesis</h3>
<div class="outline-text-3" id="text-2-3">
<p>
The Open Loop Shaping synthesis can be performed using the \(\mathcal{H}_\infty\) Synthesis.
</p>
<p>
Even though we will not go into details, we will provide one example.
</p>
<p>
Using Matlab, the \(\mathcal{H}_\infty\) synthesis of a controller based on the wanted open loop shape can be performed using the <code>loopsyn</code> command:
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = loopsyn(G, Gd);
</pre>
</div>
<p>
where:
</p>
<ul class="org-ul">
<li><code>G</code> is the (LTI) plant</li>
<li><code>Gd</code> is the wanted loop shape</li>
<li><code>K</code> is the synthesize controller</li>
</ul>
<div class="seealso" id="org3c008e3">
<p>
Matlab documentation of <code>loopsyn</code> (<a href="https://www.mathworks.com/help/robust/ref/loopsyn.html">link</a>).
</p>
</div>
</div>
</div>
<div id="outline-container-org386c720" class="outline-3">
<h3 id="org386c720"><span class="section-number-3">2.4</span> Example of the \(\mathcal{H}_\infty\) Loop Shaping Synthesis</h3>
<div class="outline-text-3" id="text-2-4">
<p>
Let&rsquo;s re-use the previous plant.
</p>
<p>
Translate the specification into the wanted shape of the open loop gain.
</p>
<div class="org-src-container">
<pre class="src src-matlab">G = tf(16,[1 0.16 16]);
Gd = 3.7e4<span class="org-type">*</span>1<span class="org-type">/</span>s<span class="org-type">*</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>20)<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>220)<span class="org-type">*</span>1<span class="org-type">/</span>(s <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>500);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">[K,CL,GAM,INFO] = loopsyn(G, Gd);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">bodeFig({K})
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orgcf6b2a6" class="outline-2">
<h2 id="orgcf6b2a6"><span class="section-number-2">3</span> The \(\mathcal{H}_\infty\) Norm</h2>
<div class="outline-text-2" id="text-3">
<div class="definition" id="org86c267f">
<p>
The \(\mathcal{H}_\infty\) norm is defined as the peak of the maximum singular value of the frequency response
</p>
\begin{equation}
\|G(s)\|_\infty = \max_\omega \bar{\sigma}\big( G(j\omega) \big)
\end{equation}
<p>
For a SISO system \(G(s)\), it is simply the peak value of \(|G(j\omega)|\) as a function of frequency:
</p>
\begin{equation}
\|G(s)\|_\infty = \max_{\omega} |G(j\omega)| \label{eq:hinf_norm_siso}
\end{equation}
</div>
<div class="exampl" id="org9ae7fd2">
<p>
Let&rsquo;s define a plant dynamics:
</p>
<div class="org-src-container">
<pre class="src src-matlab">w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span>; k = 1e6; xi = 0.04;
G = 1<span class="org-type">/</span>k<span class="org-type">/</span>(s<span class="org-type">^</span>2<span class="org-type">/</span>w0<span class="org-type">^</span>2 <span class="org-type">+</span> 2<span class="org-type">*</span>xi<span class="org-type">*</span>s<span class="org-type">/</span>w0 <span class="org-type">+</span> 1);
</pre>
</div>
<p>
And compute its \(\mathcal{H}_\infty\) norm using the <code>hinfnorm</code> function:
</p>
<div class="org-src-container">
<pre class="src src-matlab">hinfnorm(G)
</pre>
</div>
<pre class="example">
1.0013e-05
</pre>
<p>
The magnitude \(|G(j\omega)|\) of the plant \(G(s)\) as a function of frequency is shown in Figure <a href="#org220c414">7</a>.
The maximum value of the magnitude over all frequencies does correspond to the \(\mathcal{H}_\infty\) norm of \(G(s)\) as Equation \eqref{eq:hinf_norm_siso} implies.
</p>
<div id="org220c414" class="figure">
<p><img src="figs/hinfinity_norm_siso_bode.png" alt="hinfinity_norm_siso_bode.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Example of the \(\mathcal{H}_\infty\) norm of a SISO system</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org5bc80a8" class="outline-2">
<h2 id="org5bc80a8"><span class="section-number-2">4</span> \(\mathcal{H}_\infty\) Synthesis</h2>
<div class="outline-text-2" id="text-4">
<p>
<b>Optimization problem</b>:
\(\mathcal{H}_\infty\) synthesis is a method that uses an <b>algorithm</b> (LMI optimization, Riccati equation) to find a controller of the same order as the system so that the \(\mathcal{H}_\infty\) norms of defined transfer functions are minimized.
</p>
<p>
<b>Engineer work</b>:
</p>
<ol class="org-ol">
<li>Write the problem as standard \(\mathcal{H}_\infty\) problem</li>
<li>Translate the specifications as \(\mathcal{H}_\infty\) norms</li>
<li>Make the synthesis and analyze the obtain controller</li>
<li>Reduce the order of the controller for implementation</li>
</ol>
<p>
<b>Many ways to use the \(\mathcal{H}_\infty\) Synthesis</b>:
</p>
<ul class="org-ul">
<li>Traditional \(\mathcal{H}_\infty\) Synthesis</li>
<li>Mixed Sensitivity Loop Shaping</li>
<li>Fixed-Structure \(\mathcal{H}_\infty\) Synthesis</li>
<li>Signal Based \(\mathcal{H}_\infty\) Synthesis</li>
</ul>
</div>
</div>
<div id="outline-container-org3a241a5" class="outline-2">
<h2 id="org3a241a5"><span class="section-number-2">5</span> The Generalized Plant</h2>
<div class="outline-text-2" id="text-5">
<div id="orgf05141d" class="figure">
<p><img src="figs/general_plant.png" alt="general_plant.png" />
</p>
</div>
<table id="orgfb53780" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Notations for the general configuration</caption>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Notation</th>
<th scope="col" class="org-left">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">\(P\)</td>
<td class="org-left">Generalized plant model</td>
</tr>
<tr>
<td class="org-left">\(w\)</td>
<td class="org-left">Exogenous inputs: commands, disturbances, noise</td>
</tr>
<tr>
<td class="org-left">\(z\)</td>
<td class="org-left">Exogenous outputs: signals to be minimized</td>
</tr>
<tr>
<td class="org-left">\(v\)</td>
<td class="org-left">Controller inputs: measurements</td>
</tr>
<tr>
<td class="org-left">\(u\)</td>
<td class="org-left">Control signals</td>
</tr>
</tbody>
</table>
\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}
\end{equation}
</div>
</div>
<div id="outline-container-org49fe7df" class="outline-2">
<h2 id="org49fe7df"><span class="section-number-2">6</span> Problem Formulation</h2>
<div class="outline-text-2" id="text-6">
<div class="important" id="orgcec66b9">
<p>
The \(\mathcal{H}_\infty\) Synthesis objective is to find all stabilizing controllers \(K\) which minimize
</p>
\begin{equation}
\| F_l(P, K) \|_\infty = \max_{\omega} \overline{\sigma} \big( F_l(P, K)(j\omega) \big)
\end{equation}
</div>
<div id="org1e975ee" class="figure">
<p><img src="figs/general_control_names.png" alt="general_control_names.png" />
</p>
<p><span class="figure-number">Figure 9: </span>General Control Configuration</p>
</div>
</div>
</div>
<div id="outline-container-orgf671631" class="outline-2">
<h2 id="orgf671631"><span class="section-number-2">7</span> Classical feedback control and closed loop transfer functions</h2>
<div class="outline-text-2" id="text-7">
<div id="orgd59dc12" class="figure">
<p><img src="figs/classical_feedback.png" alt="classical_feedback.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Classical Feedback Architecture</p>
</div>
<table id="org111f2c5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 3:</span> Notations for the Classical Feedback Architecture</caption>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Notation</th>
<th scope="col" class="org-left">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">\(G\)</td>
<td class="org-left">Plant model</td>
</tr>
<tr>
<td class="org-left">\(K\)</td>
<td class="org-left">Controller</td>
</tr>
<tr>
<td class="org-left">\(r\)</td>
<td class="org-left">Reference inputs</td>
</tr>
<tr>
<td class="org-left">\(y\)</td>
<td class="org-left">Plant outputs</td>
</tr>
<tr>
<td class="org-left">\(u\)</td>
<td class="org-left">Control signals</td>
</tr>
<tr>
<td class="org-left">\(d\)</td>
<td class="org-left">Input Disturbance</td>
</tr>
<tr>
<td class="org-left">\(\epsilon\)</td>
<td class="org-left">Tracking Error</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgd118710" class="outline-2">
<h2 id="orgd118710"><span class="section-number-2">8</span> From a Classical Feedback Architecture to a Generalized Plant</h2>
<div class="outline-text-2" id="text-8">
<p>
The procedure is:
</p>
<ol class="org-ol">
<li>define signals of the generalized plant</li>
<li>Remove \(K\) and rearrange the inputs and outputs</li>
</ol>
<div class="exampl" id="org211c0bc">
<p>
Let&rsquo;s find the Generalized plant of corresponding to the tracking control architecture shown in Figure <a href="#orgbec59d7">11</a>
</p>
<div id="orgbec59d7" class="figure">
<p><img src="figs/classical_feedback_tracking.png" alt="classical_feedback_tracking.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Classical Feedback Control Architecture (Tracking)</p>
</div>
<p>
First, define the signals of the generalized plant:
</p>
<ul class="org-ul">
<li>Exogenous inputs: \(w = r\)</li>
<li>Signals to be minimized: \(z_1 = \epsilon\), \(z_2 = u\)</li>
<li>Control signals: \(v = y\)</li>
<li>Control inputs: \(u\)</li>
</ul>
<p>
Then, Remove \(K\) and rearrange the inputs and outputs.
We obtain the generalized plant shown in Figure <a href="#org64eccd4">12</a>.
</p>
<div id="org64eccd4" class="figure">
<p><img src="figs/mixed_sensitivity_ref_tracking.png" alt="mixed_sensitivity_ref_tracking.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Generalized plant of the Classical Feedback Control Architecture (Tracking)</p>
</div>
<p>
Using Matlab, the generalized plant can be defined as follows:
</p>
<div class="org-src-container">
<pre class="src src-matlab">P = [1 <span class="org-type">-</span>G;
0 1;
1 <span class="org-type">-</span>G]
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orgdd1c5fa" class="outline-2">
<h2 id="orgdd1c5fa"><span class="section-number-2">9</span> Modern Interpretation of the Control Specifications</h2>
<div class="outline-text-2" id="text-9">
</div>
<div id="outline-container-org00cad5d" class="outline-3">
<h3 id="org00cad5d"><span class="section-number-3">9.1</span> Introduction</h3>
<div class="outline-text-3" id="text-9-1">
<ul class="org-ul">
<li><b>Reference tracking</b> Overshoot, Static error, Setling time
<ul class="org-ul">
<li>\(S(s) = T_{r \rightarrow \epsilon}\)</li>
</ul></li>
<li><b>Disturbances rejection</b>
<ul class="org-ul">
<li>\(G(s) S(s) = T_{d \rightarrow \epsilon}\)</li>
</ul></li>
<li><b>Measurement noise filtering</b>
<ul class="org-ul">
<li>\(T(s) = T_{n \rightarrow \epsilon}\)</li>
</ul></li>
<li><b>Small command amplitude</b>
<ul class="org-ul">
<li>\(K(s) S(s) = T_{r \rightarrow u}\)</li>
</ul></li>
<li><b>Stability</b>
<ul class="org-ul">
<li>\(S(s)\), \(T(s)\), \(K(s)S(s)\), \(G(s)S(s)\)</li>
</ul></li>
<li><b>Robustness to plant uncertainty</b> (stability margins)</li>
<li><b>Controller implementation</b></li>
</ul>
<p>
**
</p>
</div>
</div>
</div>
<div id="outline-container-org0e07a10" class="outline-2">
<h2 id="org0e07a10"><span class="section-number-2">10</span> Resources</h2>
<div class="outline-text-2" id="text-10">
<p>
<div class="yt"><iframe width="100%" height="100%" src="https://www.youtube.com/embed/?listType=playlist&list=PLn8PRpmsu08qFLMfgTEzR8DxOPE7fBiin" frameborder="0" allowfullscreen></iframe></div>
</p>
<p>
<div class="yt"><iframe width="100%" height="100%" src="https://www.youtube.com/embed/?listType=playlist&list=PLsjPUqcL7ZIFHCObUU_9xPUImZ203gB4o" frameborder="0" allowfullscreen></iframe></div>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-11-27 ven. 18:20</p>
</div>
</body>
</html>