17 KiB
ESRF Double Crystal Monochromator - Metrology
- Metrology Concept
- Deformations of the Metrology Frame
- Attocube - Periodic Non-Linearity
- Bibliography
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" |
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}
\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}
\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}
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}
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