−Table of Contents
True position estimates
Link to final version
The final version of this note is based on Run 71 post-mortem measurements of the source mover. The results below are based only on pre-natal measurements.
Overview
To determine the y-position of the movable source at various times during Run 71, we can make use of some benchmarks (from room-temperature distance measurements) and inferences from the number of steps moved. To know how many steps the source was moved we need to infer the “step efficiency” for all the move commands sent to the motor - how many steps it actually moved compared to how many step signals were sent.
Recall that
48 steps = 1 full turn 32 full turns = 1 inch (at room temperature at least)
Measurements in the clean room
On 2019 Oct 11 we determined how far from the center position the source could move before hitting the endstops at either side.
| Table 1 | |||
|---|---|---|---|
| full turns | steps | mm | |
| Near endstop | 16.5 | 792 | 13.10 |
| Far endstop | -52.5 | -2520 | -41.67 |
| uncertainty | 0.25 | 12 | 0.20 |
This was done by turning the shaft manually, counting the turns and watching the multimeter for contact. It was estimated to the nearest quarter turn, amounting to 0.2 mm uncertainty, so it could perhaps be redone more carefully.
On 2019 Oct 12 we measured the blocker positions with a caliper.
| Table 2 | |||
|---|---|---|---|
| mm | full turns | steps | |
| Blocker 1 near edge | -4.59 | -5.78 | -277.6 |
| Blocker 1 far edge | -7.19 | -9.06 | -434.8 |
| Blocker 2 near edge | -25.05 | -31.56 | -1514.8 |
| Blocker 2 far edge | -28.12 | -35.43 | -1700.5 |
| uncertainty | 0.02 | 0.03 | 1.2 |
Thermal contraction considerations
The threaded rod and carriage for the source mover are brass, and the mover is mounted on a copper plate which also holds the endstops and the blockers. And of course the detector is germanium. Brass shrinks more than copper when cooled, and germanium doesn't shrink much at all. Below are approximate linear contraction factors for the three materials:
| Table 3 | ||
|---|---|---|
| ΔL/L, 300K → <1 K | rel. to Ge | |
| Brass | 0.0042 | 0.0031 |
| Copper | 0.00325 | 0.00215 |
| Germanium | 0.0011 | 0 |
The first two values are approximations from a plot in Pobell. The third is from an approximate numerical integral from a plot found online.
Considering the maximum span of the source between endstops - 54.8 mm - the contraction of brass can alter the position by as much as 0.23 mm. So that's probably enough that we should correct for it.
It makes sense to use a coordinate system corresponding to the detector at room temperature, so in the third column I've adjusted the brass and copper factors relative to the shrinking detector. We can use those to adjust the position for contraction. I'll use these relative detector coordinates, scaled to room-temperature lengths, from here out.
The schematic above shows the copper and brass parts. Since the brass shrinks more than the copper, there's a tendency for the source at any particular step-position to shift somewhat in the +y direction as the source mover cools. In terms of the contraction factors and the distance a (this is about 30 mm; we can measure it more precisely when we uninstall) we can calculate the cold y position as a function of the warm position:
For example, if the source is at the center position when warm, it will be at y = 30*(0.0031-0.00215) = 0.029 mm when cold.
Check: number of steps between endstops
During the last part of the run we moved in the -y direction from the near endstop (closest to motor) to the far endstop. Here the step efficiency seemed to be 100%. One piece of evidence for this is that the actual source positions seem to correspond to 100% efficiency - this will be re-checked here. Another piece of evidence is a 48-step pattern seen in the temperature deviations while moving, suggesting that some parts of a full rotation meet more resistance than others - this pattern makes sense if every step command sent resulted in an actual step.
Let's see whether the number of steps it took to move from the near endstop to the far endstop agrees with what we would expect from the bench measurements. At room temperature we have
room temperature:
span between endstops = 3312 ± 17 steps
= 54.77 ± 0.28 mm
When cold it will be different, because 1) the distance between the endstops is smaller due to copper contraction and 2) the distance the carriage moves per step is smaller due to brass contraction. Since brass contracts more than copper the number of steps will be greater when cold.
In terms of the room-temperature span of the carriage between endstops, and the width of the carriage, we can calculate the cold span:
The width of the carriage seems to be 10 mm. To get the number of steps we divide the cold span (in mm) by the cold step distance (which is the warm step distance reduced by the brass contraction factor). We find
| O | 11/23/2019 12:26 | 11/23/2019 15:55 | -7.30 | 71911231226 |
|---|---|---|---|---|
| P | 11/23/2019 16:27 | 11/23/2019 20:13 | -7.83 | 71911231627 |
| Q | 11/24/2019 13:13 | 11/24/2019 16:41 | -24.64 | 71911241313 |
| R | 11/25/2019 7:01 | 11/25/2019 10:28 | -38.82 | 71911250701 |
| S | 11/25/2019 13:13 | 11/25/2019 15:50 | -41.59(20) | 71911251313 |
cold: span between endstops = 3314.6 ± 17 steps
So it's only a couple more steps between endstops when cold than it is when warm.
Now let's compare to how many steps it actually took to move between endstops. On Nov 21 at 14:12 we apparently broke contact with the near endstop. That was during a sequence of 10 4-step moves, and the break occurred some time between the 5th and 10th move. Then another sequence of 10 4-step moves was done, then a long sequence of 231 4-step moves. Over the next four days we performed another seven sequences of 4-step moves, and on Nov 25 at 13:13 we made contact with the far endstop and stopped right after that 4-step move. Adding up all the steps we find
actual number of steps issued between endstops: 3332.5 ± 11.5
So the actual number of steps is consistent with the expected number. There's a hint that the actual number is a little higher, and there are two conceivable reasons for this. First, the early -y moves were done with different settings and sometimes showed poor waveforms, so they may have had lower step efficiency. Second, since the near endstop was jammed, it's possible that the endstop was bent back a little relative to its initial position, increasing the distance between the endstops.
Benchmark: endstops
Since we know with good precision when we hit the far endstop, this is one of the best benchmarks. If we know the y-position when the carriage is in contact with the far endstop when warm, we can calculate the y-position when cold:
Note: the above equation gives the absolute value of the y-position.
The result is y = -41.59 ± 0.20 mm, 0.08 mm less than the room-temperature value.
This is the final position of the source at the end of the run. We can get another estimate of this value by measuring the y-position of the source when warm. Then the cold value is:
From this benchmark we can work backwards to get the positions at various times during the run, back to when we started moving in the -y direction.
With the same formula we can calculate the position of the source when it hits the near endstop when cold, resulting in y = +13.07 ± 0.20 mm, 0.02 mm less than the room-temperature value.
Cold blocker positions
We should also correct the blocker positions for thermal contraction. Here I also consider the thermal contraction of indium, which is larger than that of the other metals: around 0.0084, or 0.0073 relative to germanium.
| Table 4 | |
|---|---|
| mm | |
| Blocker 1 near edge | -4.59 |
| Blocker 1 far edge | -7.17 |
| Blocker 2 near edge | -25.00 |
| Blocker 2 far edge | -28.05 |
| uncertainty | 0.02 |
Source positions during last part of run
Using the estimated final position of the source and counting the number of steps in the last several move sequences we can get the source positions for the last part of the run.
| Table 5 | ||||
|---|---|---|---|---|
| Label | Start | End | y_source (mm) | Start Series# |
| L | 11/22/2019 6:48 | 11/22/2019 11:45 | -2.68 | 71911220648 |
| M | 11/22/2019 15:22 | 11/22/2019 20:43 | -6.24 | 71911221522 |
| N | 11/22/2019 21:15 | 11/23/2019 11:54 | -6.77 | 71911222115 |
| O | 11/23/2019 12:26 | 11/23/2019 15:55 | -7.30 | 71911231226 |
| P | 11/23/2019 16:27 | 11/23/2019 20:13 | -7.83 | 71911231627 |
| Q | 11/24/2019 13:13 | 11/24/2019 16:41 | -24.64 | 71911241313 |
| R | 11/25/2019 7:01 | 11/25/2019 10:28 | -38.82 | 71911250701 |
| S | 11/25/2019 13:13 | 11/25/2019 15:50 | -41.59(20) | 71911251313 |
The parentheses on the last y-value are a reminder of the 0.20 mm error. If we get a better estimate for this final value all the other values will shift with it. (The uncertainty in the differences between the positions is very small.)
The final column gives the start time for the position in SeriesNumber format, so it could be used to produce cuts to select specific positions.
The plot below shows the positions near the blocker (M, N, O, P) with errors, compared to the position of the near blocker. This corresponds roughly to the observed pattern: M eliminated the 60keV peak, N had a small peak, O had a peak about 1/2 as high as normal, P had a normal peak.
Source positions during first part of run
It's more difficult to figure out the positions during the first part of the run when we were moving in the +y direction, because we did not operate the mover in a consistent way. Things varied over the course of the run were 1) voltage of power supply 2) dwell time between pulses 3) wakeup time before pulses start 4) number of steps issued in a single move.
Early on we were issuing single moves with many steps. Nick determined that the current to the coils dropped severely after a few steps. Later we started doing single few-step moves or sequences of few-step moves. The few-step moves were either 6 or 4 steps. On Nov 14 the wakeup time was reduced and the dwell was increased. The power was kept at 8V throughout this period - it was reduced to 6.4V when we started moving in the -y direction.
Whatever actually happened there are two clear benchmarks: we started at the y=0 (warm) position, and at some point we hit the near endstop. We can consider these positions as known, then theorize about how the source was moving so that it is consistent with these two points.
I consider three possibilities:
- Every move produces the same number of actual steps. So a 4-step move produces maybe close to 4 steps, but a longer move also only produces close to 4 steps. If we assume this, it turns out to imply 3.4 steps for every move. Considering that when we were moving in the -y direction we got 4 steps for every 4-step move, it's a little surprising that the 4-step moves in the +y direction are less efficient. It could be due to the lower power applied for -y moves, or maybe one direction is intrinsically less efficient than the other for some reason (differences between the two coils maybe?)
- Step efficiency improved when the dwell was increased. The extreme version would be that step efficiency was 0 when the dwell was less than 40 ms. This seems unlikely since waveforms were not dramatically worse with a shorter dwell. But if we assume that, then the average number of steps per move for higher dwells is somewhat higher, about 3.6. Still well below 100% for the 4-step moves.
- 4-step moves are 100% efficient, but longer moves produce on average less than 4 steps. This would be surprising - you'd have to imagine a sort of lag in the actual moving of the motor after the heating associated with >4 steps already happened. If we assume this, you get about 3.1 steps/move when 6 or more moves are issued.
#1 is simplest and I think the most believable. But some early plots of position versus various position reconstructions make some of the +y positions look a little off. So I’ll look at all three possibilities to give an idea of systematic error to quantify our ignorance.
In the plot above we can see that there are large-ish differences in Positions G and H depending on which scenario we use. H varies by as much as 0.8 mm. Possibly we can make empirical plots of position reconstructions for Positions F, G, and H to see if one scenario looks more plausible than another. For now we'll just estimate systematic errors.
| Table 6 | |||||||
|---|---|---|---|---|---|---|---|
| Systematics | |||||||
| Label | Start | End | y_source (mm) | stat | + | - | Start Series# |
| A | 11/6/2019 0:00 | 11/8/2019 14:28 | 0.03 | 0.02 | 0 | 0 | 71911060000 |
| B | 11/8/2019 15:09 | 11/8/2019 19:16 | 0.14 | 0.06 | 0.11 | 71911081509 | |
| C | 11/8/2019 19:32 | 11/12/2019 15:49 | 0.24 | 0.12 | 0.21 | 71911081932 | |
| D | 11/12/2019 15:50 | 11/13/2019 15:46 | 0.28 | 0.14 | 0.25 | 71911121550 | |
| E | 11/13/2019 15:47 | 11/14/2019 9:36 | 0.31 | 0.16 | 0.28 | 71911131547 | |
| F | 11/14/2019 17:23 | 11/18/2019 12:23 | 0.55 | 0.27 | 0.46 | 71911141723 | |
| G | 11/19/2019 6:42 | 11/19/2019 10:48 | 5.37 | 0.32 | 0.20 | 71911190642 | |
| H | 11/19/2019 16:04 | 11/19/2019 21:32 | 8.30 | 0.35 | 0.44 | 71911191604 | |
| end | 11/20/2019 3:02 | 11/20/2019 3:03 | 13.07 | 0.28 | 0 | 0 | |
This table shows the current mean values and the (asymmetric) systematic errors. Also for the two benchmarks - the first and last positions - I've included statistical errors based on how they were measured (from clean room measurements).
Note that the final position is not “I”. In this table the final position represents when the endstop was first hit. The move sequence continued after that for another 14*4=56 steps, nominally about 0.9 mm - but in the process we jammed the source mover, so it may not have moved that far. So positions I, J, and K are even less well known. From temperature patterns Nick guessed that the first 3 of those 14 moves were “normal”, and so we may have been pushing the endstop for about 12 steps (0.2 mm), after which it jammed. And it's a reasonable guess that J and K are the same as I, because although we attempted to move it was clearly jammed during those moves (though it's possible it shifted a little - we can't really know). So here's the best guess of the I, J and K positions:
| Table 7 | ||||
|---|---|---|---|---|
| Label | Start | End | y_source (mm) | Start Series# |
| I | 11/20/2019 3:58 | 11/20/2019 11:43 | 13.27 | 71911200358 |
| J | 11/20/2019 15:40 | 11/20/2019 17:20 | 13.27 | 71911201540 |
| K | 11/21/2019 1:20 | 11/20/2019 11:57 | 13.27 | 71911210120 |
We could assign systematic uncertainties here as well: basically all of these could be thought to have a range from 13.07 (just touching the endstop) to 14.0 (if all the positive steps issued actually happened). When the source holder is examined after deinstallation we can perhaps better guess how the jam may have happened.


