Bryn Heinemann

Work

Atlas Copco: Sensor Calibration Fixture

Atlas Copco Sponsored Senior Design Project. Fall 2026 to Spring 2027.

In development

Modeled a 2.25 µin (0.057 µm) uncertainty bound against a 39 µin (1 µm) target. Developing a fixture that calibrates the magnetic-bearing position sensors on Atlas Copco turboexpanders from measured rotor motion, in place of dial indicators. An accelerometer on a chuck at the rotor nose records the motion.

My role.Signal processing and electrical lead on a team of 4, responsible for the measurement method, embedded readout, fit code, and uncertainty budget.

Concept: accelerometer on a chuck at the rotor nose (in development).
Fig. 1.Concept: accelerometer on a chuck at the rotor nose (in development).

Problem

The sponsor calibrates the position sensors on its rotating machines with dial indicators: half a day to a full day for setup, calibration, and teardown.

Contributions

  • Wrote the embedded C++ that reads the accelerometer, indexes each sample, and sends the data to the laptop
  • Wrote the Python sine fit that turns the data into rotor displacement
  • 3D-printed a demonstration rotor for design reviews
  • Built a 9-source uncertainty budget for the ADXL355 with the GUM method (Guide to the Expression of Uncertainty in Measurement) and checked it with 400,000 Monte Carlo runs

Measurement method

Design rationale: during calibration the bearing controller moves the rotor sinusoidally at a commanded frequency, so its acceleration is a sine at that known frequency. Displacement follows directly: X = a / ω², with ω = 2πf. Fitting a sine and cosine at that one frequency, plus a constant offset and a slow drift term, rejects noise at other frequencies and the gravity offset. It avoids double-integrating a drifting signal. The signal is small: 0.001 in (25 µm) of motion at 10 Hz is about 10.1 mg of acceleration.

Signal chain: (1) read two axes of the accelerometer 1000 times a second, (2) level them with gravity, (3) fit a sine wave at the commanded frequency, (4) convert to displacement, X = a / ω².
Fig. 2.Signal chain.

Uncertainty analysis

Each bound is two standard deviations of nine modeled error sources plus their biases. Nothing has been measured yet.

Modeled uncertainty boundTarget 1 µm (39 µin)
2.25 µin (0.057 µm) Accelerometer, one axis at a time
15.2 µin (0.39 µm) Accelerometer, both axes together
62 µin (1.58 µm) Dial-indicator method, design review estimate
Fig. 3.Modeled uncertainty bounds against the 1 µm target, log scale, for 0.001 in motion at 10 Hz over 60 s.

Next steps: Shake-table test of the accelerometer to replace the model with measured data.

ToolsPython, C++, ADXL355 accelerometer, GUM uncertainty budget, Monte Carlo simulation, 3D printing