Update simulink file. Redifined parameters

This commit is contained in:
Thomas Dehaeze 2019-01-23 15:21:17 +01:00
parent 909b4de60a
commit 575cb20d7f
6 changed files with 810 additions and 145 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 310 KiB

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-01-21 lun. 23:44 -->
<!-- 2019-01-23 mer. 15:21 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Control in a rotating frame</title>
@ -275,75 +275,75 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org0a89915">1. Introduction</a></li>
<li><a href="#org123b9ca">2. System</a>
<li><a href="#org9988e59">1. Introduction</a></li>
<li><a href="#orgfd01695">2. System</a>
<ul>
<li><a href="#org9aa32bf">2.1. System description</a></li>
<li><a href="#orgc0c2859">2.2. Equations</a></li>
<li><a href="#org0ff8b08">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="#orgd2c08cb">2.5. Negative Spring Effect - Numerical Result</a></li>
<li><a href="#org3d790d8">2.6. Limitations due to coupling</a>
<li><a href="#orged1d203">2.1. System description</a></li>
<li><a href="#orgbcc53a3">2.2. Equations</a></li>
<li><a href="#org28e82a2">2.3. Numerical Values for the NASS</a></li>
<li><a href="#orgd1ccc62">2.4. Euler and Coriolis forces - Numerical Result</a></li>
<li><a href="#org8db03ec">2.5. Negative Spring Effect - Numerical Result</a></li>
<li><a href="#org7e45369">2.6. Limitations due to coupling</a>
<ul>
<li><a href="#org041128a">2.6.1. Numerical Analysis</a></li>
<li><a href="#orgc898fca">2.6.1. Numerical Analysis</a></li>
</ul>
</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>
</li>
<li><a href="#org6ae3c88">3. Control Strategies</a>
<li><a href="#org86cc8ca">3. Control Strategies</a>
<ul>
<li><a href="#orgbf1698b">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="#orga1abb2c">3.1. Measurement in the fixed reference frame</a></li>
<li><a href="#org08a5499">3.2. Measurement in the rotating frame</a></li>
</ul>
</li>
<li><a href="#org3b55a8d">4. Multi Body Model - Simscape</a>
<li><a href="#org5b0bef3">4. Multi Body Model - Simscape</a>
<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>
<li><a href="#org2ede09d">4.1.1. Piezo and Voice coil</a></li>
<li><a href="#orgbb666ab">4.1.2. Low rotation speed and High rotation speed</a></li>
<li><a href="#org5cb3ac6">4.2.1. Low rotation speed and High rotation speed</a></li>
</ul>
</li>
<li><a href="#org3ecccf8">4.2. 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="#orge0b7f4f">4.4. Effect of the rotating Speed</a>
<li><a href="#orgb159f85">4.3. Identification 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="#org6a8d002">4.5. Effect of the rotating Speed</a>
<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="#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="#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="#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>
</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>
<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>
</li>
</ul>
</li>
<li><a href="#orgdfc37fb">5. Control Implementation</a>
<li><a href="#orge84791a">5. Control Implementation</a>
<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>
</li>
</ul>
</div>
</div>
<div id="outline-container-org0a89915" class="outline-2">
<h2 id="org0a89915"><span class="section-number-2">1</span> Introduction</h2>
<div id="outline-container-org9988e59" class="outline-2">
<h2 id="org9988e59"><span class="section-number-2">1</span> Introduction</h2>
<div class="outline-text-2" id="text-1">
<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.
</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.
This is studied using the equations, and some numerical computations are used to compare the use of voice coil and piezoelectric actuators.
</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>
<ul class="org-ul">
<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>
<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>
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>
</div>
</div>
<div id="outline-container-org123b9ca" class="outline-2">
<h2 id="org123b9ca"><span class="section-number-2">2</span> System</h2>
<div id="outline-container-orgfd01695" class="outline-2">
<h2 id="orgfd01695"><span class="section-number-2">2</span> System</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org725c7e8"></a>
<a id="org4f1fd4b"></a>
</p>
</div>
<div id="outline-container-org9aa32bf" class="outline-3">
<h3 id="org9aa32bf"><span class="section-number-3">2.1</span> System description</h3>
<div id="outline-container-orged1d203" class="outline-3">
<h3 id="orged1d203"><span class="section-number-3">2.1</span> System description</h3>
<div class="outline-text-3" id="text-2-1">
<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>
@ -384,7 +384,7 @@ The measurement is either the \(x-y\) displacement of the object located on top
</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>
<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 id="outline-container-orgc0c2859" class="outline-3">
<h3 id="orgc0c2859"><span class="section-number-3">2.2</span> Equations</h3>
<div id="outline-container-orgbcc53a3" class="outline-3">
<h3 id="orgbcc53a3"><span class="section-number-3">2.2</span> Equations</h3>
<div class="outline-text-3" id="text-2-2">
<p>
<a id="org07b8498"></a>
Based on the figure <a href="#org492a56d">1</a>, we can write the equations of motion of the system.
<a id="org2f020df"></a>
Based on the figure <a href="#orgce6c963">1</a>, we can write the equations of motion of the system.
</p>
<p>
Let's express the kinetic energy \(T\) and the potential energy \(V\) of the mass \(m\):
</p>
\begin{align}
\label{org97ab84a}
\label{org93a4d45}
T & = \frac{1}{2} m \left( \dot{x}^2 + \dot{y}^2 \right) \\
V & = \frac{1}{2} k \left( x^2 + y^2 \right)
\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.
</p>
\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)
\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:
</p>
\begin{align*}
\label{orgf971d6e}
\label{org4fc9f2b}
\frac{\partial L}{\partial x} & = -kx \\
\frac{\partial L}{\partial y} & = -ky \\
\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>
<div class="important">
\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}
\end{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}
\end{equation}
@ -548,8 +548,8 @@ The resulting effect of those forces should then be higher when using softer act
</div>
</div>
<div id="outline-container-org0ff8b08" class="outline-3">
<h3 id="org0ff8b08"><span class="section-number-3">2.3</span> Numerical Values for the NASS</h3>
<div id="outline-container-org28e82a2" class="outline-3">
<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">
<p>
Let's define the parameters for the NASS.
@ -612,8 +612,8 @@ Let's define the parameters for the NASS.
</div>
</div>
<div id="outline-container-org361651b" class="outline-3">
<h3 id="org361651b"><span class="section-number-3">2.4</span> Euler and Coriolis forces - Numerical Result</h3>
<div id="outline-container-orgd1ccc62" class="outline-3">
<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">
<p>
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>
<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>
<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>
<colgroup>
@ -661,22 +661,22 @@ The obtained values are displayed in table <a href="#org87d7458">1</a>.
</div>
</div>
<div id="outline-container-orgd2c08cb" class="outline-3">
<h3 id="orgd2c08cb"><span class="section-number-3">2.5</span> Negative Spring Effect - Numerical Result</h3>
<div id="outline-container-org8db03ec" class="outline-3">
<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">
<p>
The negative stiffness due to the rotation is equal to \(-m{\omega_0}^2\).
</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>
This is definitely negligible when using piezoelectric actuators. It may not be the case when using voice coil actuators.
</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>
<colgroup>
@ -704,15 +704,15 @@ This is definitely negligible when using piezoelectric actuators. It may not be
</div>
</div>
<div id="outline-container-org3d790d8" class="outline-3">
<h3 id="org3d790d8"><span class="section-number-3">2.6</span> Limitations due to coupling</h3>
<div id="outline-container-org7e45369" class="outline-3">
<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">
<p>
To simplify, we consider a constant rotating speed \(\dot{\theta} = {\omega_0}\) and thus \(\ddot{\theta} = 0\).
</p>
<p>
From equations \eqref{orge8fa8fd} and \eqref{orge386db1}, we obtain:
From equations \eqref{orgf3ca0ca} and \eqref{org5e2eb96}, we obtain:
</p>
\begin{align*}
(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>
</div>
<div id="outline-container-org041128a" class="outline-4">
<h4 id="org041128a"><span class="section-number-4">2.6.1</span> Numerical Analysis</h4>
<div id="outline-container-orgc898fca" class="outline-4">
<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">
<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:
</p>
<ul class="org-ul">
<li>with the light sample (figure <a href="#org7303972">2</a>).</li>
<li>with the heavy sample (figure <a href="#org3386e78">3</a>).</li>
<li>with the light sample (figure <a href="#org2b9a0e8">2</a>).</li>
<li>with the heavy sample (figure <a href="#org24d5dc4">3</a>).</li>
</ul>
<div id="org7303972" class="figure">
<div id="org2b9a0e8" class="figure">
<p><img src="Figures/coupling_light.png" alt="coupling_light.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Relative Coupling for light mass and high rotation speed</p>
</div>
<div id="org3386e78" class="figure">
<div id="org24d5dc4" class="figure">
<p><img src="Figures/coupling_heavy.png" alt="coupling_heavy.png" />
</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 id="outline-container-org11f0d9f" class="outline-3">
<h3 id="org11f0d9f"><span class="section-number-3">2.7</span> Limitations due to negative stiffness effect</h3>
<div id="outline-container-org87cd267" class="outline-3">
<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">
<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\).
</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>
<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>
<colgroup>
@ -860,10 +860,10 @@ The system can even goes unstable when \(m \omega^2 > k\), that is when the cent
</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>
<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>
<colgroup>
@ -892,15 +892,15 @@ From this analysis, we can determine the lowest practical stiffness that is poss
</div>
</div>
<div id="outline-container-org6ae3c88" class="outline-2">
<h2 id="org6ae3c88"><span class="section-number-2">3</span> Control Strategies</h2>
<div id="outline-container-org86cc8ca" class="outline-2">
<h2 id="org86cc8ca"><span class="section-number-2">3</span> Control Strategies</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="orgc886060"></a>
<a id="orgdb88326"></a>
</p>
</div>
<div id="outline-container-orgbf1698b" class="outline-3">
<h3 id="orgbf1698b"><span class="section-number-3">3.1</span> Measurement in the fixed reference frame</h3>
<div id="outline-container-orga1abb2c" class="outline-3">
<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">
<p>
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>
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>
<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>
<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 id="outline-container-orgf37122a" class="outline-3">
<h3 id="orgf37122a"><span class="section-number-3">3.2</span> Measurement in the rotating frame</h3>
<div id="outline-container-org08a5499" class="outline-3">
<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">
<p>
Let's consider that the measurement is made in the rotating reference frame.
</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>
<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>
<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 id="outline-container-org3b55a8d" class="outline-2">
<h2 id="org3b55a8d"><span class="section-number-2">4</span> Multi Body Model - Simscape</h2>
<div id="outline-container-org5b0bef3" class="outline-2">
<h2 id="org5b0bef3"><span class="section-number-2">4</span> Multi Body Model - Simscape</h2>
<div class="outline-text-2" id="text-4">
<p>
<a id="org889e9c9"></a>
<a id="org8ef210c"></a>
</p>
</div>
<div id="outline-container-orgd50d938" class="outline-3">
<h3 id="orgd50d938"><span class="section-number-3">4.1</span> Identification in the rotating referenced frame</h3>
<div id="outline-container-org13aaa95" class="outline-3">
<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="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>
We initialize the inputs and outputs of the system to identify.
</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>;
</pre>
</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>
We start we identify the transfer functions at high speed with the light sample.
</p>
<div class="org-src-container">
<pre class="src src-matlab">rot_speed = wlight;
angle_e = <span style="color: #D0372D;">0</span>;
m = mlight;
<pre class="src src-matlab">w = wlight; <span style="color: #8D8D84; font-style: italic;">% Rotation speed [rad/s]</span>
m = mlight; <span style="color: #8D8D84; font-style: italic;">% mass of the sample [kg]</span>
k = kpz;
c = <span style="color: #D0372D;">1e3</span>;
kTuv = kpz;
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.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.OutputName = <span style="color: #707183;">{</span><span style="color: #008000;">'Du', 'Dv'</span><span style="color: #707183;">}</span>;
</pre>
</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">
<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>
</div>
</div>
</div>
<div id="outline-container-orgbb666ab" class="outline-4">
<h4 id="orgbb666ab"><span class="section-number-4">4.1.2</span> Low rotation speed and High rotation speed</h4>
<div class="outline-text-4" id="text-4-1-2">
<div id="outline-container-org5cb3ac6" class="outline-4">
<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-2-1">
<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>;
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 id="outline-container-org3ecccf8" class="outline-3">
<h3 id="org3ecccf8"><span class="section-number-3">4.2</span> Identification in the fixed frame</h3>
<div class="outline-text-3" id="text-4-2">
<div id="outline-container-orgb159f85" class="outline-3">
<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-3">
<p>
Let's define some options as well as the inputs and outputs for linearization.
</p>
@ -1186,9 +1243,9 @@ bode<span style="color: #707183;">(</span>Ge<span style="color: #707183;">)</spa
</div>
</div>
<div id="outline-container-orga260738" 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>
<div class="outline-text-3" id="text-4-3">
<div id="outline-container-org6b50e4b" class="outline-3">
<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-4">
<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>
options = linearizeOptions;
@ -1245,48 +1302,48 @@ exportFig<span style="color: #707183;">(</span><span style="color: #008000;">'G_
</div>
</div>
<div id="outline-container-orge0b7f4f" class="outline-3">
<h3 id="orge0b7f4f"><span class="section-number-3">4.4</span> Effect of the rotating Speed</h3>
<div class="outline-text-3" id="text-4-4">
<div id="outline-container-org6a8d002" class="outline-3">
<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-5">
<p>
<a id="orgd1e3b9e"></a>
<a id="org5ada9df"></a>
</p>
</div>
<div id="outline-container-orgd25182f" 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>
<div id="outline-container-org4a07d2b" class="outline-4">
<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 id="outline-container-org0368be9" 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>
<div id="outline-container-org01d22ae" class="outline-4">
<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 id="outline-container-org8ddc330" class="outline-3">
<h3 id="org8ddc330"><span class="section-number-3">4.5</span> Effect of the X-Y stage stiffness</h3>
<div class="outline-text-3" id="text-4-5">
<div id="outline-container-org6cdc442" class="outline-3">
<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-6">
<p>
<a id="org072e1f4"></a>
<a id="org377008c"></a>
</p>
</div>
<div id="outline-container-orgd282a96" 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>
<div id="outline-container-org74a0c06" class="outline-4">
<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 id="outline-container-orgdfc37fb" class="outline-2">
<h2 id="orgdfc37fb"><span class="section-number-2">5</span> Control Implementation</h2>
<div id="outline-container-orge84791a" class="outline-2">
<h2 id="orge84791a"><span class="section-number-2">5</span> Control Implementation</h2>
<div class="outline-text-2" id="text-5">
<p>
<a id="orgaa1e82e"></a>
<a id="orgd9942b8"></a>
</p>
</div>
<div id="outline-container-org5ed4967" class="outline-3">
<h3 id="org5ed4967"><span class="section-number-3">5.1</span> Measurement in the fixed reference frame</h3>
<div id="outline-container-org86d67af" class="outline-3">
<h3 id="org86d67af"><span class="section-number-3">5.1</span> Measurement in the fixed reference frame</h3>
</div>
</div>
</div>
<div id="postamble" class="status">
<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>
</div>
</body>

View File

@ -454,7 +454,34 @@ The loop gain is $L = G K$.
open rotating_frame.slx
#+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
We initialize the inputs and outputs of the system to identify.
#+begin_src matlab :exports code :results silent
%% 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');
#+end_src
*** Piezo and Voice coil
We start we identify the transfer functions at high speed with the light sample.
#+begin_src matlab :exports code :results silent
rot_speed = wlight;
angle_e = 0;
m = mlight;
w = wlight; % Rotation speed [rad/s]
m = mlight; % mass of the sample [kg]
k = kpz;
c = 1e3;
kTuv = kpz;
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.OutputName = {'Du', 'Dv'};
kTuv = kvc;
Gvc_light = linearize(mdl, io, 0.1);
Gvc_light.InputName = {'Fu', 'Fv'};
Gvc_light.OutputName = {'Du', 'Dv'};
#+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
figure;
bode(Gpz_light, Gvc_light);

Binary file not shown.