test-bench-apa/index.org

14 KiB

Test Bench APA95ML

Introduction   ignore

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/setup_picture.png
Picture of the Setup
/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/setup_zoom.png
Zoom on the APA

Setup

Parameters

  Ts = 1e-4;

Filter White Noise

  Glpf = 1/(1 + s/2/pi/500);

  Gz = c2d(Glpf, Ts, 'tustin');

Run Experiment and Save Data

Load Data

  data = SimulinkRealTime.utils.getFileScopeData('data/apa95ml.dat').data;

Save Data

  u = data(:, 1); % Input Voltage [V]
  y = data(:, 2); % Output Displacement [m]
  t = data(:, 3); % Time [s]
  save('./mat/huddle_test.mat', 't', 'u', 'y', 'Glpf');

Huddle Test

Time Domain Data

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/huddle_test_time_domain.png

Measurement of the Mass displacement during Huddle Test

PSD of Measurement Noise

  Ts = t(end)/(length(t)-1);
  Fs = 1/Ts;
 
  win = hanning(ceil(1*Fs));
  [pxx, f] = pwelch(y, win, [], [], Fs);

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/huddle_test_pdf.png

Amplitude Spectral Density of the Displacement during Huddle Test

Transfer Function Estimation with $m=5kg$

Time Domain Data

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_10V_time_domain.png

Time domain signals during the test

Comparison of the PSD with Huddle Test

  Ts = t(end)/(length(t)-1);
  Fs = 1/Ts;

  win = hanning(ceil(1*Fs));
  [pxx, f] = pwelch(y, win, [], [], Fs);
  [pht, ~] = pwelch(ht.y, win, [], [], Fs);

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_10V_pdf_comp_huddle.png

Comparison of the ASD for the identification test and the huddle test

Compute TF estimate and Coherence

  Ts = t(end)/(length(t)-1);
  Fs = 1/Ts;
  win = hann(ceil(1/Ts));

  [tf_est, f] = tfestimate(u, -y, win, [], [], 1/Ts);
  [co_est, ~] = mscohere(  u, -y, win, [], [], 1/Ts);

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_10V_coh.png

Coherence

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_10V_tf.png

Estimation of the transfer function from input voltage to displacement

Comparison with the FEM model

  load('mat/fem_model_5kg.mat', 'Ghm');

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_comp_fem.png

Comparison of the identified transfer function and the one estimated from the FE model

Conclusion   ignore

The problem comes from the fact that the piezo is driven directly by the DAC that cannot deliver enought current. In the next section, a current amplifier is used.

PI Amplifier

Comparison of the PSD with Huddle Test

  Ts = t(end)/(length(t)-1);
  Fs = 1/Ts;

  win = hanning(ceil(1*Fs));
  [pxx, f] = pwelch(y, win, [], [], Fs);
  [pht, ~] = pwelch(ht.y, win, [], [], Fs);

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_PI_pdf_comp_huddle.png

Comparison of the ASD for the identification test and the huddle test

Compute TF estimate and Coherence

  Ts = t(end)/(length(t)-1);
  Fs = 1/Ts;
  win = hann(ceil(10/Ts));

  [tf_est, f] = tfestimate(u, -y, win, [], [], 1/Ts);
  [co_est, ~] = mscohere(  u, -y, win, [], [], 1/Ts);

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_PI_coh.png

Coherence

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_PI_tf.png

Estimation of the transfer function from input voltage to displacement

Comparison with the FEM model

  load('mat/fem_model_5kg.mat', 'Ghm');

/tdehaeze/test-bench-apa/media/commit/eb68a99c1380cd0e21e4134512ea630fed44b0ed/figs/apa95ml_5kg_pi_comp_fem.png

Comparison of the identified transfer function and the one estimated from the FE model