From 5afaf494f6b43f39c33103fd5016d65de831bb8d Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Fri, 18 Jan 2019 17:46:54 +0100 Subject: [PATCH] Add some analysis --- rotating_frame.html | Bin 27829 -> 28812 bytes rotating_frame.org | 58 ++++++++++++++++++++++++++++++++------------ 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/rotating_frame.html b/rotating_frame.html index aefefeb16552139e460363fc1b54126ac796bc09..3c30a2cf70111251b971161828853f7f113d20af 100644 GIT binary patch delta 1992 zcmZWqU2GIp6wVgd!2$vKvDQL+yC7w|-R;hu+4-sM3L#cup<>_uPBV zx!?KDcdq{uyKq1D;lFL7bnVf_J#iINQKE1$$;WkFG-Uz4Pxf(^gcXSrc$gG9DaXr( zKp@?p+8{}~B$+}Yk269BdhD0i?kkhhS;uzZcCxFRCzN6pH{E;&z3JMPg^1zSiCd|` z#?CU_o-I?yfnuryrU%!<8~vL&-jsEVT5!34>;*-_rf4Se zLWYGdk{X$#E)Ak?pr(v-0`L291`Zdu!{$`yOFS_#CafHRRl6cnwFaXp_FkMdc?yk` zz)7;C@Pvo2QUYvEb#OvX5e315rGary%nGJqDDc<7Fh{UVh-3nvUgC1PAY%!`?eur+ z1gfi6PE6#b4CH5a!JT9$r&_ux$|~H?{1Bl$IEFYSMEuBPulLX3AF&Ab`+P6g>_8Tn z5Bl*T&e9e3lZBrq`BqDwpFk~pxv&%d!{5ZE9F|SX`&PIdi)@nne08gJ{++0e{+)M* zj&MW}Ek!Zm>meN8fd@l3Inh*QHEY53SAJU~>!M}AN5g-wH7p)WMz#SrMz(ujj@*dB zr~9{fU%Yy6m3L+TU5*QR0YRcBM_{=y0IIPW9%Z(8w+iVtxT*JWAw%GI9kuM`LibJv zolhx#c+jbma{ejiIKzX}B3v8mdQD6q+Z;)_^o*OvX(7#8-acH-w;!TzpMxB77A;Uz zcPMh6pdNG8jcMdg6BlWFVCG;_(MYvgtDHfz$UIfol9~45K^A9auzIyxVUfa1qo?X9 zg)o9m2Rh)h*Pnx%2REDxV=&*75spsNvR_F>cZpqQDOnCQf;6i}j74_3u{hh%lFiWU zm_f>@Mv+~fp@z#on1kJAe`<)%v)QpL?5j!`ZKz#4f##5AniaTvFuOO1shJfw2pmNA z|IyfWmo!k?Kl?;pcJZ-Wn}nFT6&|QPTsWFRZz7xZW_Q>d9QEeek&W7O?&T5hzIan=d^*R~ zz=lr>iLER6`B;ADhX%Y$#h+KhXd%soIuy)7WG@$bVPaw(j1@;$F+9K?r!aNw0!OIK z3#JN>j_rtSulx9)ZEP+A*$RS0HVe|hRP5OnFfE&(ko%Y<2S6WX#5qk$b?P9iQVV#r z5brfySK@F66jd82z-V#ZJ!~~ zIeoRY7yMeH9pTrq&A!8hd%}mVW&0_lnJG@eS;bQP6ntxU_~Dy-1bT}JZ`bULF}AoN HUt0Jd?jM0` delta 1498 zcmbu9TWB0r7{{5U*(153Z4-@YlgX-WH`$$?`<&@+cUy{;8ri0%KBOBrJ#*V#cQd=m zZYdh2_CUHP5)!I`W!Z$!QhP^uTh=sFPZmT@;9x-- zgOS+@q+61s>l$Qc=f<%hS+Zo&84|}Ha!K>~PQ3%E^j>7EilAyL9G)u;%Z{c=ejSO{ zIk&V6Zp}?hTC$>HQKO?G$1b+l>u!}@Y&l)qh3T{~B#WY|8)C8`b5JzKpq-vTyke_{ zBEeQ#f^Sj}p2emrVZ)|#1pmk8J8j~!W|MR}2a?^E)nbo7^Z4S4qsL0gLag#xI;p@O z?XcaN%{E)DHd`fim#ueLvqs!1-N%`Fw-&tipPM#Y%x6g~CjF-xis|hM z)ikhXz>V~=A%z!BLeykI;b62e4JR`bNYpgmu?W17xiD;Msx1rtkrhsavza|Gxw;M? zbB`fjGqI*&xXB$tyo4RmkYG0ZMeNIM!Xg}b#8jrd9RCx8LZf)_U&f{#7hPmxU3Rbr z8?JyN1L52}+tW;C298LdBy3_4g1!6Xx0zVKuY9nrXD?k7TTR!zw|@~SBEhz40Fx7= zHK6A{MIv=YH{tKx4+B^gZ3S-Te?xvRFySrly93vm-K@QKnsnlKX=VXgA; zNGD{W6SDATg-@u&!Hx!BRxZS{v9dLC&w3A?I>-$FYlwrtmM3AAY$QUG;1@Cz$u}y~ zARA@hILi<{9 diff --git a/rotating_frame.org b/rotating_frame.org index 9dc95d3..b07e538 100644 --- a/rotating_frame.org +++ b/rotating_frame.org @@ -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 + <> +#+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 <> @@ -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 <> + +#+begin_src matlab :exports none :results silent :noweb yes + <> +#+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