dcm-metrology/dcm_metrology.org
2022-01-05 10:29:12 +01:00

17 KiB

ESRF Double Crystal Monochromator - Metrology


This report is also available as a pdf.


Metrology Concept

Introduction   ignore

The goal of the metrology system is to measure the distance and default of parallelism orientation between the first and second crystals

Only 3 degrees of freedom are of interest:

  • $d_z$
  • $r_y$
  • $r_x$

Sensor Topology

In order to measure the relative pose of the two crystals, instead of performing a direct measurement which is complicated, the pose of the two crystals are measured from a metrology frame. Three interferometers are used to measured the 3dof of interest for each crystals. Three additional interferometers are used to measured the relative motion of the metrology frame.

Notation Meaning
d "Downstream": Positive X
u "Upstream": Negative X
h "Hall": Positive Y
r "Ring": Negative Y
f "Frame"
1 "First Crystals"
2 "Second Crystals"
/tdehaeze/dcm-metrology/media/commit/54153e1e64621dc7462241e938912a4bf8a717a5/figs/metrology_schematic.png
Schematic of the Metrology System

Crystal's motion computation

From the raw interferometric measurements, the pose between the first and second crystals can be computed.

First, Jacobian matrices can be used to convert raw interferometer measurements to axial displacement and orientation of the crystals and metrology frame.

For the 311 crystals:

Notation Description
um Metrology Frame - Upstream
dhm Metrology Frame - Downstream Hall
drm Metrology Frame - Downstream Ring
ur1 First Crystal - Upstream Ring
h1 First Crystal - Hall
dr1 First Crystal - Downstream Ring
ur2 First Crystal - Upstream Ring
h2 First Crystal - Hall
dr2 First Crystal - Downstream Ring
Notation Description
dzm Positive: increase of distance
rym
rxm
dz1 Positive: decrease of distance
ry1
rx1
dz2 Positive: increase of distance
ry2
rx2
\begin{tikzpicture}
  % Blocs
  \node[block] (Js_inv) {$\bm{J}_{s,m}^{-1}$};

  % Connections and labels
  \draw[->] ($(Js_inv.west)+(-1.5,0)$) node[above right]{$\begin{bmatrix} u_{m} \\ dh_{m} \\ dr_{m} \end{bmatrix}$} -- (Js_inv.west);
  \draw[->] (Js_inv.east)  -- ++(1.5, 0) node[above left]{$\begin{bmatrix} d_{zm} \\ r_{ym} \\ r_{xm} \end{bmatrix}$};
\end{tikzpicture}

/tdehaeze/dcm-metrology/media/commit/54153e1e64621dc7462241e938912a4bf8a717a5/figs/schematic_sensor_jacobian_forward_kinematics_m.png

Forward Kinematics for the Metrology frame
\begin{tikzpicture}
  % Blocs
  \node[block] (Js_inv) {$\bm{J}_{s,1}^{-1}$};

  % Connections and labels
  \draw[->] ($(Js_inv.west)+(-1.5,0)$) node[above right]{$\begin{bmatrix} u_{r1} \\ h_1 \\ d_{r1} \end{bmatrix}$} -- (Js_inv.west);
  \draw[->] (Js_inv.east)  -- ++(1.5, 0) node[above left]{$\begin{bmatrix} d_{z1} \\ r_{y1} \\ r_{x1} \end{bmatrix}$};
\end{tikzpicture}

/tdehaeze/dcm-metrology/media/commit/54153e1e64621dc7462241e938912a4bf8a717a5/figs/schematic_sensor_jacobian_forward_kinematics_1.png

Forward Kinematics for the 1st crystal
\begin{tikzpicture}
  % Blocs
  \node[block] (Js_inv) {$\bm{J}_{s,2}^{-1}$};

  % Connections and labels
  \draw[->] ($(Js_inv.west)+(-1.5,0)$) node[above right]{$\begin{bmatrix} u_{r2} \\ h_2 \\ d_{r2} \end{bmatrix}$} -- (Js_inv.west);
  \draw[->] (Js_inv.east)  -- ++(1.5, 0) node[above left]{$\begin{bmatrix} d_{z2} \\ r_{y2} \\ r_{x2} \end{bmatrix}$};
\end{tikzpicture}

/tdehaeze/dcm-metrology/media/commit/54153e1e64621dc7462241e938912a4bf8a717a5/figs/schematic_sensor_jacobian_forward_kinematics_2.png

Forward Kinematics for the 2nd crystal

Then, the displacement and orientations can be combined as follows:

\begin{align} d_{z} &= + d_{z1} - d_{z2} + d_{zm} \\ d_{r_y} &= - r_{y1} + r_{y2} - r_{ym} \\ d_{r_x} &= - r_{x1} + r_{x2} - r_{xm} \end{align}

Therefore:

  • $d_z$ represents the distance between the two crystals
  • $d_{r_y}$ represents the rotation of the second crystal w.r.t. the first crystal around $y$ axis
  • $d_{r_x}$ represents the rotation of the second crystal w.r.t. the first crystal around $x$ axis

If $d_{r_y}$ is positive, the second crystal has a positive rotation around $y$ w.r.t. the first crystal. Therefore, the second crystal should be actuated such that it is making a negative rotation around $y$ w.r.t. metrology frame.

The Jacobian matrices are defined as follow:

%% Sensor Jacobian matrix for the metrology frame
J_m = [1,  0.102,  0
       1, -0.088,  0.1275
       1, -0.088, -0.1275];

%% Sensor Jacobian matrix for 1st "111" crystal
J_s_111_1 = [-1, -0.036, -0.015
             -1,  0,      0.015
             -1,  0.036, -0.015];

%% Sensor Jacobian matrix for 2nd "111" crystal
J_s_111_2 = [1,  0.07,  0.015
             1,  0,    -0.015
             1, -0.07,  0.015];

Therefore, the matrix that gives the relative pose of the crystal from the 9 interferometers is:

%% Compute the transformation matrix
G_111_t = [-inv(J_s_111_1), inv(J_s_111_2), -inv(J_m)];

% Sign convention for the axial motion
G_111_t(1,:) = -G_111_t(1,:);
ur1 [nm] h1 [nm] dr1 [nm] ur2 [nm] h2 [nm] dr1 [nm] um [nm] dhm [nm] drm [nm]
dz [nm] -0.25 -0.5 -0.25 -0.25 -0.5 -0.25 0.463 0.268 0.268
rx [nrad] 13.889 0.0 -13.889 7.143 0.0 -7.143 -5.263 2.632 2.632
ry [nrad] 16.667 -33.333 16.667 16.667 -33.333 16.667 0.0 -3.922 3.922

From table fig:schematic_sensor_jacobian_forward_kinematics_2, we can determine the effect of each interferometer on the estimated relative pose between the crystals. For instance, an error on dr1 will have much greater impact on ry than an error on drm.

Deformations of the Metrology Frame

Introduction   ignore

The transformation matrix in Table fig:schematic_sensor_jacobian_forward_kinematics_2 is valid only if the metrology frames are solid bodies.

The metrology frame itself is experiencing some deformations due to the gravity. When the bragg axis is scanned, the effect of gravity on the metrology frame is changing and this introduce some measurement errors.

This can be calibrated.

Measurement Setup

Two beam viewers:

  • one close to the DCM to measure position of the beam
  • one far away to the DCM to measure orientation of the beam

For each Bragg angle, the Fast Jacks are actuated to that the beam is at the center of the beam viewer. Then, then position of the crystals as measured by the interferometers is recorded. This position is the wanted position for a given Bragg angle.

Simulations

The deformations of the metrology frame and therefore the expected interferometric measurements can be computed as a function of the Bragg angle. This may be done using FE software.

Comparison

Attocube - Periodic Non-Linearity

<<sec:dcm_attocube_lut>>

Introduction   ignore

The idea is to calibrate the periodic non-linearity of the interferometers, a known displacement must be imposed and the interferometer output compared to this displacement. This should be performed over several periods in order to characterize the error.

We here suppose that we are already in the frame of the Attocube (the fast-jack displacements are converted to Attocube displacement using the transformation matrices). We also suppose that we are at a certain Bragg angle, and that the stepper motors are not moving: only the piezoelectric actuators are used.

The setup is schematically with the block diagram in Figure fig:block_diagram_lut_attocube. The signals are:

  • $u$: Actuator Signal (position where we wish to go)
  • $d$: Disturbances affecting the signal
  • $y$: Displacement of the crystal
  • $y_g$: Measurement of the crystal motion by the strain gauge with some noise $n_g$
  • $y_a$: Measurement of the crystal motion by the interferometer with some noise $n_a$
\definecolor{myblue}{rgb}{0, 0.447, 0.741}
\definecolor{myred}{rgb}{0.8500, 0.325, 0.098}

\begin{tikzpicture}
  \node[block] (G) at (0,0){$G(s)$};
  \node[addb, right=1 of G] (addd) {};
  \node[block, align=center, right=1 of addd] (non_linearity) {Periodic\\Non-linearity};
  \node[addb, right=1 of non_linearity] (addna) {};
  \node[addb, below=1.8 of addna] (addnsg) {};

  \draw[->] ($(G.west) + (-1.0, 0)$) node[above right]{$u$} -- (G.west);
  \draw[->] (G.east) -- (addd.west);
  \draw[->] (addd.east) -- (non_linearity.west);
  \draw[->] ($(addd.north) + (0, 1.0)$) node[below right]{$d$} -- (addd.north);
  \draw[->] (non_linearity.east) -- (addna.west);
  \draw[->] (addna.east) -- ++(1.2, 0) node[above left]{$y_a$};
  \draw[->] ($(addna.north) + (0, 1.0)$) node[below right](na){$n_a$} -- (addna.north);
  \draw[->] ($(addd.east) + (0.4, 0)$)node[branch]{} node[above]{$y$} |- (addnsg.west);
  \draw[->] (addnsg.east) -- ++(1.2, 0) node[above left]{$y_g$};
  \draw[->] ($(addnsg.north) + (0, 1.0)$) node[below right](nsg){$n_{g}$} -- (addnsg.north);

  \begin{scope}[on background layer]
    \node[fit={(non_linearity.south west) (na.north east)}, fill=myblue!20!white, draw, inner sep=6pt] (attocube) {};
    \node[fit={(non_linearity.west|-addnsg.south) (nsg.north east)}, fill=myred!20!white, draw, inner sep=6pt] (straingauge) {};
    \node[below right] at (attocube.north west) {Attocube};
    \node[below right] at (straingauge.north west) {Strain Gauge};
  \end{scope}
\end{tikzpicture}

/tdehaeze/dcm-metrology/media/commit/54153e1e64621dc7462241e938912a4bf8a717a5/figs/block_diagram_lut_attocube.png

Block Diagram schematic of the setup used to measure the periodic non-linearity of the Attocube

The problem is to estimate the periodic non-linearity of the Attocube from the imperfect measurements $y_a$ and $y_g$.

The wavelength of the Attocube is 1530nm, therefore the non-linearity has a period of 765nm. The amplitude of the non-linearity can vary from one unit to the other (and maybe from one experimental condition to the other). It is typically between 5nm peak to peak and 20nm peak to peak.

Simulations

We have some constrains on the way the motion is imposed and measured:

  • We want the frequency content of the imposed motion to be at low frequency in order not to induce vibrations of the structure. We have to make sure the forces applied by the piezoelectric actuator only moves the crystal and not the fast jack below. Therefore, we have to move much slower than the first resonance frequency in the system.
  • As both $y_a$ and $y_g$ should have rather small noise, we have to filter them with low pass filters. The cut-off frequency of the low pass filter should be high as compared to the motion (to not induce any distortion) but still reducing sufficiently the noise. Let's say we want the noise to be less than 1nm ($6 \sigma$).

Suppose we have the power spectral density (PSD) of both $n_a$ and $n_g$.

  • Take the PSD of the Attocube
  • Take the PSD of the strain gauge
  • Using 2nd order low pass filter, estimate the required low pass filter cut-off frequency to have sufficiently low noise

Bibliography   ignore