nass-micro-station-measurem.../static-to-dynamic/index.org
Thomas Dehaeze 6e3677eb29 [WIP] Breaking Change - Use Update
Folder name is changed, rework the html templates
Change the organisation.
2019-05-10 16:06:43 +02:00

4.8 KiB

#+TITLE:Static Measurements

Notes

  • 5530: Straightness Plot: Yz
  • Filename: r:\home\PDMU\PEL\Measurement_library\ID31\ID31_u_station\TY\12_12_2018\linear deviation _tyz_401_points.txt
  • Acquisition date: 09/01/2019 13:49:42
  • Current date: 08/03/2019 08:46:35
  • Measurement Type: STRAIGHTNESS vertical
  • Travel Mode: Bidirectional
  • Number of Target Positions: 401
  • Number of total data pairs: 2406
  • Number of total data runs:6
  • Position Value Units: millimeters
  • Error Value Units: micrometers
Environmental Data Min Max Avg
Air Temp (C) 024,57 024,61 024,59
Air Prs (mm) 742,56 743,29 742,83
Air Hmd (%) 024,00 024,00 024,00
MT1 Temp (C) 020,00
MT2 Temp (C) 024,40 024,44 024,42
MT3 Temp (C) 024,32 024,36 024,34

Data Pre-processing

  sed 's/\t/  /g;s/\,/./g' "data/linear deviation _tyz_401_points.txt" > data/data.txt
  head "data/data.txt"
Run Pos TargetValue ErrorValue
1 1 -4.5E+00 7.5377892E+00
1 2 -4.4775E+00 7.5422246E+00
1 3 -4.455E+00 7.5655617E+00
1 4 -4.4325E+00 7.5149518E+00
1 5 -4.41E+00 7.4886377E+00
1 6 -4.3875E+00 7.437007E+00
1 7 -4.365E+00 7.4449354E+00
1 8 -4.3425E+00 7.3937387E+00
1 9 -4.32E+00 7.3287468E+00

Matlab - Data Import

  filename = 'data/data.txt';
  fileID = fopen(filename);
  data = cell2mat(textscan(fileID,'%f  %f  %f  %f', 'collectoutput', 1,'headerlines',1));
  fclose(fileID);

Data - Plot

  figure;
  hold on;
  for i=1:data(end, 1)
    plot(data(data(:, 1) == i, 3), data(data(:, 1) == i, 4), '-k');
  end
  hold off;
  xlabel('Target Value [mm]'); ylabel('Error Value [um]');
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/6e3677eb2943a4b2cb4c9edba460e86aa47efba8/static-to-dynamic/figs/raw_data.png

Time domain Data

Compute mean value of each position

  mean_pos = zeros(sum(data(:, 1)==1), 1);
  for i=1:sum(data(:, 1)==1)
    mean_pos(i) = mean(data(data(:, 2)==i, 4));
  end
  figure;
  hold on;
  for i=1:data(end, 1)
    filt = data(:, 1) == i;
    plot(data(filt, 3), data(filt, 4) - mean_pos, '-k');
  end
  hold off;
  xlabel('Target Value [mm]'); ylabel('Error Value [um]');
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/6e3677eb2943a4b2cb4c9edba460e86aa47efba8/static-to-dynamic/figs/processed_data.png

caption

Translate to time domain

  t = linspace(0, 1, length(data(data(:, 1)==1, 4)));
  figure;
  hold on;
  plot(t, data(data(:, 1) == 1, 4) - mean_pos, '-k');
  hold off;
  xlabel('Time [s]'); ylabel('Error Value [um]');
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/6e3677eb2943a4b2cb4c9edba460e86aa47efba8/static-to-dynamic/figs/time_domain.png

caption

Compute the PSD

  n_av = 5;
  Fs = 1/t(2);

  x = data(data(:, 1) == 1, 4) - mean_pos;
  [pxx, f] = pwelch(x, hanning(ceil(length(x)/n_av)), [], [], Fs);

  pxx_t = zeros(length(pxx), data(end, 1));

  for i=1:data(end, 1)
    x = data(data(:, 1) == i, 4) - mean_pos;
    [pxx, f] = pwelch(x, hanning(ceil(length(x)/n_av)), [], [], Fs);
    pxx_t(:, i) = pxx;
  end
  figure;
  hold on;
  plot(f, mean(pxx_t, 2));
  hold off;
  xlabel('Frequency (Hz)');
  ylabel('PSD ($m^2/Hz$)');
  set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
  legend({'PSD - x', 'PSD - y', 'PSD - z'});
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/6e3677eb2943a4b2cb4c9edba460e86aa47efba8/static-to-dynamic/figs/psd.png

PSD of the Z motion when scanning with Ty at 1Hz