FRF from accelerometers to global cartesian and comparison
This commit is contained in:
parent
1ded4b389a
commit
8ca2d8ed20
BIN
modal-analysis/figs/compare_original_meas_with_recovered.png
Normal file
BIN
modal-analysis/figs/compare_original_meas_with_recovered.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 130 KiB |
Binary file not shown.
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user