Add some analysis

This commit is contained in:
Thomas Dehaeze 2019-01-18 17:46:54 +01:00
parent 7447225dbe
commit 5afaf494f6
2 changed files with 42 additions and 16 deletions

Binary file not shown.

View File

@ -109,7 +109,7 @@ We obtain:
+ \ddot{d_v} \cos{\theta} - 2\dot{d_v}\dot{\theta}\sin{\theta} - d_v\ddot{\theta}\sin{\theta} - d_v\dot{\theta}^2 \cos{\theta} \\ + \ddot{d_v} \cos{\theta} - 2\dot{d_v}\dot{\theta}\sin{\theta} - d_v\ddot{\theta}\sin{\theta} - d_v\dot{\theta}^2 \cos{\theta} \\
\end{align*} \end{align*}
By injecting the previous result into the Lagrangian equation [[eq:lagrangian_eq_inertial]], we obtain: By injecting the previous result into the Lagrangian equation, we obtain:
\begin{align*} \begin{align*}
m \ddot{d_u} \cos{\theta} - 2m\dot{d_u}\dot{\theta}\sin{\theta} - m d_u\ddot{\theta}\sin{\theta} - m d_u\dot{\theta}^2 \cos{\theta} m \ddot{d_u} \cos{\theta} - 2m\dot{d_u}\dot{\theta}\sin{\theta} - m d_u\ddot{\theta}\sin{\theta} - m d_u\dot{\theta}^2 \cos{\theta}
-m \ddot{d_v} \sin{\theta} - 2m\dot{d_v}\dot{\theta}\cos{\theta} - m d_v\ddot{\theta}\cos{\theta} + m d_v\dot{\theta}^2 \sin{\theta} -m \ddot{d_v} \sin{\theta} - 2m\dot{d_v}\dot{\theta}\cos{\theta} - m d_v\ddot{\theta}\cos{\theta} + m d_v\dot{\theta}^2 \sin{\theta}
@ -137,7 +137,7 @@ We can then subtract and add the previous equations to obtain the following equa
\end{align*} \end{align*}
#+end_important #+end_important
** Analysis ** TODO Analysis
We obtain two differential equations that are coupled through: We obtain two differential equations that are coupled through:
- *Euler forces*: $m d_v \ddot{\theta}$ - *Euler forces*: $m d_v \ddot{\theta}$
- *Coriolis forces*: $2 m \dot{d_v} \dot{\theta}$ - *Coriolis forces*: $2 m \dot{d_v} \dot{\theta}$
@ -145,12 +145,24 @@ We obtain two differential equations that are coupled through:
Without the coupling terms, each equation is the equation of a one degree of freedom mass-spring system with mass $m$ and stiffness $k-d_u m\dot{\theta}^2$. Without the coupling terms, each equation is the equation of a one degree of freedom mass-spring system with mass $m$ and stiffness $k-d_u m\dot{\theta}^2$.
Thus, the term $-d_u m\dot{\theta}^2$ acts like a negative stiffness (due to *centrifugal forces*). Thus, the term $-d_u m\dot{\theta}^2$ acts like a negative stiffness (due to *centrifugal forces*).
*** Stiff actuators
Let's say we use stiff actuators such that $m \ddot{d_u} + (k - m\dot{\theta}^2) d_u \approx k d_u$.
Let's suppose that $F_u + 2 m\dot{d_v}\dot{\theta} + m d_v\ddot{\theta} \approx F_u$.
Then we obtain $d_u = \frac{F_u}{k}$ that we can re inject in the other equation to obtain:
\[ m \ddot{d_v} + (k - m\dot{\theta}^2) d_v &= F_v - 2 m\frac{\dot{F_u}}{k}\dot{\theta} - m \frac{F_u}{k}\ddot{\theta} \]
*** Negative Stiffness
If $\max{\dot{\theta}} \ll \sqrt{\frac{k}{m}}$, then the negative spring effect is negligible and $k - m\dot{\theta}^2 \approx k$.
* Analytical Computation of forces for the NASS * Analytical Computation of forces for the NASS
For the NASS, the Euler forces should be less of a problem as $\ddot{\theta}$ should be very small when conducting an experiment. For the NASS, the Euler forces should be less of a problem as $\ddot{\theta}$ should be very small when conducting an experiment.
First we will determine the value for Euler and Coriolis forces during regular experiment. ** Parameters
#+begin_src matlab :exports none :results silent :noweb yes
** Euler and Coriolis forces <<matlab-init>>
#+end_src
Let's define the parameters for the NASS. Let's define the parameters for the NASS.
#+begin_src matlab :exports code :results silent #+begin_src matlab :exports code :results silent
@ -166,6 +178,9 @@ Let's define the parameters for the NASS.
ddot = 0.2; % [m/s] ddot = 0.2; % [m/s]
#+end_src #+end_src
** Euler and Coriolis forces
First we will determine the value for Euler and Coriolis forces during regular experiment.
#+begin_src matlab :exports none :results silent #+begin_src matlab :exports none :results silent
Felight = mlight*d*wdot; Felight = mlight*d*wdot;
Feheavy = mheavy*d*wdot; Feheavy = mheavy*d*wdot;
@ -188,25 +203,25 @@ We then compute the corresponding values of the Coriolis and Euler forces, and t
| Coriolis | 44.0 N | 1.8 N | | Coriolis | 44.0 N | 1.8 N |
| Euler | 3.5 N | 8.5 N | | Euler | 3.5 N | 8.5 N |
** Spring Softening Effect ** Negative Spring Effect
#+begin_src matlab :exports none :results silent #+begin_src matlab :exports none :results silent
Klight = mlight*d*wdot^2; Klight = mlight*d*wdot^2;
Kheavy = mheavy*d*wdot^2; Kheavy = mheavy*d*wdot^2;
#+end_src #+end_src
The values for the spring softening effect are displayed in table [[tab:spring_softening]]. The values for the negative spring effect are displayed in table [[tab:negative_spring]].
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.
#+begin_src matlab :results value table :exports results :post addhdr(*this*) #+begin_src matlab :results value table :exports results :post addhdr(*this*)
ans = sprintf(' | Light | Heavy | \n Spring Soft. | %.1f N/m | %.1f N/m', Klight, Kheavy) ans = sprintf(' | Light | Heavy | \n Neg. Spring | %.1f N/m | %.1f N/m', Klight, Kheavy)
#+end_src #+end_src
#+NAME: tab:spring_softening #+NAME: tab:negative_spring
#+CAPTION: Spring Softening effect #+CAPTION: Negative Spring effect
#+RESULTS: #+RESULTS:
| | Light | Heavy | | | Light | Heavy |
|--------------+---------+---------| |-------------+---------+---------|
| Spring Soft. | 3.5 N/m | 8.5 N/m | | Neg. Spring | 3.5 N/m | 8.5 N/m |
* Control Strategies * Control Strategies
<<sec:control_strategies>> <<sec:control_strategies>>
@ -229,11 +244,10 @@ The block diagram is shown on figure [[fig:control_measure_fixed_2dof]].
The loop gain is then $L = G(\theta) K J(\theta)$. The loop gain is then $L = G(\theta) K J(\theta)$.
*** QUESTION Is the loop gain is changing with the angle ? One question we wish to answer is: is $G(\theta) J(\theta) = G(\theta_0) J(\theta_0)$?
Is \[ G(\theta) J(\theta) = G(\theta_0) J(\theta_0) \] ?
** Measurement in the rotating frame ** Measurement in the rotating frame
Let's consider that the measurement is in the rotating reference frame. Let's consider that the measurement is made in the rotating reference frame.
The corresponding block diagram is shown figure [[fig:control_measure_rotating_2dof]] The corresponding block diagram is shown figure [[fig:control_measure_rotating_2dof]]
@ -245,6 +259,11 @@ The loop gain is $L = G K$.
* Effect of the rotating Speed * Effect of the rotating Speed
<<sec:effect_rot_speed>> <<sec:effect_rot_speed>>
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
** TODO Use realistic parameters for the mass of the sample and stiffness of the X-Y stage ** TODO Use realistic parameters for the mass of the sample and stiffness of the X-Y stage
** TODO Check if the plant is changing a lot when we are not turning to when we are turning at the maximum speed (60rpm) ** TODO Check if the plant is changing a lot when we are not turning to when we are turning at the maximum speed (60rpm)
@ -262,7 +281,14 @@ The loop gain is $L = G K$.
#+NAME: matlab-init #+NAME: matlab-init
#+BEGIN_SRC matlab :results none :exports none #+BEGIN_SRC matlab :results none :exports none
clear; close all; clc; clear; close all; clc;
%% Add path with some functions
addpath('./src/'); addpath('./src/');
%% Intialize Laplace variable
s = tf('s');
%% Initialize ans with org-babel
ans = 0; ans = 0;
#+END_SRC #+END_SRC