Save diagonal Controller

This commit is contained in:
Thomas Dehaeze 2019-09-17 16:21:42 +02:00
parent 9a276fe64d
commit 1ef431dee9
3 changed files with 210 additions and 181 deletions

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-09-17 mar. 15:53 -->
<!-- 2019-09-17 mar. 16:21 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Cercalo Test Bench</title>
@ -276,92 +276,93 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org3519192">1. Introduction</a>
<li><a href="#orga1af2bd">1. Introduction</a>
<ul>
<li><a href="#org872df99">1.1. Block Diagram</a></li>
<li><a href="#orgeb18df8">1.2. Cercalo</a></li>
<li><a href="#orgabd5452">1.3. Optical Setup</a></li>
<li><a href="#orga857b69">1.4. Newport</a></li>
<li><a href="#org65c50b5">1.5. 4 quadrant Diode</a></li>
<li><a href="#orge0ab4f9">1.6. ADC/DAC</a></li>
<li><a href="#orgba30a6f">1.1. Block Diagram</a></li>
<li><a href="#org7551d72">1.2. Cercalo</a></li>
<li><a href="#org346972d">1.3. Optical Setup</a></li>
<li><a href="#org592a330">1.4. Newport</a></li>
<li><a href="#org7cbae0f">1.5. 4 quadrant Diode</a></li>
<li><a href="#orgdd83994">1.6. ADC/DAC</a></li>
</ul>
</li>
<li><a href="#org29ba44d">2. Identification of the system dynamics</a>
<li><a href="#org0c91379">2. Identification of the system dynamics</a>
<ul>
<li><a href="#orgf19c09b">2.1. Calibration of the 4 Quadrant Diode</a>
<li><a href="#orga71352f">2.1. Calibration of the 4 Quadrant Diode</a>
<ul>
<li><a href="#org488413f">2.1.1. Input / Output data</a></li>
<li><a href="#orgbbc3ad2">2.1.2. Linear Regression to obtain the gain of the 4QD</a></li>
<li><a href="#org38399c1">2.1.1. Input / Output data</a></li>
<li><a href="#org88480ae">2.1.2. Linear Regression to obtain the gain of the 4QD</a></li>
</ul>
</li>
<li><a href="#org7dd4e6c">2.2. Identification of the Cercalo Impedance, Current Amplifier and Voltage Amplifier dynamics</a>
<li><a href="#org45084e8">2.2. Identification of the Cercalo Impedance, Current Amplifier and Voltage Amplifier dynamics</a>
<ul>
<li><a href="#org6078ef0">2.2.1. Electrical Schematic</a></li>
<li><a href="#orgaa575f2">2.2.2. Theoretical Transfer Functions</a></li>
<li><a href="#orgc24d0bd">2.2.3. Identified Transfer Functions</a></li>
<li><a href="#orgd91f44a">2.2.1. Electrical Schematic</a></li>
<li><a href="#orge075768">2.2.2. Theoretical Transfer Functions</a></li>
<li><a href="#org31831c5">2.2.3. Identified Transfer Functions</a></li>
</ul>
</li>
<li><a href="#org8b914fd">2.3. Identification of the Cercalo Dynamics</a>
<li><a href="#orge7aa024">2.3. Identification of the Cercalo Dynamics</a>
<ul>
<li><a href="#org45f478a">2.3.1. Input / Output data</a></li>
<li><a href="#orga76fba2">2.3.2. Coherence</a></li>
<li><a href="#org131ac39">2.3.3. Estimation of the Frequency Response Function Matrix</a></li>
<li><a href="#orgf0a3476">2.3.4. Time Delay</a></li>
<li><a href="#org0174055">2.3.5. Extraction of a transfer function matrix</a></li>
<li><a href="#orgcf382ac">2.3.1. Input / Output data</a></li>
<li><a href="#orgc61c149">2.3.2. Coherence</a></li>
<li><a href="#orge1f3965">2.3.3. Estimation of the Frequency Response Function Matrix</a></li>
<li><a href="#orgef1a3c2">2.3.4. Time Delay</a></li>
<li><a href="#org36d1dfc">2.3.5. Extraction of a transfer function matrix</a></li>
</ul>
</li>
<li><a href="#org29f709e">2.4. Identification of the Newport Dynamics</a>
<li><a href="#org87a7d68">2.4. Identification of the Newport Dynamics</a>
<ul>
<li><a href="#org18a03ed">2.4.1. Input / Output data</a></li>
<li><a href="#org978a0c9">2.4.2. Coherence</a></li>
<li><a href="#orgc0c5d02">2.4.3. Estimation of the Frequency Response Function Matrix</a></li>
<li><a href="#orgdfcee7e">2.4.4. Time Delay</a></li>
<li><a href="#org314a223">2.4.5. Extraction of a transfer function matrix</a></li>
<li><a href="#org83a4f28">2.4.1. Input / Output data</a></li>
<li><a href="#orge19fa44">2.4.2. Coherence</a></li>
<li><a href="#orgc36f0eb">2.4.3. Estimation of the Frequency Response Function Matrix</a></li>
<li><a href="#org830e6db">2.4.4. Time Delay</a></li>
<li><a href="#orgab7b96b">2.4.5. Extraction of a transfer function matrix</a></li>
</ul>
</li>
<li><a href="#org8fe71fd">2.5. Full System</a></li>
<li><a href="#orgee9b6d9">2.5. Full System</a></li>
</ul>
</li>
<li><a href="#org07fb936">3. Active Damping</a>
<li><a href="#orgbb8218f">3. Active Damping</a>
<ul>
<li><a href="#org07da045">3.1. Load Plant</a></li>
<li><a href="#orge1669f2">3.2. Test</a></li>
<li><a href="#org584508e">3.1. Load Plant</a></li>
<li><a href="#org0df875d">3.2. Test</a></li>
</ul>
</li>
<li><a href="#orgf4f85b9">4. <span class="todo TODO">TODO</span> Huddle Test</a></li>
<li><a href="#org03828c5">5. Plant Scaling</a></li>
<li><a href="#org8254d1a">6. Plant Analysis</a>
<li><a href="#org4ac14f0">4. <span class="todo TODO">TODO</span> Huddle Test</a></li>
<li><a href="#orgb1866ab">5. Plant Scaling</a></li>
<li><a href="#orgdc654c4">6. Plant Analysis</a>
<ul>
<li><a href="#org592969b">6.1. Load Plant</a></li>
<li><a href="#org966d85b">6.2. RGA-Number</a></li>
<li><a href="#org7063733">6.3. Rotation Matrix</a></li>
<li><a href="#org59cd7d2">6.1. Load Plant</a></li>
<li><a href="#org62e9187">6.2. RGA-Number</a></li>
<li><a href="#org4bc71a6">6.3. Rotation Matrix</a></li>
</ul>
</li>
<li><a href="#org759298e">7. Control Objective</a></li>
<li><a href="#org96df63d">8. Decentralized Control</a>
<li><a href="#org29f5209">7. Control Objective</a></li>
<li><a href="#org2b9b5f8">8. Decentralized Control</a>
<ul>
<li><a href="#orgde6febc">8.1. Load Plant</a></li>
<li><a href="#orgf815918">8.2. Diagonal Controller</a></li>
<li><a href="#orgff694d6">8.1. Load Plant</a></li>
<li><a href="#orgb485008">8.2. Diagonal Controller</a></li>
<li><a href="#org37b475d">8.3. Save the Controller</a></li>
</ul>
</li>
<li><a href="#orge641704">9. Measurement of the non-repeatability</a></li>
<li><a href="#org58d3080">9. Measurement of the non-repeatability</a></li>
</ul>
</div>
</div>
<div id="outline-container-org3519192" class="outline-2">
<h2 id="org3519192"><span class="section-number-2">1</span> Introduction</h2>
<div id="outline-container-orga1af2bd" class="outline-2">
<h2 id="orga1af2bd"><span class="section-number-2">1</span> Introduction</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org872df99" class="outline-3">
<h3 id="org872df99"><span class="section-number-3">1.1</span> Block Diagram</h3>
<div id="outline-container-orgba30a6f" class="outline-3">
<h3 id="orgba30a6f"><span class="section-number-3">1.1</span> Block Diagram</h3>
<div class="outline-text-3" id="text-1-1">
<p>
The block diagram of the setup to be controlled is shown in Fig. <a href="#org3b04014">1</a>.
The block diagram of the setup to be controlled is shown in Fig. <a href="#orgea07581">1</a>.
</p>
<div id="org3b04014" class="figure">
<div id="orgea07581" class="figure">
<p><img src="figs/cercalo_diagram_simplify.png" alt="cercalo_diagram_simplify.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Block Diagram of the Experimental Setup</p>
@ -391,10 +392,10 @@ The transfer functions in the system are:
</ul>
<p>
The block diagram with each transfer function is shown in Fig. <a href="#org0ea7908">2</a>.
The block diagram with each transfer function is shown in Fig. <a href="#orgb2e86b9">2</a>.
</p>
<div id="org0ea7908" class="figure">
<div id="orgb2e86b9" class="figure">
<p><img src="figs/cercalo_diagram.png" alt="cercalo_diagram.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Block Diagram of the Experimental Setup with detailed dynamics</p>
@ -402,14 +403,14 @@ The block diagram with each transfer function is shown in Fig. <a href="#org0ea7
</div>
</div>
<div id="outline-container-orgeb18df8" class="outline-3">
<h3 id="orgeb18df8"><span class="section-number-3">1.2</span> Cercalo</h3>
<div id="outline-container-org7551d72" class="outline-3">
<h3 id="org7551d72"><span class="section-number-3">1.2</span> Cercalo</h3>
<div class="outline-text-3" id="text-1-2">
<p>
From the Cercalo documentation, we have the parameters shown on table <a href="#org6430d98">1</a>.
From the Cercalo documentation, we have the parameters shown on table <a href="#orgf1714bf">1</a>.
</p>
<table id="org6430d98" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgf1714bf" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Cercalo Parameters</caption>
<colgroup>
@ -467,11 +468,11 @@ The Inductance and DC resistance of the two axis of the Cercalo have been measur
</ul>
<p>
Let's first consider the <b>horizontal direction</b> and we try to model the Cercalo by a spring/mass/damper system (Fig. <a href="#org1c65c6f">3</a>).
Let's first consider the <b>horizontal direction</b> and we try to model the Cercalo by a spring/mass/damper system (Fig. <a href="#org898f123">3</a>).
</p>
<div id="org1c65c6f" class="figure">
<div id="org898f123" class="figure">
<p><img src="figs/mech_cercalo.png" alt="mech_cercalo.png" />
</p>
<p><span class="figure-number">Figure 3: </span>1 degree-of-freedom model of the Cercalo</p>
@ -510,7 +511,7 @@ The current \(I\) is also proportional to the voltage at the output of the buffe
<p>
Let's try to determine the equivalent mass and spring values.
From table <a href="#org6430d98">1</a>, for the horizontal direction:
From table <a href="#orgf1714bf">1</a>, for the horizontal direction:
\[ \left| \frac{x}{I} \right|(0) = \left| \alpha \frac{x}{F} \right|(0) = 28.4\ \frac{mA}{deg} = 1.63\ \frac{A}{rad} \]
</p>
@ -571,18 +572,18 @@ This will be done using the Newport.
</div>
</div>
<div id="outline-container-orgabd5452" class="outline-3">
<h3 id="orgabd5452"><span class="section-number-3">1.3</span> Optical Setup</h3>
<div id="outline-container-org346972d" class="outline-3">
<h3 id="org346972d"><span class="section-number-3">1.3</span> Optical Setup</h3>
</div>
<div id="outline-container-orga857b69" class="outline-3">
<h3 id="orga857b69"><span class="section-number-3">1.4</span> Newport</h3>
<div id="outline-container-org592a330" class="outline-3">
<h3 id="org592a330"><span class="section-number-3">1.4</span> Newport</h3>
<div class="outline-text-3" id="text-1-4">
<p>
Parameters of the Newport are shown in Fig. <a href="#org882caed">4</a>.
Parameters of the Newport are shown in Fig. <a href="#org6050b00">4</a>.
</p>
<p>
It's dynamics for small angle excitation is shown in Fig. <a href="#orgbe2df74">5</a>.
It's dynamics for small angle excitation is shown in Fig. <a href="#org57aa82b">5</a>.
</p>
<p>
@ -594,14 +595,14 @@ And we have:
\end{align*}
<div id="org882caed" class="figure">
<div id="org6050b00" class="figure">
<p><img src="figs/newport_doc.png" alt="newport_doc.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Documentation of the Newport</p>
</div>
<div id="orgbe2df74" class="figure">
<div id="org57aa82b" class="figure">
<p><img src="figs/newport_gain.png" alt="newport_gain.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Transfer function of the Newport</p>
@ -609,25 +610,25 @@ And we have:
</div>
</div>
<div id="outline-container-org65c50b5" class="outline-3">
<h3 id="org65c50b5"><span class="section-number-3">1.5</span> 4 quadrant Diode</h3>
<div id="outline-container-org7cbae0f" class="outline-3">
<h3 id="org7cbae0f"><span class="section-number-3">1.5</span> 4 quadrant Diode</h3>
<div class="outline-text-3" id="text-1-5">
<p>
The front view of the 4 quadrant photo-diode is shown in Fig. <a href="#org0b9b9ab">6</a>.
The front view of the 4 quadrant photo-diode is shown in Fig. <a href="#org74e3a9d">6</a>.
</p>
<div id="org0b9b9ab" class="figure">
<div id="org74e3a9d" class="figure">
<p><img src="figs/4qd_naming.png" alt="4qd_naming.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Front view of the 4QD</p>
</div>
<p>
Each of the photo-diode is amplified using a 4-channel amplifier as shown in Fig. <a href="#org9c0de93">7</a>.
Each of the photo-diode is amplified using a 4-channel amplifier as shown in Fig. <a href="#org47ae36a">7</a>.
</p>
<div id="org9c0de93" class="figure">
<div id="org47ae36a" class="figure">
<p><img src="figs/4qd_amplifier.png" alt="4qd_amplifier.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Wiring of the amplifier. The amplifier is located on the bottom right of the board</p>
@ -635,8 +636,8 @@ Each of the photo-diode is amplified using a 4-channel amplifier as shown in Fig
</div>
</div>
<div id="outline-container-orge0ab4f9" class="outline-3">
<h3 id="orge0ab4f9"><span class="section-number-3">1.6</span> ADC/DAC</h3>
<div id="outline-container-orgdd83994" class="outline-3">
<h3 id="orgdd83994"><span class="section-number-3">1.6</span> ADC/DAC</h3>
<div class="outline-text-3" id="text-1-6">
<p>
Let's compute the theoretical noise of the ADC/DAC.
@ -656,14 +657,14 @@ with \(\Delta V\) the total range of the ADC, \(n\) its number of bits, \(q\) th
</div>
</div>
<div id="outline-container-org29ba44d" class="outline-2">
<h2 id="org29ba44d"><span class="section-number-2">2</span> Identification of the system dynamics</h2>
<div id="outline-container-org0c91379" class="outline-2">
<h2 id="org0c91379"><span class="section-number-2">2</span> Identification of the system dynamics</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org15c1ca3"></a>
<a id="org4716847"></a>
</p>
<p>
In this section, we seek to identify all the blocks as shown in Fig. <a href="#org3b04014">1</a>.
In this section, we seek to identify all the blocks as shown in Fig. <a href="#orgea07581">1</a>.
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -760,8 +761,8 @@ All the files (data and Matlab scripts) are accessible <a href="data/cercalo_ide
</div>
</div>
<div id="outline-container-orgf19c09b" class="outline-3">
<h3 id="orgf19c09b"><span class="section-number-3">2.1</span> Calibration of the 4 Quadrant Diode</h3>
<div id="outline-container-orga71352f" class="outline-3">
<h3 id="orga71352f"><span class="section-number-3">2.1</span> Calibration of the 4 Quadrant Diode</h3>
<div class="outline-text-3" id="text-2-1">
<p>
Prior to any dynamic identification, we would like to be able to determine the meaning of the 4 quadrant diode measurement.
@ -776,8 +777,8 @@ We then should be able to obtain the "gain" of the 4QD in [V/rad].
</p>
</div>
<div id="outline-container-org488413f" class="outline-4">
<h4 id="org488413f"><span class="section-number-4">2.1.1</span> Input / Output data</h4>
<div id="outline-container-org38399c1" class="outline-4">
<h4 id="org38399c1"><span class="section-number-4">2.1.1</span> Input / Output data</h4>
<div class="outline-text-4" id="text-2-1-1">
<p>
The identification data is loaded
@ -811,7 +812,7 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
</div>
<div id="orgc9d2415" class="figure">
<div id="org0bf6949" class="figure">
<p><img src="figs/calib_4qd_h.png" alt="calib_4qd_h.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Identification signals when exciting the horizontal direction (<a href="./figs/calib_4qd_h.png">png</a>, <a href="./figs/calib_4qd_h.pdf">pdf</a>)</p>
@ -819,7 +820,7 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
<div id="org116dcc2" class="figure">
<div id="org4b43d2d" class="figure">
<p><img src="figs/calib_4qd_v.png" alt="calib_4qd_v.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Identification signals when exciting in the vertical direction (<a href="./figs/calib_4qd_v.png">png</a>, <a href="./figs/calib_4qd_v.pdf">pdf</a>)</p>
@ -827,8 +828,8 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
</div>
</div>
<div id="outline-container-orgbbc3ad2" class="outline-4">
<h4 id="orgbbc3ad2"><span class="section-number-4">2.1.2</span> Linear Regression to obtain the gain of the 4QD</h4>
<div id="outline-container-org88480ae" class="outline-4">
<h4 id="org88480ae"><span class="section-number-4">2.1.2</span> Linear Regression to obtain the gain of the 4QD</h4>
<div class="outline-text-4" id="text-2-1-2">
<p>
We plot the angle of mirror
@ -858,7 +859,7 @@ where:
</ul>
<p>
The linear regression is shown in Fig. <a href="#org3b7b1cd">10</a>.
The linear regression is shown in Fig. <a href="#org2eca186">10</a>.
</p>
<div class="org-src-container">
@ -868,17 +869,17 @@ bv = <span class="org-rainbow-delimiters-depth-1">[</span>ones<span class="org-r
</div>
<div id="org3b7b1cd" class="figure">
<div id="org2eca186" class="figure">
<p><img src="figs/4qd_linear_reg.png" alt="4qd_linear_reg.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Linear Regression (<a href="./figs/4qd_linear_reg.png">png</a>, <a href="./figs/4qd_linear_reg.pdf">pdf</a>)</p>
</div>
<p>
Thus, we obtain the "gain of the 4 quadrant photo-diode as shown on table <a href="#org27870f3">2</a>.
Thus, we obtain the "gain of the 4 quadrant photo-diode as shown on table <a href="#org6e6cf68">2</a>.
</p>
<table id="org27870f3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org6e6cf68" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Identified Gain of the 4 quadrant diode</caption>
<colgroup>
@ -922,11 +923,11 @@ We obtain:
</div>
</div>
<div id="outline-container-org7dd4e6c" class="outline-3">
<h3 id="org7dd4e6c"><span class="section-number-3">2.2</span> Identification of the Cercalo Impedance, Current Amplifier and Voltage Amplifier dynamics</h3>
<div id="outline-container-org45084e8" class="outline-3">
<h3 id="org45084e8"><span class="section-number-3">2.2</span> Identification of the Cercalo Impedance, Current Amplifier and Voltage Amplifier dynamics</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We wish here to determine \(G_i\) and \(G_a\) shown in Fig. <a href="#org3b04014">1</a>.
We wish here to determine \(G_i\) and \(G_a\) shown in Fig. <a href="#orgea07581">1</a>.
</p>
<p>
@ -934,15 +935,15 @@ We ignore the electro-mechanical coupling.
</p>
</div>
<div id="outline-container-org6078ef0" class="outline-4">
<h4 id="org6078ef0"><span class="section-number-4">2.2.1</span> Electrical Schematic</h4>
<div id="outline-container-orgd91f44a" class="outline-4">
<h4 id="orgd91f44a"><span class="section-number-4">2.2.1</span> Electrical Schematic</h4>
<div class="outline-text-4" id="text-2-2-1">
<p>
The schematic of the electrical circuit used to drive the Cercalo is shown in Fig. <a href="#orge5d70b8">11</a>.
The schematic of the electrical circuit used to drive the Cercalo is shown in Fig. <a href="#org7e35a0b">11</a>.
</p>
<div id="orge5d70b8" class="figure">
<div id="org7e35a0b" class="figure">
<p><img src="figs/cercalo_amplifier.png" alt="cercalo_amplifier.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Current Amplifier Schematic</p>
@ -1029,8 +1030,8 @@ with
</div>
</div>
<div id="outline-container-orgaa575f2" class="outline-4">
<h4 id="orgaa575f2"><span class="section-number-4">2.2.2</span> Theoretical Transfer Functions</h4>
<div id="outline-container-orge075768" class="outline-4">
<h4 id="orge075768"><span class="section-number-4">2.2.2</span> Theoretical Transfer Functions</h4>
<div class="outline-text-4" id="text-2-2-2">
<p>
The values of the components in the current amplifier have been measured.
@ -1060,7 +1061,7 @@ Ga = blkdiag<span class="org-rainbow-delimiters-depth-1">(</span><span class="or
</div>
<div id="org3761ab1" class="figure">
<div id="orga49918f" class="figure">
<p><img src="figs/current_amplifier_tf.png" alt="current_amplifier_tf.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Transfer function for the current amplifier (<a href="./figs/current_amplifier_tf.png">png</a>, <a href="./figs/current_amplifier_tf.pdf">pdf</a>)</p>
@ -1082,8 +1083,8 @@ Zc = tf<span class="org-rainbow-delimiters-depth-1">(</span>blkdiag<span class="
</div>
</div>
<div id="outline-container-orgc24d0bd" class="outline-4">
<h4 id="orgc24d0bd"><span class="section-number-4">2.2.3</span> Identified Transfer Functions</h4>
<div id="outline-container-org31831c5" class="outline-4">
<h4 id="org31831c5"><span class="section-number-4">2.2.3</span> Identified Transfer Functions</h4>
<div class="outline-text-4" id="text-2-2-3">
<p>
Noise is generated using the DAC (\([U_{c,h}\ U_{c,v}]\)) and we measure the output of the voltage amplifier \([V_{c,h}, V_{c,v}]\).
@ -1110,7 +1111,7 @@ We remove the first seconds where the Cercalo is turned on.
</div>
<div id="org96f6b44" class="figure">
<div id="orgd1b9369" class="figure">
<p><img src="figs/current_amplifier_comp_theory_id.png" alt="current_amplifier_comp_theory_id.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Identified and Theoretical Transfer Function \(G_a G_i\) (<a href="./figs/current_amplifier_comp_theory_id.png">png</a>, <a href="./figs/current_amplifier_comp_theory_id.pdf">pdf</a>)</p>
@ -1128,7 +1129,7 @@ Gi = tf<span class="org-rainbow-delimiters-depth-1">(</span>blkdiag<span class="
</div>
<div id="org4ac2439" class="figure">
<div id="org1ba887a" class="figure">
<p><img src="figs/current_amplifier_comp_theory_id_bis.png" alt="current_amplifier_comp_theory_id_bis.png" />
</p>
<p><span class="figure-number">Figure 14: </span>Identified and Theoretical Transfer Function \(G_a G_i\) (<a href="./figs/current_amplifier_comp_theory_id_bis.png">png</a>, <a href="./figs/current_amplifier_comp_theory_id_bis.pdf">pdf</a>)</p>
@ -1206,11 +1207,11 @@ Continuous-time zero/pole/gain model.
</div>
</div>
<div id="outline-container-org8b914fd" class="outline-3">
<h3 id="org8b914fd"><span class="section-number-3">2.3</span> Identification of the Cercalo Dynamics</h3>
<div id="outline-container-orge7aa024" class="outline-3">
<h3 id="orge7aa024"><span class="section-number-3">2.3</span> Identification of the Cercalo Dynamics</h3>
<div class="outline-text-3" id="text-2-3">
<p>
We now wish to identify the dynamics of the Cercalo identified by \(G_c\) on the block diagram in Fig. <a href="#org3b04014">1</a>.
We now wish to identify the dynamics of the Cercalo identified by \(G_c\) on the block diagram in Fig. <a href="#orgea07581">1</a>.
</p>
<p>
@ -1222,8 +1223,8 @@ The transfer function obtained will be \(G_c G_i\), and because we have already
</p>
</div>
<div id="outline-container-org45f478a" class="outline-4">
<h4 id="org45f478a"><span class="section-number-4">2.3.1</span> Input / Output data</h4>
<div id="outline-container-orgcf382ac" class="outline-4">
<h4 id="orgcf382ac"><span class="section-number-4">2.3.1</span> Input / Output data</h4>
<div class="outline-text-4" id="text-2-3-1">
<p>
The identification data is loaded
@ -1258,7 +1259,7 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
</div>
<div id="org11b6434" class="figure">
<div id="org88dabc9" class="figure">
<p><img src="figs/identification_uh.png" alt="identification_uh.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Identification signals when exciting the horizontal direction (<a href="./figs/identification_uh.png">png</a>, <a href="./figs/identification_uh.pdf">pdf</a>)</p>
@ -1266,7 +1267,7 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
<div id="org12f9542" class="figure">
<div id="orgaf83542" class="figure">
<p><img src="figs/identification_uv.png" alt="identification_uv.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Identification signals when exciting in the vertical direction (<a href="./figs/identification_uv.png">png</a>, <a href="./figs/identification_uv.pdf">pdf</a>)</p>
@ -1274,8 +1275,8 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
</div>
</div>
<div id="outline-container-orga76fba2" class="outline-4">
<h4 id="orga76fba2"><span class="section-number-4">2.3.2</span> Coherence</h4>
<div id="outline-container-orgc61c149" class="outline-4">
<h4 id="orgc61c149"><span class="section-number-4">2.3.2</span> Coherence</h4>
<div class="outline-text-4" id="text-2-3-2">
<p>
The window used for the spectral analysis is an <code>hanning</code> windows with temporal size equal to 1 second.
@ -1294,7 +1295,7 @@ The window used for the spectral analysis is an <code>hanning</code> windows wit
</div>
<div id="org7963278" class="figure">
<div id="org05a7b44" class="figure">
<p><img src="figs/coh_cercalo.png" alt="coh_cercalo.png" />
</p>
<p><span class="figure-number">Figure 17: </span>Coherence (<a href="./figs/coh_cercalo.png">png</a>, <a href="./figs/coh_cercalo.pdf">pdf</a>)</p>
@ -1302,8 +1303,8 @@ The window used for the spectral analysis is an <code>hanning</code> windows wit
</div>
</div>
<div id="outline-container-org131ac39" class="outline-4">
<h4 id="org131ac39"><span class="section-number-4">2.3.3</span> Estimation of the Frequency Response Function Matrix</h4>
<div id="outline-container-orge1f3965" class="outline-4">
<h4 id="orge1f3965"><span class="section-number-4">2.3.3</span> Estimation of the Frequency Response Function Matrix</h4>
<div class="outline-text-4" id="text-2-3-3">
<p>
We compute an estimate of the transfer functions.
@ -1317,14 +1318,14 @@ We compute an estimate of the transfer functions.
</div>
<div id="org7bbc71b" class="figure">
<div id="org0dad434" class="figure">
<p><img src="figs/frf_cercalo_gain.png" alt="frf_cercalo_gain.png" />
</p>
<p><span class="figure-number">Figure 18: </span>Frequency Response Matrix (<a href="./figs/frf_cercalo_gain.png">png</a>, <a href="./figs/frf_cercalo_gain.pdf">pdf</a>)</p>
</div>
<div id="orge616ff8" class="figure">
<div id="org6c451f4" class="figure">
<p><img src="figs/frf_cercalo_phase.png" alt="frf_cercalo_phase.png" />
</p>
<p><span class="figure-number">Figure 19: </span>Frequency Response Matrix<sub>Phase</sub> (<a href="./figs/frf_cercalo_phase.png">png</a>, <a href="./figs/frf_cercalo_phase.pdf">pdf</a>)</p>
@ -1332,8 +1333,8 @@ We compute an estimate of the transfer functions.
</div>
</div>
<div id="outline-container-orgf0a3476" class="outline-4">
<h4 id="orgf0a3476"><span class="section-number-4">2.3.4</span> Time Delay</h4>
<div id="outline-container-orgef1a3c2" class="outline-4">
<h4 id="orgef1a3c2"><span class="section-number-4">2.3.4</span> Time Delay</h4>
<div class="outline-text-4" id="text-2-3-4">
<p>
Now, we would like to remove the time delay included in the FRF prior to the model extraction.
@ -1364,8 +1365,8 @@ tf_Ucv_Vpv = tf_Ucv_Vpv<span class="org-type">./</span>G_delay_resp;
</div>
</div>
<div id="outline-container-org0174055" class="outline-4">
<h4 id="org0174055"><span class="section-number-4">2.3.5</span> Extraction of a transfer function matrix</h4>
<div id="outline-container-org36d1dfc" class="outline-4">
<h4 id="org36d1dfc"><span class="section-number-4">2.3.5</span> Extraction of a transfer function matrix</h4>
<div class="outline-text-4" id="text-2-3-5">
<p>
First we define the initial guess for the resonance frequencies and the weights associated.
@ -1415,11 +1416,11 @@ weight_Ucv_Vpv<span class="org-rainbow-delimiters-depth-1">(</span>f<span class=
</div>
<p>
The weights are shown in Fig. <a href="#org38a4998">20</a>.
The weights are shown in Fig. <a href="#org0274c3d">20</a>.
</p>
<div id="org38a4998" class="figure">
<div id="org0274c3d" class="figure">
<p><img src="figs/weights_cercalo.png" alt="weights_cercalo.png" />
</p>
<p><span class="figure-number">Figure 20: </span>Weights amplitude (<a href="./figs/weights_cercalo.png">png</a>, <a href="./figs/weights_cercalo.pdf">pdf</a>)</p>
@ -1471,7 +1472,7 @@ An we run the <code>vectfit3</code> algorithm.
</div>
<div id="org6e49a66" class="figure">
<div id="orga5de183" class="figure">
<p><img src="figs/identification_matrix_fit.png" alt="identification_matrix_fit.png" />
</p>
<p><span class="figure-number">Figure 21: </span>Transfer Function Extraction of the FRF matrix (<a href="./figs/identification_matrix_fit.png">png</a>, <a href="./figs/identification_matrix_fit.pdf">pdf</a>)</p>
@ -1479,7 +1480,7 @@ An we run the <code>vectfit3</code> algorithm.
<div id="orgfafe5c8" class="figure">
<div id="org3e1b13e" class="figure">
<p><img src="figs/identification_matrix_fit_phase.png" alt="identification_matrix_fit_phase.png" />
</p>
<p><span class="figure-number">Figure 22: </span>Transfer Function Extraction of the FRF matrix (<a href="./figs/identification_matrix_fit_phase.png">png</a>, <a href="./figs/identification_matrix_fit_phase.pdf">pdf</a>)</p>
@ -1502,8 +1503,8 @@ Gc = <span class="org-rainbow-delimiters-depth-1">[</span>G_Uch_Vph, G_Ucv_Vph;
</div>
</div>
<div id="outline-container-org29f709e" class="outline-3">
<h3 id="org29f709e"><span class="section-number-3">2.4</span> Identification of the Newport Dynamics</h3>
<div id="outline-container-org87a7d68" class="outline-3">
<h3 id="org87a7d68"><span class="section-number-3">2.4</span> Identification of the Newport Dynamics</h3>
<div class="outline-text-3" id="text-2-4">
<p>
We here identify the transfer function from a reference sent to the Newport \([U_{n,h},\ U_{n,v}]\) to the measurement made by the 4QD \([V_{p,h},\ V_{p,v}]\).
@ -1514,8 +1515,8 @@ To do so, we inject noise to the Newport \([U_{n,h},\ U_{n,v}]\) and we record t
</p>
</div>
<div id="outline-container-org18a03ed" class="outline-4">
<h4 id="org18a03ed"><span class="section-number-4">2.4.1</span> Input / Output data</h4>
<div id="outline-container-org83a4f28" class="outline-4">
<h4 id="org83a4f28"><span class="section-number-4">2.4.1</span> Input / Output data</h4>
<div class="outline-text-4" id="text-2-4-1">
<p>
The identification data is loaded
@ -1550,14 +1551,14 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
</div>
<div id="org906edc3" class="figure">
<div id="orgfaa7160" class="figure">
<p><img src="figs/identification_unh.png" alt="identification_unh.png" />
</p>
<p><span class="figure-number">Figure 23: </span>Identification signals when exciting the horizontal direction (<a href="./figs/identification_unh.png">png</a>, <a href="./figs/identification_unh.pdf">pdf</a>)</p>
</div>
<div id="org32607b6" class="figure">
<div id="org9ec6c46" class="figure">
<p><img src="figs/identification_unv.png" alt="identification_unv.png" />
</p>
<p><span class="figure-number">Figure 24: </span>Identification signals when exciting in the vertical direction (<a href="./figs/identification_unv.png">png</a>, <a href="./figs/identification_unv.pdf">pdf</a>)</p>
@ -1565,8 +1566,8 @@ uv.t = uv.t <span class="org-type">-</span> uv.t<span class="org-rainbow-delimit
</div>
</div>
<div id="outline-container-org978a0c9" class="outline-4">
<h4 id="org978a0c9"><span class="section-number-4">2.4.2</span> Coherence</h4>
<div id="outline-container-orge19fa44" class="outline-4">
<h4 id="orge19fa44"><span class="section-number-4">2.4.2</span> Coherence</h4>
<div class="outline-text-4" id="text-2-4-2">
<p>
The window used for the spectral analysis is an <code>hanning</code> windows with temporal size equal to 1 second.
@ -1585,7 +1586,7 @@ The window used for the spectral analysis is an <code>hanning</code> windows wit
</div>
<div id="org69a538e" class="figure">
<div id="org288353f" class="figure">
<p><img src="figs/id_newport_coherence.png" alt="id_newport_coherence.png" />
</p>
<p><span class="figure-number">Figure 25: </span>Coherence (<a href="./figs/id_newport_coherence.png">png</a>, <a href="./figs/id_newport_coherence.pdf">pdf</a>)</p>
@ -1593,8 +1594,8 @@ The window used for the spectral analysis is an <code>hanning</code> windows wit
</div>
</div>
<div id="outline-container-orgc0c5d02" class="outline-4">
<h4 id="orgc0c5d02"><span class="section-number-4">2.4.3</span> Estimation of the Frequency Response Function Matrix</h4>
<div id="outline-container-orgc36f0eb" class="outline-4">
<h4 id="orgc36f0eb"><span class="section-number-4">2.4.3</span> Estimation of the Frequency Response Function Matrix</h4>
<div class="outline-text-4" id="text-2-4-3">
<p>
We compute an estimate of the transfer functions.
@ -1608,14 +1609,14 @@ We compute an estimate of the transfer functions.
</div>
<div id="org2cdb3e3" class="figure">
<div id="orga7d56d3" class="figure">
<p><img src="figs/frf_newport_gain.png" alt="frf_newport_gain.png" />
</p>
<p><span class="figure-number">Figure 26: </span>Frequency Response Matrix (<a href="./figs/frf_newport_gain.png">png</a>, <a href="./figs/frf_newport_gain.pdf">pdf</a>)</p>
</div>
<div id="org02a1305" class="figure">
<div id="org8bc5549" class="figure">
<p><img src="figs/frf_newport_phase.png" alt="frf_newport_phase.png" />
</p>
<p><span class="figure-number">Figure 27: </span>Frequency Response Matrix Phase (<a href="./figs/frf_newport_phase.png">png</a>, <a href="./figs/frf_newport_phase.pdf">pdf</a>)</p>
@ -1623,8 +1624,8 @@ We compute an estimate of the transfer functions.
</div>
</div>
<div id="outline-container-orgdfcee7e" class="outline-4">
<h4 id="orgdfcee7e"><span class="section-number-4">2.4.4</span> Time Delay</h4>
<div id="outline-container-org830e6db" class="outline-4">
<h4 id="org830e6db"><span class="section-number-4">2.4.4</span> Time Delay</h4>
<div class="outline-text-4" id="text-2-4-4">
<p>
Now, we would like to remove the time delay included in the FRF prior to the model extraction.
@ -1646,7 +1647,7 @@ G_delay_resp = squeeze<span class="org-rainbow-delimiters-depth-1">(</span>freqr
We then remove the time delay from the frequency response function.
</p>
<div id="org28407ed" class="figure">
<div id="org90cd7da" class="figure">
<p><img src="figs/time_delay_newport.png" alt="time_delay_newport.png" />
</p>
<p><span class="figure-number">Figure 28: </span>Phase change due to time-delay in the Newport dynamics (<a href="./figs/time_delay_newport.png">png</a>, <a href="./figs/time_delay_newport.pdf">pdf</a>)</p>
@ -1654,11 +1655,11 @@ We then remove the time delay from the frequency response function.
</div>
</div>
<div id="outline-container-org314a223" class="outline-4">
<h4 id="org314a223"><span class="section-number-4">2.4.5</span> Extraction of a transfer function matrix</h4>
<div id="outline-container-orgab7b96b" class="outline-4">
<h4 id="orgab7b96b"><span class="section-number-4">2.4.5</span> Extraction of a transfer function matrix</h4>
<div class="outline-text-4" id="text-2-4-5">
<p>
From Fig. <a href="#org2cdb3e3">26</a>, it seems reasonable to model the Newport dynamics as diagonal and constant.
From Fig. <a href="#orga7d56d3">26</a>, it seems reasonable to model the Newport dynamics as diagonal and constant.
</p>
<div class="org-src-container">
@ -1669,8 +1670,8 @@ From Fig. <a href="#org2cdb3e3">26</a>, it seems reasonable to model the Newport
</div>
</div>
<div id="outline-container-org8fe71fd" class="outline-3">
<h3 id="org8fe71fd"><span class="section-number-3">2.5</span> Full System</h3>
<div id="outline-container-orgee9b6d9" class="outline-3">
<h3 id="orgee9b6d9"><span class="section-number-3">2.5</span> Full System</h3>
<div class="outline-text-3" id="text-2-5">
<p>
We now have identified:
@ -1732,12 +1733,12 @@ The file <code>mat/plant.mat</code> is accessible <a href="./mat/plant.mat">here
</div>
</div>
<div id="outline-container-org07fb936" class="outline-2">
<h2 id="org07fb936"><span class="section-number-2">3</span> Active Damping</h2>
<div id="outline-container-orgbb8218f" class="outline-2">
<h2 id="orgbb8218f"><span class="section-number-2">3</span> Active Damping</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-org07da045" class="outline-3">
<h3 id="org07da045"><span class="section-number-3">3.1</span> Load Plant</h3>
<div id="outline-container-org584508e" class="outline-3">
<h3 id="org584508e"><span class="section-number-3">3.1</span> Load Plant</h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/plant.mat', 'sys', 'Gi', 'Zc', 'Ga', 'Gc', 'Gn', 'Gd'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1746,8 +1747,8 @@ The file <code>mat/plant.mat</code> is accessible <a href="./mat/plant.mat">here
</div>
</div>
<div id="outline-container-orge1669f2" class="outline-3">
<h3 id="orge1669f2"><span class="section-number-3">3.2</span> Test</h3>
<div id="outline-container-org0df875d" class="outline-3">
<h3 id="org0df875d"><span class="section-number-3">3.2</span> Test</h3>
<div class="outline-text-3" id="text-3-2">
<div class="org-src-container">
<pre class="src src-matlab">bode<span class="org-rainbow-delimiters-depth-1">(</span>sys<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">{</span><span class="org-string">'Vch', 'Vcv'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">}</span></span><span class="org-string">, </span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">{</span></span><span class="org-string">'Uch', 'Ucv'</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1775,8 +1776,8 @@ sys_cl = connect<span class="org-rainbow-delimiters-depth-1">(</span>sys, Kppf,
</div>
</div>
<div id="outline-container-orgf4f85b9" class="outline-2">
<h2 id="orgf4f85b9"><span class="section-number-2">4</span> <span class="todo TODO">TODO</span> Huddle Test</h2>
<div id="outline-container-org4ac14f0" class="outline-2">
<h2 id="org4ac14f0"><span class="section-number-2">4</span> <span class="todo TODO">TODO</span> Huddle Test</h2>
<div class="outline-text-2" id="text-4">
<p>
We load the data taken during the Huddle Test.
@ -1861,8 +1862,8 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
</div>
<div id="outline-container-org03828c5" class="outline-2">
<h2 id="org03828c5"><span class="section-number-2">5</span> Plant Scaling</h2>
<div id="outline-container-orgb1866ab" class="outline-2">
<h2 id="orgb1866ab"><span class="section-number-2">5</span> Plant Scaling</h2>
<div class="outline-text-2" id="text-5">
<ul class="org-ul">
<li>measured noise</li>
@ -1873,12 +1874,12 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
</div>
<div id="outline-container-org8254d1a" class="outline-2">
<h2 id="org8254d1a"><span class="section-number-2">6</span> Plant Analysis</h2>
<div id="outline-container-orgdc654c4" class="outline-2">
<h2 id="orgdc654c4"><span class="section-number-2">6</span> Plant Analysis</h2>
<div class="outline-text-2" id="text-6">
</div>
<div id="outline-container-org592969b" class="outline-3">
<h3 id="org592969b"><span class="section-number-3">6.1</span> Load Plant</h3>
<div id="outline-container-org59cd7d2" class="outline-3">
<h3 id="org59cd7d2"><span class="section-number-3">6.1</span> Load Plant</h3>
<div class="outline-text-3" id="text-6-1">
<div class="org-src-container">
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/plant.mat', 'G'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1887,8 +1888,8 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
</div>
<div id="outline-container-org966d85b" class="outline-3">
<h3 id="org966d85b"><span class="section-number-3">6.2</span> RGA-Number</h3>
<div id="outline-container-org62e9187" class="outline-3">
<h3 id="org62e9187"><span class="section-number-3">6.2</span> RGA-Number</h3>
<div class="outline-text-3" id="text-6-2">
<div class="org-src-container">
<pre class="src src-matlab">freqs = logspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1927,8 +1928,8 @@ V = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-h
</div>
</div>
<div id="outline-container-org7063733" class="outline-3">
<h3 id="org7063733"><span class="section-number-3">6.3</span> Rotation Matrix</h3>
<div id="outline-container-org4bc71a6" class="outline-3">
<h3 id="org4bc71a6"><span class="section-number-3">6.3</span> Rotation Matrix</h3>
<div class="outline-text-3" id="text-6-3">
<div class="org-src-container">
<pre class="src src-matlab">G0 = freqresp<span class="org-rainbow-delimiters-depth-1">(</span>G, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1938,8 +1939,8 @@ V = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-h
</div>
</div>
<div id="outline-container-org759298e" class="outline-2">
<h2 id="org759298e"><span class="section-number-2">7</span> Control Objective</h2>
<div id="outline-container-org29f5209" class="outline-2">
<h2 id="org29f5209"><span class="section-number-2">7</span> Control Objective</h2>
<div class="outline-text-2" id="text-7">
<p>
The maximum expected stroke is \(y_\text{max} = 3mm \approx 5e^{-2} rad\) at \(1Hz\).
@ -1961,11 +1962,11 @@ In terms of loop gain, this is equivalent to:
</div>
</div>
<div id="outline-container-org96df63d" class="outline-2">
<h2 id="org96df63d"><span class="section-number-2">8</span> Decentralized Control</h2>
<div id="outline-container-org2b9b5f8" class="outline-2">
<h2 id="org2b9b5f8"><span class="section-number-2">8</span> Decentralized Control</h2>
<div class="outline-text-2" id="text-8">
<p>
<a id="org4e742a7"></a>
<a id="orgc668c78"></a>
</p>
<p>
In this section, we try to implement a simple decentralized controller.
@ -1978,8 +1979,8 @@ All the files (data and Matlab scripts) are accessible <a href="data/decentraliz
</div>
</div>
<div id="outline-container-orgde6febc" class="outline-3">
<h3 id="orgde6febc"><span class="section-number-3">8.1</span> Load Plant</h3>
<div id="outline-container-orgff694d6" class="outline-3">
<h3 id="orgff694d6"><span class="section-number-3">8.1</span> Load Plant</h3>
<div class="outline-text-3" id="text-8-1">
<div class="org-src-container">
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/plant.mat', 'sys', 'Gi', 'Zc', 'Ga', 'Gc', 'Gn', 'Gd'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1988,12 +1989,12 @@ All the files (data and Matlab scripts) are accessible <a href="data/decentraliz
</div>
</div>
<div id="outline-container-orgf815918" class="outline-3">
<h3 id="orgf815918"><span class="section-number-3">8.2</span> Diagonal Controller</h3>
<div id="outline-container-orgb485008" class="outline-3">
<h3 id="orgb485008"><span class="section-number-3">8.2</span> Diagonal Controller</h3>
<div class="outline-text-3" id="text-8-2">
<p>
Using <code>SISOTOOL</code>, a diagonal controller is designed.
The two SISO loop gains are shown in Fig. <a href="#org8ca046f">29</a>.
The two SISO loop gains are shown in Fig. <a href="#org6e368fe">29</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Kh = <span class="org-type">-</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">25598</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">112</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> <span class="org-highlight-numbers-number">15</span>.<span class="org-highlight-numbers-number">93</span><span class="org-type">*</span>s <span class="org-type">+</span> <span class="org-highlight-numbers-number">6</span>.<span class="org-highlight-numbers-number">686e06</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">352</span>.<span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">1</span><span class="org-type">+</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2000</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -2006,14 +2007,14 @@ K.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
</div>
<div id="org8ca046f" class="figure">
<div id="org6e368fe" class="figure">
<p><img src="figs/diag_contr_loop_gain.png" alt="diag_contr_loop_gain.png" />
</p>
<p><span class="figure-number">Figure 29: </span>Loop Gain using the Decentralized Diagonal Controller (<a href="./figs/diag_contr_loop_gain.png">png</a>, <a href="./figs/diag_contr_loop_gain.pdf">pdf</a>)</p>
</div>
<p>
We then close the loop and we look at the transfer function from the Newport rotation signal to the beam angle (Fig. <a href="#org1a57ffe">30</a>).
We then close the loop and we look at the transfer function from the Newport rotation signal to the beam angle (Fig. <a href="#orgf836e78">30</a>).
</p>
<div class="org-src-container">
<pre class="src src-matlab">inputs = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Uch', 'Ucv', 'Unh', 'Unv'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
@ -2024,22 +2025,40 @@ sys_cl = connect<span class="org-rainbow-delimiters-depth-1">(</span>sys, <span
</div>
<div id="org1a57ffe" class="figure">
<div id="orgf836e78" class="figure">
<p><img src="figs/diag_contr_effect_newport.png" alt="diag_contr_effect_newport.png" />
</p>
<p><span class="figure-number">Figure 30: </span>Effect of the Newport rotation on the beam position when the loop is closed using the Decentralized Diagonal Controller (<a href="./figs/diag_contr_effect_newport.png">png</a>, <a href="./figs/diag_contr_effect_newport.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org37b475d" class="outline-3">
<h3 id="org37b475d"><span class="section-number-3">8.3</span> Save the Controller</h3>
<div class="outline-text-3" id="text-8-3">
<div class="org-src-container">
<pre class="src src-matlab">Kd = c2d<span class="org-rainbow-delimiters-depth-1">(</span>K, <span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">4</span>, <span class="org-string">'tustin'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="outline-container-orge641704" class="outline-2">
<h2 id="orge641704"><span class="section-number-2">9</span> Measurement of the non-repeatability</h2>
<p>
The diagonal controller is accessible <a href="./mat/K_diag.mat">here</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/K_diag.mat', 'K', 'Kd'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org58d3080" class="outline-2">
<h2 id="org58d3080"><span class="section-number-2">9</span> Measurement of the non-repeatability</h2>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-09-17 mar. 15:53</p>
<p class="date">Created: 2019-09-17 mar. 16:21</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -2147,4 +2147,14 @@ We then close the loop and we look at the transfer function from the Newport rot
#+CAPTION: Effect of the Newport rotation on the beam position when the loop is closed using the Decentralized Diagonal Controller ([[./figs/diag_contr_effect_newport.png][png]], [[./figs/diag_contr_effect_newport.pdf][pdf]])
[[file:figs/diag_contr_effect_newport.png]]
** Save the Controller
#+begin_src matlab
Kd = c2d(K, 1e-4, 'tustin');
#+end_src
The diagonal controller is accessible [[./mat/K_diag.mat][here]].
#+begin_src matlab
save('mat/K_diag.mat', 'K', 'Kd');
#+end_src
* Measurement of the non-repeatability

BIN
mat/K_diag.mat Normal file

Binary file not shown.