Update simulink file. Redifined parameters
This commit is contained in:
parent
909b4de60a
commit
575cb20d7f
BIN
Figures/coupling_ration_light_heavy.pdf
Normal file
BIN
Figures/coupling_ration_light_heavy.pdf
Normal file
Binary file not shown.
BIN
Figures/coupling_ration_light_heavy.png
Normal file
BIN
Figures/coupling_ration_light_heavy.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 149 KiB |
536
Figures/coupling_ration_light_heavy.svg
Normal file
536
Figures/coupling_ration_light_heavy.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 310 KiB |
@ -3,7 +3,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2019-01-21 lun. 23:44 -->
|
<!-- 2019-01-23 mer. 15:21 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Control in a rotating frame</title>
|
<title>Control in a rotating frame</title>
|
||||||
@ -275,75 +275,75 @@ for the JavaScript code in this tag.
|
|||||||
<h2>Table of Contents</h2>
|
<h2>Table of Contents</h2>
|
||||||
<div id="text-table-of-contents">
|
<div id="text-table-of-contents">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org0a89915">1. Introduction</a></li>
|
<li><a href="#org9988e59">1. Introduction</a></li>
|
||||||
<li><a href="#org123b9ca">2. System</a>
|
<li><a href="#orgfd01695">2. System</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org9aa32bf">2.1. System description</a></li>
|
<li><a href="#orged1d203">2.1. System description</a></li>
|
||||||
<li><a href="#orgc0c2859">2.2. Equations</a></li>
|
<li><a href="#orgbcc53a3">2.2. Equations</a></li>
|
||||||
<li><a href="#org0ff8b08">2.3. Numerical Values for the NASS</a></li>
|
<li><a href="#org28e82a2">2.3. Numerical Values for the NASS</a></li>
|
||||||
<li><a href="#org361651b">2.4. Euler and Coriolis forces - Numerical Result</a></li>
|
<li><a href="#orgd1ccc62">2.4. Euler and Coriolis forces - Numerical Result</a></li>
|
||||||
<li><a href="#orgd2c08cb">2.5. Negative Spring Effect - Numerical Result</a></li>
|
<li><a href="#org8db03ec">2.5. Negative Spring Effect - Numerical Result</a></li>
|
||||||
<li><a href="#org3d790d8">2.6. Limitations due to coupling</a>
|
<li><a href="#org7e45369">2.6. Limitations due to coupling</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org041128a">2.6.1. Numerical Analysis</a></li>
|
<li><a href="#orgc898fca">2.6.1. Numerical Analysis</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org11f0d9f">2.7. Limitations due to negative stiffness effect</a></li>
|
<li><a href="#org87cd267">2.7. Limitations due to negative stiffness effect</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org6ae3c88">3. Control Strategies</a>
|
<li><a href="#org86cc8ca">3. Control Strategies</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgbf1698b">3.1. Measurement in the fixed reference frame</a></li>
|
<li><a href="#orga1abb2c">3.1. Measurement in the fixed reference frame</a></li>
|
||||||
<li><a href="#orgf37122a">3.2. Measurement in the rotating frame</a></li>
|
<li><a href="#org08a5499">3.2. Measurement in the rotating frame</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org3b55a8d">4. Multi Body Model - Simscape</a>
|
<li><a href="#org5b0bef3">4. Multi Body Model - Simscape</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgd50d938">4.1. Identification in the rotating referenced frame</a>
|
<li><a href="#org13aaa95">4.1. Parameter for the Simscape simulations</a></li>
|
||||||
|
<li><a href="#orgd334995">4.2. Identification in the rotating referenced frame</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org2ede09d">4.1.1. Piezo and Voice coil</a></li>
|
<li><a href="#org5cb3ac6">4.2.1. Low rotation speed and High rotation speed</a></li>
|
||||||
<li><a href="#orgbb666ab">4.1.2. Low rotation speed and High rotation speed</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org3ecccf8">4.2. Identification in the fixed frame</a></li>
|
<li><a href="#orgb159f85">4.3. Identification in the fixed frame</a></li>
|
||||||
<li><a href="#orga260738">4.3. Identification from actuator forces to displacement in the fixed frame</a></li>
|
<li><a href="#org6b50e4b">4.4. Identification from actuator forces to displacement in the fixed frame</a></li>
|
||||||
<li><a href="#orge0b7f4f">4.4. Effect of the rotating Speed</a>
|
<li><a href="#org6a8d002">4.5. Effect of the rotating Speed</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgd25182f">4.4.1. <span class="todo TODO">TODO</span> Use realistic parameters for the mass of the sample and stiffness of the X-Y stage</a></li>
|
<li><a href="#org4a07d2b">4.5.1. <span class="todo TODO">TODO</span> Use realistic parameters for the mass of the sample and stiffness of the X-Y stage</a></li>
|
||||||
<li><a href="#org0368be9">4.4.2. <span class="todo TODO">TODO</span> Check if the plant is changing a lot when we are not turning to when we are turning at the maximum speed (60rpm)</a></li>
|
<li><a href="#org01d22ae">4.5.2. <span class="todo TODO">TODO</span> Check if the plant is changing a lot when we are not turning to when we are turning at the maximum speed (60rpm)</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org8ddc330">4.5. Effect of the X-Y stage stiffness</a>
|
<li><a href="#org6cdc442">4.6. Effect of the X-Y stage stiffness</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgd282a96">4.5.1. <span class="todo TODO">TODO</span> At full speed, check how the coupling changes with the stiffness of the actuators</a></li>
|
<li><a href="#org74a0c06">4.6.1. <span class="todo TODO">TODO</span> At full speed, check how the coupling changes with the stiffness of the actuators</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orgdfc37fb">5. Control Implementation</a>
|
<li><a href="#orge84791a">5. Control Implementation</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org5ed4967">5.1. Measurement in the fixed reference frame</a></li>
|
<li><a href="#org86d67af">5.1. Measurement in the fixed reference frame</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org0a89915" class="outline-2">
|
<div id="outline-container-org9988e59" class="outline-2">
|
||||||
<h2 id="org0a89915"><span class="section-number-2">1</span> Introduction</h2>
|
<h2 id="org9988e59"><span class="section-number-2">1</span> Introduction</h2>
|
||||||
<div class="outline-text-2" id="text-1">
|
<div class="outline-text-2" id="text-1">
|
||||||
<p>
|
<p>
|
||||||
The objective of this note it to highlight some control problems that arises when controlling the position of an object using actuators that are rotating with respect to a fixed reference frame.
|
The objective of this note it to highlight some control problems that arises when controlling the position of an object using actuators that are rotating with respect to a fixed reference frame.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
In section <a href="#org725c7e8">2</a>, a simple system composed of a spindle and a translation stage is defined and the equations of motion are written.
|
In section <a href="#org4f1fd4b">2</a>, a simple system composed of a spindle and a translation stage is defined and the equations of motion are written.
|
||||||
The rotation induces some coupling between the actuators and their displacement, and modifies the dynamics of the system.
|
The rotation induces some coupling between the actuators and their displacement, and modifies the dynamics of the system.
|
||||||
This is studied using the equations, and some numerical computations are used to compare the use of voice coil and piezoelectric actuators.
|
This is studied using the equations, and some numerical computations are used to compare the use of voice coil and piezoelectric actuators.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Then, in section <a href="#orgc886060">3</a>, two different control approach are compared where:
|
Then, in section <a href="#orgdb88326">3</a>, two different control approach are compared where:
|
||||||
</p>
|
</p>
|
||||||
<ul class="org-ul">
|
<ul class="org-ul">
|
||||||
<li>the measurement is made in the fixed frame</li>
|
<li>the measurement is made in the fixed frame</li>
|
||||||
@ -351,27 +351,27 @@ Then, in section <a href="#orgc886060">3</a>, two different control approach are
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
In section <a href="#org889e9c9">4</a>, the analytical study will be validated using a multi body model of the studied system.
|
In section <a href="#org8ef210c">4</a>, the analytical study will be validated using a multi body model of the studied system.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Finally, in section <a href="#orgaa1e82e">5</a>, the control strategies are implemented using Simulink and Simscape and compared.
|
Finally, in section <a href="#orgd9942b8">5</a>, the control strategies are implemented using Simulink and Simscape and compared.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org123b9ca" class="outline-2">
|
<div id="outline-container-orgfd01695" class="outline-2">
|
||||||
<h2 id="org123b9ca"><span class="section-number-2">2</span> System</h2>
|
<h2 id="orgfd01695"><span class="section-number-2">2</span> System</h2>
|
||||||
<div class="outline-text-2" id="text-2">
|
<div class="outline-text-2" id="text-2">
|
||||||
<p>
|
<p>
|
||||||
<a id="org725c7e8"></a>
|
<a id="org4f1fd4b"></a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-org9aa32bf" class="outline-3">
|
<div id="outline-container-orged1d203" class="outline-3">
|
||||||
<h3 id="org9aa32bf"><span class="section-number-3">2.1</span> System description</h3>
|
<h3 id="orged1d203"><span class="section-number-3">2.1</span> System description</h3>
|
||||||
<div class="outline-text-3" id="text-2-1">
|
<div class="outline-text-3" id="text-2-1">
|
||||||
<p>
|
<p>
|
||||||
The system consists of one 2 degree of freedom translation stage on top of a spindle (figure <a href="#org492a56d">1</a>).
|
The system consists of one 2 degree of freedom translation stage on top of a spindle (figure <a href="#orgce6c963">1</a>).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -384,7 +384,7 @@ The measurement is either the \(x-y\) displacement of the object located on top
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org492a56d" class="figure">
|
<div id="orgce6c963" class="figure">
|
||||||
<p><img src="./Figures/rotating_frame_2dof.png" alt="rotating_frame_2dof.png" />
|
<p><img src="./Figures/rotating_frame_2dof.png" alt="rotating_frame_2dof.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 1: </span>Schematic of the mecanical system</p>
|
<p><span class="figure-number">Figure 1: </span>Schematic of the mecanical system</p>
|
||||||
@ -418,19 +418,19 @@ Indices \(u\) and \(v\) corresponds to signals in the rotating reference frame (
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgc0c2859" class="outline-3">
|
<div id="outline-container-orgbcc53a3" class="outline-3">
|
||||||
<h3 id="orgc0c2859"><span class="section-number-3">2.2</span> Equations</h3>
|
<h3 id="orgbcc53a3"><span class="section-number-3">2.2</span> Equations</h3>
|
||||||
<div class="outline-text-3" id="text-2-2">
|
<div class="outline-text-3" id="text-2-2">
|
||||||
<p>
|
<p>
|
||||||
<a id="org07b8498"></a>
|
<a id="org2f020df"></a>
|
||||||
Based on the figure <a href="#org492a56d">1</a>, we can write the equations of motion of the system.
|
Based on the figure <a href="#orgce6c963">1</a>, we can write the equations of motion of the system.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Let's express the kinetic energy \(T\) and the potential energy \(V\) of the mass \(m\):
|
Let's express the kinetic energy \(T\) and the potential energy \(V\) of the mass \(m\):
|
||||||
</p>
|
</p>
|
||||||
\begin{align}
|
\begin{align}
|
||||||
\label{org97ab84a}
|
\label{org93a4d45}
|
||||||
T & = \frac{1}{2} m \left( \dot{x}^2 + \dot{y}^2 \right) \\
|
T & = \frac{1}{2} m \left( \dot{x}^2 + \dot{y}^2 \right) \\
|
||||||
V & = \frac{1}{2} k \left( x^2 + y^2 \right)
|
V & = \frac{1}{2} k \left( x^2 + y^2 \right)
|
||||||
\end{align}
|
\end{align}
|
||||||
@ -439,7 +439,7 @@ V & = \frac{1}{2} k \left( x^2 + y^2 \right)
|
|||||||
The Lagrangian is the kinetic energy minus the potential energy.
|
The Lagrangian is the kinetic energy minus the potential energy.
|
||||||
</p>
|
</p>
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\label{org5b05ded}
|
\label{org19136da}
|
||||||
L = T-V = \frac{1}{2} m \left( \dot{x}^2 + \dot{y}^2 \right) - \frac{1}{2} k \left( x^2 + y^2 \right)
|
L = T-V = \frac{1}{2} m \left( \dot{x}^2 + \dot{y}^2 \right) - \frac{1}{2} k \left( x^2 + y^2 \right)
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
@ -448,7 +448,7 @@ L = T-V = \frac{1}{2} m \left( \dot{x}^2 + \dot{y}^2 \right) - \frac{1}{2} k \le
|
|||||||
The partial derivatives of the Lagrangian with respect to the variables \((x, y)\) are:
|
The partial derivatives of the Lagrangian with respect to the variables \((x, y)\) are:
|
||||||
</p>
|
</p>
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
\label{orgf971d6e}
|
\label{org4fc9f2b}
|
||||||
\frac{\partial L}{\partial x} & = -kx \\
|
\frac{\partial L}{\partial x} & = -kx \\
|
||||||
\frac{\partial L}{\partial y} & = -ky \\
|
\frac{\partial L}{\partial y} & = -ky \\
|
||||||
\frac{d}{dt}\frac{\partial L}{\partial \dot{x}} & = m\ddot{x} \\
|
\frac{d}{dt}\frac{\partial L}{\partial \dot{x}} & = m\ddot{x} \\
|
||||||
@ -518,11 +518,11 @@ We can then subtract and add the previous equations to obtain the following equa
|
|||||||
</p>
|
</p>
|
||||||
<div class="important">
|
<div class="important">
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\label{orge8fa8fd}
|
\label{orgf3ca0ca}
|
||||||
m \ddot{d_u} + (k - m\dot{\theta}^2) d_u = F_u + 2 m\dot{d_v}\dot{\theta} + m d_v\ddot{\theta}
|
m \ddot{d_u} + (k - m\dot{\theta}^2) d_u = F_u + 2 m\dot{d_v}\dot{\theta} + m d_v\ddot{\theta}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\label{orge386db1}
|
\label{org5e2eb96}
|
||||||
m \ddot{d_v} + (k - m\dot{\theta}^2) d_v = F_v - 2 m\dot{d_u}\dot{\theta} - m d_u\ddot{\theta}
|
m \ddot{d_v} + (k - m\dot{\theta}^2) d_v = F_v - 2 m\dot{d_u}\dot{\theta} - m d_u\ddot{\theta}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
@ -548,8 +548,8 @@ The resulting effect of those forces should then be higher when using softer act
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org0ff8b08" class="outline-3">
|
<div id="outline-container-org28e82a2" class="outline-3">
|
||||||
<h3 id="org0ff8b08"><span class="section-number-3">2.3</span> Numerical Values for the NASS</h3>
|
<h3 id="org28e82a2"><span class="section-number-3">2.3</span> Numerical Values for the NASS</h3>
|
||||||
<div class="outline-text-3" id="text-2-3">
|
<div class="outline-text-3" id="text-2-3">
|
||||||
<p>
|
<p>
|
||||||
Let's define the parameters for the NASS.
|
Let's define the parameters for the NASS.
|
||||||
@ -612,8 +612,8 @@ Let's define the parameters for the NASS.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org361651b" class="outline-3">
|
<div id="outline-container-orgd1ccc62" class="outline-3">
|
||||||
<h3 id="org361651b"><span class="section-number-3">2.4</span> Euler and Coriolis forces - Numerical Result</h3>
|
<h3 id="orgd1ccc62"><span class="section-number-3">2.4</span> Euler and Coriolis forces - Numerical Result</h3>
|
||||||
<div class="outline-text-3" id="text-2-4">
|
<div class="outline-text-3" id="text-2-4">
|
||||||
<p>
|
<p>
|
||||||
First we will determine the value for Euler and Coriolis forces during regular experiment.
|
First we will determine the value for Euler and Coriolis forces during regular experiment.
|
||||||
@ -624,10 +624,10 @@ First we will determine the value for Euler and Coriolis forces during regular e
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The obtained values are displayed in table <a href="#org87d7458">1</a>.
|
The obtained values are displayed in table <a href="#orga16401f">1</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table id="org87d7458" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
<table id="orga16401f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
<caption class="t-above"><span class="table-number">Table 1:</span> Euler and Coriolis forces for the NASS</caption>
|
<caption class="t-above"><span class="table-number">Table 1:</span> Euler and Coriolis forces for the NASS</caption>
|
||||||
|
|
||||||
<colgroup>
|
<colgroup>
|
||||||
@ -661,22 +661,22 @@ The obtained values are displayed in table <a href="#org87d7458">1</a>.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgd2c08cb" class="outline-3">
|
<div id="outline-container-org8db03ec" class="outline-3">
|
||||||
<h3 id="orgd2c08cb"><span class="section-number-3">2.5</span> Negative Spring Effect - Numerical Result</h3>
|
<h3 id="org8db03ec"><span class="section-number-3">2.5</span> Negative Spring Effect - Numerical Result</h3>
|
||||||
<div class="outline-text-3" id="text-2-5">
|
<div class="outline-text-3" id="text-2-5">
|
||||||
<p>
|
<p>
|
||||||
The negative stiffness due to the rotation is equal to \(-m{\omega_0}^2\).
|
The negative stiffness due to the rotation is equal to \(-m{\omega_0}^2\).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The values for the negative spring effect are displayed in table <a href="#orgda1ded2">2</a>.
|
The values for the negative spring effect are displayed in table <a href="#org8cad235">2</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This is definitely negligible when using piezoelectric actuators. It may not be the case when using voice coil actuators.
|
This is definitely negligible when using piezoelectric actuators. It may not be the case when using voice coil actuators.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table id="orgda1ded2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
<table id="org8cad235" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
<caption class="t-above"><span class="table-number">Table 2:</span> Negative Spring effect</caption>
|
<caption class="t-above"><span class="table-number">Table 2:</span> Negative Spring effect</caption>
|
||||||
|
|
||||||
<colgroup>
|
<colgroup>
|
||||||
@ -704,15 +704,15 @@ This is definitely negligible when using piezoelectric actuators. It may not be
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org3d790d8" class="outline-3">
|
<div id="outline-container-org7e45369" class="outline-3">
|
||||||
<h3 id="org3d790d8"><span class="section-number-3">2.6</span> Limitations due to coupling</h3>
|
<h3 id="org7e45369"><span class="section-number-3">2.6</span> Limitations due to coupling</h3>
|
||||||
<div class="outline-text-3" id="text-2-6">
|
<div class="outline-text-3" id="text-2-6">
|
||||||
<p>
|
<p>
|
||||||
To simplify, we consider a constant rotating speed \(\dot{\theta} = {\omega_0}\) and thus \(\ddot{\theta} = 0\).
|
To simplify, we consider a constant rotating speed \(\dot{\theta} = {\omega_0}\) and thus \(\ddot{\theta} = 0\).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
From equations \eqref{orge8fa8fd} and \eqref{orge386db1}, we obtain:
|
From equations \eqref{orgf3ca0ca} and \eqref{org5e2eb96}, we obtain:
|
||||||
</p>
|
</p>
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
(m s^2 + (k - m{\omega_0}^2)) d_u &= F_u + 2 m {\omega_0} s d_v \\
|
(m s^2 + (k - m{\omega_0}^2)) d_u &= F_u + 2 m {\omega_0} s d_v \\
|
||||||
@ -766,26 +766,26 @@ Then, coupling is negligible if \(|-m \omega^2 + (k - m{\omega_0}^2)| \gg |2 m {
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org041128a" class="outline-4">
|
<div id="outline-container-orgc898fca" class="outline-4">
|
||||||
<h4 id="org041128a"><span class="section-number-4">2.6.1</span> Numerical Analysis</h4>
|
<h4 id="orgc898fca"><span class="section-number-4">2.6.1</span> Numerical Analysis</h4>
|
||||||
<div class="outline-text-4" id="text-2-6-1">
|
<div class="outline-text-4" id="text-2-6-1">
|
||||||
<p>
|
<p>
|
||||||
We plot on the same graph \(\frac{|-m \omega^2 + (k - m {\omega_0}^2)|}{|2 m \omega_0 \omega|}\) for the voice coil and the piezo:
|
We plot on the same graph \(\frac{|-m \omega^2 + (k - m {\omega_0}^2)|}{|2 m \omega_0 \omega|}\) for the voice coil and the piezo:
|
||||||
</p>
|
</p>
|
||||||
<ul class="org-ul">
|
<ul class="org-ul">
|
||||||
<li>with the light sample (figure <a href="#org7303972">2</a>).</li>
|
<li>with the light sample (figure <a href="#org2b9a0e8">2</a>).</li>
|
||||||
<li>with the heavy sample (figure <a href="#org3386e78">3</a>).</li>
|
<li>with the heavy sample (figure <a href="#org24d5dc4">3</a>).</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<div id="org7303972" class="figure">
|
<div id="org2b9a0e8" class="figure">
|
||||||
<p><img src="Figures/coupling_light.png" alt="coupling_light.png" />
|
<p><img src="Figures/coupling_light.png" alt="coupling_light.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 2: </span>Relative Coupling for light mass and high rotation speed</p>
|
<p><span class="figure-number">Figure 2: </span>Relative Coupling for light mass and high rotation speed</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org3386e78" class="figure">
|
<div id="org24d5dc4" class="figure">
|
||||||
<p><img src="Figures/coupling_heavy.png" alt="coupling_heavy.png" />
|
<p><img src="Figures/coupling_heavy.png" alt="coupling_heavy.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 3: </span>Relative Coupling for heavy mass and low rotation speed</p>
|
<p><span class="figure-number">Figure 3: </span>Relative Coupling for heavy mass and low rotation speed</p>
|
||||||
@ -801,17 +801,17 @@ Coupling is higher for actuators with small stiffness.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org11f0d9f" class="outline-3">
|
<div id="outline-container-org87cd267" class="outline-3">
|
||||||
<h3 id="org11f0d9f"><span class="section-number-3">2.7</span> Limitations due to negative stiffness effect</h3>
|
<h3 id="org87cd267"><span class="section-number-3">2.7</span> Limitations due to negative stiffness effect</h3>
|
||||||
<div class="outline-text-3" id="text-2-7">
|
<div class="outline-text-3" id="text-2-7">
|
||||||
<p>
|
<p>
|
||||||
If \(\max{\dot{\theta}} \ll \sqrt{\frac{k}{m}}\), then the negative spring effect is negligible and \(k - m\dot{\theta}^2 \approx k\).
|
If \(\max{\dot{\theta}} \ll \sqrt{\frac{k}{m}}\), then the negative spring effect is negligible and \(k - m\dot{\theta}^2 \approx k\).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Let's estimate what is the maximum rotation speed for which the negative stiffness effect is still negligible (\(\omega_\text{max} = 0.1 \sqrt{\frac{k}{m}}\)). Results are shown table <a href="#org3a5730b">3</a>.
|
Let's estimate what is the maximum rotation speed for which the negative stiffness effect is still negligible (\(\omega_\text{max} = 0.1 \sqrt{\frac{k}{m}}\)). Results are shown table <a href="#org84660ee">3</a>.
|
||||||
</p>
|
</p>
|
||||||
<table id="org3a5730b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
<table id="org84660ee" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
<caption class="t-above"><span class="table-number">Table 3:</span> Maximum rotation speed at which negative stiffness is negligible (\(0.1\sqrt{\frac{k}{m}}\))</caption>
|
<caption class="t-above"><span class="table-number">Table 3:</span> Maximum rotation speed at which negative stiffness is negligible (\(0.1\sqrt{\frac{k}{m}}\))</caption>
|
||||||
|
|
||||||
<colgroup>
|
<colgroup>
|
||||||
@ -860,10 +860,10 @@ The system can even goes unstable when \(m \omega^2 > k\), that is when the cent
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
From this analysis, we can determine the lowest practical stiffness that is possible to use: \(k_\text{min} = 10 m \omega^2\) (table <a href="#org9464a39">4</a>)
|
From this analysis, we can determine the lowest practical stiffness that is possible to use: \(k_\text{min} = 10 m \omega^2\) (table <a href="#orgbea17e3">4</a>)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table id="org9464a39" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
<table id="orgbea17e3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
<caption class="t-above"><span class="table-number">Table 4:</span> Minimum possible stiffness</caption>
|
<caption class="t-above"><span class="table-number">Table 4:</span> Minimum possible stiffness</caption>
|
||||||
|
|
||||||
<colgroup>
|
<colgroup>
|
||||||
@ -892,15 +892,15 @@ From this analysis, we can determine the lowest practical stiffness that is poss
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org6ae3c88" class="outline-2">
|
<div id="outline-container-org86cc8ca" class="outline-2">
|
||||||
<h2 id="org6ae3c88"><span class="section-number-2">3</span> Control Strategies</h2>
|
<h2 id="org86cc8ca"><span class="section-number-2">3</span> Control Strategies</h2>
|
||||||
<div class="outline-text-2" id="text-3">
|
<div class="outline-text-2" id="text-3">
|
||||||
<p>
|
<p>
|
||||||
<a id="orgc886060"></a>
|
<a id="orgdb88326"></a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-orgbf1698b" class="outline-3">
|
<div id="outline-container-orga1abb2c" class="outline-3">
|
||||||
<h3 id="orgbf1698b"><span class="section-number-3">3.1</span> Measurement in the fixed reference frame</h3>
|
<h3 id="orga1abb2c"><span class="section-number-3">3.1</span> Measurement in the fixed reference frame</h3>
|
||||||
<div class="outline-text-3" id="text-3-1">
|
<div class="outline-text-3" id="text-3-1">
|
||||||
<p>
|
<p>
|
||||||
First, let's consider a measurement in the fixed referenced frame.
|
First, let's consider a measurement in the fixed referenced frame.
|
||||||
@ -923,11 +923,11 @@ Finally, the control low \(K\) links the position errors \([\epsilon_u, \epsilon
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The block diagram is shown on figure <a href="#org8698ee9">4</a>.
|
The block diagram is shown on figure <a href="#org859df00">4</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org8698ee9" class="figure">
|
<div id="org859df00" class="figure">
|
||||||
<p><img src="./Figures/control_measure_fixed_2dof.png" alt="control_measure_fixed_2dof.png" />
|
<p><img src="./Figures/control_measure_fixed_2dof.png" alt="control_measure_fixed_2dof.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 4: </span>Control with a measure from fixed frame</p>
|
<p><span class="figure-number">Figure 4: </span>Control with a measure from fixed frame</p>
|
||||||
@ -943,19 +943,19 @@ One question we wish to answer is: is \(G(\theta) J(\theta) = G(\theta_0) J(\the
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgf37122a" class="outline-3">
|
<div id="outline-container-org08a5499" class="outline-3">
|
||||||
<h3 id="orgf37122a"><span class="section-number-3">3.2</span> Measurement in the rotating frame</h3>
|
<h3 id="org08a5499"><span class="section-number-3">3.2</span> Measurement in the rotating frame</h3>
|
||||||
<div class="outline-text-3" id="text-3-2">
|
<div class="outline-text-3" id="text-3-2">
|
||||||
<p>
|
<p>
|
||||||
Let's consider that the measurement is made in the rotating reference frame.
|
Let's consider that the measurement is made in the rotating reference frame.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The corresponding block diagram is shown figure <a href="#org6f71235">5</a>
|
The corresponding block diagram is shown figure <a href="#org36bbc4f">5</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org6f71235" class="figure">
|
<div id="org36bbc4f" class="figure">
|
||||||
<p><img src="./Figures/control_measure_rotating_2dof.png" alt="control_measure_rotating_2dof.png" />
|
<p><img src="./Figures/control_measure_rotating_2dof.png" alt="control_measure_rotating_2dof.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 5: </span>Control with a measure from rotating frame</p>
|
<p><span class="figure-number">Figure 5: </span>Control with a measure from rotating frame</p>
|
||||||
@ -968,17 +968,49 @@ The loop gain is \(L = G K\).
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org3b55a8d" class="outline-2">
|
<div id="outline-container-org5b0bef3" class="outline-2">
|
||||||
<h2 id="org3b55a8d"><span class="section-number-2">4</span> Multi Body Model - Simscape</h2>
|
<h2 id="org5b0bef3"><span class="section-number-2">4</span> Multi Body Model - Simscape</h2>
|
||||||
<div class="outline-text-2" id="text-4">
|
<div class="outline-text-2" id="text-4">
|
||||||
<p>
|
<p>
|
||||||
<a id="org889e9c9"></a>
|
<a id="org8ef210c"></a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgd50d938" class="outline-3">
|
<div id="outline-container-org13aaa95" class="outline-3">
|
||||||
<h3 id="orgd50d938"><span class="section-number-3">4.1</span> Identification in the rotating referenced frame</h3>
|
<h3 id="org13aaa95"><span class="section-number-3">4.1</span> Parameter for the Simscape simulations</h3>
|
||||||
<div class="outline-text-3" id="text-4-1">
|
<div class="outline-text-3" id="text-4-1">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">w = <span style="color: #D0372D;">2</span><span style="color: #6434A3;">*</span><span style="color: #D0372D;">pi</span>; <span style="color: #8D8D84; font-style: italic;">% Rotation speed [rad/s]</span>
|
||||||
|
|
||||||
|
theta_e = <span style="color: #D0372D;">0</span>; <span style="color: #8D8D84; font-style: italic;">% Static measurement error on the angle theta [rad]</span>
|
||||||
|
|
||||||
|
m = <span style="color: #D0372D;">5</span>; <span style="color: #8D8D84; font-style: italic;">% mass of the sample [kg]</span>
|
||||||
|
|
||||||
|
mTuv = <span style="color: #D0372D;">30</span>;<span style="color: #8D8D84; font-style: italic;">% Mass of the moving part of the Tuv stage [kg]</span>
|
||||||
|
kTuv = <span style="color: #D0372D;">1e8</span>; <span style="color: #8D8D84; font-style: italic;">% Stiffness of the Tuv stage [N/m]</span>
|
||||||
|
cTuv = <span style="color: #D0372D;">0</span>; <span style="color: #8D8D84; font-style: italic;">% Damping of the Tuv stage [N/(m/s)]</span>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">mlight = <span style="color: #D0372D;">5</span>; <span style="color: #8D8D84; font-style: italic;">% Mass for light sample [kg]</span>
|
||||||
|
mheavy = <span style="color: #D0372D;">55</span>; <span style="color: #8D8D84; font-style: italic;">% Mass for heavy sample [kg]</span>
|
||||||
|
|
||||||
|
wlight = <span style="color: #D0372D;">2</span><span style="color: #6434A3;">*</span><span style="color: #D0372D;">pi</span>; <span style="color: #8D8D84; font-style: italic;">% Max rot. speed for light sample [rad/s]</span>
|
||||||
|
wheavy = <span style="color: #D0372D;">2</span><span style="color: #6434A3;">*</span><span style="color: #D0372D;">pi</span><span style="color: #6434A3;">/</span><span style="color: #D0372D;">60</span>; <span style="color: #8D8D84; font-style: italic;">% Max rot. speed for heavy sample [rad/s]</span>
|
||||||
|
|
||||||
|
kvc = <span style="color: #D0372D;">1e3</span>; <span style="color: #8D8D84; font-style: italic;">% Voice Coil Stiffness [N/m]</span>
|
||||||
|
kpz = <span style="color: #D0372D;">1e8</span>; <span style="color: #8D8D84; font-style: italic;">% Piezo Stiffness [N/m]</span>
|
||||||
|
|
||||||
|
d = <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">01</span>; <span style="color: #8D8D84; font-style: italic;">% Maximum excentricity from rotational axis [m]</span>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orgd334995" class="outline-3">
|
||||||
|
<h3 id="orgd334995"><span class="section-number-3">4.2</span> Identification in the rotating referenced frame</h3>
|
||||||
|
<div class="outline-text-3" id="text-4-2">
|
||||||
<p>
|
<p>
|
||||||
We initialize the inputs and outputs of the system to identify.
|
We initialize the inputs and outputs of the system to identify.
|
||||||
</p>
|
</p>
|
||||||
@ -998,34 +1030,60 @@ io<span style="color: #707183;">(</span><span style="color: #D0372D;">3</span><s
|
|||||||
io<span style="color: #707183;">(</span><span style="color: #D0372D;">4</span><span style="color: #707183;">)</span> = linio<span style="color: #707183;">(</span><span style="color: #7388D6;">[</span>mdl, '<span style="color: #6434A3;">/</span>dv'<span style="color: #7388D6;">]</span>, <span style="color: #D0372D;">1</span>, 'output'<span style="color: #707183;">)</span>;
|
io<span style="color: #707183;">(</span><span style="color: #D0372D;">4</span><span style="color: #707183;">)</span> = linio<span style="color: #707183;">(</span><span style="color: #7388D6;">[</span>mdl, '<span style="color: #6434A3;">/</span>dv'<span style="color: #7388D6;">]</span>, <span style="color: #D0372D;">1</span>, 'output'<span style="color: #707183;">)</span>;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="outline-container-org2ede09d" class="outline-4">
|
|
||||||
<h4 id="org2ede09d"><span class="section-number-4">4.1.1</span> Piezo and Voice coil</h4>
|
|
||||||
<div class="outline-text-4" id="text-4-1-1">
|
|
||||||
<p>
|
<p>
|
||||||
We start we identify the transfer functions at high speed with the light sample.
|
We start we identify the transfer functions at high speed with the light sample.
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">rot_speed = wlight;
|
<pre class="src src-matlab">w = wlight; <span style="color: #8D8D84; font-style: italic;">% Rotation speed [rad/s]</span>
|
||||||
angle_e = <span style="color: #D0372D;">0</span>;
|
m = mlight; <span style="color: #8D8D84; font-style: italic;">% mass of the sample [kg]</span>
|
||||||
m = mlight;
|
|
||||||
|
|
||||||
k = kpz;
|
kTuv = kpz;
|
||||||
c = <span style="color: #D0372D;">1e3</span>;
|
|
||||||
Gpz_light = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
Gpz_light = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
||||||
|
|
||||||
k = kvc;
|
|
||||||
c = <span style="color: #D0372D;">1e3</span>;
|
|
||||||
Gvc_light = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
|
||||||
|
|
||||||
Gpz_light.InputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Fu', 'Fv'</span><span style="color: #707183;">}</span>;
|
Gpz_light.InputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Fu', 'Fv'</span><span style="color: #707183;">}</span>;
|
||||||
Gpz_light.OutputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Du', 'Dv'</span><span style="color: #707183;">}</span>;
|
Gpz_light.OutputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Du', 'Dv'</span><span style="color: #707183;">}</span>;
|
||||||
|
|
||||||
|
kTuv = kvc;
|
||||||
|
Gvc_light = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
||||||
Gvc_light.InputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Fu', 'Fv'</span><span style="color: #707183;">}</span>;
|
Gvc_light.InputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Fu', 'Fv'</span><span style="color: #707183;">}</span>;
|
||||||
Gvc_light.OutputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Du', 'Dv'</span><span style="color: #707183;">}</span>;
|
Gvc_light.OutputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Du', 'Dv'</span><span style="color: #707183;">}</span>;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Then we identify the system with an heavy mass and low speed.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">w = wheavy; <span style="color: #8D8D84; font-style: italic;">% Rotation speed [rad/s]</span>
|
||||||
|
m = mheavy; <span style="color: #8D8D84; font-style: italic;">% mass of the sample [kg]</span>
|
||||||
|
|
||||||
|
kTuv = kpz;
|
||||||
|
Gpz_heavy = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
||||||
|
Gpz_heavy.InputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Fu', 'Fv'</span><span style="color: #707183;">}</span>;
|
||||||
|
Gpz_heavy.OutputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Du', 'Dv'</span><span style="color: #707183;">}</span>;
|
||||||
|
|
||||||
|
kTuv = kvc;
|
||||||
|
Gvc_heavy = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
||||||
|
Gvc_heavy.InputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Fu', 'Fv'</span><span style="color: #707183;">}</span>;
|
||||||
|
Gvc_heavy.OutputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Du', 'Dv'</span><span style="color: #707183;">}</span>;
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Finally, we plot the coupling ratio in both case (figure <a href="#orgded0015">6</a>).
|
||||||
|
We obtain the same result than the analytical case (figures <a href="#org2b9a0e8">2</a> and <a href="#org24d5dc4">3</a>).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="orgded0015" class="figure">
|
||||||
|
<p><img src="Figures/coupling_ration_light_heavy.png" alt="coupling_ration_light_heavy.png" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<p><img src="Figures/coupling_simscape_light.png" alt="coupling_simscape_light.png" />
|
<p><img src="Figures/coupling_simscape_light.png" alt="coupling_simscape_light.png" />
|
||||||
@ -1076,11 +1134,10 @@ Plot the ratio between the main transfer function and the coupling term:
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="outline-container-orgbb666ab" class="outline-4">
|
<div id="outline-container-org5cb3ac6" class="outline-4">
|
||||||
<h4 id="orgbb666ab"><span class="section-number-4">4.1.2</span> Low rotation speed and High rotation speed</h4>
|
<h4 id="org5cb3ac6"><span class="section-number-4">4.2.1</span> Low rotation speed and High rotation speed</h4>
|
||||||
<div class="outline-text-4" id="text-4-1-2">
|
<div class="outline-text-4" id="text-4-2-1">
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">rot_speed = <span style="color: #D0372D;">2</span><span style="color: #6434A3;">*</span><span style="color: #D0372D;">pi</span><span style="color: #6434A3;">/</span><span style="color: #D0372D;">60</span>; angle_e = <span style="color: #D0372D;">0</span>;
|
<pre class="src src-matlab">rot_speed = <span style="color: #D0372D;">2</span><span style="color: #6434A3;">*</span><span style="color: #D0372D;">pi</span><span style="color: #6434A3;">/</span><span style="color: #D0372D;">60</span>; angle_e = <span style="color: #D0372D;">0</span>;
|
||||||
G_low = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
G_low = linearize<span style="color: #707183;">(</span>mdl, io, <span style="color: #D0372D;">0</span>.<span style="color: #D0372D;">1</span><span style="color: #707183;">)</span>;
|
||||||
@ -1104,9 +1161,9 @@ bode<span style="color: #707183;">(</span>G_low, G_high<span style="color: #7071
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org3ecccf8" class="outline-3">
|
<div id="outline-container-orgb159f85" class="outline-3">
|
||||||
<h3 id="org3ecccf8"><span class="section-number-3">4.2</span> Identification in the fixed frame</h3>
|
<h3 id="orgb159f85"><span class="section-number-3">4.3</span> Identification in the fixed frame</h3>
|
||||||
<div class="outline-text-3" id="text-4-2">
|
<div class="outline-text-3" id="text-4-3">
|
||||||
<p>
|
<p>
|
||||||
Let's define some options as well as the inputs and outputs for linearization.
|
Let's define some options as well as the inputs and outputs for linearization.
|
||||||
</p>
|
</p>
|
||||||
@ -1186,9 +1243,9 @@ bode<span style="color: #707183;">(</span>Ge<span style="color: #707183;">)</spa
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orga260738" class="outline-3">
|
<div id="outline-container-org6b50e4b" class="outline-3">
|
||||||
<h3 id="orga260738"><span class="section-number-3">4.3</span> Identification from actuator forces to displacement in the fixed frame</h3>
|
<h3 id="org6b50e4b"><span class="section-number-3">4.4</span> Identification from actuator forces to displacement in the fixed frame</h3>
|
||||||
<div class="outline-text-3" id="text-4-3">
|
<div class="outline-text-3" id="text-4-4">
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab"><span style="color: #8D8D84; font-weight: bold; font-style: italic; text-decoration: overline;">%% Options for Linearized</span>
|
<pre class="src src-matlab"><span style="color: #8D8D84; font-weight: bold; font-style: italic; text-decoration: overline;">%% Options for Linearized</span>
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
@ -1245,48 +1302,48 @@ exportFig<span style="color: #707183;">(</span><span style="color: #008000;">'G_
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orge0b7f4f" class="outline-3">
|
<div id="outline-container-org6a8d002" class="outline-3">
|
||||||
<h3 id="orge0b7f4f"><span class="section-number-3">4.4</span> Effect of the rotating Speed</h3>
|
<h3 id="org6a8d002"><span class="section-number-3">4.5</span> Effect of the rotating Speed</h3>
|
||||||
<div class="outline-text-3" id="text-4-4">
|
<div class="outline-text-3" id="text-4-5">
|
||||||
<p>
|
<p>
|
||||||
<a id="orgd1e3b9e"></a>
|
<a id="org5ada9df"></a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgd25182f" class="outline-4">
|
<div id="outline-container-org4a07d2b" class="outline-4">
|
||||||
<h4 id="orgd25182f"><span class="section-number-4">4.4.1</span> <span class="todo TODO">TODO</span> Use realistic parameters for the mass of the sample and stiffness of the X-Y stage</h4>
|
<h4 id="org4a07d2b"><span class="section-number-4">4.5.1</span> <span class="todo TODO">TODO</span> Use realistic parameters for the mass of the sample and stiffness of the X-Y stage</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-org0368be9" class="outline-4">
|
<div id="outline-container-org01d22ae" class="outline-4">
|
||||||
<h4 id="org0368be9"><span class="section-number-4">4.4.2</span> <span class="todo TODO">TODO</span> Check if the plant is changing a lot when we are not turning to when we are turning at the maximum speed (60rpm)</h4>
|
<h4 id="org01d22ae"><span class="section-number-4">4.5.2</span> <span class="todo TODO">TODO</span> Check if the plant is changing a lot when we are not turning to when we are turning at the maximum speed (60rpm)</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-org8ddc330" class="outline-3">
|
<div id="outline-container-org6cdc442" class="outline-3">
|
||||||
<h3 id="org8ddc330"><span class="section-number-3">4.5</span> Effect of the X-Y stage stiffness</h3>
|
<h3 id="org6cdc442"><span class="section-number-3">4.6</span> Effect of the X-Y stage stiffness</h3>
|
||||||
<div class="outline-text-3" id="text-4-5">
|
<div class="outline-text-3" id="text-4-6">
|
||||||
<p>
|
<p>
|
||||||
<a id="org072e1f4"></a>
|
<a id="org377008c"></a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-orgd282a96" class="outline-4">
|
<div id="outline-container-org74a0c06" class="outline-4">
|
||||||
<h4 id="orgd282a96"><span class="section-number-4">4.5.1</span> <span class="todo TODO">TODO</span> At full speed, check how the coupling changes with the stiffness of the actuators</h4>
|
<h4 id="org74a0c06"><span class="section-number-4">4.6.1</span> <span class="todo TODO">TODO</span> At full speed, check how the coupling changes with the stiffness of the actuators</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-orgdfc37fb" class="outline-2">
|
<div id="outline-container-orge84791a" class="outline-2">
|
||||||
<h2 id="orgdfc37fb"><span class="section-number-2">5</span> Control Implementation</h2>
|
<h2 id="orge84791a"><span class="section-number-2">5</span> Control Implementation</h2>
|
||||||
<div class="outline-text-2" id="text-5">
|
<div class="outline-text-2" id="text-5">
|
||||||
<p>
|
<p>
|
||||||
<a id="orgaa1e82e"></a>
|
<a id="orgd9942b8"></a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-org5ed4967" class="outline-3">
|
<div id="outline-container-org86d67af" class="outline-3">
|
||||||
<h3 id="org5ed4967"><span class="section-number-3">5.1</span> Measurement in the fixed reference frame</h3>
|
<h3 id="org86d67af"><span class="section-number-3">5.1</span> Measurement in the fixed reference frame</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Thomas Dehaeze</p>
|
<p class="author">Author: Thomas Dehaeze</p>
|
||||||
<p class="date">Created: 2019-01-21 lun. 23:44</p>
|
<p class="date">Created: 2019-01-23 mer. 15:21</p>
|
||||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@ -454,7 +454,34 @@ The loop gain is $L = G K$.
|
|||||||
open rotating_frame.slx
|
open rotating_frame.slx
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Parameter for the Simscape simulations
|
||||||
|
#+begin_src matlab :exports code :results silent
|
||||||
|
w = 2*pi; % Rotation speed [rad/s]
|
||||||
|
|
||||||
|
theta_e = 0; % Static measurement error on the angle theta [rad]
|
||||||
|
|
||||||
|
m = 5; % mass of the sample [kg]
|
||||||
|
|
||||||
|
mTuv = 30;% Mass of the moving part of the Tuv stage [kg]
|
||||||
|
kTuv = 1e8; % Stiffness of the Tuv stage [N/m]
|
||||||
|
cTuv = 0; % Damping of the Tuv stage [N/(m/s)]
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports code :results silent
|
||||||
|
mlight = 5; % Mass for light sample [kg]
|
||||||
|
mheavy = 55; % Mass for heavy sample [kg]
|
||||||
|
|
||||||
|
wlight = 2*pi; % Max rot. speed for light sample [rad/s]
|
||||||
|
wheavy = 2*pi/60; % Max rot. speed for heavy sample [rad/s]
|
||||||
|
|
||||||
|
kvc = 1e3; % Voice Coil Stiffness [N/m]
|
||||||
|
kpz = 1e8; % Piezo Stiffness [N/m]
|
||||||
|
|
||||||
|
d = 0.01; % Maximum excentricity from rotational axis [m]
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Identification in the rotating referenced frame
|
** Identification in the rotating referenced frame
|
||||||
|
|
||||||
We initialize the inputs and outputs of the system to identify.
|
We initialize the inputs and outputs of the system to identify.
|
||||||
#+begin_src matlab :exports code :results silent
|
#+begin_src matlab :exports code :results silent
|
||||||
%% Options for Linearized
|
%% Options for Linearized
|
||||||
@ -472,27 +499,72 @@ We initialize the inputs and outputs of the system to identify.
|
|||||||
io(4) = linio([mdl, '/dv'], 1, 'output');
|
io(4) = linio([mdl, '/dv'], 1, 'output');
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Piezo and Voice coil
|
|
||||||
We start we identify the transfer functions at high speed with the light sample.
|
We start we identify the transfer functions at high speed with the light sample.
|
||||||
#+begin_src matlab :exports code :results silent
|
#+begin_src matlab :exports code :results silent
|
||||||
rot_speed = wlight;
|
w = wlight; % Rotation speed [rad/s]
|
||||||
angle_e = 0;
|
m = mlight; % mass of the sample [kg]
|
||||||
m = mlight;
|
|
||||||
|
|
||||||
k = kpz;
|
kTuv = kpz;
|
||||||
c = 1e3;
|
|
||||||
Gpz_light = linearize(mdl, io, 0.1);
|
Gpz_light = linearize(mdl, io, 0.1);
|
||||||
|
|
||||||
k = kvc;
|
|
||||||
c = 1e3;
|
|
||||||
Gvc_light = linearize(mdl, io, 0.1);
|
|
||||||
|
|
||||||
Gpz_light.InputName = {'Fu', 'Fv'};
|
Gpz_light.InputName = {'Fu', 'Fv'};
|
||||||
Gpz_light.OutputName = {'Du', 'Dv'};
|
Gpz_light.OutputName = {'Du', 'Dv'};
|
||||||
|
|
||||||
|
kTuv = kvc;
|
||||||
|
Gvc_light = linearize(mdl, io, 0.1);
|
||||||
Gvc_light.InputName = {'Fu', 'Fv'};
|
Gvc_light.InputName = {'Fu', 'Fv'};
|
||||||
Gvc_light.OutputName = {'Du', 'Dv'};
|
Gvc_light.OutputName = {'Du', 'Dv'};
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
Then we identify the system with an heavy mass and low speed.
|
||||||
|
#+begin_src matlab :exports code :results silent
|
||||||
|
w = wheavy; % Rotation speed [rad/s]
|
||||||
|
m = mheavy; % mass of the sample [kg]
|
||||||
|
|
||||||
|
kTuv = kpz;
|
||||||
|
Gpz_heavy = linearize(mdl, io, 0.1);
|
||||||
|
Gpz_heavy.InputName = {'Fu', 'Fv'};
|
||||||
|
Gpz_heavy.OutputName = {'Du', 'Dv'};
|
||||||
|
|
||||||
|
kTuv = kvc;
|
||||||
|
Gvc_heavy = linearize(mdl, io, 0.1);
|
||||||
|
Gvc_heavy.InputName = {'Fu', 'Fv'};
|
||||||
|
Gvc_heavy.OutputName = {'Du', 'Dv'};
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Finally, we plot the coupling ratio in both case (figure [[fig:coupling_ration_light_heavy]]).
|
||||||
|
We obtain the same result than the analytical case (figures [[fig:coupling_light]] and [[fig:coupling_heavy]]).
|
||||||
|
#+begin_src matlab :results silent :exports none
|
||||||
|
freqs = logspace(-2, 3, 1000);
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(freqs, abs(squeeze(freqresp(Gvc_light('Du', 'Fu'), freqs, 'Hz')))./abs(squeeze(freqresp(Gvc_light('Dv', 'Fu'), freqs, 'Hz'))));
|
||||||
|
plot(freqs, abs(squeeze(freqresp(Gpz_light('Du', 'Fu'), freqs, 'Hz')))./abs(squeeze(freqresp(Gpz_light('Dv', 'Fu'), freqs, 'Hz'))));
|
||||||
|
set(gca,'ColorOrderIndex',1);
|
||||||
|
plot(freqs, abs(squeeze(freqresp(Gvc_heavy('Du', 'Fu'), freqs, 'Hz')))./abs(squeeze(freqresp(Gvc_heavy('Dv', 'Fu'), freqs, 'Hz'))), '--');
|
||||||
|
plot(freqs, abs(squeeze(freqresp(Gpz_heavy('Du', 'Fu'), freqs, 'Hz')))./abs(squeeze(freqresp(Gpz_heavy('Dv', 'Fu'), freqs, 'Hz'))), '--');
|
||||||
|
hold off;
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
xlabel('Frequency [Hz]'); ylabel('Coupling ratio');
|
||||||
|
legend({'light - VC', 'light - PZ', 'heavy - VC', 'heavy - PZ'})
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+HEADER: :tangle no :exports results :results file :noweb yes
|
||||||
|
#+HEADER: :var filepath="Figures/coupling_ration_light_heavy.png" :var figsize="wide-tall"
|
||||||
|
#+begin_src matlab
|
||||||
|
<<plt-matlab>>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+NAME: fig:coupling_ration_light_heavy
|
||||||
|
#+RESULTS:
|
||||||
|
[[file:Figures/coupling_ration_light_heavy.png]]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#+begin_src matlab :exports none :results silent
|
#+begin_src matlab :exports none :results silent
|
||||||
figure;
|
figure;
|
||||||
bode(Gpz_light, Gvc_light);
|
bode(Gpz_light, Gvc_light);
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user