Update analytical model
This commit is contained in:
parent
5a157db8a1
commit
c211b1684f
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 166 KiB |
BIN
mat/conf_log.mat
BIN
mat/conf_log.mat
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mat/stages.mat
BIN
mat/stages.mat
Binary file not shown.
582
org/amplified_piezoelectric_stack.html
Normal file
582
org/amplified_piezoelectric_stack.html
Normal file
@ -0,0 +1,582 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<!-- 2020-05-25 lun. 10:45 -->
|
||||||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
|
<title>Amplified Piezoelectric Stack Actuator</title>
|
||||||
|
<meta name="generator" content="Org mode" />
|
||||||
|
<meta name="author" content="Dehaeze Thomas" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
|
||||||
|
<script src="./js/jquery.min.js"></script>
|
||||||
|
<script src="./js/bootstrap.min.js"></script>
|
||||||
|
<script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||||
|
<script src="./js/readtheorg.js"></script>
|
||||||
|
<script>MathJax = {
|
||||||
|
tex: {
|
||||||
|
tags: 'ams',
|
||||||
|
macros: {bm: ["\\boldsymbol{#1}",1],}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="org-div-home-and-up">
|
||||||
|
<a accesskey="h" href="./index.html"> UP </a>
|
||||||
|
|
|
||||||
|
<a accesskey="H" href="./index.html"> HOME </a>
|
||||||
|
</div><div id="content">
|
||||||
|
<h1 class="title">Amplified Piezoelectric Stack Actuator</h1>
|
||||||
|
<div id="table-of-contents">
|
||||||
|
<h2>Table of Contents</h2>
|
||||||
|
<div id="text-table-of-contents">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#org8dcb67f">1. Simplified Model</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#org3b87947">1.1. Parameters</a></li>
|
||||||
|
<li><a href="#org81d8607">1.2. Identification</a></li>
|
||||||
|
<li><a href="#orged55dcf">1.3. Root Locus</a></li>
|
||||||
|
<li><a href="#org02c2e3f">1.4. Analytical Model</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="#org7b08cc3">2. Rotating X-Y platform</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#org4add324">2.1. Parameters</a></li>
|
||||||
|
<li><a href="#org8192181">2.2. Identification</a></li>
|
||||||
|
<li><a href="#org7675381">2.3. Root Locus</a></li>
|
||||||
|
<li><a href="#org8634d85">2.4. Analysis</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="#orga0a1938">3. Stewart Platform with Amplified Actuators</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#org1eb7bf5">3.1. Initialization</a></li>
|
||||||
|
<li><a href="#org31d938a">3.2. Identification</a></li>
|
||||||
|
<li><a href="#org4dbdefd">3.3. Controller Design</a></li>
|
||||||
|
<li><a href="#orga2cff39">3.4. Effect of the Low Authority Control on the Primary Plant</a></li>
|
||||||
|
<li><a href="#orgf448298">3.5. Effect of the Low Authority Control on the Sensibility to Disturbances</a></li>
|
||||||
|
<li><a href="#org781f74e">3.6. Optimal Stiffnesses</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The presented model is based on <a class='org-ref-reference' href="#souleille18_concep_activ_mount_space_applic">souleille18_concep_activ_mount_space_applic</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The model represents the amplified piezo APA100M from Cedrat-Technologies (Figure <a href="#orgb0a1ae8">1</a>).
|
||||||
|
The parameters are shown in the table below.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgb0a1ae8" class="figure">
|
||||||
|
<p><img src="./figs/souleille18_model_piezo.png" alt="souleille18_model_piezo.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 1: </span>Picture of an APA100M from Cedrat Technologies. Simplified model of a one DoF payload mounted on such isolator</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
|
<caption class="t-above"><span class="table-number">Table 1:</span> Parameters used for the model of the APA 100M</caption>
|
||||||
|
|
||||||
|
<colgroup>
|
||||||
|
<col class="org-left" />
|
||||||
|
|
||||||
|
<col class="org-left" />
|
||||||
|
|
||||||
|
<col class="org-left" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col" class="org-left"> </th>
|
||||||
|
<th scope="col" class="org-left">Value</th>
|
||||||
|
<th scope="col" class="org-left">Meaning</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">\(m\)</td>
|
||||||
|
<td class="org-left">\(1\,[kg]\)</td>
|
||||||
|
<td class="org-left">Payload mass</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">\(k_e\)</td>
|
||||||
|
<td class="org-left">\(4.8\,[N/\mu m]\)</td>
|
||||||
|
<td class="org-left">Stiffness used to adjust the pole of the isolator</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">\(k_1\)</td>
|
||||||
|
<td class="org-left">\(0.96\,[N/\mu m]\)</td>
|
||||||
|
<td class="org-left">Stiffness of the metallic suspension when the stack is removed</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">\(k_a\)</td>
|
||||||
|
<td class="org-left">\(65\,[N/\mu m]\)</td>
|
||||||
|
<td class="org-left">Stiffness of the actuator</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">\(c_1\)</td>
|
||||||
|
<td class="org-left">\(10\,[N/(m/s)]\)</td>
|
||||||
|
<td class="org-left">Added viscous damping</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div id="outline-container-org8dcb67f" class="outline-2">
|
||||||
|
<h2 id="org8dcb67f"><span class="section-number-2">1</span> Simplified Model</h2>
|
||||||
|
<div class="outline-text-2" id="text-1">
|
||||||
|
</div>
|
||||||
|
<div id="outline-container-org3b87947" class="outline-3">
|
||||||
|
<h3 id="org3b87947"><span class="section-number-3">1.1</span> Parameters</h3>
|
||||||
|
<div class="outline-text-3" id="text-1-1">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">m = 1; % [kg]
|
||||||
|
|
||||||
|
ke = 4.8e6; % [N/m]
|
||||||
|
ce = 5; % [N/(m/s)]
|
||||||
|
me = 0.001; % [kg]
|
||||||
|
|
||||||
|
k1 = 0.96e6; % [N/m]
|
||||||
|
c1 = 10; % [N/(m/s)]
|
||||||
|
|
||||||
|
ka = 65e6; % [N/m]
|
||||||
|
ca = 5; % [N/(m/s)]
|
||||||
|
ma = 0.001; % [kg]
|
||||||
|
|
||||||
|
h = 0.2; % [m]
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
IFF Controller:
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Kiff = -8000/s;
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org81d8607" class="outline-3">
|
||||||
|
<h3 id="org81d8607"><span class="section-number-3">1.2</span> Identification</h3>
|
||||||
|
<div class="outline-text-3" id="text-1-2">
|
||||||
|
<p>
|
||||||
|
Identification in open-loop.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">%% Name of the Simulink File
|
||||||
|
mdl = 'amplified_piezo_model';
|
||||||
|
|
||||||
|
%% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/w'], 1, 'openinput'); io_i = io_i + 1; % Base Motion
|
||||||
|
io(io_i) = linio([mdl, '/f'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs
|
||||||
|
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % External Force
|
||||||
|
|
||||||
|
io(io_i) = linio([mdl, '/Fs'], 3, 'openoutput'); io_i = io_i + 1; % Force Sensors
|
||||||
|
io(io_i) = linio([mdl, '/x1'], 1, 'openoutput'); io_i = io_i + 1; % Mass displacement
|
||||||
|
|
||||||
|
G = linearize(mdl, io, 0);
|
||||||
|
G.InputName = {'w', 'f', 'F'};
|
||||||
|
G.OutputName = {'Fs', 'x1'};
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Identification in closed-loop.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">%% Name of the Simulink File
|
||||||
|
mdl = 'amplified_piezo_model';
|
||||||
|
|
||||||
|
%% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/w'], 1, 'input'); io_i = io_i + 1; % Base Motion
|
||||||
|
io(io_i) = linio([mdl, '/f'], 1, 'input'); io_i = io_i + 1; % Actuator Inputs
|
||||||
|
io(io_i) = linio([mdl, '/F'], 1, 'input'); io_i = io_i + 1; % External Force
|
||||||
|
|
||||||
|
io(io_i) = linio([mdl, '/Fs'], 3, 'output'); io_i = io_i + 1; % Force Sensors
|
||||||
|
io(io_i) = linio([mdl, '/x1'], 1, 'output'); io_i = io_i + 1; % Mass displacement
|
||||||
|
|
||||||
|
Giff = linearize(mdl, io, 0);
|
||||||
|
Giff.InputName = {'w', 'f', 'F'};
|
||||||
|
Giff.OutputName = {'Fs', 'x1'};
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org6546639" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_tf_ol_and_cl.png" alt="amplified_piezo_tf_ol_and_cl.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 2: </span>Matrix of transfer functions from input to output in open loop (blue) and closed loop (red)</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orged55dcf" class="outline-3">
|
||||||
|
<h3 id="orged55dcf"><span class="section-number-3">1.3</span> Root Locus</h3>
|
||||||
|
<div class="outline-text-3" id="text-1-3">
|
||||||
|
|
||||||
|
<div id="org8832ee2" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_root_locus.png" alt="amplified_piezo_root_locus.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 3: </span>Root Locus</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org02c2e3f" class="outline-3">
|
||||||
|
<h3 id="org02c2e3f"><span class="section-number-3">1.4</span> Analytical Model</h3>
|
||||||
|
<div class="outline-text-3" id="text-1-4">
|
||||||
|
<p>
|
||||||
|
If we apply the Newton’s second law of motion on the top mass, we obtain:
|
||||||
|
\[ ms^2 x_1 = F + k_1 (w - x_1) + k_e (x_e - x_1) \]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Then, we can write that the measured force \(F_s\) is equal to:
|
||||||
|
\[ F_s = k_a(w - x_e) + f = -k_e (x_1 - x_e) \]
|
||||||
|
which gives:
|
||||||
|
\[ x_e = \frac{k_a}{k_e + k_a} w + \frac{1}{k_e + k_a} f + \frac{k_e}{k_e + k_a} x_1 \]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Re-injecting that into the previous equations gives:
|
||||||
|
\[ x_1 = F \frac{1}{ms^2 + k_1 + \frac{k_e k_a}{k_e + k_a}} + w \frac{k_1 + \frac{k_e k_a}{k_e + k_a}}{ms^2 + k_1 + \frac{k_e k_a}{k_e + k_a}} + f \frac{\frac{k_e}{k_e + k_a}}{ms^2 + k_1 + \frac{k_e k_a}{k_e + k_a}} \]
|
||||||
|
\[ F_s = - F \frac{\frac{k_e k_a}{k_e + k_a}}{ms^2 + k_1 + \frac{k_e k_a}{k_e + k_a}} + w \frac{k_e k_a}{k_e + k_a} \Big( \frac{ms^2}{ms^2 + k_1 + \frac{k_e k_a}{k_e + k_a}} \Big) - f \frac{k_e}{k_e + k_a} \Big( \frac{ms^2 + k_1}{ms^2 + k_1 + \frac{k_e k_a}{k_e + k_a}} \Big) \]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Ga = 1/(m*s^2 + k1 + ke*ka/(ke + ka)) * ...
|
||||||
|
[ 1 , k1 + ke*ka/(ke + ka) , ke/(ke + ka) ;
|
||||||
|
-ke*ka/(ke + ka), ke*ka/(ke + ka)*m*s^2 , -ke/(ke+ka)*(m*s^2 + k1)];
|
||||||
|
Ga.InputName = {'F', 'w', 'f'};
|
||||||
|
Ga.OutputName = {'x1', 'Fs'};
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgc2707e4" class="figure">
|
||||||
|
<p><img src="figs/comp_simscape_analytical.png" alt="comp_simscape_analytical.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 4: </span>Comparison of the Identified Simscape Dynamics (solid) and the Analytical Model (dashed)</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org7b08cc3" class="outline-2">
|
||||||
|
<h2 id="org7b08cc3"><span class="section-number-2">2</span> Rotating X-Y platform</h2>
|
||||||
|
<div class="outline-text-2" id="text-2">
|
||||||
|
</div>
|
||||||
|
<div id="outline-container-org4add324" class="outline-3">
|
||||||
|
<h3 id="org4add324"><span class="section-number-3">2.1</span> Parameters</h3>
|
||||||
|
<div class="outline-text-3" id="text-2-1">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">m = 1; % [kg]
|
||||||
|
|
||||||
|
ke = 4.8e6; % [N/m]
|
||||||
|
ce = 5; % [N/(m/s)]
|
||||||
|
me = 0.001; % [kg]
|
||||||
|
|
||||||
|
k1 = 0.96e6; % [N/m]
|
||||||
|
c1 = 10; % [N/(m/s)]
|
||||||
|
|
||||||
|
ka = 65e6; % [N/m]
|
||||||
|
ca = 5; % [N/(m/s)]
|
||||||
|
ma = 0.001; % [kg]
|
||||||
|
|
||||||
|
h = 0.2; % [m]
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Kiff = tf(0);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org8192181" class="outline-3">
|
||||||
|
<h3 id="org8192181"><span class="section-number-3">2.2</span> Identification</h3>
|
||||||
|
<div class="outline-text-3" id="text-2-2">
|
||||||
|
<p>
|
||||||
|
Rotating speed in rad/s:
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Ws = 2*pi*[0, 1, 10, 100];
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Gs = {zeros(length(Ws), 1)};
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Identification in open-loop.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">%% Name of the Simulink File
|
||||||
|
mdl = 'amplified_piezo_xy_rotating_stage';
|
||||||
|
|
||||||
|
%% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/fx'], 1, 'openinput'); io_i = io_i + 1;
|
||||||
|
io(io_i) = linio([mdl, '/fy'], 1, 'openinput'); io_i = io_i + 1;
|
||||||
|
|
||||||
|
io(io_i) = linio([mdl, '/Fs'], 1, 'openoutput'); io_i = io_i + 1;
|
||||||
|
io(io_i) = linio([mdl, '/Fs'], 2, 'openoutput'); io_i = io_i + 1;
|
||||||
|
|
||||||
|
for i = 1:length(Ws)
|
||||||
|
ws = Ws(i);
|
||||||
|
G = linearize(mdl, io, 0);
|
||||||
|
G.InputName = {'fx', 'fy'};
|
||||||
|
G.OutputName = {'Fsx', 'Fsy'};
|
||||||
|
Gs(i) = {G};
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org89aafdf" class="figure">
|
||||||
|
<p><img src="figs/amplitifed_piezo_xy_rotation_plant_iff.png" alt="amplitifed_piezo_xy_rotation_plant_iff.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 5: </span>Transfer function matrix from forces to force sensors for multiple rotation speed</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org7675381" class="outline-3">
|
||||||
|
<h3 id="org7675381"><span class="section-number-3">2.3</span> Root Locus</h3>
|
||||||
|
<div class="outline-text-3" id="text-2-3">
|
||||||
|
|
||||||
|
<div id="org0e2ba71" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_xy_rotation_root_locus.png" alt="amplified_piezo_xy_rotation_root_locus.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 6: </span>Root locus for 3 rotating speed</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org8634d85" class="outline-3">
|
||||||
|
<h3 id="org8634d85"><span class="section-number-3">2.4</span> Analysis</h3>
|
||||||
|
<div class="outline-text-3" id="text-2-4">
|
||||||
|
<p>
|
||||||
|
The negative stiffness induced by the rotation is equal to \(m \omega_0^2\).
|
||||||
|
Thus, the maximum rotation speed where IFF can be applied is:
|
||||||
|
\[ \omega_\text{max} = \sqrt{\frac{k_1}{m}} \approx 156\,[Hz] \]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Let’s verify that.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Ws = 2*pi*[140, 160];
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Identification
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">%% Name of the Simulink File
|
||||||
|
mdl = 'amplified_piezo_xy_rotating_stage';
|
||||||
|
|
||||||
|
%% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/fx'], 1, 'openinput'); io_i = io_i + 1;
|
||||||
|
io(io_i) = linio([mdl, '/fy'], 1, 'openinput'); io_i = io_i + 1;
|
||||||
|
|
||||||
|
io(io_i) = linio([mdl, '/Fs'], 1, 'openoutput'); io_i = io_i + 1;
|
||||||
|
io(io_i) = linio([mdl, '/Fs'], 2, 'openoutput'); io_i = io_i + 1;
|
||||||
|
|
||||||
|
for i = 1:length(Ws)
|
||||||
|
ws = Ws(i);
|
||||||
|
G = linearize(mdl, io, 0);
|
||||||
|
G.InputName = {'fx', 'fy'};
|
||||||
|
G.OutputName = {'Fsx', 'Fsy'};
|
||||||
|
Gs(i) = {G};
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgb32e2be" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_xy_rotating_unstable_root_locus.png" alt="amplified_piezo_xy_rotating_unstable_root_locus.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 7: </span>Root Locus for the two considered rotation speed. For the red curve, the system is unstable.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orga0a1938" class="outline-2">
|
||||||
|
<h2 id="orga0a1938"><span class="section-number-2">3</span> Stewart Platform with Amplified Actuators</h2>
|
||||||
|
<div class="outline-text-2" id="text-3">
|
||||||
|
</div>
|
||||||
|
<div id="outline-container-org1eb7bf5" class="outline-3">
|
||||||
|
<h3 id="org1eb7bf5"><span class="section-number-3">3.1</span> Initialization</h3>
|
||||||
|
<div class="outline-text-3" id="text-3-1">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeGround();
|
||||||
|
initializeGranite();
|
||||||
|
initializeTy();
|
||||||
|
initializeRy();
|
||||||
|
initializeRz();
|
||||||
|
initializeMicroHexapod();
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
|
||||||
|
initializeSimscapeConfiguration();
|
||||||
|
initializeDisturbances('enable', false);
|
||||||
|
initializeLoggingConfiguration('log', 'none');
|
||||||
|
|
||||||
|
initializeController('type', 'hac-iff');
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We set the stiffness of the payload fixation:
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Kp = 1e8; % [N/m]
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org31d938a" class="outline-3">
|
||||||
|
<h3 id="org31d938a"><span class="section-number-3">3.2</span> Identification</h3>
|
||||||
|
<div class="outline-text-3" id="text-3-2">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">K = tf(zeros(6));
|
||||||
|
Kiff = tf(zeros(6));
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We identify the system for the following payload masses:
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Ms = [1, 10, 50];
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The nano-hexapod has the following leg’s stiffness and damping.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeNanoHexapod('actuator', 'amplified');
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org4dbdefd" class="outline-3">
|
||||||
|
<h3 id="org4dbdefd"><span class="section-number-3">3.3</span> Controller Design</h3>
|
||||||
|
<div class="outline-text-3" id="text-3-3">
|
||||||
|
|
||||||
|
<div id="org4b286db" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_loop_gain.png" alt="amplified_piezo_iff_loop_gain.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 8: </span>Dynamics for the Integral Force Feedback for three payload masses</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org85ffb18" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_root_locus.png" alt="amplified_piezo_iff_root_locus.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 9: </span>Root Locus for the IFF control for three payload masses</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Damping as function of the gain
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="orgd336750" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_damping_gain.png" alt="amplified_piezo_iff_damping_gain.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 10: </span>Damping ratio of the poles as a function of the IFF gain</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Finally, we use the following controller for the Decentralized Direct Velocity Feedback:
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">Kiff = -1e4/s*eye(6);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orga2cff39" class="outline-3">
|
||||||
|
<h3 id="orga2cff39"><span class="section-number-3">3.4</span> Effect of the Low Authority Control on the Primary Plant</h3>
|
||||||
|
<div class="outline-text-3" id="text-3-4">
|
||||||
|
|
||||||
|
<div id="orgf3eee4b" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_plant_damped_X.png" alt="amplified_piezo_iff_plant_damped_X.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 11: </span>Primary plant in the task space with (dashed) and without (solid) IFF</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orgdabfde7" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_damped_plant_L.png" alt="amplified_piezo_iff_damped_plant_L.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 12: </span>Primary plant in the space of the legs with (dashed) and without (solid) IFF</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="orgf756d9c" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_damped_coupling_X.png" alt="amplified_piezo_iff_damped_coupling_X.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 13: </span>Coupling in the primary plant in the task with (dashed) and without (solid) IFF</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org1dc0d4a" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_damped_coupling_L.png" alt="amplified_piezo_iff_damped_coupling_L.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 14: </span>Coupling in the primary plant in the space of the legs with (dashed) and without (solid) IFF</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orgf448298" class="outline-3">
|
||||||
|
<h3 id="orgf448298"><span class="section-number-3">3.5</span> Effect of the Low Authority Control on the Sensibility to Disturbances</h3>
|
||||||
|
<div class="outline-text-3" id="text-3-5">
|
||||||
|
|
||||||
|
<div id="org982cf72" class="figure">
|
||||||
|
<p><img src="figs/amplified_piezo_iff_disturbances.png" alt="amplified_piezo_iff_disturbances.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 15: </span>Norm of the transfer function from vertical disturbances to vertical position error with (dashed) and without (solid) Integral Force Feedback applied</p>
|
||||||
|
</div>
|
||||||
|
<div class="important">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="outline-container-org781f74e" class="outline-3">
|
||||||
|
<h3 id="org781f74e"><span class="section-number-3">3.6</span> Optimal Stiffnesses</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="postamble" class="status">
|
||||||
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
|
<p class="date">Created: 2020-05-25 lun. 10:45</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -200,7 +200,7 @@ exportFig('figs/amplified_piezo_root_locus.pdf', 'width', 'wide', 'height', 'tal
|
|||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:figs/amplified_piezo_root_locus.png]]
|
[[file:figs/amplified_piezo_root_locus.png]]
|
||||||
|
|
||||||
** Analytical Results
|
** Analytical Model
|
||||||
If we apply the Newton's second law of motion on the top mass, we obtain:
|
If we apply the Newton's second law of motion on the top mass, we obtain:
|
||||||
\[ ms^2 x_1 = F + k_1 (w - x_1) + k_e (x_e - x_1) \]
|
\[ ms^2 x_1 = F + k_1 (w - x_1) + k_e (x_e - x_1) \]
|
||||||
|
|
||||||
@ -542,7 +542,6 @@ Identification
|
|||||||
open('nass_model.slx')
|
open('nass_model.slx')
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
** Initialization
|
** Initialization
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
initializeGround();
|
initializeGround();
|
||||||
|
Loading…
Reference in New Issue
Block a user