Private
Public Access
11
1
6
Energy-Drift-Correction
watts edited this page 2026-03-16 17:06:01 +01:00

General Introduction

Microscopes based on Fresnel zone plates will often suffer from "energy drift" where the position of an observed sample feature will vary linearly with respect to the photon energy. This drift is due to systematic positioning errors that occur when the zone plate Z-axis stage moves, and has two parts:

  • Real Drift: The main drift problem is caused by the ZP stage not moving parallel to X-ray beam axis.
  • Virtual Drift: A related indirect drift problem is caused by the interferometer mirror surface not being parallel to the ZP stage movement, and the measured change in laser path length being included in the feedback system to erroneously adjust the sample fine stage.

Note that a drift will appear worse when looking more closely at it, i.e. the more one zooms in on a sample region, the more sensitive the measurements are to the drift. One should also never expect to completely eliminate drift, but only to minimise it until it is no longer significant.

Also note that changes in temperature can cause the distance between the sample and the interferometer mirrors to change and thus cause a random drift of the image with respect to the interferometric position measurements. This issue can only be addressed with careful instrument design and operation, and is completely separate from the drifts discussed in this article.

The consequences of an energy drift include:

  • Misaligned data: The data stacks must be aligned image-by-image in order to correctly interpret the observations.
  • Image Padding Requirements: Image stacks require padding in order to keep features of interest within the measured area over the full energy range.
  • Limited Fine-stage Movement: A large virtual drift will apply a significant feedback voltage which can push the limits of the sample fine stage and cause a mismatch between the calculate scan-tile regions and the achievable fine stage regions.
  • OSA drift: The OSA alignment is affected by the real drift, but not the virtual drift and so can significantly drift with energy when the sample doesn't (due to the real and virtual drifts being opposite and equal). Since the OSA alignment doesn't require such high precision as the sample, it is typically only an issue when making large changes in energy, such as switching between well-separated absorption edges.

There are a number of strategies for dealing with energy drift:

  • Post-fix: Simply align the images during the data analysis.
  • Rotate Endstation: This essentially adjusts the X-ray beam axis. One can choose to either minimise the real drift, or to match the virtual drift (with opposite sense) so that they cancel each other out. Note that translating the endstation also results in a small rotation of the X-ray beam axis and so one should take care to reoptimise the endstation position after each rotation. The size and distance of the entrance apertures may limit the amount of endstation rotation that can be applied before the beam is clipped. Note that X/Y translation of the zone plate with respect to the optical source (e.g. monochromator exit slits) is also an effective rotation of the X-ray beam axis.
  • Rotate Zone Plate Stage: Rotating the zone plate stage to match the X-ray beam axis will minimise the real drift. However, such adjustments are often laborious and clumsy such that rotating the entire vacuum chamber is usually preferable.
  • Adjust Interferometer Mirrors: This can be applied to either minimise the virtual drift, or to cancel the real drift. In practice, such adjustments can be very difficult and inconvenient due to the need to vent the system to access the manual adjustment screws and a limited number of adjustment screws included in the implementation of the interferometer system. One must also meet the constraints of having the interferometer beams sufficiently overlap at the detector.
  • Feedback Correction: Drifts can be countered by applying a ZP-Z dependent correction to the transform to X/Y position that is calculated by Orocos. A software correction can cancel a virtual drift completely by neutralising erroneous feedback and the only negative consequence would be an extra shift in the coordinate system when the interferometer is reset (the extra shift is proportional to the difference in energy from the previous reset). However, using a software correction to minimise a real drift will increase feedback signals and can cause issues with the fine stage limits in extreme cases.

Best practice is to minimise the virtual drift by adjusting the interferometer mirrors, then minimise the real drift by rotating the endstation vacuum chamber, then using the feedback correction in Orocos to fine tune the drift correction.

Correcting A Virtual Drift

The goal of this section is to adjust the mirrors mounted on the zone plate stage so that their surface is parallel to the movement of the stage. Note that adjusting the interferometer mirrors to optimise the signal intensity in the interferometer sensor is not the same as aligning the mirrors mounted on the zone plate stage to eliminate virtual drift. Adjustments made to the zone plate stage mirrors will need to be compensated by adjustments to other mirrors in the system. The required mirror adjustments might not be included in the instrument design.

  1. Check that the interferometer design provides mirror adjustments that allow corrections to mirrors mounted on the zone plate stage AND on the outer mirrors that could compensate for the change in beam angle.
  2. Ensure that the drift correction in Orocos is set to zero for all axes.
  3. Observe the change in the interferometric position measurement on the X-axis (ΔX) with a change in the zone plate stage position (ΔZ).
  4. Calculate the required adjustment screw turns viaΔX/ΔZ=n*p/d, where n is the number of turns, p is the pitch of the screw thread and d is the distance between the adjustment screw and the center of rotation.
  5. Adjust the mirror that is mounted on the zone plate stage that corresponds to the X-axis (it will have a vertical surface) and rotate it around its Y-xis by the calculated number of turns.
  6. Adjust other interferometer mirrors to compensate for the change and optimise the signal level.
  7. Repeat from step #2 for each axis until satisfied.

Correcting a Real Drift (requires x-rays)

  1. Find an easily locatable feature on a sample that is also small and doesn't change in appearance very much when changing photon energy. A metal particle close to the corner of a membrane is ideal. Symmetry is often important since changes in focus and transparency can change the apparent center position of the object.
  2. Select a pair of photon energies that will give a significant difference in focal length (i.e. movement of the ZP-Z stage).
  3. Measure the position of the object at each energy and note the change in position.
  4. Rotate the endstation using the Girder Mover.
  5. Optimise the X-Y position of the Girder Mover for maximum X-ray signal.
  6. Iterate steps 3-5 until the drift is minimised.

Applying a Feedback Drift Correction

The zCorrectMatrix values [X,Y] are applied by Orocos to the feedback system, meaning that all of the bad effects of a virtual drift can be neutralised at the Orocos level. The only negative effect would be a shift in the coordinate system when the interferometer is reset at a significantly different photon energy from the previous reset. This occurs because the correction is calculated based on a reference point that is chosen as the position of the last "reset interferometer". Since an interferometer reset also defines a new coordinate system based on a reading of the position encoders on the coarse stages (with the fine piezo stage in a relaxed, 0 mV position) (and there will also be a coordinate shift due to previous positions being incorrect via accumulated errors in counting fringes), there is typically going to be a shift in the coordinate system anyway that will be more significant than the zCorrectMatrix shift.

To access the feedback drift correction parameters, first connect to the Orocos instance:

telnet localhost 50001

To see the current drift correction parameters, enter the following command to see the pair of values:

Deployer [S]> Sensor1.zCorrectMatrix

The first (zero entry) value is for the X-axis and the second (entry 1) value is for the Y-axis. Values can be set by addressing each entry in the array, e.g.:

Deployer [S]> Sensor1.zCorrectMatrix[0] = 0.0

The parameters are in terms of microns of lateral adjustment per micron of Z-axis movement of the zone plate stage. Values should therefore be small, e.g. -0.005<x<0.005, but there is no software restriction.

The values at PolLux were recently set to [-0.0027,0.001]