2020-04-08 22:53:43 +02:00
<?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 >
2021-02-20 23:09:27 +01:00
<!-- 2021 - 02 - 20 sam. 23:09 -->
2020-04-08 22:53:43 +02:00
< meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" / >
< title > Control of the NASS with optimal stiffness< / title >
< meta name = "generator" content = "Org mode" / >
< meta name = "author" content = "Dehaeze Thomas" / >
2021-02-20 23:09:27 +01:00
< 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 = {
svg: {
scale: 1,
fontCache: "global"
},
tex: {
tags: "ams",
multlineWidth: "%MULTLINEWIDTH",
tagSide: "right",
macros: {bm: ["\\boldsymbol{#1}",1],},
tagIndent: ".8em"
}
};
< / script >
< script id = "MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">< / script >
2020-04-08 22:53:43 +02:00
< / head >
< body >
< div id = "org-div-home-and-up" >
< a accesskey = "h" href = "./index.html" > UP < / a >
|
2021-02-20 23:09:27 +01:00
< a accesskey = "H" href = "../../index.html" > HOME < / a >
2020-04-08 22:53:43 +02:00
< / div > < div id = "content" >
< h1 class = "title" > Control of the NASS with optimal stiffness< / h1 >
< div id = "table-of-contents" >
< h2 > Table of Contents< / h2 >
< div id = "text-table-of-contents" >
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#orgdb6e4f3" > 1. Low Authority Control - Decentralized Direct Velocity Feedback< / a >
2020-04-08 22:53:43 +02:00
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org9319182" > 1.1. Initialization< / a > < / li >
< li > < a href = "#org8b02bfa" > 1.2. Identification< / a > < / li >
< li > < a href = "#org6f820ae" > 1.3. Controller Design< / a > < / li >
< li > < a href = "#org5434213" > 1.4. Effect of the Low Authority Control on the Primary Plant< / a > < / li >
< li > < a href = "#orgc187d77" > 1.5. Effect of the Low Authority Control on the Sensibility to Disturbances< / a > < / li >
< li > < a href = "#org9539bfe" > 1.6. Conclusion< / a > < / li >
2020-04-08 22:53:43 +02:00
< / ul >
< / li >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org2797edc" > 2. Primary Control in the leg space< / a >
2020-04-08 22:53:43 +02:00
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org8c682ad" > 2.1. Plant in the leg space< / a > < / li >
< li > < a href = "#org8308914" > 2.2. Control in the leg space< / a > < / li >
< li > < a href = "#org5a96746" > 2.3. Sensibility to Disturbances and Noise Budget< / a > < / li >
< li > < a href = "#org370df82" > 2.4. Simulations of Tomography Experiment< / a > < / li >
< li > < a href = "#orgd19d198" > 2.5. Results< / a > < / li >
< li > < a href = "#org4bc7412" > 2.6. Actuator Stroke and Forces< / a > < / li >
< li > < a href = "#orgead2d0d" > 2.7. Conclusion< / a > < / li >
2020-04-17 10:25:44 +02:00
< / ul >
< / li >
2021-02-20 23:09:27 +01:00
< li > < a href = "#orgbb6ed0e" > 3. Further More complex simulations< / a >
2020-04-17 10:25:44 +02:00
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#orgbe6d807" > 3.1. Simulation with Micro-Hexapod Offset< / a >
2020-04-17 10:25:44 +02:00
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#orgd36f8c4" > 3.1.1. Simulation< / a > < / li >
< li > < a href = "#org8fe5f58" > 3.1.2. Results< / a > < / li >
2020-04-17 10:25:44 +02:00
< / ul >
< / li >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org9753678" > 3.2. Simultaneous Translation scans and Spindle’ s rotation< / a >
2020-05-05 11:38:52 +02:00
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org2619c3f" > 3.2.1. Simulation< / a > < / li >
< li > < a href = "#org8a2b562" > 3.2.2. Results< / a > < / li >
2020-05-05 11:38:52 +02:00
< / ul >
< / li >
< / ul >
< / li >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org26c4ef6" > 4. Primary Control in the task space< / a >
2020-05-05 11:38:52 +02:00
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org48bda71" > 4.1. Plant in the task space< / a > < / li >
< li > < a href = "#org4251f93" > 4.2. Control in the task space< / a >
2020-05-05 11:38:52 +02:00
< ul >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org226215f" > 4.2.1. Stability< / a > < / li >
2020-05-05 11:38:52 +02:00
< / ul >
< / li >
2021-02-20 23:09:27 +01:00
< li > < a href = "#org0aa9f05" > 4.3. Simulation< / a > < / li >
< li > < a href = "#org4a860c5" > 4.4. Conclusion< / a > < / li >
2020-04-08 22:53:43 +02:00
< / ul >
< / li >
< / ul >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-orgdb6e4f3" class = "outline-2" >
< h2 id = "orgdb6e4f3" > < span class = "section-number-2" > 1< / span > Low Authority Control - Decentralized Direct Velocity Feedback< / h2 >
2020-04-08 22:53:43 +02:00
< div class = "outline-text-2" id = "text-1" >
2020-04-17 10:25:44 +02:00
< p >
2021-02-20 23:09:27 +01:00
< a id = "org8d1c1a1" > < / a >
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div id = "org26ba32b" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/control_architecture_dvf.png" alt = "control_architecture_dvf.png" / >
< / p >
< p > < span class = "figure-number" > Figure 1: < / span > Low Authority Control: Decentralized Direct Velocity Feedback< / p >
< / div >
2020-04-08 22:53:43 +02:00
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org9319182" class = "outline-3" >
< h3 id = "org9319182" > < span class = "section-number-3" > 1.1< / span > Initialization< / h3 >
2020-04-08 22:53:43 +02:00
< div class = "outline-text-3" id = "text-1-1" >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc();
initializeMirror();
initializeSimscapeConfiguration();
initializeDisturbances(< span class = "org-string" > 'enable'< / span > , < span class = "org-constant" > false< / span > );
initializeLoggingConfiguration(< span class = "org-string" > 'log'< / span > , < span class = "org-string" > 'none'< / span > );
initializeController(< span class = "org-string" > 'type'< / span > , < span class = "org-string" > 'hac-dvf'< / span > );
2020-04-08 22:53:43 +02:00
< / pre >
< / div >
2020-04-17 10:25:44 +02:00
< p >
We set the stiffness of the payload fixation:
< / p >
2020-04-08 22:53:43 +02:00
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > Kp = 1e8; < span class = "org-comment" > % [N/m]< / span >
2020-04-08 22:53:43 +02:00
< / pre >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org8b02bfa" class = "outline-3" >
< h3 id = "org8b02bfa" > < span class = "section-number-3" > 1.2< / span > Identification< / h3 >
2020-04-08 22:53:43 +02:00
< div class = "outline-text-3" id = "text-1-2" >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > K = tf(zeros(6));
Kdvf = tf(zeros(6));
2020-04-08 22:53:43 +02:00
< / pre >
< / div >
2020-04-17 10:25:44 +02:00
< p >
We identify the system for the following payload masses:
< / p >
2020-04-08 22:53:43 +02:00
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > Ms = [1, 10, 50];
2020-04-08 22:53:43 +02:00
< / pre >
< / div >
2020-04-17 10:25:44 +02:00
< p >
The nano-hexapod has the following leg’ s stiffness and damping.
< / p >
2020-04-08 22:53:43 +02:00
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > initializeNanoHexapod(< span class = "org-string" > 'k'< / span > , 1e5, < span class = "org-string" > 'c'< / span > , 2e2);
2020-04-08 22:53:43 +02:00
< / pre >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org6f820ae" class = "outline-3" >
< h3 id = "org6f820ae" > < span class = "section-number-3" > 1.3< / span > Controller Design< / h3 >
2020-04-08 22:53:43 +02:00
< div class = "outline-text-3" id = "text-1-3" >
< p >
2021-02-20 23:09:27 +01:00
The obtain dynamics from actuators forces \(\tau_i\) to the relative motion of the legs \(d\mathcal{L}_i\) is shown in Figure < a href = "#org3f64a5c" > 2< / a > for the three considered payload masses.
2020-04-17 10:25:44 +02:00
< / p >
< p >
2021-02-20 23:09:27 +01:00
The Root Locus is shown in Figure < a href = "#org4342572" > 3< / a > and wee see that we have unconditional stability.
2020-04-17 10:25:44 +02:00
< / p >
< p >
2021-02-20 23:09:27 +01:00
In order to choose the gain such that we obtain good damping for all the three payload masses, we plot the damping ration of the modes as a function of the gain for all three payload masses in Figure < a href = "#org79a7504" > 4< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div id = "org3f64a5c" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_dvf_plant.png" alt = "opt_stiff_dvf_plant.png" / >
2020-04-08 22:53:43 +02:00
< / p >
2020-04-17 10:25:44 +02:00
< p > < span class = "figure-number" > Figure 2: < / span > Dynamics for the Direct Velocity Feedback active damping for three payload masses< / p >
< / div >
2020-04-08 22:53:43 +02:00
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
< div id = "org4342572" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_dvf_root_locus.png" alt = "opt_stiff_dvf_root_locus.png" / >
2020-04-08 22:53:43 +02:00
< / p >
2020-05-20 16:41:34 +02:00
< p > < span class = "figure-number" > Figure 3: < / span > Root Locus for the DVF control for three payload masses< / p >
2020-04-08 22:53:43 +02:00
< / div >
< p >
Damping as function of the gain
< / p >
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
< div id = "org79a7504" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_dvf_damping_gain.png" alt = "opt_stiff_dvf_damping_gain.png" / >
< / p >
< p > < span class = "figure-number" > Figure 4: < / span > Damping ratio of the poles as a function of the DVF gain< / p >
< / div >
< p >
Finally, we use the following controller for the Decentralized Direct Velocity Feedback:
< / p >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > Kdvf = 5e3< 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 > 1e3)< span class = "org-type" > *< / span > eye(6);
2020-04-17 10:25:44 +02:00
< / pre >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org5434213" class = "outline-3" >
< h3 id = "org5434213" > < span class = "section-number-3" > 1.4< / span > Effect of the Low Authority Control on the Primary Plant< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-1-4" >
< p >
Let’ s identify the dynamics from actuator forces \(\bm{\tau}\) to displacement as measured by the metrology \(\bm{\mathcal{X}}\):
\[ \bm{G}(s) = \frac{\bm{\mathcal{X}}}{\bm{\tau}} \]
We do so both when the DVF is applied and when it is not applied.
< / p >
< p >
Then, we compute the transfer function from forces applied by the actuators \(\bm{\mathcal{F}}\) to the measured position error in the frame of the nano-hexapod \(\bm{\epsilon}_{\mathcal{X}_n}\):
\[ \bm{G}_\mathcal{X}(s) = \frac{\bm{\epsilon}_{\mathcal{X}_n}}{\bm{\mathcal{F}}} = \bm{G}(s) \bm{J}^{-T} \]
2021-02-20 23:09:27 +01:00
The obtained dynamics is shown in Figure < a href = "#org4b0b413" > 5< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div class = "important" id = "orgd787228" >
2020-04-17 14:11:34 +02:00
< p >
A zero with a positive real part is introduced in the transfer function from \(\mathcal{F}_y\) to \(\mathcal{X}_y\) after Decentralized Direct Velocity Feedback is applied.
< / p >
< / div >
2020-04-17 10:25:44 +02:00
< p >
And we compute the transfer function from actuator forces \(\bm{\tau}\) to position error of each leg \(\bm{\epsilon}_\mathcal{L}\):
\[ \bm{G}_\mathcal{L} = \frac{\bm{\epsilon}_\mathcal{L}}{\bm{\tau}} = \bm{J} \bm{G}(s) \]
2021-02-20 23:09:27 +01:00
The obtained dynamics is shown in Figure < a href = "#org0a1130b" > 6< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div id = "org4b0b413" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_plant_damped_X.png" alt = "opt_stiff_primary_plant_damped_X.png" / >
< / p >
< p > < span class = "figure-number" > Figure 5: < / span > Primary plant in the task space with (dashed) and without (solid) Direct Velocity Feedback< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org0a1130b" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_plant_damped_L.png" alt = "opt_stiff_primary_plant_damped_L.png" / >
< / p >
< p > < span class = "figure-number" > Figure 6: < / span > Primary plant in the space of the legs with (dashed) and without (solid) Direct Velocity Feedback< / p >
< / div >
< p >
2021-02-20 23:09:27 +01:00
The coupling (off diagonal elements) of \(\bm{G}_\mathcal{X}\) are shown in Figure < a href = "#org67cb6cd" > 7< / a > both when DVF is applied and when it is not.
2020-04-17 10:25:44 +02:00
< / p >
< p >
The coupling does not change a lot with DVF.
< / p >
< p >
2021-02-20 23:09:27 +01:00
The coupling in the space of the legs \(\bm{G}_\mathcal{L}\) are shown in Figure < a href = "#org6331a29" > 8< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div class = "important" id = "orgc16e5dd" >
2020-04-17 14:11:34 +02:00
< p >
2021-02-20 23:09:27 +01:00
The magnitude of the coupling between \(\tau_i\) and \(d\mathcal{L}_j\) (Figure < a href = "#org6331a29" > 8< / a > ) around the resonance of the nano-hexapod (where the coupling is the highest) is considerably reduced when DVF is applied.
2020-04-17 14:11:34 +02:00
< / p >
< / div >
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
< div id = "org67cb6cd" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_plant_damped_coupling_X.png" alt = "opt_stiff_primary_plant_damped_coupling_X.png" / >
< / p >
< p > < span class = "figure-number" > Figure 7: < / span > Coupling in the primary plant in the task with (dashed) and without (solid) Direct Velocity Feedback< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org6331a29" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_plant_damped_coupling_L.png" alt = "opt_stiff_primary_plant_damped_coupling_L.png" / >
< / p >
< p > < span class = "figure-number" > Figure 8: < / span > Coupling in the primary plant in the space of the legs with (dashed) and without (solid) Direct Velocity Feedback< / p >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-orgc187d77" class = "outline-3" >
< h3 id = "orgc187d77" > < span class = "section-number-3" > 1.5< / span > Effect of the Low Authority Control on the Sensibility to Disturbances< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-1-5" >
< p >
We may now see how Decentralized Direct Velocity Feedback changes the sensibility to disturbances, namely:
< / p >
< ul class = "org-ul" >
< li > Ground motion< / li >
< li > Spindle and Translation stage vibrations< / li >
< li > Direct forces applied to the sample< / li >
< / ul >
< p >
To simplify the analysis, we here only consider the vertical direction, thus, we will look at the transfer functions:
< / p >
< ul class = "org-ul" >
< li > from vertical ground motion \(D_{w,z}\) to the vertical position error of the sample \(E_z\)< / li >
< li > from vertical vibration forces of the spindle \(F_{R_z,z}\) to \(E_z\)< / li >
< li > from vertical vibration forces of the translation stage \(F_{T_y,z}\) to \(E_z\)< / li >
< li > from vertical direct forces (such as cable forces) \(F_{d,z}\) to \(E_z\)< / li >
< / ul >
< p >
2021-02-20 23:09:27 +01:00
The norm of these transfer functions are shown in Figure < a href = "#orgc177556" > 9< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div id = "orgc177556" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_sensibility_dist_dvf.png" alt = "opt_stiff_sensibility_dist_dvf.png" / >
< / p >
< p > < span class = "figure-number" > Figure 9: < / span > Norm of the transfer function from vertical disturbances to vertical position error with (dashed) and without (solid) Direct Velocity Feedback applied< / p >
2020-04-17 14:11:34 +02:00
< / div >
2021-02-20 23:09:27 +01:00
< div class = "important" id = "orgb9e4f65" >
2020-04-17 14:11:34 +02:00
< p >
Decentralized Direct Velocity Feedback is shown to increase the effect of stages vibrations at high frequency and to reduce the effect of ground motion and direct forces at low frequency.
< / p >
2020-04-17 10:25:44 +02:00
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org9539bfe" class = "outline-3" >
< h3 id = "org9539bfe" > < span class = "section-number-3" > 1.6< / span > Conclusion< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-1-6" >
2021-02-20 23:09:27 +01:00
< div class = "important" id = "orgf2d2cca" >
2020-04-17 10:25:44 +02:00
< p >
< / p >
2020-04-08 22:53:43 +02:00
< / div >
< / div >
< / div >
2020-04-17 10:25:44 +02:00
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org2797edc" class = "outline-2" >
< h2 id = "org2797edc" > < span class = "section-number-2" > 2< / span > Primary Control in the leg space< / h2 >
2020-04-08 22:53:43 +02:00
< div class = "outline-text-2" id = "text-2" >
2020-04-17 10:25:44 +02:00
< p >
2021-02-20 23:09:27 +01:00
< a id = "orge570650" > < / a >
2020-04-17 10:25:44 +02:00
< / p >
< p >
2021-02-20 23:09:27 +01:00
In this section we implement the control architecture shown in Figure < a href = "#orga22fd47" > 10< / a > consisting of:
2020-04-17 10:25:44 +02:00
< / p >
< ul class = "org-ul" >
< li > an inner loop with a decentralized direct velocity feedback control< / li >
< li > an outer loop where the controller \(\bm{K}_\mathcal{L}\) is designed in the frame of the legs< / li >
< / ul >
2021-02-20 23:09:27 +01:00
< div id = "orga22fd47" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/control_architecture_hac_dvf_pos_L.png" alt = "control_architecture_hac_dvf_pos_L.png" / >
< / p >
< p > < span class = "figure-number" > Figure 10: < / span > Cascade Control Architecture. The inner loop consist of a decentralized Direct Velocity Feedback. The outer loop consist of position control in the leg’ s space< / p >
2020-04-08 22:53:43 +02:00
< / div >
2020-04-17 10:25:44 +02:00
< p >
2021-02-20 23:09:27 +01:00
The controller for decentralized direct velocity feedback is the one designed in Section < a href = "#org8d1c1a1" > 1< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2020-04-08 22:53:43 +02:00
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org8c682ad" class = "outline-3" >
< h3 id = "org8c682ad" > < span class = "section-number-3" > 2.1< / span > Plant in the leg space< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-2-1" >
< p >
2020-04-17 14:11:34 +02:00
We now look at the transfer function matrix from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) for the design of \(\bm{K}_\mathcal{L}\).
2020-04-17 10:25:44 +02:00
< / p >
2020-04-08 22:53:43 +02:00
2020-04-17 10:25:44 +02:00
< p >
2021-02-20 23:09:27 +01:00
The diagonal elements of the transfer function matrix from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) for the three considered masses are shown in Figure < a href = "#org15749d9" > 11< / a > .
2020-04-17 10:25:44 +02:00
< / p >
< p >
The plant dynamics below \(100\ [Hz]\) is only slightly dependent on the payload mass.
< / p >
2021-02-20 23:09:27 +01:00
< div id = "org15749d9" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_plant_L.png" alt = "opt_stiff_primary_plant_L.png" / >
< / p >
< p > < span class = "figure-number" > Figure 11: < / span > Diagonal elements of the transfer function matrix from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) for the three considered masses< / p >
2020-04-08 22:53:43 +02:00
< / div >
< / div >
2020-04-17 10:25:44 +02:00
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org8308914" class = "outline-3" >
< h3 id = "org8308914" > < span class = "section-number-3" > 2.2< / span > Control in the leg space< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-2-2" >
< p >
We design a diagonal controller with all the same diagonal elements.
< / p >
2020-04-08 22:53:43 +02:00
2020-04-17 10:25:44 +02:00
< p >
The requirements for the controller are:
< / p >
< ul class = "org-ul" >
< li > Crossover frequency of around 100Hz< / li >
< li > Stable for all the considered payload masses< / li >
< li > Sufficient phase and gain margin< / li >
< li > Integral action at low frequency< / li >
< / ul >
< p >
The design controller is as follows:
< / p >
< ul class = "org-ul" >
< li > Lead centered around the crossover< / li >
< li > An integrator below 10Hz< / li >
< li > A low pass filter at 250Hz< / li >
< / ul >
< p >
2021-02-20 23:09:27 +01:00
The loop gain is shown in Figure < a href = "#org05096f1" > 12< / a > .
2020-04-17 10:25:44 +02:00
< / p >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > h = 2.0;
Kl = 2e7 < span class = "org-type" > *< / span > eye(6) < span class = "org-type" > *< / span > ...
1< span class = "org-type" > /< / span > h< 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 > 100< span class = "org-type" > /< / span > h) < 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 > 100< span class = "org-type" > *< / span > h) < span class = "org-type" > +< / span > 1) < span class = "org-type" > *< / span > ...
1< span class = "org-type" > /< / span > h< 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 > 200< span class = "org-type" > /< / span > h) < 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 > 200< span class = "org-type" > *< / span > h) < 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 > 10 < 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 > 10) < span class = "org-type" > *< / span > ...
1< 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 > 300);
2020-04-17 10:25:44 +02:00
< / pre >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org05096f1" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_loop_gain_L.png" alt = "opt_stiff_primary_loop_gain_L.png" / >
< / p >
< p > < span class = "figure-number" > Figure 12: < / span > Loop gain for the primary plant< / p >
< / div >
2020-04-17 14:11:34 +02:00
< p >
Finally, we include the Jacobian in the control and we ignore the measurement of the vertical rotation as for the real system.
< / p >
2020-04-17 10:25:44 +02:00
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > load(< span class = "org-string" > 'mat/stages.mat'< / span > , < span class = "org-string" > 'nano_hexapod'< / span > );
K = Kl< span class = "org-type" > *< / span > nano_hexapod.kinematics.J< span class = "org-type" > *< / span > diag([1, 1, 1, 1, 1, 0]);
2020-04-17 10:25:44 +02:00
< / pre >
< / div >
< / div >
< / div >
2020-04-17 14:11:34 +02:00
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org5a96746" class = "outline-3" >
< h3 id = "org5a96746" > < span class = "section-number-3" > 2.3< / span > Sensibility to Disturbances and Noise Budget< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-2-3" >
< p >
We identify the transfer function from disturbances to the position error of the sample when the HAC-LAC control is applied.
< / p >
< p >
2021-02-20 23:09:27 +01:00
We compare the norm of these transfer function for the vertical direction when no control is applied and when HAC-LAC control is applied: Figure < a href = "#orgc3a7b3a" > 13< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div id = "orgc3a7b3a" class = " figure " >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_control_L_senbility_dist.png" alt = "opt_stiff_primary_control_L_senbility_dist.png" / >
< / p >
< p > < span class = "figure-number" > Figure 13: < / span > Sensibility to disturbances when the HAC-LAC control is applied< / p >
< / div >
< p >
Then, we load the Power Spectral Density of the perturbations and we look at the obtained PSD of the displacement error in the vertical direction due to the disturbances:
< / p >
< ul class = "org-ul" >
2021-02-20 23:09:27 +01:00
< li > Figure < a href = "#org7ae258c" > 14< / a > : Amplitude Spectral Density of the vertical position error due to both the vertical ground motion and the vertical vibrations of the spindle< / li >
< li > Figure < a href = "#org72bd654" > 15< / a > : Comparison of the Amplitude Spectral Density of the vertical position error in Open Loop and with the HAC-DVF Control< / li >
< li > Figure < a href = "#org08b6134" > 16< / a > : Comparison of the Cumulative Amplitude Spectrum of the vertical position error in Open Loop and with the HAC-DVF Control< / li >
2020-04-17 10:25:44 +02:00
< / ul >
2021-02-20 23:09:27 +01:00
< div id = "org7ae258c" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_control_L_psd_dist.png" alt = "opt_stiff_primary_control_L_psd_dist.png" / >
< / p >
< p > < span class = "figure-number" > Figure 14: < / span > Amplitude Spectral Density of the vertical position error of the sample when the HAC-DVF control is applied due to both the ground motion and spindle vibrations< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org72bd654" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_control_L_psd_tot.png" alt = "opt_stiff_primary_control_L_psd_tot.png" / >
< / p >
< p > < span class = "figure-number" > Figure 15: < / span > Amplitude Spectral Density of the vertical position error of the sample in Open-Loop and when the HAC-DVF control is applied< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org08b6134" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_primary_control_L_cas_tot.png" alt = "opt_stiff_primary_control_L_cas_tot.png" / >
< / p >
< p > < span class = "figure-number" > Figure 16: < / span > Cumulative Amplitude Spectrum of the vertical position error of the sample in Open-Loop and when the HAC-DVF control is applied< / p >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org370df82" class = "outline-3" >
< h3 id = "org370df82" > < span class = "section-number-3" > 2.4< / span > Simulations of Tomography Experiment< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-2-4" >
< p >
Let’ s now simulate a tomography experiment.
To do so, we include all disturbances except vibrations of the translation stage.
< / p >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > initializeDisturbances();
initializeSimscapeConfiguration(< span class = "org-string" > 'gravity'< / span > , < span class = "org-constant" > false< / span > );
initializeLoggingConfiguration(< span class = "org-string" > 'log'< / span > , < span class = "org-string" > 'all'< / span > );
2020-04-17 10:25:44 +02:00
< / pre >
< / div >
< p >
And we run the simulation for all three payload Masses.
< / p >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-orgd19d198" class = "outline-3" >
< h3 id = "orgd19d198" > < span class = "section-number-3" > 2.5< / span > Results< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-2-5" >
< p >
Let’ s now see how this controller performs.
< / p >
< p >
2021-02-20 23:09:27 +01:00
First, we compute the Power Spectral Density of the sample’ s position error and we compare it with the open loop case in Figure < a href = "#orgeb9afe3" > 17< / a > .
2020-04-17 10:25:44 +02:00
< / p >
< p >
2021-02-20 23:09:27 +01:00
Similarly, the Cumulative Amplitude Spectrum is shown in Figure < a href = "#org6b85652" > 18< / a > .
2020-04-17 10:25:44 +02:00
< / p >
< p >
2021-02-20 23:09:27 +01:00
Finally, the time domain position error signals are shown in Figure < a href = "#orge2cc533" > 19< / a > .
2020-04-17 10:25:44 +02:00
< / p >
2021-02-20 23:09:27 +01:00
< div id = "orgeb9afe3" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_L_psd_disp_error.png" alt = "opt_stiff_hac_dvf_L_psd_disp_error.png" / >
< / p >
< p > < span class = "figure-number" > Figure 17: < / span > Amplitude Spectral Density of the position error in Open Loop and with the HAC-LAC controller< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org6b85652" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_L_cas_disp_error.png" alt = "opt_stiff_hac_dvf_L_cas_disp_error.png" / >
< / p >
< p > < span class = "figure-number" > Figure 18: < / span > Cumulative Amplitude Spectrum of the position error in Open Loop and with the HAC-LAC controller< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "orge2cc533" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_L_pos_error.png" alt = "opt_stiff_hac_dvf_L_pos_error.png" / >
< / p >
< p > < span class = "figure-number" > Figure 19: < / span > Position Error of the sample during a tomography experiment when no control is applied and with the HAC-DVF control architecture< / p >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org4bc7412" class = "outline-3" >
< h3 id = "org4bc7412" > < span class = "section-number-3" > 2.6< / span > Actuator Stroke and Forces< / h3 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-3" id = "text-2-6" >
2020-05-05 11:38:52 +02:00
2021-02-20 23:09:27 +01:00
< div id = "orgd89d4d1" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_L_act_force.png" alt = "opt_stiff_hac_dvf_L_act_force.png" / >
< / p >
< p > < span class = "figure-number" > Figure 20: < / span > Force applied by the actuator during the simulation< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org78753f1" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_L_act_stroke.png" alt = "opt_stiff_hac_dvf_L_act_stroke.png" / >
< / p >
< p > < span class = "figure-number" > Figure 21: < / span > Leg’ s stroke during the simulation< / p >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-orgead2d0d" class = "outline-3" >
< h3 id = "orgead2d0d" > < span class = "section-number-3" > 2.7< / span > Conclusion< / h3 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-3" id = "text-2-7" >
2021-02-20 23:09:27 +01:00
< div class = "important" id = "orgd04ff34" >
2020-04-17 10:25:44 +02:00
< p >
< / p >
< / div >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-orgbb6ed0e" class = "outline-2" >
< h2 id = "orgbb6ed0e" > < span class = "section-number-2" > 3< / span > Further More complex simulations< / h2 >
2020-04-17 10:25:44 +02:00
< div class = "outline-text-2" id = "text-3" >
2020-05-05 11:38:52 +02:00
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-orgbe6d807" class = "outline-3" >
< h3 id = "orgbe6d807" > < span class = "section-number-3" > 3.1< / span > Simulation with Micro-Hexapod Offset< / h3 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-3" id = "text-3-1" >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-orgd36f8c4" class = "outline-4" >
< h4 id = "orgd36f8c4" > < span class = "section-number-4" > 3.1.1< / span > Simulation< / h4 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-4" id = "text-3-1-1" >
< p >
The micro-hexapod is inducing a 10mm offset of the sample center of mass with the rotation axis.
A tomography experiment is then simulated.
< / p >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > initializeDisturbances();
initializeSimscapeConfiguration(< span class = "org-string" > 'gravity'< / span > , < span class = "org-constant" > false< / span > );
initializeLoggingConfiguration(< span class = "org-string" > 'log'< / span > , < span class = "org-string" > 'all'< / span > );
initializeSample(< span class = "org-string" > 'mass'< / span > , 1, < span class = "org-string" > 'freq'< / span > , 200);
initializeMicroHexapod(< span class = "org-string" > 'AP'< / span > , [10e< span class = "org-type" > -< / span > 3 0 0]);
initializeReferences(< span class = "org-string" > 'Rz_type'< / span > , < span class = "org-string" > 'rotating'< / span > , < span class = "org-string" > 'Rz_period'< / span > , 1, ...
< span class = "org-string" > 'Dh_pos'< / span > , [10e< span class = "org-type" > -< / span > 3; 0; 0; 0; 0; 0]);
2020-05-05 11:38:52 +02:00
< / pre >
< / div >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > load(< span class = "org-string" > 'mat/conf_simulink.mat'< / span > );
< span class = "org-matlab-simulink-keyword" > set_param< / span > (< span class = "org-variable-name" > conf_simulink< / span > , < span class = "org-string" > 'StopTime'< / span > , < span class = "org-string" > '3'< / span > );
< span class = "org-matlab-simulink-keyword" > sim< / span > (< span class = "org-string" > 'nass_model'< / span > );
2020-05-05 11:38:52 +02:00
< / pre >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org8fe5f58" class = "outline-4" >
< h4 id = "org8fe5f58" > < span class = "section-number-4" > 3.1.2< / span > Results< / h4 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-4" id = "text-3-1-2" >
2021-02-20 23:09:27 +01:00
< div id = "org776d205" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_Dh_offset_disp_error.png" alt = "opt_stiff_hac_dvf_Dh_offset_disp_error.png" / >
< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org26c6131" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_Dh_offset_F.png" alt = "opt_stiff_hac_dvf_Dh_offset_F.png" / >
< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org176d06f" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_Dh_offset_dL.png" alt = "opt_stiff_hac_dvf_Dh_offset_dL.png" / >
< / p >
< / div >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org9753678" class = "outline-3" >
< h3 id = "org9753678" > < span class = "section-number-3" > 3.2< / span > Simultaneous Translation scans and Spindle’ s rotation< / h3 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-3" id = "text-3-2" >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org2619c3f" class = "outline-4" >
< h4 id = "org2619c3f" > < span class = "section-number-4" > 3.2.1< / span > Simulation< / h4 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-4" id = "text-3-2-1" >
< p >
A simulation is now performed with translation scans and spindle rotation at the same time.
< / p >
< p >
2020-05-20 16:04:05 +02:00
The sample has a mass of 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape.
2020-05-05 11:38:52 +02:00
< / p >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > initializeDisturbances();
initializeSimscapeConfiguration(< span class = "org-string" > 'gravity'< / span > , < span class = "org-constant" > false< / span > );
initializeLoggingConfiguration(< span class = "org-string" > 'log'< / span > , < span class = "org-string" > 'all'< / span > );
2020-05-05 11:38:52 +02:00
2021-02-20 23:09:27 +01:00
initializeSample(< span class = "org-string" > 'mass'< / span > , 1, < span class = "org-string" > 'freq'< / span > , 200);
initializeReferences(< span class = "org-string" > 'Rz_type'< / span > , < span class = "org-string" > 'rotating'< / span > , < span class = "org-string" > 'Rz_period'< / span > , 1, ...
< span class = "org-string" > 'Dy_type'< / span > , < span class = "org-string" > 'triangular'< / span > , < span class = "org-string" > 'Dy_amplitude'< / span > , 5e< span class = "org-type" > -< / span > 3, < span class = "org-string" > 'Dy_period'< / span > , 4);
2020-05-05 11:38:52 +02:00
< / pre >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org8a2b562" class = "outline-4" >
< h4 id = "org8a2b562" > < span class = "section-number-4" > 3.2.2< / span > Results< / h4 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-4" id = "text-3-2-2" >
2021-02-20 23:09:27 +01:00
< div id = "orgc2e9b19" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_Dy_scans_disp_error.png" alt = "opt_stiff_hac_dvf_Dy_scans_disp_error.png" / >
< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org35d233c" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_Dy_scans_F.png" alt = "opt_stiff_hac_dvf_Dy_scans_F.png" / >
< / p >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "org46908f8" class = "figure" >
2020-05-05 11:38:52 +02:00
< p > < img src = "figs/opt_stiff_hac_dvf_Dy_scans_dL.png" alt = "opt_stiff_hac_dvf_Dy_scans_dL.png" / >
< / p >
< / div >
< / div >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org26c4ef6" class = "outline-2" >
< h2 id = "org26c4ef6" > < span class = "section-number-2" > 4< / span > Primary Control in the task space< / h2 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-2" id = "text-4" >
2020-04-17 10:25:44 +02:00
< p >
2021-02-20 23:09:27 +01:00
< a id = "org06af957" > < / a >
2020-04-17 10:25:44 +02:00
< / p >
< p >
2021-02-20 23:09:27 +01:00
In this section, the control architecture shown in Figure < a href = "#org9be312d" > 28< / a > is applied and consists of:
2020-04-17 10:25:44 +02:00
< / p >
< ul class = "org-ul" >
< li > an inner Low Authority Control loop consisting of a decentralized direct velocity control controller< / li >
< li > an outer loop with the primary controller \(\bm{K}_\mathcal{X}\) designed in the task space< / li >
< / ul >
2021-02-20 23:09:27 +01:00
< div id = "org9be312d" class = "figure" >
2020-04-17 10:25:44 +02:00
< p > < img src = "figs/control_architecture_hac_dvf_pos_X.png" alt = "control_architecture_hac_dvf_pos_X.png" / >
< / p >
2020-05-05 11:38:52 +02:00
< p > < span class = "figure-number" > Figure 28: < / span > HAC-LAC architecture< / p >
2020-04-17 10:25:44 +02:00
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org48bda71" class = "outline-3" >
< h3 id = "org48bda71" > < span class = "section-number-3" > 4.1< / span > Plant in the task space< / h3 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-3" id = "text-4-1" >
2020-04-17 10:25:44 +02:00
< p >
Let’ s look \(\bm{G}_\mathcal{X}(s)\).
< / p >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org4251f93" class = "outline-3" >
< h3 id = "org4251f93" > < span class = "section-number-3" > 4.2< / span > Control in the task space< / h3 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-3" id = "text-4-2" >
2020-04-17 10:25:44 +02:00
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > Kx = tf(zeros(6));
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
h = 2.5;
Kx< span class = "org-type" > (1,1) < / span > = 3e7 < span class = "org-type" > *< / span > ...
1< span class = "org-type" > /< / span > h< 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 > 100< span class = "org-type" > /< / span > h) < 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 > 100< span class = "org-type" > *< / span > h) < 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 > 1 < 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 > 1);
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
Kx< span class = "org-type" > (2,2) < / span > = Kx(1,1);
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
h = 2.5;
Kx< span class = "org-type" > (3,3) < / span > = 3e7 < span class = "org-type" > *< / span > ...
1< span class = "org-type" > /< / span > h< 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 > 100< span class = "org-type" > /< / span > h) < 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 > 100< span class = "org-type" > *< / span > h) < 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 > 1 < 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 > 1);
2020-04-17 10:25:44 +02:00
< / pre >
< / div >
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > h = 1.5;
Kx< span class = "org-type" > (4,4) < / span > = 5e5 < span class = "org-type" > *< / span > ...
1< span class = "org-type" > /< / span > h< 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 > 100< span class = "org-type" > /< / span > h) < 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 > 100< span class = "org-type" > *< / span > h) < 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 > 1 < 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 > 1);
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
Kx< span class = "org-type" > (5,5) < / span > = Kx(4,4);
2020-04-17 10:25:44 +02:00
2021-02-20 23:09:27 +01:00
h = 1.5;
Kx< span class = "org-type" > (6,6) < / span > = 5e4 < span class = "org-type" > *< / span > ...
1< span class = "org-type" > /< / span > h< 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 > 30< span class = "org-type" > /< / span > h) < 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 > 30< span class = "org-type" > *< / span > h) < 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 > 1 < 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 > 1);
2020-04-17 10:25:44 +02:00
< / pre >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org226215f" class = "outline-4" >
< h4 id = "org226215f" > < span class = "section-number-4" > 4.2.1< / span > Stability< / h4 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-4" id = "text-4-2-1" >
2020-04-17 10:25:44 +02:00
< div class = "org-src-container" >
2021-02-20 23:09:27 +01:00
< pre class = "src src-matlab" > < span class = "org-keyword" > for< / span > < span class = "org-variable-name" > < span class = "org-constant" > i< / span > < / span > = < span class = "org-constant" > 1:length(Ms)< / span >
isstable(feedback(Gm_x{< span class = "org-constant" > i< / span > }< span class = "org-type" > *< / span > Kx, eye(6), < span class = "org-type" > -< / span > 1))
< span class = "org-keyword" > end< / span >
2020-04-17 10:25:44 +02:00
< / pre >
< / div >
< / div >
< / div >
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org0aa9f05" class = "outline-3" >
< h3 id = "org0aa9f05" > < span class = "section-number-3" > 4.3< / span > Simulation< / h3 >
2020-04-17 10:25:44 +02:00
< / div >
2021-02-20 23:09:27 +01:00
< div id = "outline-container-org4a860c5" class = "outline-3" >
< h3 id = "org4a860c5" > < span class = "section-number-3" > 4.4< / span > Conclusion< / h3 >
2020-05-05 11:38:52 +02:00
< div class = "outline-text-3" id = "text-4-4" >
2021-02-20 23:09:27 +01:00
< div class = "important" id = "org4bf4213" >
2020-04-17 10:25:44 +02:00
< p >
< / p >
< / div >
< / div >
< / div >
2020-04-08 22:53:43 +02:00
< / div >
< / div >
< div id = "postamble" class = "status" >
< p class = "author" > Author: Dehaeze Thomas< / p >
2021-02-20 23:09:27 +01:00
< p class = "date" > Created: 2021-02-20 sam. 23:09< / p >
2020-04-08 22:53:43 +02:00
< / div >
< / body >
< / html >