Compliance Measurement of the Micro Station
+Table of Contents
+ +1 Setup
+1.1 Position of inertial sensors on top of the micro-hexapod
++Orientation is relative to the frame determined by the X-ray +
+Num | +Position | +Orientation | +Sensibility | +Channels | +
---|---|---|---|---|
1 | +[0, +A, 0] | +[x, y, z] | +1V/g | +1-3 | +
2 | +[-B, 0, 0] | +[x, y, z] | +1V/g | +4-6 | +
3 | +[0, -A, 0] | +[x, y, z] | +0.1V/g | +7-9 | +
4 | +[+B, 0, 0] | +[x, y, z] | +1V/g | +10-12 | +
+Instrumented Hammer: +
+-
+
- Channel 13 +
- Sensibility: 230 uV/N +
Acc Number | +Dir | +Channel Number | +
---|---|---|
1 | +x | +1 | +
1 | +y | +2 | +
1 | +z | +3 | +
2 | +x | +4 | +
2 | +y | +5 | +
2 | +z | +6 | +
3 | +x | +7 | +
3 | +y | +8 | +
3 | +z | +9 | +
4 | +x | +10 | +
4 | +y | +11 | +
4 | +z | +12 | +
Hammer | ++ | 13 | +
+From the acceleration measurement of the 4 accelerometers, we can compute the translations and rotations: +
++ | Formula | +
---|---|
\(D_x\) | +(1x + 2x + 3x + 4x)/4 | +
\(D_y\) | +(1y + 2y + 3y + 4y)/4 | +
\(D_z\) | +(1z + 2z + 3z + 4z)/4 | +
\(R_x\) | +(1z - 3z)/A | +
\(R_y\) | +(2z - 4z)/B | +
\(R_z\) | +(3x - 1x)/A, (4y - 2y)/B | +
+ | Formula | +
---|---|
\(D_x\) | +(1 + 4 + 7 + 10)/4 | +
\(D_y\) | +(2 + 5 + 8 + 11)/4 | +
\(D_z\) | +(3 + 6 + 9 + 12)/4 | +
\(R_x\) | +(1 - 9)/A | +
\(R_y\) | +(6 - 12)/B | +
\(R_z\) | +(7 - 1)/A, (11 - 5)/B | +
1.2 Hammer blow position/orientation
+Num | +Direction | +Position | +
---|---|---|
1 | +-Y | +[0, +A, 0] | +
2 | +-Z | +[0, +A, 0] | +
3 | +X | +[-B, 0, 0] | +
4 | +-Z | +[-B, 0, 0] | +
5 | +Y | +[0, -A, 0] | +
6 | +-Z | +[0, -A, 0] | +
7 | +-X | +[+B, 0, 0] | +
8 | +-Z | +[+B, 0, 0] | +
9 | +-X | +[0, -A, 0] | +
10 | +-X | +[0, +A, 0] | +
+From hammer blows to pure forces / torques: +
++ | Formula | +Alternative | +
---|---|---|
\(F_x\) | ++3 | +-7 | +
\(F_y\) | +-1 | ++5 | +
\(F_z\) | +-(2 + 6)/2 | +-(4 + 8)/2 | +
\(M_x\) | +A/2*(2 - 6) | ++ |
\(M_y\) | +B/2*(8 - 4) | ++ |
\(M_z\) | +A/2*(10 - 9) | ++ |
2 Results
+2.1 Load Data
+m1 = load('data/Measurement1.mat'); +m2 = load('data/Measurement2.mat'); +m3 = load('data/Measurement3.mat'); +m4 = load('data/Measurement4.mat'); +m5 = load('data/Measurement5.mat'); +m6 = load('data/Measurement6.mat'); +m7 = load('data/Measurement7.mat'); +m8 = load('data/Measurement8.mat'); +m9 = load('data/Measurement9.mat'); +m10 = load('data/Measurement10.mat'); ++
2.2 Compute Transfer Functions
+freqs = m3.FFT1_H1_1_13_X_Val; +w = 2*pi*freqs'; + +A = 0.14; +B = 0.14; ++
G = zeros(6,6,length(freqs)); + +% Fx +G(1,1,:) = (m3.FFT1_H1_1_13_Y_ReIm + m3.FFT1_H1_4_13_Y_ReIm + m3.FFT1_H1_7_13_Y_ReIm + m3.FFT1_H1_10_13_Y_ReIm)./4; +G(2,1,:) = (m3.FFT1_H1_2_13_Y_ReIm + m3.FFT1_H1_5_13_Y_ReIm + m3.FFT1_H1_8_13_Y_ReIm + m3.FFT1_H1_11_13_Y_ReIm)./4; +G(3,1,:) = (m3.FFT1_H1_3_13_Y_ReIm + m3.FFT1_H1_6_13_Y_ReIm + m3.FFT1_H1_9_13_Y_ReIm + m3.FFT1_H1_12_13_Y_ReIm)./4; +G(4,1,:) = (m3.FFT1_H1_1_13_Y_ReIm - m3.FFT1_H1_9_13_Y_ReIm )./A; +G(5,1,:) = (m3.FFT1_H1_6_13_Y_ReIm - m3.FFT1_H1_12_13_Y_ReIm)./B; +G(6,1,:) = (m3.FFT1_H1_7_13_Y_ReIm - m3.FFT1_H1_1_13_Y_ReIm )./A; + +% Fy +G(1,2,:) = -(m1.FFT1_H1_2_13_Y_ReIm + m1.FFT1_H1_5_13_Y_ReIm + m1.FFT1_H1_8_13_Y_ReIm + m1.FFT1_H1_11_13_Y_ReIm)./4; +G(2,2,:) = -(m1.FFT1_H1_2_13_Y_ReIm + m1.FFT1_H1_5_13_Y_ReIm + m1.FFT1_H1_8_13_Y_ReIm + m1.FFT1_H1_11_13_Y_ReIm)./4; +G(3,2,:) = -(m1.FFT1_H1_3_13_Y_ReIm + m1.FFT1_H1_6_13_Y_ReIm + m1.FFT1_H1_9_13_Y_ReIm + m1.FFT1_H1_12_13_Y_ReIm)./4; +G(4,2,:) = -(m1.FFT1_H1_1_13_Y_ReIm - m1.FFT1_H1_9_13_Y_ReIm )./A; +G(5,2,:) = -(m1.FFT1_H1_6_13_Y_ReIm - m1.FFT1_H1_12_13_Y_ReIm)./B; +G(6,2,:) = -(m1.FFT1_H1_7_13_Y_ReIm - m1.FFT1_H1_1_13_Y_ReIm )./A; + + +% Fz +G(1,3,:) = -1/2./(1./(m2.FFT1_H1_1_13_Y_ReIm + m2.FFT1_H1_4_13_Y_ReIm + m2.FFT1_H1_7_13_Y_ReIm + m2.FFT1_H1_10_13_Y_ReIm) + ... + 1./(m6.FFT1_H1_1_13_Y_ReIm + m6.FFT1_H1_4_13_Y_ReIm + m6.FFT1_H1_7_13_Y_ReIm + m6.FFT1_H1_10_13_Y_ReIm)); +G(2,3,:) = -1/2./(1./(m2.FFT1_H1_2_13_Y_ReIm + m2.FFT1_H1_5_13_Y_ReIm + m2.FFT1_H1_8_13_Y_ReIm + m2.FFT1_H1_11_13_Y_ReIm) + ... + 1./(m6.FFT1_H1_2_13_Y_ReIm + m6.FFT1_H1_5_13_Y_ReIm + m6.FFT1_H1_8_13_Y_ReIm + m6.FFT1_H1_11_13_Y_ReIm)); +G(3,3,:) = -1/2./(1./(m2.FFT1_H1_3_13_Y_ReIm + m2.FFT1_H1_6_13_Y_ReIm + m2.FFT1_H1_9_13_Y_ReIm + m2.FFT1_H1_12_13_Y_ReIm) + ... + 1./(m6.FFT1_H1_3_13_Y_ReIm + m6.FFT1_H1_6_13_Y_ReIm + m6.FFT1_H1_9_13_Y_ReIm + m6.FFT1_H1_12_13_Y_ReIm)); +G(4,3,:) = -2/A./(1./(m2.FFT1_H1_1_13_Y_ReIm - m2.FFT1_H1_9_13_Y_ReIm) + ... + 1./(m6.FFT1_H1_1_13_Y_ReIm - m6.FFT1_H1_9_13_Y_ReIm)); +G(5,3,:) = -2/B./(1./(m2.FFT1_H1_6_13_Y_ReIm - m2.FFT1_H1_12_13_Y_ReIm) + ... + 1./(m6.FFT1_H1_6_13_Y_ReIm - m6.FFT1_H1_12_13_Y_ReIm)); +G(6,3,:) = -2/A./(1./(m2.FFT1_H1_7_13_Y_ReIm - m2.FFT1_H1_1_13_Y_ReIm) + ... + 1./(m6.FFT1_H1_7_13_Y_ReIm - m6.FFT1_H1_1_13_Y_ReIm)); + +% Mx +G(1,4,:) = 1/A/2./(1./(m2.FFT1_H1_1_13_Y_ReIm + m2.FFT1_H1_4_13_Y_ReIm + m2.FFT1_H1_7_13_Y_ReIm + m2.FFT1_H1_10_13_Y_ReIm) - ... + 1./(m6.FFT1_H1_1_13_Y_ReIm + m6.FFT1_H1_4_13_Y_ReIm + m6.FFT1_H1_7_13_Y_ReIm + m6.FFT1_H1_10_13_Y_ReIm)); +G(2,4,:) = 1/A/2./(1./(m2.FFT1_H1_2_13_Y_ReIm + m2.FFT1_H1_5_13_Y_ReIm + m2.FFT1_H1_8_13_Y_ReIm + m2.FFT1_H1_11_13_Y_ReIm) - ... + 1./(m6.FFT1_H1_2_13_Y_ReIm + m6.FFT1_H1_5_13_Y_ReIm + m6.FFT1_H1_8_13_Y_ReIm + m6.FFT1_H1_11_13_Y_ReIm)); +G(3,4,:) = 1/A/2./(1./(m2.FFT1_H1_3_13_Y_ReIm + m2.FFT1_H1_6_13_Y_ReIm + m2.FFT1_H1_9_13_Y_ReIm + m2.FFT1_H1_12_13_Y_ReIm) - ... + 1./(m6.FFT1_H1_3_13_Y_ReIm + m6.FFT1_H1_6_13_Y_ReIm + m6.FFT1_H1_9_13_Y_ReIm + m6.FFT1_H1_12_13_Y_ReIm)); +G(4,4,:) = 1/A^2*2./(1./(m2.FFT1_H1_1_13_Y_ReIm - m2.FFT1_H1_9_13_Y_ReIm) - ... + 1./(m6.FFT1_H1_1_13_Y_ReIm - m6.FFT1_H1_9_13_Y_ReIm)); +G(5,4,:) = 2/A/B./(1./(m2.FFT1_H1_6_13_Y_ReIm - m2.FFT1_H1_12_13_Y_ReIm) - ... + 1./(m6.FFT1_H1_6_13_Y_ReIm - m6.FFT1_H1_12_13_Y_ReIm)); +G(6,4,:) = 1/A^2*2./(1./(m2.FFT1_H1_7_13_Y_ReIm - m2.FFT1_H1_1_13_Y_ReIm) - ... + 1./(m6.FFT1_H1_7_13_Y_ReIm - m6.FFT1_H1_1_13_Y_ReIm)); + +% My +G(1,5,:) = 1/B/2./(1./(m8.FFT1_H1_1_13_Y_ReIm + m8.FFT1_H1_4_13_Y_ReIm + m8.FFT1_H1_7_13_Y_ReIm + m8.FFT1_H1_10_13_Y_ReIm) - ... + 1./(m4.FFT1_H1_1_13_Y_ReIm + m4.FFT1_H1_4_13_Y_ReIm + m4.FFT1_H1_7_13_Y_ReIm + m4.FFT1_H1_10_13_Y_ReIm)); +G(2,5,:) = 1/B/2./(1./(m8.FFT1_H1_2_13_Y_ReIm + m8.FFT1_H1_5_13_Y_ReIm + m8.FFT1_H1_8_13_Y_ReIm + m8.FFT1_H1_11_13_Y_ReIm) - ... + 1./(m4.FFT1_H1_2_13_Y_ReIm + m4.FFT1_H1_5_13_Y_ReIm + m4.FFT1_H1_8_13_Y_ReIm + m4.FFT1_H1_11_13_Y_ReIm)); +G(3,5,:) = 1/B/2./(1./(m8.FFT1_H1_3_13_Y_ReIm + m8.FFT1_H1_6_13_Y_ReIm + m8.FFT1_H1_9_13_Y_ReIm + m8.FFT1_H1_12_13_Y_ReIm) - ... + 1./(m4.FFT1_H1_3_13_Y_ReIm + m4.FFT1_H1_6_13_Y_ReIm + m4.FFT1_H1_9_13_Y_ReIm + m4.FFT1_H1_12_13_Y_ReIm)); +G(4,5,:) = 2/B/A./(1./(m8.FFT1_H1_1_13_Y_ReIm - m8.FFT1_H1_9_13_Y_ReIm) - ... + 1./(m4.FFT1_H1_1_13_Y_ReIm - m4.FFT1_H1_9_13_Y_ReIm)); +G(5,5,:) = 1/B^2*2./(1./(m8.FFT1_H1_6_13_Y_ReIm - m8.FFT1_H1_12_13_Y_ReIm) - ... + 1./(m4.FFT1_H1_6_13_Y_ReIm - m4.FFT1_H1_12_13_Y_ReIm)); +G(6,5,:) = 2/B/A./(1./(m8.FFT1_H1_7_13_Y_ReIm - m8.FFT1_H1_1_13_Y_ReIm) - ... + 1./(m4.FFT1_H1_7_13_Y_ReIm - m4.FFT1_H1_1_13_Y_ReIm)); + +% Mz +G(1,6,:) = 1/A/2./(1./(m10.FFT1_H1_1_13_Y_ReIm + m10.FFT1_H1_4_13_Y_ReIm + m10.FFT1_H1_7_13_Y_ReIm + m10.FFT1_H1_10_13_Y_ReIm) - ... + 1./(m9.FFT1_H1_1_13_Y_ReIm + m9.FFT1_H1_4_13_Y_ReIm + m9.FFT1_H1_7_13_Y_ReIm + m9.FFT1_H1_10_13_Y_ReIm)); +G(2,6,:) = 1/A/2./(1./(m10.FFT1_H1_2_13_Y_ReIm + m10.FFT1_H1_5_13_Y_ReIm + m10.FFT1_H1_8_13_Y_ReIm + m10.FFT1_H1_11_13_Y_ReIm) - ... + 1./(m9.FFT1_H1_2_13_Y_ReIm + m9.FFT1_H1_5_13_Y_ReIm + m9.FFT1_H1_8_13_Y_ReIm + m9.FFT1_H1_11_13_Y_ReIm)); +G(3,6,:) = 1/A/2./(1./(m10.FFT1_H1_3_13_Y_ReIm + m10.FFT1_H1_6_13_Y_ReIm + m10.FFT1_H1_9_13_Y_ReIm + m10.FFT1_H1_12_13_Y_ReIm) - ... + 1./(m9.FFT1_H1_3_13_Y_ReIm + m9.FFT1_H1_6_13_Y_ReIm + m9.FFT1_H1_9_13_Y_ReIm + m9.FFT1_H1_12_13_Y_ReIm)); +G(4,6,:) = 1/A^2*2./(1./(m10.FFT1_H1_1_13_Y_ReIm - m10.FFT1_H1_9_13_Y_ReIm) - ... + 1./(m9.FFT1_H1_1_13_Y_ReIm - m9.FFT1_H1_9_13_Y_ReIm)); +G(5,6,:) = 2*A/B./(1./(m10.FFT1_H1_6_13_Y_ReIm - m10.FFT1_H1_12_13_Y_ReIm) - ... + 1./(m9.FFT1_H1_6_13_Y_ReIm - m9.FFT1_H1_12_13_Y_ReIm)); +G(6,6,:) = 1/A^2*2./(1./(m10.FFT1_H1_7_13_Y_ReIm - m10.FFT1_H1_1_13_Y_ReIm) - ... + 1./(m9.FFT1_H1_7_13_Y_ReIm - m9.FFT1_H1_1_13_Y_ReIm)); ++
2.3 Diagonal Dynamics
+figure; +ax1 = subplot(2,1,1); +hold on; +plot(freqs, abs(squeeze(G(1,1,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(2,2,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(3,3,:))./(-w.^2)), '.') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-9, 2e-6]); + +ax2 = subplot(2,1,2); +hold on; +plot(freqs, 180/pi*angle(squeeze(G(1,1,:))./(-w.^2)), '.', 'DisplayName', '$D_x/F_x$') +plot(freqs, 180/pi*angle(squeeze(G(2,2,:))./(-w.^2)), '.', 'DisplayName', '$D_y/F_y$') +plot(freqs, 180/pi*angle(squeeze(G(3,3,:))./(-w.^2)), '.', 'DisplayName', '$D_z/F_z$') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Freqency [Hz]'); ylabel('Phase [deg]'); +ylim([-180, 180]); +yticks([-180, -90, 0, 90, 180]); +legend('location', 'southwest'); + +linkaxes([ax1,ax2],'x'); +xlim([30, 300]); ++
+
Figure 1: Dynamics from Forces to Translations
+figure; +ax1 = subplot(2,1,1); +hold on; +plot(freqs, abs(squeeze(G(4,4,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(5,5,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(6,6,:))./(-w.^2)), '.') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]); +ylim([1e-9, 2e-6]); + +ax2 = subplot(2,1,2); +hold on; +plot(freqs, 180/pi*angle(squeeze(G(4,4,:))./(-w.^2)), '.', 'DisplayName', '$R_x/M_x$') +plot(freqs, 180/pi*angle(squeeze(G(5,5,:))./(-w.^2)), '.', 'DisplayName', '$R_y/M_y$') +plot(freqs, 180/pi*angle(squeeze(G(6,6,:))./(-w.^2)), '.', 'DisplayName', '$R_z/M_z$') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Freqency [Hz]'); ylabel('Phase [deg]'); +ylim([-180, 180]); +yticks([-180, -90, 0, 90, 180]); +legend('location', 'southwest'); + +linkaxes([ax1,ax2],'x'); +xlim([30, 300]); ++
+
Figure 2: Dynamics from Torques to Rotations
++ | Stiffness | +Unit | +
---|---|---|
\(K_x\) | +1e7 | +[N/m] | +
\(K_y\) | +1e7 | +[N/m] | +
\(K_z\) | +2e8 | +[N/m] | +
\(K_{R_x}\) | +? | +[Nm/rad] | +
\(K_{R_y}\) | +1.8e7 | +[Nm/rad] | +
\(K_{R_z}\) | +1e7 | +[Nm/rad] | +
2.4 Compare with Model
+load('./mat/model.mat', 'Gm'); ++
figure; +ax1 = subplot(2,1,1); +hold on; +plot(freqs, abs(squeeze(G(1,1,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(2,2,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(3,3,:))./(-w.^2)), '.') +set(gca,'ColorOrderIndex',1); +plot(freqs, abs(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-') +plot(freqs, abs(squeeze(freqresp(Gm(2,2,:), freqs, 'Hz'))), '-') +plot(freqs, abs(squeeze(freqresp(Gm(3,3,:), freqs, 'Hz'))), '-') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-9, 2e-6]); + +ax2 = subplot(2,1,2); +hold on; +plot(freqs, 180/pi*angle(squeeze(G(1,1,:))./(-w.^2)), '.', 'DisplayName', '$D_x/F_x$') +plot(freqs, 180/pi*angle(squeeze(G(2,2,:))./(-w.^2)), '.', 'DisplayName', '$D_y/F_y$') +plot(freqs, 180/pi*angle(squeeze(G(3,3,:))./(-w.^2)), '.', 'DisplayName', '$D_z/F_z$') +set(gca,'ColorOrderIndex',1); +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(2,2,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(3,3,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Freqency [Hz]'); ylabel('Phase [deg]'); +ylim([-180, 180]); +yticks([-180, -90, 0, 90, 180]); +legend('location', 'southwest'); + +linkaxes([ax1,ax2],'x'); +xlim([30, 300]); ++
+
Figure 3: Dynamics from Forces to Translations
+figure; +ax1 = subplot(2,1,1); +hold on; +plot(freqs, abs(squeeze(G(4,4,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(5,5,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(6,6,:))./(-w.^2)), '.') +set(gca,'ColorOrderIndex',1); +plot(freqs, abs(squeeze(freqresp(Gm(4,4,:), freqs, 'Hz'))), '-') +plot(freqs, abs(squeeze(freqresp(Gm(5,5,:), freqs, 'Hz'))), '-') +plot(freqs, abs(squeeze(freqresp(Gm(6,6,:), freqs, 'Hz'))), '-') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]); +% ylim([1e-9, 2e-6]); + +ax2 = subplot(2,1,2); +hold on; +plot(freqs, 180/pi*angle(squeeze(G(4,4,:))./(-w.^2)), '.', 'DisplayName', '$R_x/M_x$') +plot(freqs, 180/pi*angle(squeeze(G(5,5,:))./(-w.^2)), '.', 'DisplayName', '$R_y/M_y$') +plot(freqs, 180/pi*angle(squeeze(G(6,6,:))./(-w.^2)), '.', 'DisplayName', '$R_z/M_z$') +set(gca,'ColorOrderIndex',1); +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(4,4,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(5,5,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(6,6,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Freqency [Hz]'); ylabel('Phase [deg]'); +ylim([-180, 180]); +yticks([-180, -90, 0, 90, 180]); +legend('location', 'southwest'); + +linkaxes([ax1,ax2],'x'); +xlim([30, 300]); ++
+
Figure 4: Dynamics from Torques to Rotations
++ | Stiffness | +Unit | +
---|---|---|
\(K_x\) | +1e7 | +[N/m] | +
\(K_y\) | +1e7 | +[N/m] | +
\(K_z\) | +2e8 | +[N/m] | +
\(K_{R_x}\) | +5e7 | +[Nm/rad] | +
\(K_{R_y}\) | +3e7 | +[Nm/rad] | +
\(K_{R_z}\) | +2e7 | +[Nm/rad] | +
2.5 Coupling Dynamics
+figure; +ax1 = subplot(2,1,1); +hold on; +plot(freqs, abs(squeeze(G(1,1,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(2,1,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(3,1,:))./(-w.^2)), '.') +set(gca,'ColorOrderIndex',1); +plot(freqs, abs(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-') +plot(freqs, abs(squeeze(freqresp(Gm(2,1,:), freqs, 'Hz'))), '-') +plot(freqs, abs(squeeze(freqresp(Gm(3,1,:), freqs, 'Hz'))), '-') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-9, 2e-6]); + +ax2 = subplot(2,1,2); +hold on; +plot(freqs, 180/pi*angle(squeeze(G(1,1,:))./(-w.^2)), '.', 'DisplayName', '$D_x/F_x$') +plot(freqs, 180/pi*angle(squeeze(G(2,1,:))./(-w.^2)), '.', 'DisplayName', '$D_y/F_x$') +plot(freqs, 180/pi*angle(squeeze(G(3,1,:))./(-w.^2)), '.', 'DisplayName', '$D_z/F_x$') +set(gca,'ColorOrderIndex',1); +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(2,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(3,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Freqency [Hz]'); ylabel('Phase [deg]'); +ylim([-180, 180]); +yticks([-180, -90, 0, 90, 180]); +legend('location', 'southwest'); + +linkaxes([ax1,ax2],'x'); +xlim([30, 300]); ++
figure; +ax1 = subplot(2,1,1); +hold on; +plot(freqs, abs(squeeze(G(5,1,:))./(-w.^2)), '.') +plot(freqs, abs(squeeze(G(4,2,:))./(-w.^2)), '.') +set(gca,'ColorOrderIndex',1); +plot(freqs, abs(squeeze(freqresp(Gm(5,1,:), freqs, 'Hz'))), '-') +plot(freqs, abs(squeeze(freqresp(Gm(4,2,:), freqs, 'Hz'))), '-') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-9, 2e-6]); + +ax2 = subplot(2,1,2); +hold on; +plot(freqs, 180/pi*angle(squeeze(G(5,1,:))./(-w.^2)), '.', 'DisplayName', '$R_y/F_x$') +plot(freqs, 180/pi*angle(squeeze(G(4,2,:))./(-w.^2)), '.', 'DisplayName', '$R_x/F_y$') +set(gca,'ColorOrderIndex',1); +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(5,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(4,2,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off') +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Freqency [Hz]'); ylabel('Phase [deg]'); +ylim([-180, 180]); +yticks([-180, -90, 0, 90, 180]); +legend('location', 'southwest'); + +linkaxes([ax1,ax2],'x'); +xlim([30, 300]); ++