FRF from accelerometers to global cartesian and comparison

This commit is contained in:
Thomas Dehaeze 2019-07-03 13:40:02 +02:00
parent 1ded4b389a
commit 8ca2d8ed20
3 changed files with 61 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

View File

@ -733,6 +733,7 @@ We here sum the norm instead of the complex numbers.
* Compare global coordinates to local coordinates * Compare global coordinates to local coordinates
#+begin_src matlab #+begin_src matlab
solid_i = 1; solid_i = 1;
acc_dir_O = 6;
acc_dir = 3; acc_dir = 3;
exc_dir = 3; exc_dir = 3;
@ -743,7 +744,7 @@ We here sum the norm instead of the complex numbers.
for i = solids.(solid_names{solid_i}) for i = solids.(solid_names{solid_i})
plot(freqs, abs(squeeze(FRFs(acc_dir+3*(i-1), exc_dir, :)))); plot(freqs, abs(squeeze(FRFs(acc_dir+3*(i-1), exc_dir, :))));
end end
plot(freqs, abs(squeeze(FRFs_O((solid_i-1)*6+acc_dir, exc_dir, :))), '-k'); plot(freqs, abs(squeeze(FRFs_O((solid_i-1)*6+acc_dir_O, exc_dir, :))), '-k');
hold off; hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]); set(gca, 'XTickLabel',[]);
@ -754,7 +755,7 @@ We here sum the norm instead of the complex numbers.
for i = solids.(solid_names{solid_i}) for i = solids.(solid_names{solid_i})
plot(freqs, mod(180+180/pi*phase(squeeze(FRFs(acc_dir+3*(i-1), exc_dir, :))), 360)-180); plot(freqs, mod(180+180/pi*phase(squeeze(FRFs(acc_dir+3*(i-1), exc_dir, :))), 360)-180);
end end
plot(freqs, mod(180+180/pi*phase(squeeze(FRFs_O((solid_i-1)*6+acc_dir, exc_dir, :))), 360)-180, '-k'); plot(freqs, mod(180+180/pi*phase(squeeze(FRFs_O((solid_i-1)*6+acc_dir_O, exc_dir, :))), 360)-180, '-k');
hold off; hold off;
ylim([-180, 180]); yticks(-180:90:180); ylim([-180, 180]); yticks(-180:90:180);
xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
@ -764,5 +765,63 @@ We here sum the norm instead of the complex numbers.
xlim([1, 200]); xlim([1, 200]);
#+end_src #+end_src
* Verify that we find the original FRF from the FRF in the global coordinates
From the computed FRF of the Hexapod in its 6 DOFs, compute the FRF of the accelerometer 1 fixed to the Hexapod during the measurement.
#+begin_src matlab
FRF_test = zeros(801, 3);
for i = 1:801
FRF_test(i, :) = FRFs_O(31:33, 1, i) + cross(FRFs_O(34:36, 1, i), acc_pos(1, :)');
end
#+end_src
#+begin_src matlab :exports none
figure;
ax1 = subplot(3, 1, 1);
hold on;
plot(freqs, abs(squeeze(FRFs(1, 1, :))));
plot(freqs, abs(squeeze(FRF_test(:, 1))), '--k');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]);
xlim([1, 200]);
title('FRF $\frac{D_{1x}}{F_x}$');
ax2 = subplot(3, 1, 2);
hold on;
plot(freqs, abs(squeeze(FRFs(2, 1, :))));
plot(freqs, abs(squeeze(FRF_test(:, 2))), '--k');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Amplitude');
xlim([1, 200]);
title('FRF $\frac{D_{1y}}{F_x}$');
ax3 = subplot(3, 1, 3);
hold on;
plot(freqs, abs(squeeze(FRFs(3, 1, :))));
plot(freqs, abs(squeeze(FRF_test(:, 3))), '--k');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]');
xlim([1, 200]);
legend({'Original Measurement', 'Recovered Measurement'}, 'Location', 'southeast');
title('FRF $\frac{D_{1z}}{F_x}$');
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/compare_original_meas_with_recovered.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:compare_original_meas_with_recovered
#+CAPTION: Comparison of the original measured FRFs with the recovered FRF from the FRF in the common cartesian frame
[[file:figs/compare_original_meas_with_recovered.png]]
#+begin_important
The reduction of the number of degrees of freedom from 69 (23 accelerometers with each 3DOF) to 36 (6 solid bodies with 6 DOF) seems to work well.
#+end_important
* TODO Synthesis of FRF curves * TODO Synthesis of FRF curves