From 3f7c7de1ef09f3e31d1ec197b99e30f77627a061 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Wed, 15 Apr 2020 16:58:36 +0200 Subject: [PATCH] Add a control to fix z rot of nano-hexapod --- org/control.org | 100 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/org/control.org b/org/control.org index 1fdb393..82c900c 100644 --- a/org/control.org +++ b/org/control.org @@ -534,6 +534,43 @@ Usually, the Low Authority Controller is first design, and then the High Authori #+RESULTS: [[file:figs/control_architecture_hac_iff_pos_L.png]] +** HAC-LAC using DVF - the HAC controller is positioning the sample w.r.t. the granite in the task space +#+begin_src latex :file control_architecture_hac_dvf_pos_X.pdf + \begin{tikzpicture} + % Blocs + \node[block={3.0cm}{3.0cm}] (P) {Plant}; + \coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$); + \coordinate[] (outputF) at ($(P.south east)!0.8!(P.north east)$); + \coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$); + \coordinate[] (outputL) at ($(P.south east)!0.2!(P.north east)$); + + \node[block, below=0.2 of P] (Kdvf) {$\bm{K}_\text{DVF}$}; + \node[addb={+}{}{}{}{-}, left= of inputF] (addF) {}; + \node[block, left= of addF] (J) {$\bm{J}^{-T}$}; + \node[block, left= of J] (K) {$\bm{K}_\mathcal{X}$}; + \node[block, align=center, left= of K] (Ex) {Compute\\Pos. Error}; + + % Connections and labels + \draw[->] (outputF) -- ++(1, 0) node[above left]{$\bm{\tau}_m$}; + + \draw[->] (outputL) -- ++(1, 0) node[above left]{$d\bm{\mathcal{L}}$}; + \draw[->] ($(outputL) + (0.6, 0)$)node[branch]{} |- (Kdvf.east); + \draw[->] (Kdvf.west) -| (addF.south); + \draw[->] (addF.east) -- (inputF) node[above left]{$\bm{\tau}$}; + + \draw[->] (outputX) -- ++(1.6, 0) node[above left]{$\bm{\mathcal{X}}$}; + \draw[->] ($(outputX) + (1.2, 0)$)node[branch]{} -- ++(0, -3) -| (Ex.south); + + \draw[<-] (Ex.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-1, 0); + \draw[->] (Ex.east) -- (K.west) node[above left]{$\bm{\epsilon}_{\mathcal{X}_n}$}; + \draw[->] (K.east) -- (J.west) node[above left]{$\bm{\mathcal{F}}$}; + \draw[->] (J.east) -- (addF.west) node[above left]{$\bm{\tau}^\prime$}; + \end{tikzpicture} +#+end_src + +#+RESULTS: +[[file:figs/control_architecture_hac_dvf_pos_X.png]] + ** HAC-LAC using DVF - the HAC controller is positioning the sample w.r.t. the granite in the space of the legs #+begin_src latex :file control_architecture_hac_dvf_pos_L.pdf \begin{tikzpicture} @@ -789,6 +826,69 @@ Signals: #+RESULTS: [[file:figs/control_architecture_force.png]] +* Other Control Architectures +** Control to force the nano-hexapod to not do any vertical rotation +As the sample rotation around the vertical axis is not measure, the best we can do with the nano-hexapod is to not rotate around this same axis. + +One way to do it is shown in Figure [[fig:control_architecture_fixed_rz]]. + +The controller $\bm{K}_{R_z}$ is decomposed as shown in Figure [[fig:control_architecture_fixed_Krz]]. + +#+begin_src latex :file control_architecture_fixed_rz.pdf + \begin{tikzpicture} + % Blocs + \node[block={3.0cm}{3.0cm}] (P) {Plant}; + \coordinate[] (inputF) at ($(P.south west)!0.5!(P.north west)$); + \coordinate[] (outputF) at ($(P.south east)!0.8!(P.north east)$); + \coordinate[] (outputX) at ($(P.south east)!0.5!(P.north east)$); + \coordinate[] (outputL) at ($(P.south east)!0.2!(P.north east)$); + + \node[block, below=0.4 of P] (Kdvf) {$\bm{K}_{R_z}$}; + \node[addb={+}{}{}{}{-}, left= of inputF] (addF) {}; + + % Connections and labels + \draw[->] (outputF) -- ++(1, 0) node[above left]{$\bm{\tau}_m$}; + \draw[->] (outputL) -- ++(1, 0) node[above left]{$d\bm{\mathcal{L}}$}; + \draw[->] (outputX) -- ++(1, 0) node[above left]{$\bm{\mathcal{X}}$}; + + \draw[->] ($(outputL) + (0.6, 0)$)node[branch]{} |- (Kdvf.east); + \draw[->] (Kdvf.west) -| (addF.south); + \draw[->] (addF.east) -- (inputF) node[above left]{$\bm{\tau}$}; + \draw[<-] (addF.west) -- ++(-1, 0) node[above right]{$\bm{\tau}^\prime$}; + \end{tikzpicture} +#+end_src + +#+name: fig:control_architecture_fixed_rz +#+caption: Figure caption +#+RESULTS: +[[file:figs/control_architecture_fixed_rz.png]] + +#+begin_src latex :file control_architecture_fixed_Krz.pdf + \begin{tikzpicture} + \node[block] (J) {$\bm{J}^{-1}$}; + \node[block, right=of J] (selectRz) {$[0,0,0,0,0,1]$}; + \node[block, right=of selectRz] (KRz) {$K_{R_z}$}; + \node[block, right=of KRz] (Jt) {$\bm{J}^{-T}(:,6)$}; + + \draw[->] ($(J.west)+(-1, 0)$) -- (J.west) node[above left=0pt and 8pt]{$d\bm{\mathcal{L}}$}; + \draw[->] (J.east) -- (selectRz.west) node[above left]{$d\bm{\mathcal{X}}$}; + \draw[->] (selectRz.east) -- (KRz.west) node[above left]{$d\mathcal{X}_{R_z}$}; + \draw[->] (KRz.east) -- (Jt.west) node[above left]{$\mathcal{M}_{z}$}; + \draw[->] (Jt.east) -- ++(1, 0) node[above left]{$\bm{\tau}$}; + + \begin{scope}[on background layer] + \node[fit={(J.south west) (Jt.north east)}, fill=black!20!white, draw, dashed, inner sep=8pt] (Ktot) {}; + \node[above] at (Ktot.north) {$\bm{K}_{R_z}$}; + \end{scope} + \end{tikzpicture} +#+end_src + +#+name: fig:control_architecture_fixed_Krz +#+caption: Figure caption +#+RESULTS: +[[file:figs/control_architecture_fixed_Krz.png]] + + * Bibliography :ignore: bibliographystyle:unsrt bibliography:ref.bib