Add some analysis
This commit is contained in:
parent
7447225dbe
commit
5afaf494f6
Binary file not shown.
@ -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} \\
|
||||
\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*}
|
||||
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}
|
||||
@ -137,7 +137,7 @@ We can then subtract and add the previous equations to obtain the following equa
|
||||
\end{align*}
|
||||
#+end_important
|
||||
|
||||
** Analysis
|
||||
** TODO Analysis
|
||||
We obtain two differential equations that are coupled through:
|
||||
- *Euler forces*: $m d_v \ddot{\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$.
|
||||
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
|
||||
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.
|
||||
|
||||
** Euler and Coriolis forces
|
||||
** Parameters
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
<<matlab-init>>
|
||||
#+end_src
|
||||
|
||||
Let's define the parameters for the NASS.
|
||||
#+begin_src matlab :exports code :results silent
|
||||
@ -166,6 +178,9 @@ Let's define the parameters for the NASS.
|
||||
ddot = 0.2; % [m/s]
|
||||
#+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
|
||||
Felight = mlight*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 |
|
||||
| Euler | 3.5 N | 8.5 N |
|
||||
|
||||
** Spring Softening Effect
|
||||
** Negative Spring Effect
|
||||
#+begin_src matlab :exports none :results silent
|
||||
Klight = mlight*d*wdot^2;
|
||||
Kheavy = mheavy*d*wdot^2;
|
||||
#+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.
|
||||
|
||||
#+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
|
||||
|
||||
#+NAME: tab:spring_softening
|
||||
#+CAPTION: Spring Softening effect
|
||||
#+NAME: tab:negative_spring
|
||||
#+CAPTION: Negative Spring effect
|
||||
#+RESULTS:
|
||||
| | Light | Heavy |
|
||||
|--------------+---------+---------|
|
||||
| Spring Soft. | 3.5 N/m | 8.5 N/m |
|
||||
| | Light | Heavy |
|
||||
|-------------+---------+---------|
|
||||
| Neg. Spring | 3.5 N/m | 8.5 N/m |
|
||||
|
||||
* 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)$.
|
||||
|
||||
*** QUESTION Is the loop gain is changing with the angle ?
|
||||
Is \[ G(\theta) J(\theta) = G(\theta_0) J(\theta_0) \] ?
|
||||
One question we wish to answer is: is $G(\theta) J(\theta) = G(\theta_0) J(\theta_0)$?
|
||||
|
||||
** 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]]
|
||||
|
||||
@ -245,6 +259,11 @@ The loop gain is $L = G K$.
|
||||
|
||||
* Effect of the rotating 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 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
|
||||
#+BEGIN_SRC matlab :results none :exports none
|
||||
clear; close all; clc;
|
||||
|
||||
%% Add path with some functions
|
||||
addpath('./src/');
|
||||
|
||||
%% Intialize Laplace variable
|
||||
s = tf('s');
|
||||
|
||||
%% Initialize ans with org-babel
|
||||
ans = 0;
|
||||
#+END_SRC
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user