diff --git a/phd-thesis.org b/phd-thesis.org index bba05d6..5081fec 100644 --- a/phd-thesis.org +++ b/phd-thesis.org @@ -307,7 +307,7 @@ The research presented in this manuscript has been possible thanks to the Fonds <> # [[file:/home/thomas/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A0-nass-introduction/nass-introduction.org][NASS - Introduction]] -* Conceptual Design Development :noexport: +* Conceptual Design Development <> \minitoc **** Abstract @@ -423,7 +423,6 @@ More accurate models will be used later on. #+name: fig:uniaxial_comp_frf_meas_model #+caption: Comparison of the measured FRF and identified ones from the uniaxial model -#+RESULTS: [[file:figs/uniaxial_comp_frf_meas_model.png]] *** Nano-Hexapod Model @@ -534,7 +533,6 @@ G_{geo}(s) = \frac{V_{x_f}}{x_f}(s) = T_{g} \cdot s \cdot \frac{s^2}{s^2 + 2 \xi #+name: fig:uniaxial_geophone_meas_chain #+caption: Measurement setup for one geophone. The inertial displacement $x$ is converted to a voltage $V$ by the geophone. This voltage is amplified by a factor $g_0 = 60\,dB$ using a low-noise voltage amplifier. It is then converted to a digital value $\hat{V}_x$ using a 16bit ADC. -#+RESULTS: [[file:figs/uniaxial_geophone_meas_chain.png]] The amplitude spectral density of the floor motion $\Gamma_{x_f}$ can be computed from the amplitude spectral density of measured voltage $\Gamma_{\hat{V}_{x_f}}$ using eqref:eq:uniaxial_asd_floor_motion. @@ -573,7 +571,6 @@ The sharp peak observed at $24\,\text{Hz}$ is believed to be induced by electrom #+name: fig:uniaxial_asd_vibration_spindle_rotation #+caption: Amplitude Spectral Density $\Gamma_{R_z}$ of the relative motion measured between the granite and the micro-hexapod's top platform during Spindle rotating -#+RESULTS: [[file:figs/uniaxial_asd_vibration_spindle_rotation.png]] To compute the equivalent disturbance force $f_t$ (Figure ref:fig:uniaxial_model_micro_station) that induces such motion, the transfer function $G_{f_t}(s)$ from $f_t$ to the relative motion between the micro-hexapod's top platform and the granite $(x_{h} - x_{g})$ is extracted from the model. @@ -877,7 +874,6 @@ There is even some damping authority on micro-station modes in the following cas #+name: fig:uniaxial_root_locus_damping_techniques_micro_station_mode #+caption: Root Locus for the three damping techniques applied with the soft nano-hexapod. It is shown that the RDC active damping technique has some authority on one mode of the micro-station. This mode corresponds to the suspension mode of the micro-hexapod. -#+RESULTS: [[file:figs/uniaxial_root_locus_damping_techniques_micro_station_mode.png]] The transfer functions from the plant input $f$ to the relative displacement $d$ while active damping is implemented are shown in Figure ref:fig:uniaxial_damped_plant_three_active_damping_techniques. @@ -1849,7 +1845,7 @@ The decentralized acrshort:iff controller $\bm{K}_F$ corresponds to a diagonal c \end{equation} To determine how the acrshort:iff controller affects the poles of the closed-loop system, a Root Locus plot (Figure ref:fig:rotating_root_locus_iff_pure_int) is constructed as follows: the poles of the closed-loop system are drawn in the complex plane as the controller gain $g$ varies from $0$ to $\infty$ for the two controllers $K_{F}$ simultaneously. -As explained in cite:preumont08_trans_zeros_struc_contr_with,skogestad07_multiv_feedb_contr, the closed-loop poles start at the open-loop poles (shown by $\tikz[baseline=-0.6ex] \node[cross out, draw=black, minimum size=1ex, line width=2pt, inner sep=0pt, outer sep=0pt] at (0, 0){};$) for $g = 0$ and coincide with the transmission zeros (shown by $\tikz[baseline=-0.6ex] \draw[line width=2pt, inner sep=0pt, outer sep=0pt] (0,0) circle[radius=3pt];$) as $g \to \infty$. +As explained in cite:preumont08_trans_zeros_struc_contr_with,skogestad07_multiv_feedb_contr, the closed-loop poles start at the open-loop poles (shown by crosses) for $g = 0$ and coincide with the transmission zeros (shown by circles) as $g \to \infty$. Whereas collocated IFF is usually associated with unconditional stability cite:preumont91_activ, this property is lost due to gyroscopic effects as soon as the rotation velocity becomes non-null. This can be seen in the Root Locus plot (Figure ref:fig:rotating_root_locus_iff_pure_int) where poles corresponding to the controller are bound to the right half plane implying closed-loop system instability. @@ -2319,7 +2315,6 @@ The obtained IFF parameters and the achievable damping are visually shown by lar #+caption: Obtained optimal parameters ($\omega_i$ and $g$) for the modified IFF controller including a high-pass filter. The corresponding achievable simultaneous damping of the two modes $\xi$ is also shown. #+attr_latex: :environment tabularx :width 0.4\linewidth :align Xccc #+attr_latex: :center t :booktabs t -#+RESULTS: | $k_n$ | $\omega_i$ | $g$ | $\xi_\text{opt}$ | |-----------------+------------+------+------------------| | $0.01\,N/\mu m$ | 7.3 | 51 | 0.45 | @@ -2354,7 +2349,6 @@ The corresponding optimal controller gains and achievable damping are summarized #+name: tab:rotating_iff_kp_opt_iff_kp_params_nass #+attr_latex: :environment tabularx :width \linewidth :placement [b] :align Xccc #+attr_latex: :booktabs t :float nil -#+RESULTS: | $k_n$ | $k_p$ | $g$ | $\xi_{\text{opt}}$ | |-----------------+-----------------+---------+--------------------| | $0.01\,N/\mu m$ | $1\,N/mm$ | 47.9 | 0.44 | @@ -2380,7 +2374,6 @@ The gain is chosen such that 99% of modal damping is obtained (obtained gains ar #+name: tab:rotating_rdc_opt_params_nass #+attr_latex: :environment tabularx :width 0.8\linewidth :placement [b] :align Xcc #+attr_latex: :booktabs t :float nil -#+RESULTS: | $k_n$ | $g$ | $\xi_{\text{opt}}$ | |-----------------+-------+--------------------| | $0.01\,N/\mu m$ | 1600 | 0.99 | @@ -2601,28 +2594,8 @@ First, a /response model/ is obtained, which corresponds to a set of frequency r From this response model, the modal model can be computed, which consists of two matrices: one containing the natural frequencies and damping factors of the considered modes, and another describing the mode shapes. This modal model can then be used to tune the spatial model (i.e. the multi-body model), that is, to tune the mass of the considered solid bodies and the springs and dampers connecting the solid bodies. -#+begin_src latex :file modal_vibration_analysis_procedure.pdf -\begin{tikzpicture} - \node[block, inner sep = 8pt, align=center] (1) {Description\\of structure}; - \node[block, inner sep = 8pt, align=center, left=1.0 of 1] (2) {Vibration\\Modes}; - \node[block, inner sep = 8pt, align=center, left=1.0 of 2] (3) {Response\\Levels}; - - \draw[<->] (1) -- (2); - \draw[<->] (2) -- (3); - - \node[above] (labelt) at (1.north) {Spatial Model}; - \node[] at (2|-labelt) {Modal Model}; - \node[] at (3|-labelt) {Response Model}; - - \node[align = center, font=\tiny, below] (labelb) at (1.south) {Mass\\Stiffness\\Damping}; - \node[align = center, font=\tiny] at (2|-labelb) {Natural Frequencies\\Mode Shapes\\}; - \node[align = center, font=\tiny] at (3|-labelb) {Time Responses\\Frequency Responses\\}; -\end{tikzpicture} -#+end_src - #+name: fig:modal_vibration_analysis_procedure #+caption: Three models of the same structure. The goal is to tune a spatial model (i.e. mass, stiffness and damping properties) from a response model. The modal model can be used as an intermediate step. -#+RESULTS: [[file:figs/modal_vibration_analysis_procedure.png]] The measurement setup used to obtain the response model is described in Section ref:sec:modal_meas_setup. @@ -2635,16 +2608,6 @@ The solid body assumption is then verified, validating the use of the multi-body Finally, the modal analysis is performed in Section ref:sec:modal_analysis. This shows how complex the micro-station dynamics is, and the necessity of having a model representing its complex dynamics. -# #+name: tab:modal_section_matlab_code -# #+caption: Report sections and corresponding Matlab files -# #+attr_latex: :environment tabularx :width 0.5\linewidth :align lX -# #+attr_latex: :center t :booktabs t -# | *Sections* | *Matlab File* | -# |--------------------------------------+----------------------------| -# | Section ref:sec:modal_meas_setup | =modal_1_meas_setup.m= | -# | Section ref:sec:modal_frf_processing | =modal_2_frf_processing.m= | -# | Section ref:sec:modal_analysis | =modal_3_analysis.m= | - *** Measurement Setup <> **** Introduction :ignore: @@ -2905,43 +2868,8 @@ To validate this reduction of acrshort:dof and the solid body assumption, the fr Let us consider the schematic shown in Figure ref:fig:modal_local_to_global_coordinates where the motion of a solid body is measured at 4 distinct locations (in $x$, $y$ and $z$ directions). The goal here is to link these $4 \times 3 = 12$ measurements to the 6 acrshort:dof of the solid body expressed in the frame $\{O\}$. -#+begin_src latex :file modal_local_to_global_coordinates.pdf - \newcommand\irregularcircle[2]{% radius, irregularity - \pgfextra {\pgfmathsetmacro\len{(#1)+rand*(#2)}} - +(0:\len pt) - \foreach \a in {10,20,...,350}{ - \pgfextra {\pgfmathsetmacro\len{(#1)+rand*(#2)}} - -- +(\a:\len pt) - } -- cycle - } - \begin{tikzpicture} - \draw[rounded corners=1mm, fill=blue!30!white] (0, 0) \irregularcircle{3cm}{1mm}; - - \node[] (origin) at (0, 0) {$\bullet$}; - \begin{scope}[shift={(origin)}] - \def\axissize{0.8cm} - \draw[->] (0, 0) -- ++(\axissize, 0) node[above left]{$x$}; - \draw[->] (0, 0) -- ++(0, \axissize) node[below right]{$y$}; - \draw[fill, color=black] (0, 0) circle (0.05*\axissize); - \node[draw, circle, inner sep=0pt, minimum size=0.4*\axissize, label=left:$z$] (yaxis) at (0, 0){}; - \node[below right] at (0, 0){$\{O\}$}; - \end{scope} - - \coordinate[] (p1) at (-1.5, -1.5); - \coordinate[] (p2) at (-1.5, 1.5); - \coordinate[] (p3) at ( 1.5, 1.5); - \coordinate[] (p4) at ( 1.5, -1.5); - - \draw[->] (p1)node[]{$\bullet$}node[above]{$\vec{p}_1$} -- ++( 1 , 0.1)node[right]{$\delta \vec{p}_1$}; - \draw[->] (p2)node[]{$\bullet$}node[above]{$\vec{p}_2$} -- ++(-0.5,-0.4)node[below]{$\delta \vec{p}_2$}; - \draw[->] (p3)node[]{$\bullet$}node[above]{$\vec{p}_3$} -- ++(-0.8,-0.1)node[below]{$\delta \vec{p}_3$}; - \draw[->] (p4)node[]{$\bullet$}node[above]{$\vec{p}_4$} -- ++( 0.5, 0.2)node[below]{$\delta \vec{p}_4$}; - \end{tikzpicture} -#+end_src - #+name: fig:modal_local_to_global_coordinates #+caption: Schematic of the measured motions of a solid body -#+RESULTS: [[file:figs/modal_local_to_global_coordinates.png]] The motion of the rigid body of figure ref:fig:modal_local_to_global_coordinates can be described by its displacement $\vec{\delta}p = [\delta p_x,\ \delta p_y,\ \delta p_z]$ and (small) rotations $[\delta \Omega_x,\ \delta \Omega_y,\ \delta \Omega_z]$ with respect to the reference frame $\{O\}$. @@ -2991,7 +2919,6 @@ The position of each accelerometer with respect to the center of mass of the cor #+caption: Center of mass of considered solid bodies with respect to the "point of interest" #+attr_latex: :environment tabularx :width 0.55\linewidth :align Xccc #+attr_latex: :center t :booktabs t -#+RESULTS: | | $X$ | $Y$ | $Z$ | |-------------------+-----------------+------------------+--------------------| | Bottom Granite | $45\,\text{mm}$ | $144\,\text{mm}$ | $-1251\,\text{mm}$ | @@ -3031,7 +2958,6 @@ This also validates the reduction in the number of degrees of freedom from 69 (2 #+name: fig:modal_comp_acc_solid_body_frf #+caption: Comparison of the original accelerometer responses and the reconstructed responses from the solid body response. Accelerometers 1 to 4 corresponding to the micro-hexapod are shown. Input is a hammer force applied on the micro-hexapod in the $x$ direction -#+RESULTS: [[file:figs/modal_comp_acc_solid_body_frf.png]] *** Modal Analysis @@ -4049,7 +3975,6 @@ A similar error amplitude was observed, thus indicating that the multi-body mode #+name: fig:ustation_errors_model_dy_vertical #+caption: Vertical errors during a constant-velocity scan of the translation stage. Comparison of the measurements and simulated errors. -#+RESULTS: [[file:figs/ustation_errors_model_dy_vertical.png]] *** Conclusion @@ -4455,7 +4380,6 @@ It can be computed once at the rest position and used for both forward and inver #+name: fig:nhexa_forward_kinematics_approximate_errors #+caption: Errors associated with the use of the Jacobian matrix to solve the forward kinematic problem. A Stewart platform with a height of $100\,mm$ was used to perform this analysis. $\epsilon_D$ corresponds to the distance between the true positioin and the estimated position. $\epsilon_R$ corresponds to the angular motion between the true orientation and the estimated orientation. -#+RESULTS: [[file:figs/nhexa_forward_kinematics_approximate_errors.png]] ***** Static Forces @@ -4741,7 +4665,6 @@ The close agreement between both approaches across the frequency spectrum valida #+name: fig:nhexa_comp_multi_body_analytical #+caption: Comparison of the analytical transfer functions and the multi-body model -#+RESULTS: [[file:figs/nhexa_comp_multi_body_analytical.png]] **** Nano Hexapod Dynamics @@ -4846,51 +4769,6 @@ The diagonal terms of the plant (transfer functions from force to displacement o This simplifies the control design because only one controller needs to be tuned. Furthermore, at low frequencies, the plant exhibits good decoupling between the struts, allowing for effective independent control of each axis. -#+begin_src latex :file nhexa_control_strut.pdf -\begin{tikzpicture} - % Blocs - \node[block={2.0cm}{2.0cm}] (P) {Plant}; - \coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$); - \coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$); - - \node[block={2.0cm}{2.0cm}, left=0.8 of inputF] (K) {\begin{matrix}K_1 & & 0 \\ & \ddots & \\ 0 & & K_6\end{matrix}}; - \node[block, left=0.8 of K] (J) {$\bm{J}$}; - \node[addb={+}{}{}{}{-}, left=0.8 of J] (subr) {}; - % \node[block, align=center, left=0.6 of subr] (J) {Inverse\\Kinematics}; - - % Connections and labels - \draw[->] (outputX) -- ++(0.8, 0); - \draw[->] ($(outputX) + (0.3, 0)$)node[branch]{} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1.2) -| (subr.south); - \draw[->] (subr.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (J.west); - \draw[->] (J.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{L}}$} (K.west); - \draw[->] (K.east) -- node[midway, above]{$\bm{f}$} (inputF); - - \draw[<-] (subr.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-0.8, 0); -\end{tikzpicture} -#+end_src - -#+begin_src latex :file nhexa_control_cartesian.pdf -\begin{tikzpicture} - % Blocs - \node[block={2.0cm}{2.0cm}] (P) {Plant}; - \coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$); - \coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$); - - \node[block, left=0.8 of inputF] (J) {$\bm{J}^{-\intercal}$}; - \node[block={2.0cm}{2.0cm}, left=0.8 of J] (K) {\begin{matrix}K_{D_x} & & 0 \\ & \ddots & \\ 0 & & K_{R_z}\end{matrix}}; - \node[addb={+}{}{}{}{-}, left=0.8 of K] (subr) {}; - - % Connections and labels - \draw[->] (outputX) -- ++(0.8, 0); - \draw[->] ($(outputX) + (0.3, 0)$)node[branch]{} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1.2) -| (subr.south); - - \draw[->] (subr.east) -- node[midway, above]{$\bm{\epsilon}_{\mathcal{X}}$} (K.west); - \draw[->] (K.east) -- node[midway, above]{$\bm{\mathcal{F}}$} (J.west); - \draw[->] (J.east) -- node[midway, above]{$\bm{f}$} (inputF.west); - \draw[<-] (subr.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-0.8, 0); -\end{tikzpicture} -#+end_src - #+name: fig:nhexa_control_frame #+caption: Two control strategies #+attr_latex: :options [htbp] @@ -4951,36 +4829,8 @@ The decentralized Integral Force Feedback (IFF) control strategy is implemented The corresponding block diagram of the control loop is shown in Figure ref:fig:nhexa_decentralized_iff_schematic, in which the controller $\bm{K}_{\text{IFF}}(s)$ is a diagonal matrix, where each diagonal element is a pure integrator eqref:eq:nhexa_kiff. -#+begin_src latex :file nhexa_decentralized_iff_schematic.pdf -\begin{tikzpicture} - % Blocs - \node[block={2.0cm}{2.0cm}] (P) {Plant}; - \coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$); - \coordinate[] (outputH) at ($(P.south east)!0.2!(P.north east)$); - \coordinate[] (outputL) at ($(P.south east)!0.8!(P.north east)$); - - \node[block, above=0.2 of P] (Klac) {$\bm{K}_\text{IFF}$}; - \node[addb, left=0.8 of input] (addF) {}; - - % Connections and labels - \draw[->] (outputL) -- ++(0.7, 0) coordinate(eastlac) |- (Klac.east); - \node[above right] at (outputL){$\bm{f}_n$}; - \draw[->] (Klac.west) -| (addF.north); - \draw[->] (addF.east) -- (input) node[above left]{$\bm{f}$}; - - \draw[->] (outputH) -- ++(1.7, 0) node[above left]{$\bm{\mathcal{L}}$}; - \draw[<-] (addF.west) -- ++(-0.8, 0) node[above right]{$\bm{f}^{\prime}$}; - - \begin{scope}[on background layer] - \node[fit={(Klac.north-|eastlac) (addF.west|-P.south)}, fill=black!20!white, draw, dashed, inner sep=8pt] (Pi) {}; - \node[anchor={north west}] at (Pi.north west){\footnotesize{Damped Plant}}; - \end{scope} -\end{tikzpicture} -#+end_src - #+name: fig:nhexa_decentralized_iff_schematic #+caption: Schematic of the implemented decentralized IFF controller. The damped plant has a new inputs $\bm{f}^{\prime}$ -#+RESULTS: [[file:figs/nhexa_decentralized_iff_schematic.png]] \begin{equation}\label{eq:nhexa_kiff} @@ -5030,47 +4880,8 @@ Following the analysis from Section ref:ssec:nhexa_control_space, the control is The Jacobian matrix $\bm{J}^{-1}$ performs (approximate) real-time approximate inverse kinematics to map position errors from Cartesian space $\bm{\epsilon}_{\mathcal{X}}$ to strut space $\bm{\epsilon}_{\mathcal{L}}$. A diagonal High Authority Controller $\bm{K}_{\text{HAC}}$ then processes these errors in the frame of the struts. -#+begin_src latex :file nhexa_hac_iff_schematic.pdf -\begin{tikzpicture} - % Blocs - \node[block={2.0cm}{2.0cm}] (P) {Plant}; - \coordinate[] (input) at ($(P.south west)!0.5!(P.north west)$); - \coordinate[] (outputH) at ($(P.south east)!0.2!(P.north east)$); - \coordinate[] (outputL) at ($(P.south east)!0.8!(P.north east)$); - - \node[block, above=0.2 of P] (Klac) {$\bm{K}_\text{IFF}$}; - \node[addb, left=0.8 of input] (addF) {}; - - \node[block, left=0.8 of addF] (Khac) {$\bm{K}_\text{HAC}$}; - \node[block, left=0.8 of Khac] (inverseK) {$\bm{J}$}; - - \node[addb={+}{}{}{}{-}, left=0.8 of inverseK] (subL) {}; - - % Connections and labels - \draw[->] (outputL) -- ++(0.7, 0) coordinate(eastlac) |- (Klac.east); - \node[above right] at (outputL){$\bm{f}_n$}; - \draw[->] (Klac.west) -| (addF.north); - \draw[->] (addF.east) -- (input) node[above left]{$\bm{f}$}; - - \draw[->] (outputH) -- ++(1.7, 0) node[above left]{$\bm{\mathcal{X}}$}; - \draw[->] (Khac.east) node[above right]{$\bm{f}^{\prime}$} -- (addF.west); - - \draw[->] ($(outputH) + (1.2, 0)$)node[branch]{} |- ($(subL.south)+(0, -1.2)$) -- (subL.south); - \draw[->] (subL.east) -- (inverseK.west) node[above left]{$\bm{\epsilon}_\mathcal{X}$}; - \draw[->] (inverseK.east) -- (Khac.west) node[above left]{$\bm{\epsilon}_\mathcal{L}$}; - - \draw[<-] (subL.west) -- ++(-0.8, 0) node[above right]{$\bm{r}_\mathcal{X}$}; - - \begin{scope}[on background layer] - \node[fit={(Klac.north-|eastlac) (addF.west|-P.south)}, fill=black!20!white, draw, dashed, inner sep=8pt] (Pi) {}; - \node[anchor={north west}] at (Pi.north west){\footnotesize{Damped Plant}}; - \end{scope} -\end{tikzpicture} -#+end_src - #+name: fig:nhexa_hac_iff_schematic #+caption: HAC-IFF control architecture with the High Authority Controller being implemented in the frame of the struts -#+RESULTS: [[file:figs/nhexa_hac_iff_schematic.png]] The effect of decentralized IFF on the plant dynamics can be observed by comparing two sets of transfer functions. @@ -5416,7 +5227,6 @@ The overall gain was then increased to obtain a large loop gain around the reson #+name: fig:nass_iff_loop_gain #+caption: Loop gain for the decentralized IFF: $K_{\text{IFF}}(s) \cdot \frac{f_{mi}}{f_i}(s)$ #+attr_latex: :options [h!tbp] -#+RESULTS: [[file:figs/nass_iff_loop_gain.png]] To verify stability, the root loci for the three payload configurations were computed, as shown in Figure ref:fig:nass_iff_root_locus. @@ -5535,7 +5345,6 @@ This result confirms effective dynamic decoupling between the nano-hexapod and t #+name: fig:nass_effect_ustation_compliance #+caption: Effect of the micro-station limited compliance on the plant dynamics #+attr_latex: :options [h!tbp] -#+RESULTS: [[file:figs/nass_effect_ustation_compliance.png]] **** Effect of Nano-Hexapod Stiffness on System Dynamics @@ -5694,7 +5503,7 @@ These results provide a solid foundation for advancing to the subsequent detaile - [ ] schema avec chaque modèle et les conclusions pour chaque modèle -* Detailed Design :noexport: +* Detailed Design <> \minitoc **** Abstract @@ -5708,7 +5517,7 @@ These results provide a solid foundation for advancing to the subsequent detaile #+attr_latex: :width \linewidth [[file:figs/chapter2_overview.png]] -** Nano-Hexapod Kinematics - Optimal Geometry? +** Optimal Geometry <> *** Introduction :ignore: @@ -6135,152 +5944,6 @@ The unit vectors corresponding to the edges of the cube are described by equatio \hat{\bm{s}}_6 = \begin{bmatrix} \frac{-1}{\sqrt{6}} \\ \frac{ 1}{\sqrt{2}} \\ \frac{1}{\sqrt{3}} \end{bmatrix} \end{equation} -#+begin_src latex :file detail_kinematics_cubic_schematic_full.pdf :results file - \begin{tikzpicture} - \begin{scope}[rotate={45}, shift={(0, 0, -4)}] - % We first define the coordinate of the points of the Cube - \coordinate[] (bot) at (0,0,4); - \coordinate[] (top) at (4,4,0); - \coordinate[] (A1) at (0,0,0); - \coordinate[] (A2) at (4,0,4); - \coordinate[] (A3) at (0,4,4); - \coordinate[] (B1) at (4,0,0); - \coordinate[] (B2) at (4,4,4); - \coordinate[] (B3) at (0,4,0); - - % Center of the Cube - \coordinate[] (cubecenter) at ($0.5*(bot) + 0.5*(top)$); - - % We draw parts of the cube that corresponds to the Stewart platform - \draw[] (A1)node[]{$\bullet$} -- (B1)node[]{$\bullet$} -- (A2)node[]{$\bullet$} -- (B2)node[]{$\bullet$} -- (A3)node[]{$\bullet$} -- (B3)node[]{$\bullet$} -- (A1); - - % ai and bi are computed - \def\lfrom{0.0} - \def\lto{1.0} - - \coordinate(a1) at ($(A1) - \lfrom*(A1) + \lfrom*(B1)$); - \coordinate(b1) at ($(A1) - \lto*(A1) + \lto*(B1)$); - \coordinate(a2) at ($(A2) - \lfrom*(A2) + \lfrom*(B1)$); - \coordinate(b2) at ($(A2) - \lto*(A2) + \lto*(B1)$); - \coordinate(a3) at ($(A2) - \lfrom*(A2) + \lfrom*(B2)$); - \coordinate(b3) at ($(A2) - \lto*(A2) + \lto*(B2)$); - \coordinate(a4) at ($(A3) - \lfrom*(A3) + \lfrom*(B2)$); - \coordinate(b4) at ($(A3) - \lto*(A3) + \lto*(B2)$); - \coordinate(a5) at ($(A3) - \lfrom*(A3) + \lfrom*(B3)$); - \coordinate(b5) at ($(A3) - \lto*(A3) + \lto*(B3)$); - \coordinate(a6) at ($(A1) - \lfrom*(A1) + \lfrom*(B3)$); - \coordinate(b6) at ($(A1) - \lto*(A1) + \lto*(B3)$); - - % We draw the fixed and mobiles platforms - \path[fill=colorblue, opacity=0.2] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle; - \path[fill=colorblue, opacity=0.2] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle; - \draw[color=colorblue, dashed] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle; - \draw[color=colorblue, dashed] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle; - - % The legs of the hexapod are drawn - \draw[color=colorblue] (a1)node{$\bullet$} -- (b1)node{$\bullet$}; - \draw[color=colorblue] (a2)node{$\bullet$} -- (b2)node{$\bullet$}; - \draw[color=colorblue] (a3)node{$\bullet$} -- (b3)node{$\bullet$}; - \draw[color=colorblue] (a4)node{$\bullet$} -- (b4)node{$\bullet$}; - \draw[color=colorblue] (a5)node{$\bullet$} -- (b5)node{$\bullet$}; - \draw[color=colorblue] (a6)node{$\bullet$} -- (b6)node{$\bullet$}; - - % Unit vector - \draw[color=colorred, ->] ($0.9*(a1)+0.1*(b1)$)node{$\bullet$} -- ($0.65*(a1)+0.35*(b1)$)node[right]{$\hat{\bm{s}}_3$}; - \draw[color=colorred, ->] ($0.9*(a2)+0.1*(b2)$)node{$\bullet$} -- ($0.65*(a2)+0.35*(b2)$)node[left]{$\hat{\bm{s}}_4$}; - \draw[color=colorred, ->] ($0.9*(a3)+0.1*(b3)$)node{$\bullet$} -- ($0.65*(a3)+0.35*(b3)$)node[below]{$\hat{\bm{s}}_5$}; - \draw[color=colorred, ->] ($0.9*(a4)+0.1*(b4)$)node{$\bullet$} -- ($0.65*(a4)+0.35*(b4)$)node[below]{$\hat{\bm{s}}_6$}; - \draw[color=colorred, ->] ($0.9*(a5)+0.1*(b5)$)node{$\bullet$} -- ($0.65*(a5)+0.35*(b5)$)node[left]{$\hat{\bm{s}}_1$}; - \draw[color=colorred, ->] ($0.9*(a6)+0.1*(b6)$)node{$\bullet$} -- ($0.65*(a6)+0.35*(b6)$)node[right]{$\hat{\bm{s}}_2$}; - - % Labels - \node[above=0.1 of B1] {$\tilde{\bm{b}}_3 = \tilde{\bm{b}}_4$}; - \node[above=0.1 of B2] {$\tilde{\bm{b}}_5 = \tilde{\bm{b}}_6$}; - \node[above=0.1 of B3] {$\tilde{\bm{b}}_1 = \tilde{\bm{b}}_2$}; - \end{scope} - - % Height of the Hexapod - \coordinate[] (sizepos) at ($(a2)+(0.2, 0)$); - \coordinate[] (origin) at (0,0,0); - - \draw[->, color=colorgreen] (cubecenter.center) node[above right]{$\{B\}$} -- ++(0,0,1); - \draw[->, color=colorgreen] (cubecenter.center) -- ++(1,0,0); - \draw[->, color=colorgreen] (cubecenter.center) -- ++(0,1,0); - - \node[] at (cubecenter.center){$\bullet$}; - \node[above left] at (cubecenter.center){$\{C\}$}; - - % Useful part of the cube - \draw[<->, dashed] ($(A2)+(0.5,0)$) -- node[midway, right]{$H_{C}$} ($(B1)+(0.5,0)$); - \end{tikzpicture} -#+end_src - -#+begin_src latex :file detail_kinematics_cubic_schematic.pdf :results file - \begin{tikzpicture} - \begin{scope}[rotate={45}, shift={(0, 0, -4)}] - % We first define the coordinate of the points of the Cube - \coordinate[] (bot) at (0,0,4); - \coordinate[] (top) at (4,4,0); - \coordinate[] (A1) at (0,0,0); - \coordinate[] (A2) at (4,0,4); - \coordinate[] (A3) at (0,4,4); - \coordinate[] (B1) at (4,0,0); - \coordinate[] (B2) at (4,4,4); - \coordinate[] (B3) at (0,4,0); - - % Center of the Cube - \coordinate[] (cubecenter) at ($0.5*(bot) + 0.5*(top)$); - - % We draw parts of the cube that corresponds to the Stewart platform - \draw[] (A1)node[]{$\bullet$} -- (B1)node[]{$\bullet$} -- (A2)node[]{$\bullet$} -- (B2)node[]{$\bullet$} -- (A3)node[]{$\bullet$} -- (B3)node[]{$\bullet$} -- (A1); - - % ai and bi are computed - \def\lfrom{0.2} - \def\lto{0.8} - - \coordinate(a1) at ($(A1) - \lfrom*(A1) + \lfrom*(B1)$); - \coordinate(b1) at ($(A1) - \lto*(A1) + \lto*(B1)$); - \coordinate(a2) at ($(A2) - \lfrom*(A2) + \lfrom*(B1)$); - \coordinate(b2) at ($(A2) - \lto*(A2) + \lto*(B1)$); - \coordinate(a3) at ($(A2) - \lfrom*(A2) + \lfrom*(B2)$); - \coordinate(b3) at ($(A2) - \lto*(A2) + \lto*(B2)$); - \coordinate(a4) at ($(A3) - \lfrom*(A3) + \lfrom*(B2)$); - \coordinate(b4) at ($(A3) - \lto*(A3) + \lto*(B2)$); - \coordinate(a5) at ($(A3) - \lfrom*(A3) + \lfrom*(B3)$); - \coordinate(b5) at ($(A3) - \lto*(A3) + \lto*(B3)$); - \coordinate(a6) at ($(A1) - \lfrom*(A1) + \lfrom*(B3)$); - \coordinate(b6) at ($(A1) - \lto*(A1) + \lto*(B3)$); - - % We draw the fixed and mobiles platforms - \path[fill=colorblue, opacity=0.2] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle; - \path[fill=colorblue, opacity=0.2] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle; - \draw[color=colorblue, dashed] (a1) -- (a2) -- (a3) -- (a4) -- (a5) -- (a6) -- cycle; - \draw[color=colorblue, dashed] (b1) -- (b2) -- (b3) -- (b4) -- (b5) -- (b6) -- cycle; - - % The legs of the hexapod are drawn - \draw[color=colorblue] (a1)node{$\bullet$} -- (b1)node{$\bullet$}node[below right]{$\bm{b}_3$}; - \draw[color=colorblue] (a2)node{$\bullet$} -- (b2)node{$\bullet$}node[right]{$\bm{b}_4$}; - \draw[color=colorblue] (a3)node{$\bullet$} -- (b3)node{$\bullet$}node[above right]{$\bm{b}_5$}; - \draw[color=colorblue] (a4)node{$\bullet$} -- (b4)node{$\bullet$}node[above left]{$\bm{b}_6$}; - \draw[color=colorblue] (a5)node{$\bullet$} -- (b5)node{$\bullet$}node[left]{$\bm{b}_1$}; - \draw[color=colorblue] (a6)node{$\bullet$} -- (b6)node{$\bullet$}node[below left]{$\bm{b}_2$}; - \end{scope} - - % Height of the Hexapod - \coordinate[] (sizepos) at ($(a2)+(0.2, 0)$); - \coordinate[] (origin) at (0,0,0); - - \draw[->, color=colorgreen] ($(cubecenter.center)+(0,2.0,0)$) node[above right]{$\{B\}$} -- ++(0,0,1); - \draw[->, color=colorgreen] ($(cubecenter.center)+(0,2.0,0)$) -- ++(1,0,0); - \draw[->, color=colorgreen] ($(cubecenter.center)+(0,2.0,0)$) -- ++(0,1,0); - - \node[] at (cubecenter.center){$\bullet$}; - \node[right] at (cubecenter.center){$\{C\}$}; - - \draw[<->, dashed] (cubecenter.center) -- node[midway, right]{$H$} ($(cubecenter.center)+(0,2.0,0)$); - \end{tikzpicture} -#+end_src - #+name: fig:detail_kinematics_cubic_schematic_cases #+caption: Cubic architecture. Struts are represented in blue. The cube's center by a black dot. The Struts can match the cube's edges (\subref{fig:detail_kinematics_cubic_schematic_full}) or just take a portion of the edge (\subref{fig:detail_kinematics_cubic_schematic}) #+attr_latex: :options [htbp] @@ -6395,29 +6058,8 @@ Furthermore, an inverse relationship exists between the cube's dimension and rot This section examines the dynamics of the cubic architecture in the Cartesian frame which corresponds to the transfer function from forces and torques $\bm{\mathcal{F}}$ to translations and rotations $\bm{\mathcal{X}}$ of the top platform. When relative motion sensors are integrated in each strut (measuring $\bm{\mathcal{L}}$), the pose $\bm{\mathcal{X}}$ is computed using the Jacobian matrix as shown in Figure ref:fig:detail_kinematics_centralized_control. -#+begin_src latex :file detail_kinematics_centralized_control.pdf -\begin{tikzpicture} - \node[block] (Jt) at (0, 0) {$\bm{J}^{-\intercal}$}; - \node[block, right= of Jt] (G) {$\bm{G}$}; - \node[block, right= of G] (J) {$\bm{J}^{-1}$}; - \node[block, left= of Jt] (Kx) {$\bm{K}_{\mathcal{X}}$}; - - \draw[->] (Kx.east) -- node[midway, above]{$\bm{\mathcal{F}}$} (Jt.west); - \draw[->] (Jt.east) -- (G.west) node[above left]{$\bm{\tau}$}; - \draw[->] (G.east) -- (J.west) node[above left]{$\bm{\mathcal{L}}$}; - \draw[->] (J.east) -- ++(1.0, 0); - \draw[->] ($(J.east) + (0.5, 0)$)node[]{$\bullet$} node[above]{$\bm{\mathcal{X}}$} -- ++(0, -1) -| ($(Kx.west) + (-0.5, 0)$) -- (Kx.west); - - \begin{scope}[on background layer] - \node[fit={(Jt.south west) (J.north east)}, fill=black!20!white, draw, dashed, inner sep=4pt] (Px) {}; - \node[anchor={south}] at (Px.north){\small{Cartesian Plant}}; - \end{scope} -\end{tikzpicture} -#+end_src - #+name: fig:detail_kinematics_centralized_control #+caption: Typical control architecture in the cartesian frame -#+RESULTS: [[file:figs/detail_kinematics_centralized_control.png]] ***** Low frequency and High frequency coupling @@ -6510,26 +6152,8 @@ The orthogonal arrangement of struts in the cubic architecture suggests a potent Two sensor types integrated in the struts are considered: displacement sensors and force sensors. The control architecture is illustrated in Figure ref:fig:detail_kinematics_decentralized_control, where $\bm{K}_{\mathcal{L}}$ represents a diagonal transfer function matrix. -#+begin_src latex :file detail_kinematics_decentralized_control.pdf -\begin{tikzpicture} - \node[block] (G) at (0,0) {$\bm{G}$}; - - \node[block, left= of G] (Kl) {$\bm{K}_{\mathcal{L}}$}; - - \draw[->] (Kl.east) -- node[midway, above]{$\bm{\tau}$} (G.west); - \draw[->] (G.east) -- ++(1.0, 0); - \draw[->] ($(G.east) + (0.5, 0)$)node[]{$\bullet$} node[above]{$\bm{\mathcal{L}}$} -- ++(0, -1) -| ($(Kl.west) + (-0.5, 0)$) -- (Kl.west); - - \begin{scope}[on background layer] - \node[fit={(G.south west) (G.north east)}, fill=black!20!white, draw, dashed, inner sep=4pt] (Pl) {}; - \node[anchor={south}] at (Pl.north){\small{Strut Plant}}; - \end{scope} -\end{tikzpicture} -#+end_src - #+name: fig:detail_kinematics_decentralized_control #+caption: Decentralized control in the frame of the struts. -#+RESULTS: [[file:figs/detail_kinematics_decentralized_control.png]] The obtained plant dynamics in the frame of the struts are compared for two Stewart platforms. @@ -6831,7 +6455,6 @@ The diagram confirms that the required workspace fits within the system's capabi #+name: fig:detail_kinematics_nano_hexapod_mobility #+caption: Specified translation mobility of the Nano-Hexapod (grey cube) and computed Mobility (red volume). -#+RESULTS: [[file:figs/detail_kinematics_nano_hexapod_mobility.png]] **** Required Joint angular stroke @@ -6861,7 +6484,7 @@ Modified cubic architectures with the cube's center positioned above the top pla For the nano-hexapod design, a key challenge was addressing the wide range of potential payloads (1 to 50kg), which made it impossible to optimize the geometry for consistent dynamic performance across all usage scenarios. This led to a practical design approach where struts were oriented more vertically than in cubic configurations to address several application-specific needs: achieving higher resolution in the vertical direction by reducing amplification factors and better matching the micro-station's modal characteristics with higher vertical resonance frequencies. -** Optimization using Finite Element Models +** Component Optimization *** Introduction :ignore: During the nano-hexapod's detailed design phase, a hybrid modeling approach combining finite element analysis with multi-body dynamics was developed. @@ -7052,7 +6675,6 @@ The multi-body model predicted a resonant frequency under block-free conditions #+name: fig:detail_fem_apa95ml_compliance #+caption: Estimated compliance of the APA95ML -#+RESULTS: [[file:figs/detail_fem_apa95ml_compliance.png]] In order to estimate the stroke of the APA95ML, the mechanical amplification factor, defined as the ratio between vertical displacement and horizontal stack displacement, was first determined. @@ -7341,7 +6963,6 @@ The developed models of the APA do not represent such behavior, but as this effe #+name: fig:detail_fem_apa95ml_effect_electrical_boundaries #+caption: Effect of the electrical bondaries of the force sensor stack on the APA95ML resonance frequency -#+RESULTS: [[file:figs/detail_fem_apa95ml_effect_electrical_boundaries.png]] However, the electrical characteristics of the APA remain crucial for instrumentation design. @@ -7689,7 +7310,6 @@ The transfer functions from these three noise sources (for one strut) to the ver #+name: fig:detail_instrumentation_noise_sensitivities #+caption: Transfer function from noise sources to vertical motion errors, in closed-loop with the implemented HAC-LAC strategy. -#+RESULTS: [[file:figs/detail_instrumentation_noise_sensitivities.png]] **** Estimation of maximum instrumentation noise @@ -7973,7 +7593,6 @@ This approach is effective because the noise approximates white noise and its am #+name: fig:detail_instrumentation_adc_noise_measured #+caption: Measured ADC noise (IO318) -#+RESULTS: [[file:figs/detail_instrumentation_adc_noise_measured.png]] ***** Reading of piezoelectric force sensor @@ -8144,7 +7763,6 @@ While the exact cause of these peaks is not fully understood, their amplitudes r #+name: fig:detail_instrumentation_pd200_noise #+caption: Measured output voltage noise of the PD200 amplifiers -#+RESULTS: [[file:figs/detail_instrumentation_pd200_noise.png]] ***** Small Signal Bandwidth @@ -8161,7 +7779,6 @@ The identified dynamics shown in Figure ref:fig:detail_instrumentation_pd200_tf #+name: fig:detail_instrumentation_pd200_tf #+caption: Identified dynamics from input voltage to output voltage of the PD200 voltage amplifier -#+RESULTS: [[file:figs/detail_instrumentation_pd200_tf.png]] **** Linear Encoders @@ -8202,7 +7819,6 @@ This confirms that the selected instrumentation, with its measured noise charact #+name: fig:detail_instrumentation_cl_noise_budget #+caption: Closed-loop noise budgeting using measured noise of instrumentation -#+RESULTS: [[file:figs/detail_instrumentation_cl_noise_budget.png]] *** Conclusion @@ -8240,7 +7856,7 @@ This rigorous methodology spanning requirement formulation, component selection, :END: <> -* Experimental Validation :noexport: +* Experimental Validation <> \minitoc **** Abstract @@ -8312,7 +7928,6 @@ The measured flatness values, summarized in Table ref:tab:test_apa_flatness_meas #+attr_latex: :environment tabularx :width 0.6\linewidth :align Xc #+attr_latex: :booktabs t :float nil #+caption: Estimated flatness of the APA300ML interfaces -#+RESULTS: | | *Flatness* $[\mu m]$ | |-------+----------------------| | APA 1 | 8.9 | @@ -8466,7 +8081,6 @@ Another explanation is the shape difference between the manufactured APA300ML an #+name: fig:test_apa_meas_freq_compare #+caption: Frequency response functions for the two tests using the instrumented hammer and the laser vibrometer. The Y-bending mode is measured at $280\,\text{Hz}$ and the X-bending mode at $412\,\text{Hz}$ -#+RESULTS: [[file:figs/test_apa_meas_freq_compare.png]] *** Dynamical measurements @@ -8517,7 +8131,6 @@ This is the typical behavior expected from a PZT stack actuator, where the hyste #+name: fig:test_apa_meas_hysteresis #+caption: Displacement as a function of applied voltage for multiple excitation amplitudes -#+RESULTS: [[file:figs/test_apa_meas_hysteresis.png]] **** Axial stiffness @@ -8551,7 +8164,6 @@ These estimated stiffnesses are summarized in Table ref:tab:test_apa_measured_st #+caption: Measured axial stiffnesses (in $N/\mu m$) #+attr_latex: :environment tabularx :width 0.6\linewidth :align Xcc #+attr_latex: :center t :booktabs t :float nil -#+RESULTS: | APA | $k_1$ | $k_2$ | |-----+-------+-------| | 1 | 1.68 | 1.9 | @@ -8667,7 +8279,6 @@ It is confirmed that the added resistor has the effect of adding a high-pass fil #+name: fig:test_apa_effect_resistance #+caption: Transfer function from $u$ to $V_s$ with and without the resistor $R$ in parallel with the piezoelectric stack used as the force sensor -#+RESULTS: [[file:figs/test_apa_effect_resistance.png]] **** Integral Force Feedback @@ -8684,7 +8295,6 @@ A comparison between the identified plant and the manually tuned transfer functi #+name: fig:test_apa_iff_plant_comp_manual_fit #+caption: Identified IFF plant and manually tuned model of the plant (a time delay of $200\,\mu s$ is added to the model of the plant to better match the identified phase). Note that a minimum-phase zero is identified here even though the coherence is not good around the frequency of the zero. -#+RESULTS: [[file:figs/test_apa_iff_plant_comp_manual_fit.png]] The implemented Integral Force Feedback Controller transfer function is shown in equation eqref:eq:test_apa_Kiff_formula. @@ -9070,7 +8680,6 @@ However, what is more important than the true value of the thickness is the cons #+name: fig:test_joints_size_hist #+caption: Histogram for the (16x2) measured beams' thicknesses -#+RESULTS: [[file:figs/test_joints_size_hist.png]] **** Bad flexible joints @@ -9950,7 +9559,6 @@ Thickness differences for all the struts were found to be between $0.94\,mm$ and #+caption: Measured $y$ misalignment at the top and bottom of the APA. Measurements are in $mm$ #+attr_latex: :environment tabularx :width 0.25\linewidth :align Xcc #+attr_latex: :center t :booktabs t -#+RESULTS: | *Strut* | *Bot* | *Top* | |---------+-------+-------| | 1 | 0.1 | 0.33 | @@ -9970,7 +9578,6 @@ With a better alignment, the amplitude of the spurious resonances is expected to #+name: fig:test_struts_comp_dy_tuned_model_frf_enc #+caption: Comparison of the frequency response functions from DAC voltage $u$ to measured displacement $d_e$ by the encoders for the three struts. In blue, the measured dynamics is represted, in red the dynamics extracted from the model with the $y$ misalignment estimated from measurements, and in yellow, the dynamics extracted from the model when both the $x$ and $y$ misalignments are tuned -#+RESULTS: [[file:figs/test_struts_comp_dy_tuned_model_frf_enc.png]] **** Proper struts alignment @@ -9986,7 +9593,6 @@ Measured $y$ alignments are summarized in Table ref:tab:test_struts_meas_y_misal #+caption: Measured $y$ misalignment at the top and bottom of the APA after realigning the struts using a positioning pin. Measurements are in $mm$. #+attr_latex: :environment tabularx :width 0.25\linewidth :align Xcc #+attr_latex: :center t :booktabs t -#+RESULTS: | *Strut* | *Bot* | *Top* | |---------+--------+-------| | 1 | -0.02 | 0.01 | @@ -10006,7 +9612,6 @@ Therefore, fixing the encoders to the nano-hexapod plates instead may be an inte #+name: fig:test_struts_comp_enc_frf_realign #+caption: Comparison of the dynamics from $u$ to $d_e$ before and after proper alignment using the dowel pins -#+RESULTS: [[file:figs/test_struts_comp_enc_frf_realign.png]] *** Conclusion @@ -10192,7 +9797,6 @@ The next modes are the flexible modes of the breadboard as shown in Figure ref:f #+caption: Obtained modes of the suspended table #+attr_latex: :environment tabularx :width 0.8\linewidth :placement [b] :align clX #+attr_latex: :booktabs t :float nil :center t -#+RESULTS: | *Modes* | *Frequency* | *Description* | |---------+-------------+------------------| | 1,2 | 1.3 Hz | X-Y translations | @@ -10274,7 +9878,6 @@ The effect of the payload mass on the dynamics is discussed in Section ref:ssec: #+name: fig:test_nhexa_nano_hexapod_signals #+caption: Block diagram of the studied system. The command signal generated by the speedgoat is $\mathbf{u}$, and the measured dignals are $\mathbf{d}_{e}$ and $\mathbf{V}_s$. Units are indicated in square brackets. #+attr_latex: :width \linewidth -#+RESULTS: [[file:figs/test_nhexa_nano_hexapod_signals.png]] **** Modal analysis @@ -10349,7 +9952,6 @@ This would not have occurred if the encoders were fixed to the struts. #+name: fig:test_nhexa_identified_frf_de #+caption: Measured FRF for the transfer function from $\mathbf{u}$ to $\mathbf{d}_e$. The 6 diagonal terms are the colored lines (all superimposed), and the 30 off-diagonal terms are the gray lines. #+attr_latex: :width \linewidth -#+RESULTS: [[file:figs/test_nhexa_identified_frf_de.png]] Similarly, the $6 \times 6$ FRF matrix from $\mathbf{u}$ to $\mathbf{V}_s$ is shown in Figure ref:fig:test_nhexa_identified_frf_Vs. @@ -10360,7 +9962,6 @@ The first flexible mode of the struts as 235Hz has large amplitude, and therefor #+name: fig:test_nhexa_identified_frf_Vs #+caption: Measured FRF for the transfer function from $\mathbf{u}$ to $\mathbf{V}_s$. The 6 diagonal terms are the colored lines (all superimposed), and the 30 off-diagonal terms are the shaded black lines. #+attr_latex: :width \linewidth -#+RESULTS: [[file:figs/test_nhexa_identified_frf_Vs.png]] **** Effect of payload mass on the dynamics @@ -10471,7 +10072,6 @@ Similar results are observed for all other coupling terms and for the transfer f #+name: fig:test_nhexa_comp_simscape_de_all #+caption: Comparison of the measured (in blue) and modeled (in red) frequency transfer functions from the first control signal $u_1$ to the six encoders $d_{e1}$ to $d_{e6}$. The APA are here modeled with a 2-DoF mass-spring-damper system. -#+RESULTS: [[file:figs/test_nhexa_comp_simscape_de_all.png]] The APA300ML was then modeled with a /super-element/ extracted from a FE-software. @@ -10482,7 +10082,6 @@ Therefore, if the modes of the struts are to be modeled, the /super-element/ of #+name: fig:test_nhexa_comp_simscape_de_all_flex #+caption: Comparison of the measured (in blue) and modeled (in red) frequency transfer functions from the first control signal $u_1$ to the six encoders $d_{e1}$ to $d_{e6}$. The APA are here modeled with a "super-element". -#+RESULTS: [[file:figs/test_nhexa_comp_simscape_de_all_flex.png]] **** Effect of payload mass @@ -10521,7 +10120,6 @@ Therefore, the model effectively represents the system coupling for different pa #+name: fig:test_nhexa_comp_simscape_de_all_high_mass #+caption: Comparison of the measured (in blue) and modeled (in red) frequency transfer functions from the first control signal $u_1$ to the six encoders $d_{e1}$ to $d_{e6}$ -#+RESULTS: [[file:figs/test_nhexa_comp_simscape_de_all_high_mass.png]] *** Conclusion @@ -10763,7 +10361,6 @@ The obtained lateral acceptance for pure displacements in any direction is estim #+caption: Estimated measurement range for each interferometer, and for three different directions. #+attr_latex: :environment tabularx :width 0.45\linewidth :align Xccc #+attr_latex: :center t :booktabs t -#+RESULTS: | | $D_x$ | $D_y$ | $D_z$ | |-----------+-------------+------------+-------| | $d_1$ (y) | $1.0\,mm$ | $>2\,mm$ | $1.35\,mm$ | @@ -10905,7 +10502,6 @@ The flexible modes of the top platform can be passively damped, whereas the mode #+name: fig:test_id31_first_id_int_better_rz_align #+caption: Decrease of the coupling with better Rz alignment -#+RESULTS: [[file:figs/test_id31_first_id_int_better_rz_align.png]] **** Effect of Payload Mass @@ -11038,7 +10634,6 @@ This confirms that the multi-body model can be used to tune the IFF controller. #+name: fig:test_id31_comp_simscape_Vs #+caption: Comparison of the measured (in blue) and modeled (in red) frequency transfer functions from the first control signal $u_1$ to the six force sensor voltages $V_{s1}$ to $V_{s6}$ -#+RESULTS: [[file:figs/test_id31_comp_simscape_Vs.png]] **** IFF Controller @@ -11178,7 +10773,6 @@ Considering the complexity of the system's dynamics, the model can be considered #+name: fig:test_id31_comp_simscape_hac #+caption: Comparison of the measured (in blue) and modeled (in red) frequency transfer functions from the first control signal ($u_1^\prime$) of the damped plant to the estimated errors ($\epsilon_{\mathcal{L}_i}$) in the frame of the six struts by the external metrology -#+RESULTS: [[file:figs/test_id31_comp_simscape_hac.png]] The challenge here is to tune a high authority controller such that it is robust to the change in dynamics due to different payloads being used. @@ -11188,7 +10782,6 @@ This is one of the key benefits of using the HAC-LAC strategy. #+name: fig:test_id31_comp_all_undamped_damped_plants #+caption: Comparison of the (six) direct terms for all (four) payload conditions in the undamped case (in blue) and the damped case (i.e. with the decentralized IFF being implemented, in red). -#+RESULTS: [[file:figs/test_id31_comp_all_undamped_damped_plants.png]] **** Interaction Analysis @@ -11216,7 +10809,6 @@ This design choice, while beneficial for system simplicity, introduces inherent #+name: fig:test_id31_hac_rga_number #+caption: RGA-number for the damped plants - Comparison of all the payload conditions -#+RESULTS: [[file:figs/test_id31_hac_rga_number.png]] **** Robust Controller Design @@ -11291,7 +10883,6 @@ However, it was decided that this controller should be tested experimentally and #+name: fig:test_id31_hac_tomography_Wz36_simulation #+caption: Positioning errors in the Y-Z plane during tomography experiments simulated using the multi-body model (in closed-loop) -#+RESULTS: [[file:figs/test_id31_hac_tomography_Wz36_simulation.png]] **** Conclusion @@ -11382,7 +10973,6 @@ These experimental findings are consistent with the predictions from the tomogra #+name: fig:test_id31_tomo_Wz36_results #+caption: Measured errors in the $Y-Z$ plane during tomography experiments at $6\,\text{deg/s}$ for all considered payloads. In the open-loop case, the effect of eccentricity is removed from the data. -#+RESULTS: [[file:figs/test_id31_tomo_Wz36_results.png]] ***** Fast Tomography scans @@ -11668,7 +11258,6 @@ The system performance was evaluated at three lateral scanning velocities: $0.1\ #+name: fig:test_id31_diffraction_tomo_setpoint #+caption: Dy motion for several configured velocities -#+RESULTS: [[file:figs/test_id31_diffraction_tomo_setpoint.png]] The positioning errors measured along $D_y$, $D_z$, and $R_y$ directions are displayed in Figure ref:fig:test_id31_diffraction_tomo. @@ -11785,9 +11374,6 @@ Moreover, the systematic approach to system development and validation, along wi * TODO Conclusion and Future Work <> -** Alternative Architecture -[[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/alternative-micro-station-architecture.org]] - * Appendix :noexport:ignore: #+latex: \appendix