diff --git a/figs/modal_local_to_global_coordinates.pdf b/figs/modal_local_to_global_coordinates.pdf index d0a0f47..25a2c9a 100644 Binary files a/figs/modal_local_to_global_coordinates.pdf and b/figs/modal_local_to_global_coordinates.pdf differ diff --git a/figs/modal_local_to_global_coordinates.png b/figs/modal_local_to_global_coordinates.png index 0ac878e..5d7ce86 100644 Binary files a/figs/modal_local_to_global_coordinates.png and b/figs/modal_local_to_global_coordinates.png differ diff --git a/figs/modal_local_to_global_coordinates.svg b/figs/modal_local_to_global_coordinates.svg index 8e06677..1a59a97 100644 --- a/figs/modal_local_to_global_coordinates.svg +++ b/figs/modal_local_to_global_coordinates.svg @@ -1,199 +1,187 @@ - + + - + - - - - + + - + - + - + - + - + - - - - + + - + - + - - - - + - - - - + - + - + - + - - - - + + + + + + + + + + + + + + - - - - - - - - - - - + - + - + + + + + + - - - - - - + - + - + - + - + - + - + + + + + + - - - - - - + - + - + - + - + - + - + + + + + + - - - - - - + - + - + - + - + - + - + + + + + + - - - - - - + - + - + - + - + - + - - - - + diff --git a/matlab/mat/acc_pos.txt b/matlab/mat/acc_pos.txt new file mode 100644 index 0000000..cff83e4 --- /dev/null +++ b/matlab/mat/acc_pos.txt @@ -0,0 +1,23 @@ + 23 1.5500e-001 -9.0000e-002 -5.9400e-001 + 22 0.0000e+000 1.8000e-001 -5.9400e-001 + 21 -1.5500e-001 -9.0000e-002 -5.9400e-001 + 20 8.6490e-001 -5.0600e-001 -9.5060e-001 + 19 8.7500e-001 7.9900e-001 -9.5060e-001 + 18 -7.3500e-001 8.1400e-001 -9.5060e-001 + 17 -7.3000e-001 -5.2600e-001 -9.5060e-001 + 16 2.9500e-001 -4.8100e-001 -7.8560e-001 + 15 4.5000e-001 5.3400e-001 -7.8560e-001 + 14 -4.8000e-001 5.3400e-001 -7.8560e-001 + 13 -3.2000e-001 -4.4600e-001 -7.8560e-001 + 12 4.7500e-001 -4.1900e-001 -4.2730e-001 + 11 4.7500e-001 4.2400e-001 -4.2730e-001 + 10 -4.6500e-001 4.0700e-001 -4.2730e-001 + 9 -4.7500e-001 -4.1400e-001 -4.2730e-001 + 8 3.8000e-001 -3.0000e-001 -4.1680e-001 + 7 4.2000e-001 2.8000e-001 -4.1680e-001 + 6 -4.2000e-001 2.8000e-001 -4.1680e-001 + 5 -3.8500e-001 -3.0000e-001 -4.1680e-001 + 4 6.4000e-002 -6.4000e-002 -2.7000e-001 + 3 6.4000e-002 6.4000e-002 -2.7000e-001 + 2 -6.4000e-002 6.4000e-002 -2.7000e-001 + 1 -6.4000e-002 -6.4000e-002 -2.7000e-001 diff --git a/matlab/mat/frf_com.mat b/matlab/mat/frf_com.mat new file mode 100644 index 0000000..fa4a3df Binary files /dev/null and b/matlab/mat/frf_com.mat differ diff --git a/matlab/mat/frf_matrix.mat b/matlab/mat/frf_matrix.mat new file mode 100644 index 0000000..81194ab Binary files /dev/null and b/matlab/mat/frf_matrix.mat differ diff --git a/matlab/mat/geometry.mat b/matlab/mat/geometry.mat new file mode 100644 index 0000000..3d1d74d Binary files /dev/null and b/matlab/mat/geometry.mat differ diff --git a/matlab/mat/meas_microstation_frf.mat b/matlab/mat/meas_microstation_frf.mat new file mode 100644 index 0000000..077f317 Binary files /dev/null and b/matlab/mat/meas_microstation_frf.mat differ diff --git a/matlab/mat/meas_raw_1.mat b/matlab/mat/meas_raw_1.mat new file mode 100644 index 0000000..2f090e5 Binary files /dev/null and b/matlab/mat/meas_raw_1.mat differ diff --git a/matlab/mat/modal_microstation_compliance.mat b/matlab/mat/modal_microstation_compliance.mat new file mode 100644 index 0000000..d925a7d Binary files /dev/null and b/matlab/mat/modal_microstation_compliance.mat differ diff --git a/matlab/mat/mode_damps.txt b/matlab/mat/mode_damps.txt new file mode 100644 index 0000000..3d1fb15 --- /dev/null +++ b/matlab/mat/mode_damps.txt @@ -0,0 +1,16 @@ +12.20318 +11.66888 +6.19561 +2.79104 +2.76253 +4.34928 +1.25546 +3.65470 +2.94088 +3.19084 +1.55526 +3.13166 +2.76141 +1.34304 +2.43201 +1.38400 diff --git a/matlab/mat/mode_freqs.txt b/matlab/mat/mode_freqs.txt new file mode 100644 index 0000000..04c3ff0 --- /dev/null +++ b/matlab/mat/mode_freqs.txt @@ -0,0 +1,16 @@ +11.86509 +18.55747 +37.82163 +39.07850 +56.31944 +69.78452 +72.49325 +84.83446 +91.26350 +105.47266 +106.57165 +112.67669 +124.20538 +145.30034 +150.52113 +165.42632 diff --git a/matlab/mat/mode_modal_a.txt b/matlab/mat/mode_modal_a.txt new file mode 100644 index 0000000..ef12707 --- /dev/null +++ b/matlab/mat/mode_modal_a.txt @@ -0,0 +1,16 @@ +4.13559e+003 +6.22828e+003 +2.76278e+002 +1.74197e+004 +-1.32270e+004 +2.17346e+004 +-2.48397e+005 -1.60998e+005 +-4.23967e+004 +7.06852e+004 +-7.36964e+003 +4.57024e+004 +1.37806e+005 +3.00336e+005 +-1.31109e+004 +2.81759e+004 +5.59259e+003 -4.27543e+004 +-5.28869e+004 +6.38436e+003 +3.71578e+004 +1.57745e+004 +-4.24659e+004 +7.90956e+003 +-3.57355e+004 +1.13161e+005 +5.24764e+004 -1.45211e+005 +1.97228e+005 +2.51758e+005 +-3.00273e+005 +3.27201e+005 diff --git a/matlab/mat/mode_modal_b.txt b/matlab/mat/mode_modal_b.txt new file mode 100644 index 0000000..03be9d7 --- /dev/null +++ b/matlab/mat/mode_modal_b.txt @@ -0,0 +1,16 @@ +4.98475e+005 -2.49344e+005 +2.02102e+006 +2.05017e+005 +4.96035e+006 +3.45724e+006 +-4.12180e+007 +5.98638e+007 +2.45891e+007 +1.56880e+007 +1.98796e+007 +4.09986e+006 +1.37577e+008 -6.10466e+007 +1.47532e+007 +7.53272e+006 +-2.44115e+007 -3.92655e+006 +3.11045e+006 +3.51656e+007 +1.09485e+007 -2.47140e+007 +4.65546e+006 +3.02251e+007 +8.75076e+007 +3.03162e+007 +-1.31915e+008 -4.96844e+007 +2.42567e+008 -1.80683e+008 +3.35742e+008 +3.16782e+008 diff --git a/matlab/mat/mode_shapes.txt b/matlab/mat/mode_shapes.txt new file mode 100644 index 0000000..4d05cd5 --- /dev/null +++ b/matlab/mat/mode_shapes.txt @@ -0,0 +1,1104 @@ + 1X+: -1.08546e-001 3.17769e-002 + 1Y+: 2.32355e-001 1.71539e-003 + 1Z+: -1.98455e-002 5.79676e-003 + 2X+: -8.59861e-002 2.84442e-002 + 2Y+: 2.40594e-001 0.00000e+000 + 2Z+: -7.65144e-003 4.22952e-003 + 3Y+: 2.14274e-001 7.53040e-003 + 3X-: 1.22352e-001 -2.90328e-002 + 3Z+: -2.12103e-002 -3.81368e-003 + 4X+: -1.17382e-001 1.89854e-002 + 4Y+: 2.24690e-001 1.94668e-002 + 4Z+: -2.70403e-002 -4.18417e-003 + 5X+: -1.04437e-001 2.30893e-002 + 5Y+: 2.09539e-001 2.01603e-002 + 5Z+: -2.56270e-002 2.23643e-002 + 6X+: -9.62026e-002 2.72929e-002 + 6Y+: 2.17364e-001 2.15515e-002 + 6Z+: 3.61101e-002 2.29997e-002 + 7X+: -9.41423e-002 2.87141e-002 + 7Y+: 2.05143e-001 1.36152e-002 + 7Z+: -6.52970e-003 -2.76474e-002 + 8X+: -1.02225e-001 2.59523e-002 + 8Y+: 2.05116e-001 1.40823e-002 + 8Z+: -6.91110e-002 -2.37403e-002 + 9X+: -8.01724e-002 2.72829e-003 + 9Y+: 2.15543e-001 2.03248e-002 + 9Z+: -1.67447e-002 8.04276e-004 + 10X+: -8.29898e-002 1.52824e-002 + 10Y+: 2.34922e-001 -1.40934e-002 + 10Z+: 8.34758e-002 -1.38646e-002 + 11X+: -8.67259e-002 1.55585e-002 + 11Y+: 2.19097e-001 -1.70044e-002 + 11Z+: -7.06454e-003 2.30430e-003 + 12X+: -9.18595e-002 1.52967e-002 + 12Y+: 2.15129e-001 -1.84047e-002 + 12Z+: -1.27125e-001 1.89453e-002 + 13X+: -4.50695e-002 7.43610e-003 + 13Y+: 5.40642e-002 -8.01828e-003 + 13Z+: -4.26374e-002 6.67368e-003 + 14X+: -4.08016e-002 6.71876e-003 + 14Y+: 5.49242e-002 -8.46339e-003 + 14Z+: 1.03491e-001 -1.68019e-002 + 15X+: -4.44372e-002 7.68144e-003 + 15Y+: 5.39248e-002 -8.24455e-003 + 15Z+: 6.45151e-003 -1.10695e-003 + 16X+: -4.34337e-002 5.40825e-003 + 16Y+: 5.25606e-002 -6.96940e-003 + 16Z+: -1.05233e-001 1.27451e-002 + 17X+: -2.76765e-002 3.81982e-003 + 17Y+: 3.14884e-002 -3.86096e-003 + 17Z+: -7.49766e-003 4.01011e-004 + 18X+: -3.10673e-002 4.53367e-003 + 18Y+: 2.89421e-002 -3.35316e-003 + 18Z+: 1.55890e-001 -2.11117e-002 + 19X+: -2.77824e-002 3.00599e-003 + 19Y+: 3.17634e-002 -2.70185e-003 + 19Z+: -5.08778e-003 1.03163e-003 + 20X+: -2.99195e-002 2.88369e-003 + 20Y+: 3.49182e-002 -3.12391e-003 + 20Z+: -1.71989e-001 1.67426e-002 + 21X+: -1.03568e-001 4.64051e-002 + 21Y+: 2.02906e-001 2.61689e-003 + 21Z+: -2.04247e-002 1.10966e-002 + 22X+: -1.18929e-001 4.07824e-002 + 22Y+: 1.86194e-001 8.38129e-003 + 22Z+: 2.82961e-003 -8.08125e-004 + 23X+: -1.12275e-001 4.64257e-002 + 23Z+: -3.07680e-002 -7.40036e-003 + 23Y-: -1.80136e-001 -1.20470e-002 + 1X+: 8.99532e-002 -6.39942e-002 + 1Y+: 1.90735e-001 -1.97512e-003 + 1Z+: 1.08001e-002 -9.95418e-003 + 2X+: 1.02477e-001 -6.55848e-002 + 2Y+: 1.88782e-001 1.39373e-003 + 2Z+: -9.68114e-003 -1.07147e-002 + 3Y+: 1.98778e-001 -5.94582e-003 + 3X-: -7.61052e-002 6.70515e-002 + 3Z+: 1.10941e-002 1.04404e-002 + 4X+: 9.58826e-002 -6.04134e-002 + 4Y+: 1.79461e-001 -6.47912e-004 + 4Z+: 3.08572e-002 1.61658e-002 + 5X+: 8.17955e-002 -8.93849e-002 + 5Y+: 1.85477e-001 -4.61646e-003 + 5Z+: -2.85197e-003 -5.87847e-002 + 6X+: 6.31579e-002 -8.46404e-002 + 6Y+: 1.80143e-001 -1.17512e-003 + 6Z+: -8.00421e-002 -7.27636e-002 + 7X+: 6.76102e-002 -8.27974e-002 + 7Y+: 2.02699e-001 -4.99004e-003 + 7Z+: 3.75177e-002 7.34482e-002 + 8X+: 7.55386e-002 -8.94208e-002 + 8Y+: 2.09231e-001 -8.59918e-003 + 8Z+: 1.07635e-001 7.16042e-002 + 9X+: 9.45178e-002 -1.76685e-002 + 9Y+: 1.85584e-001 -6.62536e-005 + 9Z+: 8.56418e-003 7.83088e-003 + 10X+: 6.77204e-002 -2.00053e-002 + 10Y+: 2.41360e-001 5.73004e-003 + 10Z+: -6.53429e-002 1.33667e-002 + 11X+: 6.63351e-002 -1.87537e-002 + 11Y+: 2.67006e-001 0.00000e+000 + 11Z+: 2.18045e-002 -3.66007e-003 + 12X+: 8.98770e-002 -2.74414e-002 + 12Y+: 2.43015e-001 1.00441e-003 + 12Z+: 1.10086e-001 -1.83708e-002 + 13X+: 3.63645e-002 -7.96076e-003 + 13Y+: -3.87631e-002 7.51673e-003 + 13Z+: 2.97385e-002 -5.13900e-003 + 14X+: 3.32552e-002 -6.15882e-003 + 14Y+: -3.87476e-002 7.90477e-003 + 14Z+: -8.11440e-002 1.39067e-002 + 15X+: 3.62975e-002 -6.76965e-003 + 15Y+: -3.74994e-002 6.94794e-003 + 15Z+: -3.21479e-003 8.72602e-004 + 16X+: 4.09615e-002 -5.78344e-003 + 16Y+: -3.68422e-002 4.24075e-003 + 16Z+: 8.99397e-002 -9.50995e-003 + 17X+: 2.46291e-002 -4.03842e-003 + 17Y+: -2.21845e-002 3.94794e-003 + 17Z+: 2.82600e-003 -8.03882e-004 + 18X+: 2.55173e-002 -3.84566e-003 + 18Y+: -2.00758e-002 3.61857e-003 + 18Z+: -1.30030e-001 1.46461e-002 + 19X+: 2.42542e-002 -2.91079e-003 + 19Y+: -2.21049e-002 2.48854e-003 + 19Z+: 8.42204e-003 -7.36739e-004 + 20X+: 2.70044e-002 -4.23420e-003 + 20Y+: -2.49929e-002 2.57167e-003 + 20Z+: 1.44010e-001 -1.51288e-002 + 21X+: 3.56388e-002 -1.24433e-001 + 21Y+: 2.37199e-001 -4.25349e-003 + 21Z+: -1.33014e-003 -2.53763e-002 + 22X+: 8.20041e-003 -1.33623e-001 + 22Y+: 2.35787e-001 -1.25671e-002 + 22Z+: -1.26858e-002 -9.26608e-004 + 23X+: 2.91786e-002 -1.27792e-001 + 23Z+: 4.90236e-002 2.87853e-002 + 23Y-: -2.36748e-001 7.58422e-003 + 1X+: 1.46029e-001 -5.32456e-002 + 1Y+: 2.31658e-002 2.40228e-002 + 1Z+: -5.76447e-002 4.47782e-003 + 2X+: 1.58726e-001 2.32339e-002 + 2Y+: 1.48261e-002 2.38770e-002 + 2Z+: -4.56819e-002 -3.15978e-003 + 3Y+: 2.94828e-002 -4.86371e-002 + 3X-: -1.58458e-001 -1.91776e-002 + 3Z+: -5.39197e-003 3.43743e-003 + 4X+: 1.48816e-001 -5.09142e-002 + 4Y+: 1.12243e-002 -5.40062e-002 + 4Z+: -1.48955e-002 8.04857e-003 + 5X+: 2.59130e-001 -4.02239e-002 + 5Y+: -2.12966e-001 -1.48510e-002 + 5Z+: -1.42798e-001 -6.55661e-003 + 6X+: -6.65552e-002 -1.34759e-002 + 6Y+: -2.47313e-001 5.91667e-003 + 6Z+: -1.08526e-001 -1.58228e-002 + 7X+: -6.70368e-002 -1.19222e-002 + 7Y+: 2.41494e-001 -3.48228e-002 + 7Z+: 1.06772e-001 9.21527e-003 + 8X+: 2.43323e-001 -3.50546e-002 + 8Y+: 2.50448e-001 -3.70308e-002 + 8Z+: 3.74803e-002 2.20963e-002 + 9X+: 2.65722e-001 -1.55752e-002 + 9Y+: -2.48890e-001 2.73819e-003 + 9Z+: -1.95495e-001 1.51976e-002 + 10X+: -2.11639e-002 6.38337e-003 + 10Y+: -2.27771e-001 -2.92253e-002 + 10Z+: 1.80055e-002 -1.02997e-002 + 11X+: -3.76323e-002 8.50309e-003 + 11Y+: 2.56729e-001 -4.67654e-002 + 11Z+: -2.89527e-003 4.77540e-004 + 12X+: 2.72331e-001 0.00000e+000 + 12Y+: 2.31656e-001 -4.82418e-002 + 12Z+: 9.71614e-002 1.25622e-002 + 13X+: 1.96570e-002 6.11732e-003 + 13Y+: 9.37216e-003 -5.52246e-003 + 13Z+: -1.85042e-002 6.83172e-003 + 14X+: -1.10824e-002 6.52827e-003 + 14Y+: 8.20814e-003 -5.87258e-003 + 14Z+: 2.43039e-002 -1.39849e-002 + 15X+: -1.21461e-002 6.82985e-003 + 15Y+: 2.00331e-002 -6.54252e-003 + 15Z+: 3.37046e-003 -3.12666e-004 + 16X+: 9.47753e-003 4.74980e-003 + 16Y+: 1.95143e-002 -7.09955e-003 + 16Z+: -2.45715e-002 1.10352e-002 + 17X+: 7.18255e-003 3.56126e-003 + 17Y+: -8.95214e-004 -2.61407e-003 + 17Z+: -7.80540e-003 -9.45696e-004 + 18X+: -1.14673e-002 4.76072e-003 + 18Y+: -2.65095e-003 -2.26438e-003 + 18Z+: 3.57775e-002 -2.01003e-002 + 19X+: -1.31505e-002 4.10990e-003 + 19Y+: 2.13544e-002 -3.51970e-003 + 19Z+: 1.91682e-003 1.62836e-003 + 20X+: 6.44632e-003 2.89329e-003 + 20Y+: 2.05589e-002 -4.03278e-003 + 20Z+: -3.75977e-002 1.86207e-002 + 21X+: 4.37050e-002 -6.07269e-002 + 21Y+: -9.48720e-003 4.20769e-002 + 21Z+: -7.06704e-002 -1.13711e-003 + 22X+: 3.78907e-002 4.66504e-002 + 22Y+: 2.89810e-004 -1.13071e-002 + 22Z+: -1.58196e-002 -2.03697e-003 + 23X+: 4.43357e-002 -4.83889e-002 + 23Z+: -3.88844e-004 1.06251e-002 + 23Y-: -5.17804e-003 8.54490e-002 + 1X+: 8.46831e-002 -2.36474e-002 + 1Y+: 9.26667e-002 4.39820e-002 + 1Z+: -4.93227e-002 2.46086e-002 + 2X+: 7.65837e-002 -1.51239e-002 + 2Y+: 8.86911e-002 4.58629e-002 + 2Z+: -3.06960e-002 1.50479e-002 + 3Y+: 1.15687e-001 3.63321e-002 + 3X-: -6.64763e-002 2.16982e-002 + 3Z+: -2.63345e-003 3.02665e-004 + 4X+: 1.21478e-001 -9.59173e-003 + 4Y+: 9.93529e-002 2.46933e-002 + 4Z+: -1.67360e-002 1.72507e-006 + 5X+: 1.99012e-001 -1.97475e-003 + 5Y+: 5.23842e-003 1.29293e-001 + 5Z+: -1.20465e-001 7.06420e-002 + 6X+: -2.56630e-002 3.67522e-002 + 6Y+: -9.20629e-002 6.54751e-002 + 6Z+: -7.78058e-002 5.96364e-002 + 7X+: -3.16320e-002 3.62800e-002 + 7Y+: 2.47748e-001 4.30430e-003 + 7Z+: 9.17836e-002 -6.79375e-002 + 8X+: 1.88796e-001 -1.40166e-002 + 8Y+: 2.58075e-001 5.69130e-003 + 8Z+: 2.92564e-002 -5.07220e-002 + 9X+: 2.05328e-001 -4.51423e-002 + 9Y+: -1.02487e-001 8.87540e-002 + 9Z+: -1.55265e-001 4.10727e-002 + 10X+: -2.06738e-002 -1.75834e-003 + 10Y+: -1.22728e-001 1.56460e-001 + 10Z+: 3.45367e-002 3.02731e-003 + 11X+: -4.27323e-002 2.52209e-003 + 11Y+: 4.07260e-001 0.00000e+000 + 11Z+: 1.42323e-002 6.94075e-003 + 12X+: 3.10761e-001 -9.14529e-002 + 12Y+: 3.66575e-001 9.44415e-003 + 12Z+: 7.81360e-002 -2.64932e-002 + 13X+: 1.62876e-002 -2.38894e-002 + 13Y+: 1.73230e-002 4.18537e-003 + 13Z+: -2.65976e-002 3.05748e-003 + 14X+: -2.40635e-002 3.98732e-003 + 14Y+: 1.66553e-002 6.27837e-003 + 14Z+: 4.53332e-002 -1.56496e-003 + 15X+: -2.45882e-002 3.29376e-003 + 15Y+: 3.34826e-002 -5.09397e-003 + 15Z+: 3.05009e-003 1.33122e-003 + 16X+: 1.75993e-003 -8.77366e-003 + 16Y+: 3.18584e-002 -3.42012e-003 + 16Z+: -4.71194e-002 2.18902e-002 + 17X+: 2.95472e-003 -1.02794e-002 + 17Y+: 1.73948e-003 8.38146e-003 + 17Z+: -6.21917e-003 6.68887e-003 + 18X+: -2.16051e-002 6.81737e-003 + 18Y+: -6.70036e-004 9.82946e-003 + 18Z+: 6.78702e-002 -1.49676e-002 + 19X+: -2.52318e-002 5.38451e-003 + 19Y+: 3.64511e-002 -8.89231e-003 + 19Z+: 1.61348e-003 -2.34581e-004 + 20X+: 7.47674e-003 -8.34485e-003 + 20Y+: 3.55448e-002 -7.65228e-003 + 20Z+: -7.29951e-002 1.22077e-002 + 21X+: 8.08743e-002 2.51027e-002 + 21Y+: 3.78977e-002 6.36275e-002 + 21Z+: -1.32612e-001 4.48425e-002 + 22X+: 2.29420e-002 1.73997e-002 + 22Y+: 7.09252e-002 6.47999e-002 + 22Z+: -2.58165e-002 8.29711e-003 + 23X+: 7.34997e-002 2.38535e-002 + 23Z+: -9.81446e-003 -7.56619e-003 + 23Y-: -1.04901e-001 -6.60592e-002 + 1X+: -4.69197e-002 4.63110e-002 + 1Y+: -1.44335e-001 -4.05830e-002 + 1Z+: 2.66047e-001 -4.35397e-002 + 2X+: -5.48364e-002 5.70503e-002 + 2Y+: -1.40164e-001 -4.73927e-002 + 2Z+: 2.12136e-001 -3.10652e-002 + 3Y+: -1.45101e-001 -3.97692e-002 + 3X-: 3.15513e-002 -6.52341e-002 + 3Z+: 2.32391e-001 1.31207e-002 + 4X+: -4.34810e-002 4.45819e-002 + 4Y+: -1.61352e-001 -3.26637e-002 + 4Z+: 2.63791e-001 -6.71364e-003 + 5X+: 3.58959e-002 2.33214e-002 + 5Y+: -1.35708e-001 -6.88477e-004 + 5Z+: 3.30195e-001 6.93889e-018 + 6X+: -4.59652e-002 2.73484e-002 + 6Y+: -1.14434e-001 -2.00573e-002 + 6Z+: 1.56195e-001 6.97473e-004 + 7X+: -6.56400e-002 2.52917e-002 + 7Y+: 2.26050e-002 -3.23343e-002 + 7Z+: 8.06456e-002 -2.54706e-002 + 8X+: 4.79983e-003 2.05929e-002 + 8Y+: 3.81746e-002 -3.10255e-002 + 8Z+: 2.26700e-001 -1.99757e-002 + 9X+: 2.70607e-002 5.78711e-003 + 9Y+: -9.54062e-002 -1.99640e-002 + 9Z+: 2.12695e-001 -1.12544e-002 + 10X+: -7.86076e-002 2.04186e-002 + 10Y+: -1.03458e-001 -9.07885e-002 + 10Z+: 8.93200e-002 -1.21495e-002 + 11X+: -1.04868e-001 1.86265e-002 + 11Y+: 6.27417e-002 -6.63659e-002 + 11Z+: 6.99836e-003 5.18549e-003 + 12X+: -4.22668e-002 2.94527e-002 + 12Y+: 3.75966e-002 -7.22905e-002 + 12Z+: 2.09701e-001 6.37783e-002 + 13X+: -4.31065e-002 8.90375e-003 + 13Y+: -2.89106e-003 -7.24087e-003 + 13Z+: 4.16423e-002 8.87726e-003 + 14X+: -3.65090e-002 1.30356e-002 + 14Y+: -7.62512e-003 -7.74083e-003 + 14Z+: 5.27778e-002 -2.35421e-002 + 15X+: -3.64223e-002 1.36111e-002 + 15Y+: -1.48436e-003 -9.58923e-003 + 15Z+: 1.15580e-002 -7.05550e-004 + 16X+: -1.15958e-002 1.24401e-002 + 16Y+: -1.18404e-003 -7.78984e-003 + 16Z+: 3.58059e-002 2.19043e-002 + 17X+: -1.30661e-002 7.14751e-003 + 17Y+: -1.26249e-002 -1.59744e-003 + 17Z+: 4.28376e-002 -6.41748e-003 + 18X+: -2.92542e-002 1.04099e-002 + 18Y+: -1.53751e-002 -4.89741e-004 + 18Z+: 5.95711e-002 -3.43248e-002 + 19X+: -3.23405e-002 6.72643e-003 + 19Y+: 4.47996e-003 -1.97636e-003 + 19Z+: -1.39638e-002 2.54293e-003 + 20X+: -1.50000e-002 6.66770e-003 + 20Y+: 5.69574e-003 -3.43178e-003 + 20Z+: 1.58764e-002 3.12116e-002 + 21X+: 1.05177e-003 3.22126e-002 + 21Y+: 1.50923e-002 -2.26648e-002 + 21Z+: 3.02244e-001 6.75352e-002 + 22X+: -1.73678e-002 7.37601e-002 + 22Y+: 1.66998e-002 -3.73340e-002 + 22Z+: 1.92718e-001 3.79699e-002 + 23X+: -6.23548e-004 3.85660e-002 + 23Z+: 2.50313e-001 5.29349e-002 + 23Y-: -2.85016e-002 6.19510e-002 + 1X+: 3.32737e-001 0.00000e+000 + 1Y+: 8.40189e-002 6.92366e-002 + 1Z+: 2.05662e-002 7.18544e-004 + 2X+: 3.15100e-001 -3.29814e-002 + 2Y+: 7.09158e-002 7.19685e-002 + 2Z+: 2.05127e-002 -1.35915e-003 + 3Y+: 1.38390e-001 9.39747e-002 + 3X-: -3.10815e-001 4.76174e-002 + 3Z+: 7.16988e-002 2.71726e-003 + 4X+: 3.19500e-001 -4.09569e-003 + 4Y+: 9.33507e-002 9.84053e-002 + 4Z+: 7.60025e-002 2.07007e-002 + 5X+: 2.93292e-002 -8.87522e-003 + 5Y+: 1.45007e-001 4.99766e-002 + 5Z+: -1.50145e-001 -4.56846e-002 + 6X+: 1.44023e-001 -4.12839e-003 + 6Y+: 1.25424e-001 2.02012e-002 + 6Z+: -9.88820e-002 -3.68219e-002 + 7X+: 1.47850e-001 -5.94292e-003 + 7Y+: -1.01741e-001 6.94050e-003 + 7Z+: 2.02319e-001 6.47128e-002 + 8X+: 2.50335e-002 -1.11825e-002 + 8Y+: -8.45228e-002 1.08158e-002 + 8Z+: 2.01612e-001 6.26910e-002 + 9X+: 1.26581e-001 2.95906e-002 + 9Y+: 1.24419e-001 2.35367e-002 + 9Z+: -8.29686e-002 -1.90927e-002 + 10X+: 2.01241e-001 2.19849e-002 + 10Y+: 1.31271e-001 5.28091e-002 + 10Z+: -1.38237e-002 9.36024e-003 + 11X+: 2.00845e-001 2.04987e-002 + 11Y+: -7.20504e-002 3.32599e-002 + 11Z+: 1.00401e-001 2.45816e-002 + 12X+: 1.07205e-001 1.60049e-002 + 12Y+: -7.22889e-002 2.55615e-002 + 12Z+: 3.70683e-002 8.64896e-003 + 13X+: 2.34906e-002 -7.30018e-003 + 13Y+: 8.20134e-002 1.56089e-002 + 13Z+: -5.05258e-002 -9.89541e-003 + 14X+: 6.44612e-002 -3.10125e-003 + 14Y+: 8.48077e-002 1.63392e-002 + 14Z+: 3.96743e-002 1.92948e-002 + 15X+: 5.85588e-002 -4.18026e-003 + 15Y+: 5.35867e-002 1.19208e-002 + 15Z+: 3.50231e-002 3.26709e-003 + 16X+: 2.10305e-002 -9.19766e-003 + 16Y+: 5.55074e-002 1.11628e-002 + 16Z+: -5.53575e-002 -1.98969e-002 + 17X+: 1.52504e-002 -8.06739e-003 + 17Y+: 7.33176e-002 1.57403e-002 + 17Z+: -6.01453e-002 -5.80113e-003 + 18X+: 5.13529e-002 1.13669e-003 + 18Y+: 8.07726e-002 1.65001e-002 + 18Z+: 5.91409e-002 2.91245e-002 + 19X+: 5.84390e-002 4.64184e-003 + 19Y+: 2.90594e-002 4.97447e-003 + 19Z+: 6.26711e-002 5.70726e-003 + 20X+: 2.27111e-002 -4.91879e-003 + 20Y+: 2.37031e-002 5.09898e-003 + 20Z+: -5.02075e-002 -2.61314e-002 + 21X+: 2.17735e-002 -3.55932e-002 + 21Y+: 6.12290e-003 2.34338e-002 + 21Z+: -1.23495e-002 -7.84159e-003 + 22X+: 6.79680e-003 -4.13091e-002 + 22Y+: 1.47451e-002 2.13485e-002 + 22Z+: 6.57718e-002 1.93536e-002 + 23X+: 2.15761e-002 -3.60574e-002 + 23Z+: 1.15519e-001 3.60413e-002 + 23Y-: -2.51972e-002 -2.31950e-002 + 1X+: 2.47538e-001 0.00000e+000 + 1Y+: -1.45842e-002 4.09472e-002 + 1Z+: 2.25331e-002 -1.60087e-002 + 2X+: 1.86495e-001 3.24509e-002 + 2Y+: -2.21535e-002 4.01620e-002 + 2Z+: -7.08096e-004 -1.32123e-002 + 3Y+: 6.37927e-002 3.25722e-002 + 3X-: -1.85723e-001 -3.33517e-002 + 3Z+: 6.46186e-002 -9.26608e-003 + 4X+: 2.30322e-001 4.10227e-002 + 4Y+: 1.32256e-001 2.42034e-002 + 4Z+: 1.07613e-001 -1.86507e-002 + 5X+: 4.13254e-002 -4.46769e-002 + 5Y+: -3.08859e-003 1.71609e-001 + 5Z+: -5.78925e-002 -6.12409e-002 + 6X+: 1.36883e-001 8.47595e-002 + 6Y+: 3.27797e-002 1.56079e-001 + 6Z+: -5.02840e-002 -3.12926e-002 + 7X+: 1.20632e-001 8.82280e-002 + 7Y+: -1.49198e-001 -6.40524e-002 + 7Z+: 1.04185e-001 -9.73345e-003 + 8X+: 2.97752e-002 -4.05956e-002 + 8Y+: -1.37945e-001 -6.39882e-002 + 8Z+: 1.45446e-001 -4.51230e-003 + 9X+: 1.07205e-001 2.89665e-003 + 9Y+: 8.86692e-003 1.40107e-001 + 9Z+: 2.38415e-002 2.95643e-002 + 10X+: 1.26920e-001 5.97996e-002 + 10Y+: -4.18164e-002 1.69490e-001 + 10Z+: -4.97897e-002 -3.42148e-002 + 11X+: 1.25954e-001 6.57642e-002 + 11Y+: -1.79765e-001 -2.99539e-002 + 11Z+: 6.31058e-002 2.54025e-002 + 12X+: 9.91370e-002 -2.73770e-003 + 12Y+: -1.75313e-001 -1.46513e-002 + 12Z+: 2.08990e-002 -1.07263e-001 + 13X+: 1.37830e-001 9.66061e-002 + 13Y+: -6.44022e-003 -2.93614e-002 + 13Z+: -1.30949e-002 -1.40763e-002 + 14X+: 1.52363e-002 -3.85745e-002 + 14Y+: -2.69426e-002 -4.70545e-002 + 14Z+: -3.42080e-002 -8.07922e-003 + 15X+: 1.37731e-002 -3.83311e-002 + 15Y+: 1.01574e-001 8.71559e-002 + 15Z+: 3.06502e-002 5.74680e-003 + 16X+: 1.28898e-001 1.05534e-001 + 16Y+: 8.06095e-002 6.91648e-002 + 16Z+: -9.72572e-003 -4.37135e-002 + 17X+: 1.27960e-001 1.26235e-001 + 17Y+: -3.30223e-002 -9.70245e-002 + 17Z+: -6.42326e-002 -2.75059e-002 + 18X+: -8.85542e-003 -7.74555e-002 + 18Y+: -3.80553e-002 -1.11110e-001 + 18Z+: -3.36581e-002 -6.30403e-003 + 19X+: -1.47699e-002 -1.03544e-001 + 19Y+: 1.40768e-001 1.76881e-001 + 19Z+: 8.41116e-002 3.26657e-002 + 20X+: 1.24889e-001 1.34841e-001 + 20Y+: 1.23297e-001 1.60067e-001 + 20Z+: 7.94829e-003 -4.76432e-002 + 21X+: 2.82965e-002 2.75571e-002 + 21Y+: -2.97076e-002 1.58489e-002 + 21Z+: 1.75313e-002 -2.77190e-002 + 22X+: 1.10528e-001 -3.03145e-002 + 22Y+: -6.05780e-002 4.24598e-002 + 22Z+: 5.21084e-002 -1.60506e-002 + 23X+: 4.11888e-002 1.93761e-002 + 23Z+: 9.99260e-002 -1.09388e-002 + 23Y-: 1.12117e-001 -7.97245e-002 + 1X+: 2.89046e-001 -1.08028e-001 + 1Y+: 3.23216e-001 2.47383e-002 + 1Z+: -2.03028e-002 7.98977e-004 + 2X+: 3.18936e-001 -9.02391e-002 + 2Y+: 3.15944e-001 2.85286e-002 + 2Z+: -2.05646e-002 -6.83213e-003 + 3Y+: 3.45044e-001 -3.46945e-018 + 3X-: -2.77353e-001 9.70322e-002 + 3Z+: 5.83156e-003 2.16237e-003 + 4X+: 2.92025e-001 -8.31251e-002 + 4Y+: 3.18220e-001 2.19274e-002 + 4Z+: 8.43209e-003 1.02698e-002 + 5X+: -6.27237e-004 1.32606e-002 + 5Y+: 9.20582e-002 1.34590e-001 + 5Z+: -1.18636e-001 -4.31511e-002 + 6X+: 4.62604e-002 1.96164e-002 + 6Y+: 7.50958e-002 5.86357e-002 + 6Z+: -5.45340e-002 -1.36261e-002 + 7X+: 4.37814e-002 1.84376e-002 + 7Y+: -3.51887e-002 3.95511e-002 + 7Z+: 9.34745e-002 3.59408e-002 + 8X+: 1.50161e-004 8.82371e-003 + 8Y+: -2.61586e-002 4.40165e-002 + 8Z+: 7.78573e-002 1.57616e-002 + 9X+: 2.50939e-002 2.55825e-002 + 9Y+: 6.43840e-002 7.00703e-002 + 9Z+: -6.76144e-002 -3.80190e-002 + 10X+: 5.78486e-002 3.11887e-002 + 10Y+: 9.02865e-002 1.01484e-001 + 10Z+: -5.59787e-003 5.29829e-003 + 11X+: 5.57707e-002 3.08366e-002 + 11Y+: -2.30915e-002 6.86473e-002 + 11Z+: 3.98615e-002 2.99572e-002 + 12X+: 2.92002e-002 2.27118e-002 + 12Y+: -1.13595e-002 7.15698e-002 + 12Z+: 8.66522e-003 -1.79387e-003 + 13X+: -3.06982e-002 -1.51176e-002 + 13Y+: -3.58350e-002 1.06087e-002 + 13Z+: 1.14298e-002 -6.81793e-003 + 14X+: -3.73437e-002 -1.15647e-002 + 14Y+: -3.11962e-002 1.27241e-002 + 14Z+: 3.17795e-002 2.38953e-002 + 15X+: -3.66282e-002 -1.22762e-002 + 15Y+: -3.81116e-002 6.81776e-003 + 15Z+: -1.21800e-002 3.20019e-003 + 16X+: -4.11262e-002 -1.79074e-002 + 16Y+: -3.83849e-002 4.24618e-003 + 16Z+: -1.01544e-002 -1.46366e-002 + 17X+: -3.03884e-002 -1.52280e-002 + 17Y+: -3.26980e-002 5.00240e-003 + 17Z+: 4.13296e-002 7.85625e-003 + 18X+: -2.45021e-002 -1.07556e-002 + 18Y+: -3.55425e-002 4.18567e-003 + 18Z+: 4.40718e-002 3.40834e-002 + 19X+: -2.58648e-002 -9.24234e-003 + 19Y+: -4.68966e-002 -5.01452e-003 + 19Z+: -4.25968e-002 -5.98539e-003 + 20X+: -3.82760e-002 -1.66170e-002 + 20Y+: -3.99941e-002 -2.98951e-003 + 20Z+: -3.05571e-002 -1.96285e-002 + 21X+: -8.88847e-003 4.60825e-003 + 21Y+: 5.64766e-003 4.16832e-002 + 21Z+: -4.21978e-002 -9.06940e-003 + 22X+: -3.02631e-002 -3.02528e-002 + 22Y+: 1.61606e-002 5.25160e-002 + 22Z+: 2.21775e-002 1.45257e-002 + 23X+: -1.06741e-002 -4.47301e-004 + 23Z+: 3.66073e-002 9.96667e-003 + 23Y-: -3.21624e-002 -7.13277e-002 + 1X+: -1.17679e-001 2.79291e-001 + 1Y+: 3.52762e-001 1.18582e-002 + 1Z+: 4.03497e-002 -9.82120e-003 + 2X+: -4.79155e-002 3.07275e-001 + 2Y+: 3.61205e-001 -3.46945e-018 + 2Z+: 7.14384e-002 -8.43313e-002 + 3Y+: 2.89667e-001 2.24977e-002 + 3X-: 9.74005e-002 -2.99768e-001 + 3Z+: -7.49468e-003 -1.26611e-002 + 4X+: -1.39923e-001 2.77207e-001 + 4Y+: 2.91936e-001 4.24084e-002 + 4Z+: -3.75214e-002 4.91012e-002 + 5X+: -3.72082e-002 8.02100e-003 + 5Y+: -1.48455e-002 -2.56195e-002 + 5Z+: 9.49744e-002 4.32322e-002 + 6X+: -8.67185e-002 1.05767e-002 + 6Y+: -6.16036e-002 -2.12532e-002 + 6Z+: 9.58939e-002 2.39828e-002 + 7X+: -1.02657e-001 1.27356e-002 + 7Y+: 7.46818e-002 -2.08178e-002 + 7Z+: -3.44823e-002 -4.05792e-002 + 8X+: -3.94675e-002 1.05426e-002 + 8Y+: 7.13200e-002 -2.02910e-002 + 8Z+: -1.05623e-001 -2.45286e-002 + 9X+: -7.89148e-002 -1.30429e-002 + 9Y+: -4.55285e-002 -2.29644e-002 + 9Z+: 5.34081e-002 2.17646e-002 + 10X+: -9.39943e-002 -1.75597e-002 + 10Y+: -6.33766e-002 -5.39162e-002 + 10Z+: 5.32644e-002 -6.60736e-003 + 11X+: -1.04216e-001 -1.71011e-002 + 11Y+: 6.33285e-002 -2.71111e-002 + 11Z+: -3.37964e-002 -5.34774e-003 + 12X+: -7.85128e-002 -1.35498e-002 + 12Y+: 7.31158e-002 -3.33987e-002 + 12Z+: -5.83693e-002 1.34427e-002 + 13X+: 1.64699e-002 4.88335e-003 + 13Y+: 3.27945e-002 -2.08977e-003 + 13Z+: -1.11914e-002 7.36933e-003 + 14X+: 2.59637e-002 5.52510e-003 + 14Y+: 2.89439e-002 -3.46642e-003 + 14Z+: -1.33136e-002 -2.36052e-002 + 15X+: 2.67891e-002 6.25235e-003 + 15Y+: 2.92224e-002 -1.55779e-003 + 15Z+: 1.84342e-002 -2.86028e-004 + 16X+: 2.18891e-002 8.33047e-003 + 16Y+: 2.72829e-002 3.48907e-004 + 16Z+: 9.49328e-003 2.30124e-002 + 17X+: 1.40426e-002 2.99272e-003 + 17Y+: 3.07292e-002 1.16157e-003 + 17Z+: -3.17728e-002 -3.52026e-003 + 18X+: 1.74541e-002 1.60939e-003 + 18Y+: 3.27520e-002 1.08094e-003 + 18Z+: -2.14104e-002 -3.37273e-002 + 19X+: 2.08933e-002 1.79949e-003 + 19Y+: 2.72738e-002 6.81304e-003 + 19Z+: 4.07522e-002 7.56584e-003 + 20X+: 1.94602e-002 5.43889e-003 + 20Y+: 2.21819e-002 5.21816e-003 + 20Z+: 3.75555e-002 3.49898e-002 + 21X+: -3.39125e-002 2.75637e-002 + 21Y+: 1.00879e-003 -2.00990e-002 + 21Z+: 4.70704e-002 2.48939e-002 + 22X+: -3.67430e-002 4.43967e-002 + 22Y+: -1.39823e-003 -2.10773e-002 + 22Z+: 2.31936e-002 1.54420e-003 + 23X+: -3.45530e-002 2.98284e-002 + 23Z+: -3.12325e-002 -1.68537e-002 + 23Y-: -3.11918e-003 3.07332e-002 + 1X+: -7.76156e-002 -7.41072e-002 + 1Y+: 3.54868e-001 -1.30392e-002 + 1Z+: -3.21142e-003 3.07335e-002 + 2X+: -3.33946e-002 -1.17755e-001 + 2Y+: 3.64743e-001 2.77556e-017 + 2Z+: 2.37479e-003 8.89276e-002 + 3Y+: 3.25113e-001 2.76427e-002 + 3X-: 8.98340e-002 1.16887e-001 + 3Z+: -2.41884e-002 1.11744e-001 + 4X+: -1.03046e-001 -9.11864e-002 + 4Y+: 3.04893e-001 9.22272e-003 + 4Z+: -2.46344e-002 6.29290e-002 + 5X+: 3.29823e-002 -5.50379e-002 + 5Y+: 2.91882e-002 2.01639e-001 + 5Z+: -3.85760e-004 -1.30246e-001 + 6X+: 2.34643e-002 -3.04392e-002 + 6Y+: 4.35003e-002 8.28761e-002 + 6Z+: -2.06149e-002 1.82438e-001 + 7X+: 4.05503e-002 -8.51117e-002 + 7Y+: 2.62577e-002 9.69952e-002 + 7Z+: -3.79467e-002 1.91853e-001 + 8X+: 3.14306e-002 -4.45487e-002 + 8Y+: 2.24097e-002 1.17637e-001 + 8Z+: 2.13661e-002 -1.18529e-001 + 9X+: 2.82976e-002 -6.87567e-002 + 9Y+: 2.94587e-002 1.34303e-001 + 9Z+: -3.76316e-003 -1.13131e-001 + 10X+: -6.58323e-003 -4.57187e-002 + 10Y+: 1.34243e-001 1.29453e-002 + 10Z+: 9.19010e-004 1.20562e-001 + 11X+: 9.22557e-005 -6.76655e-002 + 11Y+: 8.62071e-002 2.94695e-002 + 11Z+: 6.76771e-003 7.67743e-002 + 12X+: -2.92911e-003 -1.08708e-002 + 12Y+: 7.78565e-002 1.14753e-001 + 12Z+: 9.02750e-003 -9.36893e-002 + 13X+: -2.59605e-002 2.53098e-002 + 13Y+: 8.02197e-003 -1.34846e-002 + 13Z+: -3.18761e-003 2.17961e-002 + 14X+: -1.99381e-002 -1.01390e-002 + 14Y+: 1.08733e-002 -1.42922e-002 + 14Z+: 3.89280e-002 6.71414e-002 + 15X+: -2.20176e-002 -8.16765e-003 + 15Y+: 3.46020e-003 -1.39813e-002 + 15Z+: 7.22373e-003 7.04190e-002 + 16X+: -2.31262e-002 4.86185e-003 + 16Y+: 6.29355e-003 -1.81083e-002 + 16Z+: -1.85392e-002 8.05523e-002 + 17X+: -1.96046e-002 9.61469e-004 + 17Y+: 4.69730e-003 -1.85653e-002 + 17Z+: 1.50887e-002 1.47019e-002 + 18X+: -1.34940e-002 -1.20123e-002 + 18Y+: 3.46727e-003 -2.03343e-002 + 18Z+: 5.12645e-002 6.47765e-002 + 19X+: -9.83086e-003 -1.04569e-002 + 19Y+: -6.05059e-003 -5.16155e-003 + 19Z+: -3.96536e-003 7.41089e-002 + 20X+: -2.01995e-002 5.02867e-003 + 20Y+: -2.74197e-003 -1.02100e-002 + 20Z+: -3.49041e-002 1.28238e-001 + 21X+: 3.85305e-002 -6.67335e-002 + 21Y+: 4.77056e-002 -8.27989e-003 + 21Z+: -2.18402e-002 2.84587e-004 + 22X+: -3.13290e-002 -4.90888e-002 + 22Y+: 7.77850e-002 -2.13135e-002 + 22Z+: -4.30028e-002 1.89752e-001 + 23X+: 3.14842e-002 -6.74808e-002 + 23Z+: -1.46215e-002 8.91836e-003 + 23Y-: -1.20372e-001 3.06424e-002 + 1X+: -3.03728e-002 -3.13564e-001 + 1Y+: 1.19834e-001 -1.34807e-001 + 1Z+: 1.18137e-002 2.78504e-002 + 2X+: -1.30190e-002 -1.85869e-001 + 2Y+: 1.22515e-001 -1.27141e-001 + 2Z+: 8.36606e-002 1.11385e-002 + 3Y+: 1.05037e-001 -2.81325e-001 + 3X-: 1.92665e-002 1.69055e-001 + 3Z+: 6.41619e-002 2.80952e-002 + 4X+: -5.32240e-002 -2.18265e-001 + 4Y+: 1.12643e-001 -2.92454e-001 + 4Z+: -1.59822e-003 2.98246e-002 + 5X+: 6.12030e-002 -8.99895e-002 + 5Y+: 3.25849e-001 2.77556e-017 + 5Z+: -1.18495e-001 -1.87843e-002 + 6X+: 8.55494e-002 -9.57501e-002 + 6Y+: 1.60740e-001 -2.30162e-002 + 6Z+: 9.49201e-002 6.65268e-002 + 7X+: 5.95273e-002 -1.15688e-001 + 7Y+: 9.30529e-002 3.20458e-002 + 7Z+: 9.13350e-002 4.49289e-002 + 8X+: 5.22721e-002 -8.88843e-002 + 8Y+: 1.10550e-001 3.04203e-002 + 8Z+: -4.67089e-002 -6.62283e-002 + 9X+: -2.29997e-003 -5.13892e-002 + 9Y+: 1.75362e-001 1.39284e-002 + 9Z+: -1.36918e-001 7.94227e-003 + 10X+: 1.71895e-002 -4.74771e-002 + 10Y+: 1.61459e-001 -6.69088e-002 + 10Z+: 2.87630e-002 7.29177e-002 + 11X+: 1.49974e-002 -4.70366e-002 + 11Y+: 8.16277e-002 2.33676e-003 + 11Z+: 6.85425e-002 -1.13222e-002 + 12X+: 4.61500e-002 -1.88157e-002 + 12Y+: 1.36129e-001 4.13100e-003 + 12Z+: 8.44060e-003 -6.27582e-002 + 13X+: -2.11197e-002 3.90777e-002 + 13Y+: -7.01276e-003 -9.35135e-003 + 13Z+: 1.34516e-002 4.53906e-003 + 14X+: -3.68360e-002 2.97776e-002 + 14Y+: -2.65665e-003 -1.17311e-002 + 14Z+: 6.18136e-002 2.25055e-002 + 15X+: -3.67195e-002 3.08671e-002 + 15Y+: -1.88349e-002 -6.59428e-003 + 15Z+: 5.08949e-002 2.17556e-003 + 16X+: -4.28114e-002 3.15499e-002 + 16Y+: -1.09976e-002 -1.48382e-002 + 16Z+: 5.87774e-002 1.38746e-003 + 17X+: -5.03101e-002 3.80257e-002 + 17Y+: -5.48651e-004 -1.25137e-002 + 17Z+: 2.35775e-002 -8.23982e-004 + 18X+: -4.03812e-002 3.13913e-002 + 18Y+: -5.73382e-003 -7.94639e-003 + 18Z+: 6.05529e-002 3.05433e-002 + 19X+: -3.23620e-002 3.04049e-002 + 19Y+: -1.82546e-002 -5.52221e-003 + 19Z+: 4.83685e-002 -2.52546e-003 + 20X+: -4.41109e-002 3.79909e-002 + 20Y+: -1.80061e-002 -9.23287e-003 + 20Z+: 1.02937e-001 -8.93892e-003 + 21X+: 6.63607e-002 -9.18713e-002 + 21Y+: 5.37870e-002 -5.12955e-002 + 21Z+: -1.46610e-002 3.05369e-002 + 22X+: 7.26792e-003 -1.13323e-001 + 22Y+: 7.94674e-002 -4.77404e-002 + 22Z+: 8.61719e-002 7.28943e-002 + 23X+: 6.07336e-002 -9.69805e-002 + 23Z+: 4.01847e-003 -8.08177e-003 + 23Y-: -1.18724e-001 3.02590e-002 + 1X+: 4.42816e-001 -2.08092e-002 + 1Y+: 1.12262e-001 1.20490e-002 + 1Z+: -2.60508e-002 5.18198e-003 + 2X+: 4.46461e-001 1.63675e-002 + 2Y+: 8.93013e-002 7.64800e-003 + 2Z+: -2.19862e-002 3.21829e-002 + 3Y+: 1.45357e-001 -3.06904e-002 + 3X-: -4.47055e-001 -2.21287e-002 + 3Z+: -3.38934e-002 1.78492e-002 + 4X+: 4.48500e-001 1.38778e-017 + 4Y+: 1.09815e-001 7.67214e-004 + 4Z+: -1.86995e-002 -7.82332e-003 + 5X+: -2.62189e-002 6.04381e-002 + 5Y+: -9.37893e-002 1.10161e-002 + 5Z+: 7.02436e-002 -2.31914e-002 + 6X+: -3.41933e-002 8.99217e-002 + 6Y+: -4.13780e-002 2.25199e-002 + 6Z+: 6.62812e-003 -2.68713e-003 + 7X+: -3.78529e-002 8.80157e-002 + 7Y+: 4.00968e-003 -4.94710e-002 + 7Z+: -4.30930e-002 8.69476e-003 + 8X+: -2.48902e-002 6.29424e-002 + 8Y+: 2.38078e-003 -4.29128e-002 + 8Z+: -2.79806e-002 2.82568e-002 + 9X+: -9.38411e-003 5.55409e-002 + 9Y+: -4.20875e-002 1.29284e-002 + 9Z+: 7.54196e-002 -2.59377e-002 + 10X+: -1.82681e-002 7.57915e-002 + 10Y+: -3.49415e-002 -1.04635e-002 + 10Z+: 1.42992e-002 -3.92318e-002 + 11X+: -2.04408e-002 7.70773e-002 + 11Y+: 1.56254e-002 -7.14153e-002 + 11Z+: -2.86647e-002 3.53229e-002 + 12X+: -3.16537e-002 7.61394e-002 + 12Y+: -1.31050e-004 -6.95414e-002 + 12Z+: -3.33940e-002 5.88878e-002 + 13X+: 2.27106e-002 5.84865e-003 + 13Y+: -1.25401e-002 -2.59469e-002 + 13Z+: 3.49787e-003 1.47374e-002 + 14X+: 2.58756e-002 -1.99004e-003 + 14Y+: -1.51753e-002 -2.43605e-002 + 14Z+: -6.15597e-003 -1.23548e-002 + 15X+: 2.63846e-002 -2.22575e-003 + 15Y+: -3.57661e-003 -2.21206e-002 + 15Z+: -1.71123e-002 -3.41087e-004 + 16X+: 3.02163e-002 6.98907e-003 + 16Y+: -4.74143e-003 -1.86720e-002 + 16Z+: -2.54005e-002 2.54788e-002 + 17X+: 3.67593e-002 4.84753e-003 + 17Y+: -1.42515e-002 -2.35623e-002 + 17Z+: 2.64094e-004 1.53905e-002 + 18X+: 2.87818e-002 -2.67634e-004 + 18Y+: -1.02325e-002 -2.37194e-002 + 18Z+: -8.28128e-003 -1.57707e-002 + 19X+: 2.55377e-002 -2.95157e-003 + 19Y+: -1.67035e-003 -1.42881e-002 + 19Z+: -2.01250e-002 -5.38565e-003 + 20X+: 3.52809e-002 3.45768e-003 + 20Y+: -2.90990e-003 -1.34905e-002 + 20Z+: -4.53236e-002 1.83583e-002 + 21X+: -1.02794e-002 7.94905e-002 + 21Y+: -8.16016e-004 -2.47545e-002 + 21Z+: 2.06124e-002 -9.77704e-003 + 22X+: 2.42349e-003 8.90513e-002 + 22Y+: -4.59426e-003 -2.07927e-002 + 22Z+: -5.91408e-003 9.14109e-004 + 23X+: -7.94010e-003 8.48449e-002 + 23Z+: -9.56477e-003 1.42037e-002 + 23Y-: 9.49321e-003 2.32931e-002 + 1X+: -9.98160e-002 1.49432e-001 + 1Y+: 2.90498e-001 -1.51589e-001 + 1Z+: -7.46731e-002 2.11139e-002 + 2X+: -1.33332e-001 3.63405e-002 + 2Y+: 3.02284e-001 -1.57375e-001 + 2Z+: -1.10453e-001 3.24168e-002 + 3Y+: 3.34461e-001 -4.46405e-002 + 3X-: 1.85444e-001 -6.00206e-002 + 3Z+: -1.22615e-001 4.26114e-002 + 4X+: -1.28520e-001 1.53985e-001 + 4Y+: 3.57990e-001 -2.77556e-017 + 4Z+: -8.85607e-002 2.52999e-002 + 5X+: 9.32514e-003 -2.00005e-002 + 5Y+: -2.29939e-002 8.51331e-002 + 5Z+: 3.71815e-002 -2.40191e-003 + 6X+: -1.96851e-002 -3.31754e-002 + 6Y+: 5.42668e-003 6.33264e-002 + 6Z+: -7.30468e-002 7.98309e-002 + 7X+: 3.78038e-002 -5.76583e-002 + 7Y+: 1.85652e-005 1.19510e-001 + 7Z+: -1.02609e-001 2.56988e-002 + 8X+: 1.32448e-002 -2.63656e-002 + 8Y+: -3.33078e-002 1.32592e-001 + 8Z+: 2.54394e-002 -7.88373e-002 + 9X+: -1.26830e-002 -3.56542e-002 + 9Y+: -6.56059e-002 9.90343e-002 + 9Z+: 8.31402e-002 -3.81328e-002 + 10X+: -1.86078e-002 -5.93791e-002 + 10Y+: 8.43397e-002 1.32716e-001 + 10Z+: 3.57830e-002 6.01520e-002 + 11X+: 6.22446e-003 -7.68462e-002 + 11Y+: 5.80301e-002 1.68975e-001 + 11Z+: 3.49004e-002 -1.65599e-002 + 12X+: -2.54652e-002 -4.94920e-002 + 12Y+: -1.42282e-002 1.91033e-001 + 12Z+: 7.20256e-002 -1.08747e-001 + 13X+: -2.43860e-003 -4.86251e-003 + 13Y+: 1.17797e-002 1.57919e-002 + 13Z+: 2.68087e-002 -2.95671e-002 + 14X+: -1.33769e-003 -5.06188e-003 + 14Y+: 8.90527e-003 1.65130e-002 + 14Z+: 8.27639e-002 1.30977e-002 + 15X+: -2.28951e-004 -4.69480e-003 + 15Y+: 4.03701e-004 1.55620e-002 + 15Z+: 4.36982e-002 -1.44140e-002 + 16X+: 1.39009e-002 -1.20328e-002 + 16Y+: 3.87863e-004 1.38209e-002 + 16Z+: 5.73429e-002 -4.72683e-002 + 17X+: 5.64980e-003 -4.76022e-003 + 17Y+: 1.87232e-003 1.28100e-002 + 17Z+: 2.81952e-002 -1.55020e-002 + 18X+: 1.84008e-003 -4.72808e-004 + 18Y+: 3.96379e-003 1.31042e-002 + 18Z+: 1.00088e-001 2.58121e-002 + 19X+: 4.61126e-003 3.71241e-003 + 19Y+: 2.25344e-003 2.41737e-003 + 19Z+: 4.24402e-002 -1.70217e-002 + 20X+: 1.26556e-002 -3.66147e-003 + 20Y+: -3.16334e-003 4.12232e-003 + 20Z+: 9.09106e-002 -5.99602e-002 + 21X+: 7.57259e-003 -2.78612e-002 + 21Y+: 5.73410e-002 8.18544e-002 + 21Z+: -4.79237e-002 2.94837e-002 + 22X+: -4.27952e-004 -5.39565e-002 + 22Y+: 5.46804e-002 8.73056e-002 + 22Z+: -1.61507e-001 8.45564e-002 + 23X+: 7.34854e-003 -3.65239e-002 + 23Z+: -6.28265e-002 -8.98110e-004 + 23Y-: -5.82511e-002 -9.74656e-002 + 1X+: 9.02293e-002 -6.29772e-002 + 1Y+: 1.31008e-001 -2.61178e-002 + 1Z+: 1.35409e-001 -5.91049e-002 + 2X+: 2.99132e-002 -7.16199e-002 + 2Y+: 1.41451e-001 -2.73712e-002 + 2Z+: 1.12490e-001 -7.01367e-003 + 3Y+: 1.94114e-001 -2.13463e-002 + 3X-: -3.26755e-002 7.02269e-002 + 3Z+: 5.91743e-002 -8.57707e-003 + 4X+: 1.19159e-001 -3.56203e-002 + 4Y+: 1.48234e-001 -6.95187e-002 + 4Z+: 1.06614e-001 -3.89945e-002 + 5X+: 1.27421e-001 -4.21311e-002 + 5Y+: 8.77597e-002 1.22537e-001 + 5Z+: 1.28035e-001 -1.25028e-001 + 6X+: 8.70224e-002 -3.46894e-002 + 6Y+: 1.27050e-001 5.53402e-002 + 6Z+: 4.33010e-002 8.08970e-002 + 7X+: 1.13646e-001 -7.28287e-002 + 7Y+: 1.21953e-001 8.62917e-002 + 7Z+: -1.05138e-001 7.74248e-002 + 8X+: 8.11713e-002 -2.77370e-002 + 8Y+: 1.35024e-001 8.77739e-002 + 8Z+: -7.94053e-003 -9.04425e-002 + 9X+: 1.54224e-003 2.26659e-002 + 9Y+: 2.54205e-001 -8.31111e-002 + 9Z+: -2.18049e-001 1.02051e-001 + 10X+: -4.86397e-002 -3.65058e-002 + 10Y+: 1.97165e-001 3.81077e-002 + 10Z+: -1.73357e-002 1.76295e-002 + 11X+: -2.04029e-002 -4.72412e-002 + 11Y+: 1.22120e-001 5.05039e-002 + 11Z+: -7.44909e-002 -2.99293e-002 + 12X+: 2.15756e-002 -2.57634e-002 + 12Y+: 2.75910e-001 -6.93889e-018 + 12Z+: -1.96601e-001 1.18015e-001 + 13X+: 2.25282e-003 -2.59369e-002 + 13Y+: 3.45800e-004 4.04397e-003 + 13Z+: -2.69171e-002 -2.73796e-002 + 14X+: -9.76758e-003 -1.06198e-002 + 14Y+: 5.32053e-003 4.63085e-003 + 14Z+: 5.13667e-002 1.26701e-002 + 15X+: -1.21734e-002 -1.11914e-002 + 15Y+: -6.97901e-004 1.08705e-003 + 15Z+: 1.61771e-002 9.71964e-003 + 16X+: -9.27519e-003 -2.06863e-002 + 16Y+: 5.21028e-003 -2.87683e-003 + 16Z+: -1.67266e-002 -6.16791e-002 + 17X+: -9.04435e-003 -1.79376e-002 + 17Y+: -3.50463e-003 -2.82926e-003 + 17Z+: -1.82886e-003 -4.19489e-002 + 18X+: -3.74650e-003 -9.66257e-003 + 18Y+: -3.39586e-003 -5.52325e-003 + 18Z+: 7.30346e-002 2.06489e-002 + 19X+: 2.50727e-004 -5.34251e-003 + 19Y+: -2.20118e-002 -1.43596e-002 + 19Z+: 3.09094e-002 2.38536e-002 + 20X+: -1.05734e-002 -2.02471e-002 + 20Y+: -1.99169e-002 -1.15494e-002 + 20Z+: -3.30781e-002 -7.21153e-002 + 21X+: 1.42824e-001 -5.34528e-002 + 21Y+: 1.97403e-001 9.10787e-003 + 21Z+: 7.92881e-002 -1.39295e-002 + 22X+: 6.27288e-002 -7.20808e-002 + 22Y+: 2.28124e-001 1.25983e-002 + 22Z+: -4.27483e-002 1.07409e-001 + 23X+: 1.30558e-001 -6.07453e-002 + 23Z+: 2.43895e-002 -2.07224e-002 + 23Y-: -2.69594e-001 -2.13226e-002 + 1X+: -2.84616e-002 5.71283e-002 + 1Y+: -1.26243e-001 -3.74831e-002 + 1Z+: 5.88173e-002 -1.00131e-002 + 2X+: -2.88474e-002 6.18061e-002 + 2Y+: -1.22096e-001 -4.75797e-002 + 2Z+: 7.42911e-002 -1.25726e-002 + 3Y+: -1.32680e-001 -4.14763e-002 + 3X-: -1.30150e-003 -5.82452e-002 + 3Z+: 7.53205e-002 -9.65964e-003 + 4X+: -2.23902e-002 5.11365e-002 + 4Y+: -1.40337e-001 -1.92031e-002 + 4Z+: 5.38361e-002 -1.34699e-002 + 5X+: -1.45948e-002 -2.28489e-002 + 5Y+: 2.14679e-001 3.85327e-002 + 5Z+: -4.39603e-002 4.24912e-002 + 6X+: -5.02321e-002 -8.04915e-003 + 6Y+: 6.98858e-002 -2.32695e-003 + 6Z+: 3.68273e-002 4.03588e-002 + 7X+: -4.70726e-002 -2.45320e-002 + 7Y+: 1.34683e-001 -4.60775e-003 + 7Z+: 7.72237e-002 -8.71982e-003 + 8X+: -4.13783e-002 -2.27363e-002 + 8Y+: 1.38574e-001 1.40356e-003 + 8Z+: -6.13740e-002 -2.72068e-003 + 9X+: 4.28192e-003 -2.05208e-002 + 9Y+: -1.64281e-002 5.35712e-002 + 9Z+: -1.89700e-001 2.32404e-002 + 10X+: 3.00977e-002 2.35454e-003 + 10Y+: 2.84742e-001 2.71419e-002 + 10Z+: 1.98526e-001 5.11383e-002 + 11X+: -3.95363e-002 -9.40232e-003 + 11Y+: 3.59087e-001 4.00047e-002 + 11Z+: 4.35374e-001 -2.77556e-017 + 12X+: -3.63995e-002 1.83096e-002 + 12Y+: 5.47103e-002 4.15307e-002 + 12Z+: -1.06711e-001 -2.95901e-003 + 13X+: -1.21611e-002 1.28769e-002 + 13Y+: -4.37718e-002 2.62586e-002 + 13Z+: -1.45570e-001 8.29800e-002 + 14X+: -1.53673e-002 5.40954e-003 + 14Y+: -4.49837e-002 2.25730e-002 + 14Z+: -2.16260e-002 -1.85616e-002 + 15X+: -9.32370e-003 7.64363e-003 + 15Y+: -3.72606e-002 2.15476e-002 + 15Z+: 8.92774e-002 -6.99610e-002 + 16X+: -3.65531e-002 6.82110e-003 + 16Y+: -3.75430e-002 1.91493e-002 + 16Z+: -1.76743e-001 6.76841e-002 + 17X+: -4.06955e-002 1.57441e-002 + 17Y+: -6.26721e-002 3.31605e-002 + 17Z+: -2.02595e-001 9.21403e-002 + 18X+: -2.58978e-002 9.69965e-003 + 18Y+: -7.52187e-002 3.80502e-002 + 18Z+: -7.16011e-003 -3.53287e-002 + 19X+: -1.71527e-002 6.09525e-003 + 19Y+: -7.00131e-002 3.23401e-002 + 19Z+: 2.16332e-001 -1.04862e-001 + 20X+: -4.77507e-002 1.62326e-002 + 20Y+: -6.41934e-002 3.14145e-002 + 20Z+: -1.45272e-001 4.35503e-002 + 21X+: -4.44041e-002 -8.64319e-003 + 21Y+: 7.45698e-002 1.94858e-003 + 21Z+: 5.06074e-004 3.70439e-002 + 22X+: -4.82307e-002 -8.45678e-003 + 22Y+: 6.62080e-002 2.81158e-003 + 22Z+: 3.24308e-002 3.98024e-002 + 23X+: -4.96279e-002 -8.90040e-003 + 23Z+: -4.26469e-005 1.56047e-002 + 23Y-: -6.05181e-002 -6.13028e-005 + 1X+: 2.53343e-002 -4.31069e-002 + 1Y+: -7.76098e-002 -2.89300e-002 + 1Z+: 2.85234e-002 -1.41615e-002 + 2X+: 2.32885e-002 -3.23988e-002 + 2Y+: -8.39285e-002 -2.92801e-002 + 2Z+: 5.84606e-002 -1.24110e-003 + 3Y+: -8.45653e-002 -4.14021e-002 + 3X-: -3.43118e-002 2.93460e-002 + 3Z+: 5.29552e-002 2.29119e-002 + 4X+: 2.68783e-002 -4.51485e-002 + 4Y+: -7.28722e-002 -4.63710e-002 + 4Z+: 1.92297e-002 3.12603e-003 + 5X+: -9.24870e-003 -2.18639e-002 + 5Y+: 1.67238e-001 5.59585e-002 + 5Z+: -9.46648e-003 -2.11842e-002 + 6X+: -1.42748e-002 -1.93486e-002 + 6Y+: 6.20305e-002 -9.23361e-004 + 6Z+: 9.15632e-002 -3.66949e-003 + 7X+: -4.09487e-002 -3.32681e-002 + 7Y+: 7.07373e-002 8.70539e-003 + 7Z+: 3.26979e-002 2.77835e-002 + 8X+: -2.10739e-002 -2.12506e-002 + 8Y+: 8.22450e-002 1.31866e-002 + 8Z+: -4.17099e-002 3.94271e-003 + 9X+: -1.95390e-002 -1.97961e-002 + 9Y+: 4.18011e-002 1.37464e-002 + 9Z+: -4.44082e-002 1.83527e-002 + 10X+: 7.30366e-002 6.61642e-003 + 10Y+: 3.98930e-001 1.62811e-002 + 10Z+: 3.24796e-001 2.17852e-002 + 11X+: -3.27054e-002 -1.26631e-003 + 11Y+: 4.55738e-001 3.23324e-002 + 11Z+: 4.83156e-001 -2.77556e-017 + 12X+: 1.98020e-002 1.26340e-002 + 12Y+: 1.14281e-001 1.10284e-002 + 12Z+: -2.79371e-002 1.28037e-002 + 13X+: 3.02809e-002 1.61019e-002 + 13Y+: 1.74396e-002 1.95857e-002 + 13Z+: 6.53472e-002 5.86943e-002 + 14X+: -2.95776e-003 5.75889e-003 + 14Y+: 6.15466e-003 1.49801e-002 + 14Z+: -4.47388e-002 -2.92062e-002 + 15X+: 1.21945e-002 1.16792e-002 + 15Y+: 6.44456e-003 1.56031e-002 + 15Z+: -8.10490e-002 -6.13603e-002 + 16X+: 6.17623e-003 1.34550e-002 + 16Y+: 1.19162e-002 1.74485e-002 + 16Z+: 8.05813e-002 7.70156e-002 + 17X+: 1.64879e-002 2.08370e-002 + 17Y+: 3.39363e-002 3.78291e-002 + 17Z+: 1.00135e-001 1.02887e-001 + 18X+: 1.23490e-002 1.60693e-002 + 18Y+: 3.98850e-002 4.51424e-002 + 18Z+: -6.84410e-002 -5.32877e-002 + 19X+: 8.23007e-003 1.23327e-002 + 19Y+: 2.93341e-002 4.15827e-002 + 19Z+: -1.31392e-001 -1.44189e-001 + 20X+: 1.70817e-002 2.56427e-002 + 20Y+: 2.82235e-002 3.83477e-002 + 20Z+: 6.06374e-002 6.74344e-002 + 21X+: -1.23429e-002 -3.49872e-002 + 21Y+: 6.14336e-002 1.23583e-002 + 21Z+: 4.25215e-002 1.23826e-002 + 22X+: -2.13324e-002 -3.39000e-002 + 22Y+: 6.13760e-002 7.68260e-003 + 22Z+: 9.33233e-002 4.78745e-002 + 23X+: -1.71173e-002 -3.58918e-002 + 23Z+: 1.94021e-002 1.44019e-002 + 23Y-: -5.89973e-002 -3.33903e-003 diff --git a/matlab/mat/model_solidworks_com.txt b/matlab/mat/model_solidworks_com.txt new file mode 100644 index 0000000..417b9b9 --- /dev/null +++ b/matlab/mat/model_solidworks_com.txt @@ -0,0 +1,18 @@ +0.045 +0.144 +-1.251 +0.052 +0.258 +-0.778 +0.000 +0.014 +-0.600 +0.000 +-0.005 +-0.628 +0.000 +0.000 +-0.580 +-0.004 +0.006 +-0.319 diff --git a/matlab/modal_1_meas_setup.m b/matlab/modal_1_meas_setup.m index 22a5615..55a430d 100644 --- a/matlab/modal_1_meas_setup.m +++ b/matlab/modal_1_meas_setup.m @@ -12,48 +12,77 @@ colors = colororder; % Location of the Accelerometers % <> -% 4 tri-axis accelerometers are used for each solid body. -% Only 2 could have been used as only 6DOF have to be measured, however, we have chosen to have some *redundancy*. +% The location of the accelerometers fixed to the micro-station is essential as it defines where the dynamics is measured. +% A total of 23 accelerometers are fixed to the six key stages of the micro station: the lower and upper granites, the translation stage, the tilt stage, the spindle and the micro hexapod. +% The position of the accelerometers are visually shown on a CAD model in Figure ref:fig:modal_location_accelerometers and their precise locations with respect to a frame located at the point of interest are summarized in Table ref:tab:modal_position_accelerometers. +% Pictures of the accelerometers fixed to the translation stage and to the micro-hexapod are shown in Figure ref:fig:modal_accelerometer_pictures. -% This could also help us identify measurement problems or flexible modes is present. +% As all key stages of the micro-station are foreseen to behave as solid bodies, only 6 acrshort:dof can be considered per solid body. +% However, it was chosen to use four 3-axis accelerometers (i.e. 12 measured acrshort:dof) for each considered solid body to have some redundancy and to be able to verify the solid body assumption (see Section ref:ssec:modal_solid_body_assumption). -% The position of the accelerometers are: -% - 4 on the first granite -% - 4 on the second granite -% - 4 on top of the translation stage (figure ref:fig:accelerometers_ty) -% - 4 on top of the tilt stage -% - 3 on top of the spindle -% - 4 on top of the hexapod (figure ref:fig:accelerometers_hexapod) +% #+attr_latex: :options [t]{0.60\linewidth} +% #+begin_minipage +% #+name: fig:modal_location_accelerometers +% #+caption: Position of the accelerometers +% #+attr_latex: :width 0.99\linewidth :float nil +% [[file:figs/modal_location_accelerometers.png]] +% #+end_minipage +% \hfill +% #+attr_latex: :options [b]{0.38\linewidth} +% #+begin_minipage +% #+begin_scriptsize +% #+name: tab:modal_position_accelerometers +% #+caption: Positions in mm +% #+attr_latex: :environment tabularx :width \linewidth :placement [b] :align Xccc +% #+attr_latex: :booktabs t :float nil :center nil +% #+RESULTS: +% | | $x$ | $y$ | $z$ | +% |--------------+------+------+------| +% | Low. Granite | -730 | -526 | -951 | +% | Low. Granite | -735 | 814 | -951 | +% | Low. Granite | 875 | 799 | -951 | +% | Low. Granite | 865 | -506 | -951 | +% | Up. Granite | -320 | -446 | -786 | +% | Up. Granite | -480 | 534 | -786 | +% | Up. Granite | 450 | 534 | -786 | +% | Up. Granite | 295 | -481 | -786 | +% | Translation | -475 | -414 | -427 | +% | Translation | -465 | 407 | -427 | +% | Translation | 475 | 424 | -427 | +% | Translation | 475 | -419 | -427 | +% | Tilt | -385 | -300 | -417 | +% | Tilt | -420 | 280 | -417 | +% | Tilt | 420 | 280 | -417 | +% | Tilt | 380 | -300 | -417 | +% | Spindle | -155 | -90 | -594 | +% | Spindle | 0 | 180 | -594 | +% | Spindle | 155 | -90 | -594 | +% | Hexapod | -64 | -64 | -270 | +% | Hexapod | -64 | 64 | -270 | +% | Hexapod | 64 | 64 | -270 | +% | Hexapod | 64 | -64 | -270 | +% #+end_scriptsize +% #+end_minipage -% In total, 23 accelerometers are used: *69 DOFs are thus measured*. - -% The precise determination of the position of each accelerometer is done using the SolidWorks model (shown on figure ref:fig:location_accelerometers). - -% #+name: fig:accelerometer_pictures -% #+caption: Accelerometers fixed on the micro-station +% #+name: fig:modal_accelerometer_pictures +% #+caption: Accelerometers fixed on the micro-station stages +% #+attr_latex: :options [htbp] % #+begin_figure -% #+attr_latex: :caption \subcaption{\label{fig:accelerometers_ty}$T_y$ stage} +% #+attr_latex: :caption \subcaption{\label{fig:modal_accelerometers_ty} $T_y$ stage} % #+attr_latex: :options {0.49\textwidth} % #+begin_subfigure % #+attr_latex: :height 6cm -% [[file:figs/accelerometers_ty.jpg]] +% [[file:figs/modal_accelerometers_ty.jpg]] % #+end_subfigure -% #+attr_latex: :caption \subcaption{\label{fig:accelerometers_hexapod}Micro-Hexapod} +% #+attr_latex: :caption \subcaption{\label{fig:modal_accelerometers_hexapod} Micro-Hexapod} % #+attr_latex: :options {0.49\textwidth} % #+begin_subfigure % #+attr_latex: :height 6cm -% [[file:figs/accelerometers_hexapod.jpg]] +% [[file:figs/modal_accelerometers_hexapod.jpg]] % #+end_subfigure % #+end_figure -% #+name: fig:location_accelerometers -% #+caption: Position of the accelerometers using SolidWorks -% #+attr_latex: :width \linewidth -% [[file:figs/location_accelerometers.png]] - -% The precise position of all the 23 accelerometer with respect to a frame located at the point of interest (located 270mm above the top platform of the hexapod) are shown in table ref:tab:position_accelerometers. - %% Load Accelerometer positions acc_pos = readtable('mat/acc_pos.txt', 'ReadVariableNames', false); @@ -61,59 +90,18 @@ acc_pos = table2array(acc_pos(:, 1:4)); [~, i] = sort(acc_pos(:, 1)); acc_pos = acc_pos(i, 2:4); -% Signal Processing :noexport: -% <> -% The measurements are averaged 10 times corresponding to 10 hammer impacts in order to reduce the effect of random noise. - -% Windowing is also used on the force and response signals. - -% A boxcar window (figure ref:fig:modal_windowing_force_signal) is used for the force signal as once the impact on the structure is done, the measured signal is meaningless. -% The parameters are: -% - *Start*: $3\%$ -% - *Stop*: $7\%$ - - -%% Boxcar window used for the force signal -figure; -plot(100*[0, 0.03, 0.03, 0.07, 0.07, 1], [0, 0, 1, 1, 0, 0]); -xlabel('Time [\%]'); ylabel('Amplitude'); -xlim([0, 100]); ylim([0, 1]); - - - -% #+name: fig:modal_windowing_force_signal -% #+caption: Boxcar window used for the force signal -% #+RESULTS: -% [[file:figs/modal_windowing_force_signal.png]] - -% An exponential window (figure ref:fig:modal_windowing_acc_signal) is used for the response signal as we are measuring transient signals and most of the information is located at the beginning of the signal. -% The parameters are: -% - FlatTop: -% - *Start*: $3\%$ -% - *Stop*: $2.96\%$ -% - Decreasing point: -% - *X*: $60.4\%$ -% - *Y*: $14.7\%$ - - -%% Exponential window used for acceleration signal -x0 = 0.296; -xd = 0.604; -yd = 0.147; - -alpha = log(yd)/(x0 - xd); - -t = x0:0.01:1.01; -y = exp(-alpha*(t-x0)); - -figure; -plot(100*[0, 0.03, 0.03, x0, t], [0, 0, 1, 1, y]); -xlabel('Time [\%]'); ylabel('Amplitude'); -xlim([0, 100]); ylim([0, 1]); - % Force and Response signals % <> +% The force sensor of the instrumented hammer and the accelerometers signals are shown in the time domain in Figure ref:fig:modal_raw_meas. +% Sharp "impacts" can be seen for the force sensor, indicating wide frequency band excitation. +% For the accelerometer, a much more complex signal can be observed, indicating complex dynamics. + +% The "normalized" acrfull:asd of the two signals are computed and shown in Figure ref:fig:modal_asd_acc_force. +% Conclusions based on the time domain signals can be clearly seen in the frequency domain (wide frequency content for the force signal and complex dynamics for the accelerometer). +% Similar results are obtained for all the measured frequency response functions. + + %% Load raw data meas1_raw = load('mat/meas_raw_1.mat'); @@ -126,46 +114,17 @@ impacts = [5.937, 11.228, 16.681, 22.205, 27.350, 32.714, 38.115, 43.888, 50.407 % Time vector [s] time = linspace(0, meas1_raw.Track1_X_Resolution*length(meas1_raw.Track1), length(meas1_raw.Track1)); - - -% The force sensor and the accelerometers signals are shown in the time domain in Figure ref:fig:modal_raw_meas. -% Sharp "impacts" can be seen for the force sensor, indicating wide frequency band excitation. -% For the accelerometer, many resonances can be seen on the right, indicating complex dynamics - - %% Raw measurement of the Accelerometer figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile([1,2]); hold on; -plot(time, meas1_raw.Track2, 'DisplayName', 'Acceleration [$m/s^2$]'); -plot(time, 1e-3*meas1_raw.Track1, 'DisplayName', 'Force [kN]'); +plot(time-22.2, meas1_raw.Track2, 'DisplayName', '$X_{j}$ [$m/s^2$]'); +plot(time-22.2, 1e-3*meas1_raw.Track1, 'DisplayName', '$F_{k}$ [kN]'); hold off; xlabel('Time [s]'); ylabel('Amplitude'); -xlim([0, time(end)]); -legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); - -ax2 = nexttile(); -hold on; -plot(time, meas1_raw.Track2); -plot(time, 1e-3*meas1_raw.Track1); -hold off; -xlabel('Time [s]'); -set(gca, 'YTickLabel',[]); -xlim([22.19, 22.4]); - -linkaxes([ax1,ax2],'y'); +xlim([0, 0.2]); ylim([-2, 2]); - - - -% #+name: fig:modal_raw_meas -% #+caption: Raw measurement of the acceleromter (blue) and of the force sensor at the Hammer tip (red). Zoom on one impact is shown on the right. -% #+RESULTS: -% [[file:figs/modal_raw_meas.png]] - +legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); %% Frequency Analysis Nfft = floor(5.0*Fs); % Number of frequency points @@ -176,17 +135,11 @@ Noverlap = floor(Nfft/2); % Overlap for frequency analysis [pxx_force, f] = pwelch(meas1_raw.Track1, win, Noverlap, Nfft, Fs); [pxx_acc, ~] = pwelch(meas1_raw.Track2, win, Noverlap, Nfft, Fs); - - -% The "normalized" amplitude spectral density of the two signals are computed and shown in Figure ref:fig:modal_asd_acc_force. -% Conclusions based on the time domain signals can be clearly seen in the frequency domain (wide frequency content for the force signal and complex dynamics for the accelerometer). - - %% Normalized Amplitude Spectral Density of the measured force and acceleration figure; hold on; -plot(f, sqrt(pxx_force./max(pxx_force(f<200))), 'DisplayName', 'Force'); -plot(f, sqrt(pxx_acc./max(pxx_acc(f<200))), 'DisplayName', 'Acceleration'); +plot(f, sqrt(pxx_acc./max(pxx_acc(f<200))), 'DisplayName', '$X_{j}$'); +plot(f, sqrt(pxx_force./max(pxx_force(f<200))), 'DisplayName', '$F_{k}$'); hold off; set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'lin'); xlabel('Frequency [Hz]'); ylabel('Normalized Spectral Density'); @@ -197,12 +150,27 @@ legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); -% #+name: fig:modal_asd_acc_force -% #+caption: Normalized Amplitude Spectral Density of the measured force and acceleration -% #+RESULTS: +% #+name: fig:modal_raw_meas_asd +% #+caption: Raw measurement of the acceleromter (blue) and of the force sensor at the Hammer tip (red) (\subref{fig:modal_raw_meas}). Computed Amplitude Spectral Density of the two signals (normalized) (\subref{fig:modal_asd_acc_force}) +% #+attr_latex: :options [htbp] +% #+begin_figure +% #+attr_latex: :caption \subcaption{\label{fig:modal_raw_meas}Time domain signals} +% #+attr_latex: :options {0.49\textwidth} +% #+begin_subfigure +% #+attr_latex: :width 0.95\linewidth +% [[file:figs/modal_raw_meas.png]] +% #+end_subfigure +% #+attr_latex: :caption \subcaption{\label{fig:modal_asd_acc_force}Amplitude Spectral Density (normalized)} +% #+attr_latex: :options {0.49\textwidth} +% #+begin_subfigure +% #+attr_latex: :width 0.95\linewidth % [[file:figs/modal_asd_acc_force.png]] +% #+end_subfigure +% #+end_figure -% The frequency response function from the applied force to the measured acceleration can then be computed (Figure ref:fig:modal_frf_acc_force). +% The frequency response function $H_{jk}$ from the applied force $F_{k}$ to the measured acceleration $X_j$ is then computed and shown Figure ref:fig:modal_frf_acc_force. +% The quality of the obtained data can be estimated using the /coherence/ function, which is shown in Figure ref:fig:modal_coh_acc_force. +% Good coherence is obtained from $20\,\text{Hz}$ to $200\,\text{Hz}$ which corresponds to the frequency range of interest. %% Compute the transfer function and Coherence @@ -217,16 +185,6 @@ set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log'); xlim([0, 200]); xticks([0:20:200]); - - -% #+name: fig:modal_frf_acc_force -% #+caption: Frequency Response Function between the measured force and acceleration -% #+RESULTS: -% [[file:figs/modal_frf_acc_force.png]] - -% The coherence between the input and output signals is also computed and found to be good between 20 and 200Hz (Figure ref:fig:modal_coh_acc_force). - - %% Frequency Response Function between the force and the acceleration figure; plot(f, coh1); diff --git a/matlab/modal_2_frf_processing.m b/matlab/modal_2_frf_processing.m index a39faa8..a2f7e11 100644 --- a/matlab/modal_2_frf_processing.m +++ b/matlab/modal_2_frf_processing.m @@ -10,33 +10,84 @@ addpath('./mat/'); % Path for data %% Colors for the figures colors = colororder; -% Frequency Response Matrix -% <> -% All the Frequency Response Functions measured are combined into one big array called the Frequency Response Matrix. -% The frequency response matrix is an $n \times p \times q$ matrix with: -% - $n$ the number of measurements: $23 \times 3$ (23 accelerometers measuring 3 directions each) -% - $p$ the number of excitation inputs: $3$ -% - $q$ the number of frequency points $\omega_i$ -% Thus, the FRF matrix is an $69 \times 3 \times 801$ matrix. +% #+name: fig:modal_local_to_global_coordinates +% #+caption: Schematic of the measured motions of a solid body +% #+RESULTS: +% [[file:figs/modal_local_to_global_coordinates.png]] -% For each frequency point $\omega_i$, a 2D matrix is obtained: -% \begin{equation} -% \text{FRF}(\omega_i) = \begin{bmatrix} -% \frac{D_{1_x}}{F_x}(\omega_i) & \frac{D_{1_x}}{F_y}(\omega_i) & \frac{D_{1_x}}{F_z}(\omega_i) \\ -% \frac{D_{1_y}}{F_x}(\omega_i) & \frac{D_{1_y}}{F_y}(\omega_i) & \frac{D_{1_y}}{F_z}(\omega_i) \\ -% \frac{D_{1_z}}{F_x}(\omega_i) & \frac{D_{1_z}}{F_y}(\omega_i) & \frac{D_{1_z}}{F_z}(\omega_i) \\ -% \frac{D_{2_x}}{F_x}(\omega_i) & \frac{D_{2_x}}{F_y}(\omega_i) & \frac{D_{2_x}}{F_z}(\omega_i) \\ -% \vdots & \vdots & \vdots \\ -% \frac{D_{23_z}}{F_x}(\omega_i) & \frac{D_{23_z}}{F_y}(\omega_i) & \frac{D_{23_z}}{F_z}(\omega_i) \\ +% The motion of the rigid body of figure ref:fig:modal_local_to_global_coordinates can be described by its displacement $\vec{\delta}p = [\delta p_x,\ \delta p_y,\ \delta p_z]$ and (small) rotations $[\delta \Omega_x,\ \delta \Omega_y,\ \delta \Omega_z]$ with respect to a reference frame $\{O\}$. + +% The motion $\vec{\delta} p_{i}$ of a point $p_i$ can be computed from $\vec{\delta} p$ and $\bm{\delta \Omega}$ using equation eqref:eq:modal_compute_point_response, with $\bm{\delta\Omega}$ defined in equation eqref:eq:modal_rotation_matrix. + +% \begin{equation}\label{eq:modal_compute_point_response} +% \vec{\delta} p_{i} &= \vec{\delta} p + \bm{\delta \Omega} \cdot \vec{p}_{i} \\ +% \end{equation} + +% \begin{equation}\label{eq:modal_rotation_matrix} +% \bm{\delta\Omega} = \begin{bmatrix} +% 0 & -\delta\Omega_z & \delta\Omega_y \\ +% \delta\Omega_z & 0 & -\delta\Omega_x \\ +% -\delta\Omega_y & \delta\Omega_x & 0 % \end{bmatrix} % \end{equation} +% Writing this in a matrix form for the four points gives eqref:eq:modal_cart_to_acc. + +% \begin{equation}\label{eq:modal_cart_to_acc} +% \left[\begin{array}{c} +% \delta p_{1x} \\ \delta p_{1y} \\ \delta p_{1z} \\\hline \vdots \\\hline \delta p_{4x} \\ \delta p_{4y} \\ \delta p_{4z} +% \end{array}\right] = +% \left[\begin{array}{ccc|ccc} +% 1 & 0 & 0 & 0 & p_{1z} & -p_{1y} \\ +% 0 & 1 & 0 & -p_{1z} & 0 & p_{1x} \\ +% 0 & 0 & 1 & p_{1y} & -p_{1x} & 0 \\ \hline +% & \vdots & & & \vdots & \\ \hline +% 1 & 0 & 0 & 0 & p_{4z} & -p_{4y} \\ +% 0 & 1 & 0 & -p_{4z} & 0 & p_{4x} \\ +% 0 & 0 & 1 & p_{4y} & -p_{4x} & 0 +% \end{array}\right] \left[\begin{array}{c} +% \delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z +% \end{array}\right] +% \end{equation} + +% Provided that the four sensors are properly located, the system of equation eqref:eq:modal_cart_to_acc can be solved by matrix inversion[fn:5]. +% The motion of the solid body expressed in a chosen frame $\{O\}$ can be determined using equation eqref:eq:modal_determine_global_disp. +% Note that this matrix inversion is equivalent to resolving a mean square problem. +% Therefore, having more accelerometers permits to have a better approximation of the motion of the solid body. + +% \begin{equation} +% \left[\begin{array}{c} +% \delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z +% \end{array}\right] = +% \left[\begin{array}{ccc|ccc} +% 1 & 0 & 0 & 0 & p_{1z} & -p_{1y} \\ +% 0 & 1 & 0 & -p_{1z} & 0 & p_{1x} \\ +% 0 & 0 & 1 & p_{1y} & -p_{1x} & 0 \\ \hline +% & \vdots & & & \vdots & \\ \hline +% 1 & 0 & 0 & 0 & p_{4z} & -p_{4y} \\ +% 0 & 1 & 0 & -p_{4z} & 0 & p_{4x} \\ +% 0 & 0 & 1 & p_{4y} & -p_{4x} & 0 +% \end{array}\right]^{-1} \left[\begin{array}{c} +% \delta p_{1x} \\ \delta p_{1y} \\ \delta p_{1z} \\\hline \vdots \\\hline \delta p_{4x} \\ \delta p_{4y} \\ \delta p_{4z} +% \end{array}\right] \label{eq:modal_determine_global_disp} +% \end{equation} + + +% From the CAD model, the position of the center of mass of each considered solid body is computed (see Table ref:tab:modal_com_solid_bodies). +% Then, the position of each accelerometer with respect to the center of mass of the corresponding solid body can easily be derived. + %% Load frequency response matrix load('frf_matrix.mat', 'freqs', 'frf'); +%% Load Accelerometer positions +acc_pos = readtable('mat/acc_pos.txt', 'ReadVariableNames', false); +acc_pos = table2array(acc_pos(:, 1:4)); +[~, i] = sort(acc_pos(:, 1)); +acc_pos = acc_pos(i, 2:4); + %% Accelerometers ID connected to each solid body solids = {}; solids.gbot = [17, 18, 19, 20]; % bottom granite @@ -52,189 +103,29 @@ solid_names = fields(solids); %% Save the acceleromter positions are well as the solid bodies save('mat/geometry.mat', 'solids', 'solid_names', 'acc_pos'); - - -% #+name: fig:aligned_accelerometers -% #+caption: Aligned measurement of the motion of a solid body -% #+RESULTS: -% [[file:figs/aligned_accelerometers.png]] - -% The motion of the rigid body of figure ref:fig:aligned_accelerometers is defined by its displacement $\delta p$ and rotation $\vec{\Omega}$ with respect to the reference frame $\{O\}$. - -% The motions at points $1$ and $2$ are: -% \begin{align*} -% \delta p_1 &= \delta p + \Omega \times p_1 \\ -% \delta p_2 &= \delta p + \Omega \times p_2 -% \end{align*} - -% Taking only the $x$ direction: -% \begin{align*} -% \delta p_{x1} &= \delta p_x + \Omega_y p_{z1} - \Omega_z p_{y1} \\ -% \delta p_{x2} &= \delta p_x + \Omega_y p_{z2} - \Omega_z p_{y2} -% \end{align*} - -% However, we have $p_{1y} = p_{2y}$ and $p_{1z} = p_{2z}$ because of the co-linearity of the two sensors in the $x$ direction, and thus we obtain -% \begin{equation} -% \delta p_{x1} = \delta p_{x2} -% \end{equation} - -% #+begin_important -% Two sensors that are measuring the motion of a rigid body in the direction of the line linking the two sensors should measure the same quantity. -% #+end_important - -% We can verify that the rigid body assumption is correct by comparing the measurement of the sensors. - -% From the table ref:tab:position_accelerometers, we can guess which sensors will give the same results in the X and Y directions. - -% Comparison of such measurements in the X direction is shown on figure ref:fig:modal_solid_body_comp_x_dir. -% Similar result is obtained for the Y direction. - - -meas_dir = 1; % X -exc_dir = 1; % X - -% Pair of accelerometers aligned in the X direction -acc_i = [1 , 4 ; - 2 , 3 ; - 5 , 8 ; - 6 , 7 ; - 9 , 12; - 10, 11; - 14, 15; - 18, 19; - 21, 23]; - -%% Comparaison of measured frequency response function for in the X directions for accelerometers aligned along X -figure; -tiledlayout(3, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); -for i = 1:size(acc_i, 1) - nexttile(); - hold on; - plot(freqs, abs(squeeze(frf(meas_dir+3*(acc_i(i, 1)-1), exc_dir, :))), ... - 'DisplayName', sprintf('%i', acc_i(i, 1))) - plot(freqs, abs(squeeze(frf(meas_dir+3*(acc_i(i, 2)-1), exc_dir, :))), ... - 'DisplayName', sprintf('%i', acc_i(i, 2))) - hold off; - set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log'); - if i > 6 - xlabel('Frequency [Hz]'); - legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); - else - set(gca, 'XTickLabel',[]); - legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1); - end - - if rem(i, 3) == 1 - ylabel('Amplitude'); - else - set(gca, 'YTickLabel',[]); - end - - xlim([0, 200]); ylim([1e-5, 2e-2]); -end - -% TODO Verification of the principle of reciprocity :noexport: -% <> -% Because we expect our system to follow the principle of reciprocity. -% That is to say the response $X_j$ at some degree of freedom $j$ due to a force $F_k$ applied on DOF $k$ should be the same as the response $X_k$ due to a force $F_j$: -% \[ H_{jk} = \frac{X_j}{F_k} = \frac{X_k}{F_j} = H_{kj} \] - -% This comes from the fact that we expect to have symmetric mass, stiffness and damping matrices. - -% In order to access the quality of the data and the validity of the measured FRF, we then check that the reciprocity between $H_{jk}$ and $H_{kj}$ is of an acceptable level. - -% We can verify this reciprocity using 3 different pairs of response/force. - - - dir_names = {'X', 'Y', 'Z'}; - - figure; - for i = 1:3 - subplot(3, 1, i) - a = mod(i, 3)+1; - b = mod(i-2, 3)+1; - hold on; - plot(freqs, abs(squeeze(frf(3*(11-1)+a, b, :))), 'DisplayName', sprintf('$\\frac{F_%s}{D_%s}$', dir_names{a}, dir_names{b})); - plot(freqs, abs(squeeze(frf(3*(11-1)+b, a, :))), 'DisplayName', sprintf('$\\frac{F_%s}{D_%s}$', dir_names{b}, dir_names{a})); - hold off; - set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log'); - if i == 3 - xlabel('Frequency [Hz]'); - else - set(gca, 'XTickLabel',[]); - end - if i == 2 - ylabel('Amplitude [$\frac{m/s^2}{N}$]'); - end - xlim([0, 200]); - legend('location', 'northwest'); - end - -% From accelerometer DOFs to solid body DOFs - Matlab Implementation -% First, we initialize a new FRF matrix =FRFs_O= which is an $n \times p \times q$ with: -% - $n$ is the number of DOFs of the considered 6 solid-bodies: $6 \times 6 = 36$ -% - $p$ is the number of excitation inputs: $3$ -% - $q$ is the number of frequency points $\omega_i$ - -% #+begin_important -% For each frequency point $\omega_i$, the FRF matrix =FRFs_O= is a $n\times p$ matrix: -% \begin{equation} -% \text{FRF}_\text{O}(\omega_i) = \begin{bmatrix} -% \frac{D_{1,T_x}}{F_x}(\omega_i) & \frac{D_{1,T_x}}{F_y}(\omega_i) & \frac{D_{1,T_x}}{F_z}(\omega_i) \\ -% \frac{D_{1,T_y}}{F_x}(\omega_i) & \frac{D_{1,T_y}}{F_y}(\omega_i) & \frac{D_{1,T_y}}{F_z}(\omega_i) \\ -% \frac{D_{1,T_z}}{F_x}(\omega_i) & \frac{D_{1,T_z}}{F_y}(\omega_i) & \frac{D_{1,T_z}}{F_z}(\omega_i) \\ -% \frac{D_{1,R_x}}{F_x}(\omega_i) & \frac{D_{1,R_x}}{F_y}(\omega_i) & \frac{D_{1,R_x}}{F_z}(\omega_i) \\ -% \frac{D_{1,R_y}}{F_x}(\omega_i) & \frac{D_{1,R_y}}{F_y}(\omega_i) & \frac{D_{1,R_y}}{F_z}(\omega_i) \\ -% \frac{D_{1,R_z}}{F_x}(\omega_i) & \frac{D_{1,R_z}}{F_y}(\omega_i) & \frac{D_{1,R_z}}{F_z}(\omega_i) \\ -% \frac{D_{2,T_x}}{F_x}(\omega_i) & \frac{D_{2,T_x}}{F_y}(\omega_i) & \frac{D_{2,T_x}}{F_z}(\omega_i) \\ -% \vdots & \vdots & \vdots \\ -% \frac{D_{6,R_z}}{F_x}(\omega_i) & \frac{D_{6,R_z}}{F_y}(\omega_i) & \frac{D_{6,R_z}}{F_z}(\omega_i) -% \end{bmatrix} -% \end{equation} -% where $D_i$ corresponds to the solid body number i. -% #+end_important - -% Then, as we know the positions of the accelerometers on each solid body, and we have the response of those accelerometers, we can use the equations derived in the previous section to determine the response of each solid body expressed in the frame $\{O\}$. - - - FRFs_O = zeros(length(solid_names)*6, 3, 801); - - for solid_i = 1:length(solid_names) - solids_i = solids.(solid_names{solid_i}); - - A = zeros(3*length(solids_i), 6); - for i = 1:length(solids_i) - acc_i = solids_i(i); - - A(3*(i-1)+1:3*i, 1:3) = eye(3); - A(3*(i-1)+1:3*i, 4:6) = [ 0 acc_pos(acc_i, 3) -acc_pos(acc_i, 2) ; - -acc_pos(acc_i, 3) 0 acc_pos(acc_i, 1) ; - acc_pos(acc_i, 2) -acc_pos(acc_i, 1) 0]; - end - - for exc_dir = 1:3 - FRFs_O((solid_i-1)*6+1:solid_i*6, exc_dir, :) = A\squeeze(FRFs((solids_i(1)-1)*3+1:solids_i(end)*3, exc_dir, :)); - end - end - -% Center of Mass of each solid body -% From solidworks, we can export the position of the center of mass of each solid body considered. -% These are summarized in Table ref:tab:modal_com_solid_bodies - - %% Extract the CoM of considered solid bodies model_com = reshape(table2array(readtable('mat/model_solidworks_com.txt', 'ReadVariableNames', false)), [3, 6]); -% From accelerometer DOFs to solid body DOFs - Expressed at the CoM -% First, we initialize a new FRF matrix which is an $n \times p \times q$ with: -% - $n$ is the number of DOFs of the considered 6 solid-bodies: $6 \times 6 = 36$ -% - $p$ is the number of excitation inputs: $3$ -% - $q$ is the number of frequency points $\omega_i$ -% #+begin_important -% For each frequency point $\omega_i$, the FRF matrix is a $n\times p$ matrix: -% \begin{equation} -% \text{FRF}_\text{CoM}(\omega_i) = \begin{bmatrix} + +% #+name: tab:modal_com_solid_bodies +% #+caption: Center of mass of considered solid bodies with respect to the "point of interest" +% #+attr_latex: :environment tabularx :width 0.6\linewidth :align lXXX +% #+attr_latex: :center t :booktabs t +% #+RESULTS: +% | | $X$ [mm] | $Y$ [mm] | $Z$ [mm] | +% |-------------------+----------+----------+----------| +% | Bottom Granite | 45 | 144 | -1251 | +% | Top granite | 52 | 258 | -778 | +% | Translation stage | 0 | 14 | -600 | +% | Tilt Stage | 0 | -5 | -628 | +% | Spindle | 0 | 0 | -580 | +% | Hexapod | -4 | 6 | -319 | + +% Using eqref:eq:modal_determine_global_disp, the frequency response matrix $\mathbf{H}_\text{CoM}$ eqref:eq:modal_frf_matrix_com expressing the response at the center of mass of each solid body $D_i$ ($i$ from $1$ to $6$ for the $6$ considered solid bodies) can be computed from the initial acrshort:frf matrix $\mathbf{H}$. + +% \begin{equation}\label{eq:modal_frf_matrix_com} +% \mathbf{H}_\text{CoM}(\omega_i) = \begin{bmatrix} % \frac{D_{1,T_x}}{F_x}(\omega_i) & \frac{D_{1,T_x}}{F_y}(\omega_i) & \frac{D_{1,T_x}}{F_z}(\omega_i) \\ % \frac{D_{1,T_y}}{F_x}(\omega_i) & \frac{D_{1,T_y}}{F_y}(\omega_i) & \frac{D_{1,T_y}}{F_z}(\omega_i) \\ % \frac{D_{1,T_z}}{F_x}(\omega_i) & \frac{D_{1,T_z}}{F_y}(\omega_i) & \frac{D_{1,T_z}}{F_z}(\omega_i) \\ @@ -246,14 +137,10 @@ model_com = reshape(table2array(readtable('mat/model_solidworks_com.txt', 'ReadV % \frac{D_{6,R_z}}{F_x}(\omega_i) & \frac{D_{6,R_z}}{F_y}(\omega_i) & \frac{D_{6,R_z}}{F_z}(\omega_i) % \end{bmatrix} % \end{equation} -% where 1, 2, ..., 6 corresponds to the 6 solid bodies. -% #+end_important - -% Then, as we know the positions of the accelerometers on each solid body, and we have the response of those accelerometers, we can use the equations derived in the previous section to determine the response of each solid body expressed in their center of mass. %% Frequency Response Matrix - Response expressed at the CoM of the solid bodies -FRFs_CoM = zeros(length(solid_names)*6, 3, 801); +frfs_CoM = zeros(length(solid_names)*6, 3, 801); for solid_i = 1:length(solid_names) % Number of accelerometers fixed to this solid body @@ -273,43 +160,30 @@ for solid_i = 1:length(solid_names) end for exc_dir = 1:3 - FRFs_CoM((solid_i-1)*6+1:solid_i*6, exc_dir, :) = A\squeeze(frf((solids_i(1)-1)*3+1:solids_i(end)*3, exc_dir, :)); + frfs_CoM((solid_i-1)*6+1:solid_i*6, exc_dir, :) = A\squeeze(frf((solids_i(1)-1)*3+1:solids_i(end)*3, exc_dir, :)); end end %% Save the computed FRF at the CoM -save('mat/frf_com.mat', 'FRFs_CoM'); +save('mat/frf_com.mat', 'frfs_CoM'); -% Verify that we find the original FRF from the FRF in the global coordinates -% We have computed the Frequency Response Functions Matrix representing the response of the 6 solid bodies in their 6 DOFs with respect to their center of mass. +% Verification of solid body assumption +% <> -% From the response of one body in its 6 DOFs, we should be able to compute the FRF of each of its accelerometer fixed to it during the measurement, supposing that this stage is a solid body. +% From the response of one solid body expressed by its 6 acrshortpl:dof (i.e. from $\mathbf{H}_{\text{CoM}}$), and using equation eqref:eq:modal_cart_to_acc, it is possible to compute the response of the same solid body at any considered position. +% In particular, the response at the location of the four accelerometers can be computed and compared with the original measurements $\mathbf{H}$. +% This is what is here done to check if solid body assumption is correct in the frequency band of interest. -% We can then compare the result with the original measurements. -% This will help us to determine if: -% - the previous inversion used is correct -% - the solid body assumption is correct in the frequency band of interest -% From the translation $\delta p$ and rotation $\delta \Omega$ of a solid body and the positions $p_i$ of the accelerometers attached to it, we can compute the response that would have been measured by the accelerometers using the following formula: -% \begin{align*} -% \delta p_1 &= \delta p + \delta\Omega p_1\\ -% \delta p_2 &= \delta p + \delta\Omega p_2\\ -% \delta p_3 &= \delta p + \delta\Omega p_3\\ -% \delta p_4 &= \delta p + \delta\Omega p_4 -% \end{align*} - -% Thus, we can obtain the FRF matrix =FRFs_A= that gives the responses of the accelerometers to the forces applied by the hammer. - -% It is implemented in matlab as follow: - -FRFs_A = zeros(size(frf)); +%% Compute the FRF at the accelerometer location from the CoM reponses +frfs_A = zeros(size(frf)); % For each excitation direction for exc_dir = 1:3 % For each solid for solid_i = 1:length(solid_names) - v0 = squeeze(FRFs_CoM((solid_i-1)*6+1:(solid_i-1)*6+3, exc_dir, :)); - W0 = squeeze(FRFs_CoM((solid_i-1)*6+4:(solid_i-1)*6+6, exc_dir, :)); + v0 = squeeze(frfs_CoM((solid_i-1)*6+1:(solid_i-1)*6+3, exc_dir, :)); + W0 = squeeze(frfs_CoM((solid_i-1)*6+4:(solid_i-1)*6+6, exc_dir, :)); % For each accelerometer attached to the current solid for acc_i = solids.(solid_names{solid_i}) @@ -318,20 +192,17 @@ for exc_dir = 1:3 % pos = acc_pos(acc_i, :).'; posX = [0 pos(3) -pos(2); -pos(3) 0 pos(1) ; pos(2) -pos(1) 0]; - FRFs_A(3*(acc_i-1)+1:3*(acc_i-1)+3, exc_dir, :) = v0 + posX*W0; + frfs_A(3*(acc_i-1)+1:3*(acc_i-1)+3, exc_dir, :) = v0 + posX*W0; end end end -% We then compare the original FRF measured for each accelerometer =FRFs= with the "recovered" FRF =FRFs_A= from the global FRF matrix in the common frame. - -% The FRF for the 4 accelerometers on the Hexapod are compared on figure ref:fig:recovered_frf_comparison_hexa. -% All the FRF are matching very well in all the frequency range displayed. - -% The FRF for accelerometers located on the translation stage are compared on figure ref:fig:recovered_frf_comparison_ty. -% The FRF are matching well until 100Hz. +% The comparison is made for the 4 accelerometers fixed to the micro-hexapod (Figure ref:fig:modal_comp_acc_solid_body_frf). +% The original frequency response functions and the ones computed from the CoM responses are well matching in the frequency range of interested. +% Similar results are obtained for the other solid bodies, indicating that the solid body assumption is valid, and that a multi-body model can be used to represent the dynamics of the micro-station. +% This also validates the reduction of the number of degrees of freedom from 69 (23 accelerometers with each 3 acrshort:dof) to 36 (6 solid bodies with 6 acrshort:dof). %% Comparaison of the original accelerometer response and reconstructed response from the solid body response @@ -344,7 +215,7 @@ exc_dir = 1; % Excited direction accs_i = solids.(solid_names{solid_i}); % Accelerometers fixed to this solid body figure; -tiledlayout(2, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); +tiledlayout(2, 2, 'TileSpacing', 'Tight', 'Padding', 'None'); for i = 1:length(accs_i) acc_i = accs_i(i); @@ -356,7 +227,7 @@ for i = 1:length(accs_i) end set(gca,'ColorOrderIndex',1) for dir_i = 1:3 - plot(freqs, abs(squeeze(FRFs_A(3*(acc_i-1)+dir_i, exc_dir, :))), '--', 'HandleVisibility', 'off'); + plot(freqs, abs(squeeze(frfs_A(3*(acc_i-1)+dir_i, exc_dir, :))), '--', 'HandleVisibility', 'off'); end hold off; @@ -372,7 +243,8 @@ for i = 1:length(accs_i) set(gca, 'YTickLabel',[]); end - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - xlim([5, 200]); ylim([1e-6, 1e-1]); - legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); + set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'log'); + xlim([0, 200]); ylim([1e-6, 3e-2]); + xticks([0:20:200]); + legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1); end diff --git a/matlab/modal_3_analysis.m b/matlab/modal_3_analysis.m index 743b7e1..4939c84 100644 --- a/matlab/modal_3_analysis.m +++ b/matlab/modal_3_analysis.m @@ -10,32 +10,29 @@ addpath('./mat/'); % Path for data %% Colors for the figures colors = colororder; -% Singular Value Decomposition - Modal Indication Function -% The Mode Indicator Functions are usually used on $n\times p$ FRF matrix where $n$ is a relatively large number of measurement DOFs and $p$ is the number of excitation DOFs, typically 3 or 4. +% Number of modes determination +% <> +% The acrshort:mif is here applied to the $n\times p$ acrshort:frf matrix where $n$ is a relatively large number of measurement DOFs (here $n=69$) and $p$ is the number of excitation DOFs (here $p=3$). -% In these methods, the frequency dependent FRF matrix is subjected to a singular value decomposition analysis which thus yields a small number (3 or 4) of singular values, these also being frequency dependent. +% The complex modal indication function is defined in equation eqref:eq:modal_cmif where the diagonal matrix $\Sigma$ is obtained from a acrlong:svd of the acrshort:frf matrix as shown in equation eqref:eq:modal_svd. +% \begin{equation} \label{eq:modal_cmif} +% [CMIF(\omega)]_{p\times p} = [\Sigma(\omega)]_{p\times n}^T [\Sigma(\omega)]_{n\times p} +% \end{equation} -% These methods are used to *determine the number of modes* present in a given frequency range, to *identify repeated natural frequencies* and to pre-process the FRF data prior to modal analysis. +% \begin{equation} \label{eq:modal_svd} +% [H(\omega)]_{n\times p} = [U(\omega)]_{n\times n} [\Sigma(\omega)]_{n\times p} [V(\omega)]_{p\times p}^H +% \end{equation} -% From the documentation of the modal software: -% #+begin_quote -% The MIF consist of the singular values of the Frequency response function matrix. The number of MIFs equals the number of excitations. -% By the powerful singular value decomposition, the real signal space is separated from the noise space. Therefore, the MIFs exhibit the modes effectively. -% A peak in the MIFs plot usually indicate the existence of a structural mode, and two peaks at the same frequency point means the existence of two repeated modes. -% Moreover, the magnitude of the MIFs implies the strength of the a mode. -% #+end_quote +% The acrshort:mif therefore yields to $p$ values that are also frequency dependent. +% A peak in the acrshort:mif plot indicates the presence of a mode. +% Repeated modes can also be detected by multiple singular values are having peaks at the same frequency. +% The obtained acrshort:mif is shown on Figure ref:fig:modal_indication_function. +% A total of 16 modes are found between 0 and $200\,\text{Hz}$. +% The obtained natural frequencies and associated modal damping are summarized in Table ref:tab:modal_obtained_modes_freqs_damps. -% #+begin_important -% The *Complex Mode Indicator Function* is defined simply by the SVD of the FRF (sub) matrix: -% \begin{align*} -% [H(\omega)]_{n\times p} &= [U(\omega)]_{n\times n} [\Sigma(\omega)]_{n\times p} [V(\omega)]_{p\times p}^H\\ -% [CMIF(\omega)]_{p\times p} &= [\Sigma(\omega)]_{p\times n}^T [\Sigma(\omega)]_{n\times p} -% \end{align*} -% #+end_important - -% We compute the Complex Mode Indicator Function. -% The result is shown on Figure ref:fig:modal_indication_function. +%% Load frequency response matrix +load('frf_matrix.mat', 'freqs', 'frf'); %% Computation of the modal indication function MIF = zeros(size(frf, 2), size(frf, 2), size(frf, 3)); @@ -58,35 +55,31 @@ xticks([0:20:200]); xlim([0, 200]); ylim([1e-6, 2e-2]); -% Composite Response Function -% An alternative is the Composite Response Function $HH(\omega)$ defined as the sum of all the measured FRF: -% \begin{equation} -% HH(\omega) = \sum_j\sum_kH_{jk}(\omega) +% Verification of the modal model validity +% <> + +% In order to check the validity of the modal model, the complete $n \times n$ acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ is first synthesized from the modal parameters. +% Then, the elements of this acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ that were already measured can be compared with the measured acrshort:frf matrix $\mathbf{H}$. + +% In order to synthesize the full acrshort:frf matrix, the eigenvectors $\phi_r$ are first organized in a matrix from as shown in equation eqref:eq:modal_eigvector_matrix. +% \begin{equation}\label{eq:modal_eigvector_matrix} +% \Phi = \begin{bmatrix} +% & & & & &\\ +% \phi_1 & \dots & \phi_N & \phi_1^* & \dots & \phi_N^* \\ +% & & & & & +% \end{bmatrix}_{n \times 2m} % \end{equation} -% Instead, we choose here to use the sum of the norms of the measured frf: -% \begin{equation} -% HH(\omega) = \sum_j\sum_k \left|H_{jk}(\omega) \right| +% The full acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ can be synthesize using eqref:eq:modal_synthesized_frf. + +% \begin{equation}\label{eq:modal_synthesized_frf} +% [\mathbf{H}_{\text{syn}}(\omega)]_{n\times n} = [\Phi]_{n\times2m} [\mathbf{H}_{\text{mod}}(\omega)]_{2m\times2m} [\Phi]_{2m\times n}^T % \end{equation} -% The result is shown on figure ref:fig:modal_composite_reponse_function. - - -%% Composite Response Function -figure; -hold on; -plot(freqs, squeeze(sum(sum(abs(frf)))), '-k'); -hold off; -xlabel('Frequency [Hz]'); ylabel('Amplitude'); -xlim([0, 200]); -xticks([0:20:200]); - -% Importation of the modal parameters on Matlab -% The obtained modal parameters are: -% - Resonance frequencies in Hertz -% - Modal damping ratio in percentage -% - (complex) Modes shapes for each measured DoF -% - Modal A and modal B which are parameters important for further normalization +% With $\mathbf{H}_{\text{mod}}(\omega)$ a diagonal matrix representing the response of the different modes eqref:eq:modal_modal_resp. +% \begin{equation}\label{eq:modal_modal_resp} +% \mathbf{H}_{\text{mod}}(\omega) = \text{diag}\left(\frac{1}{a_1 (j\omega - s_1)},\ \dots,\ \frac{1}{a_m (j\omega - s_m)}, \frac{1}{a_1^* (j\omega - s_1^*)},\ \dots,\ \frac{1}{a_m^* (j\omega - s_m^*)} \right)_{2m\times 2m} +% \end{equation} %% Load modal parameters @@ -123,149 +116,91 @@ for mod_i = 1:mod_n end end -% Modal Matrices -% We would like to arrange the obtained modal parameters into two modal matrices: -% \[ \Lambda = \begin{bmatrix} -% s_1 & & 0 \\ -% & \ddots & \\ -% 0 & & s_N -% \end{bmatrix}_{N \times N}; \quad \Psi = \begin{bmatrix} -% & & \\ -% \{\psi_1\} & \dots & \{\psi_N\} \\ -% & & -% \end{bmatrix}_{M \times N} \] -% \[ \{\psi_i\} = \begin{Bmatrix} \psi_{i, 1_x} & \psi_{i, 1_y} & \psi_{i, 1_z} & \psi_{i, 2_x} & \dots & \psi_{i, 23_z} \end{Bmatrix}^T \] - -% $M$ is the number of DoF: here it is $23 \times 3 = 69$. -% $N$ is the number of mode - - -eigen_val_M = diag(2*pi*freqs_m.*(-damps_m/100 + j*sqrt(1 - (damps_m/100).^2))); -eigen_vec_M = reshape(mode_shapes, [mod_n, acc_n*dir_n]).'; - - - -% Each eigen vector is normalized: $\| \{\psi_i\} \|_2 = 1$ - - -% However, the eigen values and eigen vectors appears as complex conjugates: -% \[ s_r, s_r^*, \{\psi\}_r, \{\psi\}_r^*, \quad r = 1, N \] - -% In the end, they are $2N$ eigen values. -% We then build two extended eigen matrices as follow: -% \[ \mathcal{S} = \begin{bmatrix} -% s_1 & & & & & \\ -% & \ddots & & & 0 & \\ -% & & s_N & & & \\ -% & & & s_1^* & & \\ -% & 0 & & & \ddots & \\ -% & & & & & s_N^* -% \end{bmatrix}_{2N \times 2N}; \quad \Phi = \begin{bmatrix} -% & & & & &\\ -% \{\psi_1\} & \dots & \{\psi_N\} & \{\psi_1^*\} & \dots & \{\psi_N^*\} \\ -% & & & & & -% \end{bmatrix}_{M \times 2N} \] - +%% Create the eigenvalue and eigenvector matrices +eigen_val_M = diag(2*pi*freqs_m.*(-damps_m/100 + j*sqrt(1 - (damps_m/100).^2))); % Lambda = diagonal matrix +eigen_vec_M = reshape(mode_shapes, [mod_n, acc_n*dir_n]).'; % Phi, vecnorm(eigen_vec_M) = 1 +% Add complex conjugate eigenvalues and eigenvectors eigen_val_ext_M = blkdiag(eigen_val_M, conj(eigen_val_M)); eigen_vec_ext_M = [eigen_vec_M, conj(eigen_vec_M)]; - - -% We also build the Modal A and Modal B matrices: -% \begin{equation} -% A = \begin{bmatrix} -% a_1 & & 0 \\ -% & \ddots & \\ -% 0 & & a_N -% \end{bmatrix}_{N \times N}; \quad B = \begin{bmatrix} -% b_1 & & 0 \\ -% & \ddots & \\ -% 0 & & b_N -% \end{bmatrix}_{N \times N} -% \end{equation} -% With $a_i$ is the "Modal A" parameter linked to mode i. - - +%% "Modal A" and "Modal B" matrices modal_a_M = diag(complex(modal_a(:, 1), modal_a(:, 2))); modal_b_M = diag(complex(modal_b(:, 1), modal_b(:, 2))); modal_a_ext_M = blkdiag(modal_a_M, conj(modal_a_M)); modal_b_ext_M = blkdiag(modal_b_M, conj(modal_b_M)); -% Matlab Implementation - +%% Synthesize the full FRF matrix from the modal model Hsyn = zeros(acc_n*dir_n, acc_n*dir_n, length(freqs)); for i = 1:length(freqs) - Hsyn(:, :, i) = eigen_vec_ext_M*((j*2*pi*freqs(i)).^2*inv(modal_a_ext_M)/(diag(j*2*pi*freqs(i) - diag(eigen_val_ext_M))))*eigen_vec_ext_M.'; + Hsyn(:, :, i) = eigen_vec_ext_M*diag(1./(diag(modal_a_ext_M).*(j*2*pi*freqs(i) - diag(eigen_val_ext_M))))*eigen_vec_ext_M.'; end - - -% Because the synthesize frequency response functions are representing the displacement response in $[m/N]$, we multiply each element of the FRF matrix by $(j \omega)^2$ in order to obtain the acceleration response in $[m/s^2/N]$. - - +%% Derivate two times to to have the acceleration response for i = 1:size(Hsyn, 1) Hsyn(i, :, :) = squeeze(Hsyn(i, :, :)).*(j*2*pi*freqs).^2; end -% Original and Synthesize FRF matrix comparison -acc_o = 1; dir_o = 1; dir_i = 1; + +% The comparison between the original measured frequency response functions and the synthesized ones from the modal model is done in Figure ref:fig:modal_comp_acc_frf_modal. +% Whether the obtained match can be considered good or bad is quite arbitrary. +% Yet, the modal model seems to be able to represent the coupling between different nodes and different direction which is quite important in a control point of view. +% This can be seen in Figure ref:fig:modal_comp_acc_frf_modal_3 that shows the frequency response function between a force applied on node 11 (i.e. on the translation stage) in the $y$ direction to the measured acceleration at node $2$ (i.e. at the top of the micro-hexapod) in the $x$ direction. + + +acc_o = 11; dir_o = 3; +acc_i = 11; dir_i = 3; figure; -ax1 = subplot(2, 1, 1); hold on; -plot(freqs, abs(squeeze(frf(3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Original'); -plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(11-1)+dir_i, :))), 'DisplayName', 'Synthesize'); +plot(freqs, abs(squeeze(frf( 3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Measured'); +plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(acc_i-1)+dir_i, :))), 'DisplayName', 'Synthesized'); hold off; +set(gca, 'xscale', 'lin'); set(gca, 'yscale', 'log'); -set(gca, 'XTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Magnitude [$\frac{m/s^2}{N}$]'); -title(sprintf('From acc %i %s to acc %i %s', 11, dirs(dir_i), acc_o, dirs(dir_o))) -legend('location', 'northwest'); - -ax2 = subplot(2, 1, 2); -hold on; -plot(freqs, mod(180/pi*phase(squeeze(frf(3*(acc_o-1)+dir_o, dir_i, :)))+180, 360)-180); -plot(freqs, mod(180/pi*phase(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(11-1)+dir_i, :)))+180, 360)-180); -hold off; -yticks(-360:90:360); ylim([-180, 180]); -xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); - -linkaxes([ax1,ax2],'x'); +ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1); +ldg.ItemTokenSize = [10, 1]; +xticks([0:40:200]); xlim([1, 200]); +ylim([1e-6, 1e-1]); -% Synthesize FRF that has not yet been measured - -accs = [1]; dirs = [1:3]; +acc_o = 15; dir_o = 3; +acc_i = 11; dir_i = 3; figure; -ax1 = subplot(2, 1, 1); hold on; -for acc_i = accs - for dir_i = dirs - plot(freqs, abs((1./(j*2*pi*freqs').^2).*squeeze(Hsyn(3*(acc_i-1)+dir_i, 3*(acc_i-1)+dir_i, :))), 'DisplayName', sprintf('Acc %i - %s', acc_i, dirs(dir_i))); - end -end +plot(freqs, abs(squeeze(frf( 3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Measured'); +plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(acc_i-1)+dir_i, :))), 'DisplayName', 'Synthesized'); hold off; -set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); -set(gca, 'XTickLabel',[]); -ylabel('Magnitude [$\frac{m}{N}$]'); -legend('location', 'southwest'); - -ax2 = subplot(2, 1, 2); -hold on; -for acc_i = accs - for dir_i = dirs - plot(freqs, mod(180/pi*phase((1./(j*2*pi*freqs').^2).*squeeze(Hsyn(3*(acc_i-1)+dir_i, 3*(acc_i-1)+dir_i, :)))+180, 360)-180); - end -end -hold off; -yticks(-360:90:360); ylim([-180, 180]); -set(gca, 'xscale', 'log'); -xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); - -linkaxes([ax1,ax2],'x'); +set(gca, 'xscale', 'lin'); +set(gca, 'yscale', 'log'); +xlabel('Frequency [Hz]'); +ylabel('Magnitude [$\frac{m/s^2}{N}$]'); +ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1); +ldg.ItemTokenSize = [10, 1]; +xticks([0:40:200]); xlim([1, 200]); +ylim([1e-6, 1e-1]); + +acc_o = 2; dir_o = 1; +acc_i = 11; dir_i = 2; + +figure; +hold on; +plot(freqs, abs(squeeze(frf( 3*(acc_o-1)+dir_o, dir_i, :))), 'DisplayName', 'Measured'); +plot(freqs, abs(squeeze(Hsyn(3*(acc_o-1)+dir_o, 3*(acc_i-1)+dir_i, :))), 'DisplayName', 'Synthesized'); +hold off; +set(gca, 'xscale', 'lin'); +set(gca, 'yscale', 'log'); +xlabel('Frequency [Hz]'); +ylabel('Magnitude [$\frac{m/s^2}{N}$]'); +ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1); +ldg.ItemTokenSize = [10, 1]; +xticks([0:40:200]); +xlim([1, 200]); +ylim([1e-6, 1e-1]); diff --git a/modal-analysis.org b/modal-analysis.org index c92e35d..6b51bef 100644 --- a/modal-analysis.org +++ b/modal-analysis.org @@ -98,11 +98,14 @@ * Notes :noexport: Prefix is =modal= + ** DONE [#C] Section ref:ssec:modal_solid_body_first_check can probably be removed CLOSED: [2024-10-24 Thu 10:08] As the solid body assumption is already verified in section ref:ssec:modal_solid_body_assumption. -** TODO [#A] Make sure the synthesis of FRF from modal model is working as expected +** DONE [#A] Make sure the synthesis of FRF from modal model is working as expected +CLOSED: [2024-10-24 Thu 17:42] + ** TODO [#B] Add all notation | | | @@ -167,7 +170,7 @@ This modal model can then be used to tune the spatial model (i.e. the multi-body #+end_src #+name: fig:modal_vibration_analysis_procedure -#+caption: Figure caption +#+caption: Three models of the same structure. The goal could be to tune a spatial model (i.e. mass, stiffness and damping properties) from a response model. As an intermediate step, the modal model can prove to be very useful. #+RESULTS: [[file:figs/modal_vibration_analysis_procedure.png]] @@ -179,7 +182,7 @@ These measurements are projected at the center of mass of each considered solid The solid body assumption is then verified, validating the use of the multi-body model. Finally, the modal analysis is performed in Section ref:sec:modal_analysis. -It shows how complex the micro-station dynamics is, and the necessity of the developed more complex multi-body model. +It shows how complex the micro-station dynamics is, and the necessity of having a model that represented complex dynamics. # #+name: tab:modal_section_matlab_code # #+caption: Report sections and corresponding Matlab files @@ -201,7 +204,7 @@ It shows how complex the micro-station dynamics is, and the necessity of the dev In order to perform an experimental modal analysis, a proper measurement setup is key. This include using appropriate instrumentation (presented in Section ref:ssec:modal_instrumentation) and properly preparing the structure to be measured (Section ref:ssec:modal_test_preparation). Then, the location of the measured motion (Section ref:ssec:modal_accelerometers) and the location of the hammer impacts (Section ref:ssec:modal_hammer_impacts) have to be chosen carefully. -Obtained force and acceleration signals are shown in Section ref:ssec:modal_measured_signals, and the quality of the measured data is checked. +Obtained force and acceleration signals are shown in Section ref:ssec:modal_measured_signals, and the quality of the measured data is assessed. ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) @@ -274,13 +277,13 @@ The top part representing the active stabilization stage has been disassembled a To perform the modal-analysis from the measured responses, the $n \times n$ frequency response function matrix $\mathbf{H}$ needs to be measured, where $n$ is the considered number of degrees of freedom. The $H_{jk}$ element of this acrfull:frf matrix corresponds to the frequency response function from a force $F_k$ applied at acrfull:dof $k$ to the displacement of the structure $X_j$ at acrshort:dof $j$. -Measuring this acrshort:frf matrix is very time consuming as it requires to make $n^2$ measurements. +Measuring this acrshort:frf matrix is very time consuming as it requires to make $n \times n$ measurements. However thanks to the principle of reciprocity ($H_{jk} = H_{kj}$) and using the /point measurement/ ($H_{jj}$), it is possible to reconstruct the full matrix by measuring only one column or one line of the matrix $\mathbf{H}$ [[cite:&ewins00_modal chapt. 5.2]]. Therefore, a minimum set of $n$ frequency response functions needs to be measured. This can be done either by measuring the response $X_{j}$ at a fixed acrshort:dof $j$ while applying forces $F_{i}$ for at all $n$ considered acrshort:dof, or by applying a force $F_{k}$ at a fixed acrshort:dof $k$ and measuring the response $X_{i}$ for all $n$ acrshort:dof. It is however not advised to measure only one row or one column as one or more modes may be missed by an unfortunate choice of force or acceleration measured locations (for instance if the force is applied at a vibration node of a particular mode). -In this modal-analysis, it is chosen to measure the response of the structure at all considered acrshort:dof, and to excite the structure at one location in three directions in order to have some redundancy and to make sure that all modes are properly energized. +In this modal-analysis, it is chosen to measure the response of the structure at all considered acrshort:dof, and to excite the structure at one location in three directions in order to have some redundancy and to make sure that all modes are properly identified. ** Location of the Accelerometers <> @@ -374,7 +377,6 @@ The chosen location of the hammer impact corresponds to the location of accelero It was chosen to match the location of one accelerometer, because a /point measurement/ (i.e. a measurement of $H_{kk}$) is necessary to be able to reconstruct the full acrshort:frf matrix [[cite:ewins00_modal]]. The impacts are performed in three directions, which are shown in figures ref:fig:modal_impact_x, ref:fig:modal_impact_y and ref:fig:modal_impact_z. -This excitation point with the three considered directions allows to properly energize all the modes in the frequency band of interest and to provide good coherence for all the accelerometers as will be shown in the next section. #+name: fig:modal_hammer_impacts #+caption: The three hammer impacts used for the modal analysis @@ -409,6 +411,7 @@ For the accelerometer, a much more complex signal can be observed, indicating co The "normalized" acrfull:asd of the two signals are computed and shown in Figure ref:fig:modal_asd_acc_force. Conclusions based on the time domain signals can be clearly seen in the frequency domain (wide frequency content for the force signal and complex dynamics for the accelerometer). +Similar results are obtained for all the measured frequency response functions. #+begin_src matlab %% Load raw data @@ -553,7 +556,7 @@ exportFig('figs/modal_coh_acc_force.pdf', 'width', 'half', 'height', 'normal'); <> ** Introduction :ignore: -All measurements where conducted and a $n \times p \times q$ acrlongpl:frf Matrix were computed with: +After all measurements are conducted, a $n \times p \times q$ acrlongpl:frf matrix can be computed with: - $n = 69$: the number of output measured accelerations (23 3-axis accelerometers) - $p = 3$: the number of input force excitations - $q = 801$: the number of frequency points $\omega_{i}$ @@ -571,14 +574,14 @@ For each frequency point $\omega_{i}$, a 2D complex matrix is obtained that link \end{bmatrix} \end{equation} -However, for the multi-body model being developed, only 6 solid bodies are considered, namely: the bottom granite, the top granite, the translation stage, the tilt stage, the spindle and the hexapod. +However, for the multi-body model being developed, only 6 solid bodies are considered, namely: the bottom granite, the top granite, the translation stage, the tilt stage, the spindle and the micro-hexapod. Therefore, only $6 \times 6 = 36$ degrees of freedom are of interest. The objective in this section is therefore to process the Frequency Response Matrix to reduce the number of measured acrshort:dof from 69 to 36. The coordinate transformation from accelerometers acrshort:dof to the solid body 6 acrshortpl:dof (three translations and three rotations) is performed in Section ref:ssec:modal_acc_to_solid_dof. The $69 \times 3 \times 801$ frequency response matrix is then reduced to a $36 \times 3 \times 801$ frequency response matrix where the motion of each solid body is expressed with respect to its center of mass. -To validate this reduction of acrshort:dof and the solid body assumption, the frequency response function at the accelerometer location are recomputed from the reduced frequency response matrix and are compared with the initial measurements in Section ref:ssec:modal_solid_body_assumption. +To validate this reduction of acrshort:dof and the solid body assumption, the frequency response function at the accelerometer location are "reconstructed" from the reduced frequency response matrix and are compared with the initial measurements in Section ref:ssec:modal_solid_body_assumption. ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) @@ -619,7 +622,7 @@ The goal here is to link these $4 \times 3 = 12$ measurements to the 6 acrshort: \begin{tikzpicture} \draw[rounded corners=1mm, fill=blue!30!white] (0, 0) \irregularcircle{3cm}{1mm}; - \node[] (origin) at (4, -1) {$\bullet$}; + \node[] (origin) at (0, 0) {$\bullet$}; \begin{scope}[shift={(origin)}] \def\axissize{0.8cm} \draw[->] (0, 0) -- ++(\axissize, 0) node[above left]{$x$}; @@ -634,10 +637,10 @@ The goal here is to link these $4 \times 3 = 12$ measurements to the 6 acrshort: \coordinate[] (p3) at ( 1.5, 1.5); \coordinate[] (p4) at ( 1.5, -1.5); - \draw[->] (p1)node[]{$\bullet$}node[above]{$\vec{p}_1$} -- ++( 1 , 0.5)node[right]{$\delta \vec{p}_1$}; - \draw[->] (p2)node[]{$\bullet$}node[above]{$\vec{p}_2$} -- ++(-0.5, 1 )node[right]{$\delta \vec{p}_2$}; - \draw[->] (p3)node[]{$\bullet$}node[above]{$\vec{p}_3$} -- ++( 1 , 0.5)node[right]{$\delta \vec{p}_3$}; - \draw[->] (p4)node[]{$\bullet$}node[above]{$\vec{p}_4$} -- ++( 0.5, 1 )node[right]{$\delta \vec{p}_4$}; + \draw[->] (p1)node[]{$\bullet$}node[above]{$\vec{p}_1$} -- ++( 1 , 0.1)node[right]{$\delta \vec{p}_1$}; + \draw[->] (p2)node[]{$\bullet$}node[above]{$\vec{p}_2$} -- ++(-0.5,-0.4)node[below]{$\delta \vec{p}_2$}; + \draw[->] (p3)node[]{$\bullet$}node[above]{$\vec{p}_3$} -- ++(-0.8,-0.1)node[below]{$\delta \vec{p}_3$}; + \draw[->] (p4)node[]{$\bullet$}node[above]{$\vec{p}_4$} -- ++( 0.5, 0.2)node[below]{$\delta \vec{p}_4$}; \end{tikzpicture} #+end_src @@ -646,9 +649,28 @@ The goal here is to link these $4 \times 3 = 12$ measurements to the 6 acrshort: #+RESULTS: [[file:figs/modal_local_to_global_coordinates.png]] -Writing Eq. eqref:eq:modal_p1_p2_motion for the four displacement sensors in a matrix form gives eqref:eq:modal_cart_to_acc. +The motion of the rigid body of figure ref:fig:modal_local_to_global_coordinates can be described by its displacement $\vec{\delta}p = [\delta p_x,\ \delta p_y,\ \delta p_z]$ and (small) rotations $[\delta \Omega_x,\ \delta \Omega_y,\ \delta \Omega_z]$ with respect to a reference frame $\{O\}$. + +The motion $\vec{\delta} p_{i}$ of a point $p_i$ can be computed from $\vec{\delta} p$ and $\bm{\delta \Omega}$ using equation eqref:eq:modal_compute_point_response, with $\bm{\delta\Omega}$ defined in equation eqref:eq:modal_rotation_matrix. + +\begin{equation}\label{eq:modal_compute_point_response} + \vec{\delta} p_{i} &= \vec{\delta} p + \bm{\delta \Omega} \cdot \vec{p}_{i} \\ +\end{equation} + +\begin{equation}\label{eq:modal_rotation_matrix} + \bm{\delta\Omega} = \begin{bmatrix} + 0 & -\delta\Omega_z & \delta\Omega_y \\ + \delta\Omega_z & 0 & -\delta\Omega_x \\ + -\delta\Omega_y & \delta\Omega_x & 0 +\end{bmatrix} +\end{equation} + +Writing this in a matrix form for the four points gives eqref:eq:modal_cart_to_acc. \begin{equation}\label{eq:modal_cart_to_acc} +\left[\begin{array}{c} + \delta p_{1x} \\ \delta p_{1y} \\ \delta p_{1z} \\\hline \vdots \\\hline \delta p_{4x} \\ \delta p_{4y} \\ \delta p_{4z} +\end{array}\right] = \left[\begin{array}{ccc|ccc} 1 & 0 & 0 & 0 & p_{1z} & -p_{1y} \\ 0 & 1 & 0 & -p_{1z} & 0 & p_{1x} \\ @@ -659,17 +681,14 @@ Writing Eq. eqref:eq:modal_p1_p2_motion for the four displacement sensors in a m 0 & 0 & 1 & p_{4y} & -p_{4x} & 0 \end{array}\right] \left[\begin{array}{c} \delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z -\end{array}\right] = \left[\begin{array}{c} - \delta p_{1x} \\ \delta p_{1y} \\ \delta p_{1z} \\\hline \vdots \\\hline \delta p_{4x} \\ \delta p_{4y} \\ \delta p_{4z} \end{array}\right] \end{equation} -Provided that the four sensors are properly located, the system of equation eqref:eq:modal_cart_to_acc can be solved by matrix inversion. +Provided that the four sensors are properly located, the system of equation eqref:eq:modal_cart_to_acc can be solved by matrix inversion[fn:5]. The motion of the solid body expressed in a chosen frame $\{O\}$ can be determined using equation eqref:eq:modal_determine_global_disp. Note that this matrix inversion is equivalent to resolving a mean square problem. Therefore, having more accelerometers permits to have a better approximation of the motion of the solid body. - \begin{equation} \left[\begin{array}{c} \delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z @@ -805,11 +824,12 @@ save('matlab/mat/frf_com.mat', 'frfs_CoM'); ** Verification of solid body assumption <> -From the response of one solid body along its 6 acrshortpl:dof (i.e. from $\mathbf{H}_{\text{CoM}}$), and using equation eqref:eq:modal_cart_to_acc, it is possible to compute the response of the same solid body at any considered position. -In particular, the response at the location of the four accelerometers can be computed. -Comparing the computed response of a particular accelerometer from $\mathbf{H}_{\text{CoM}}$ with the original measurements $\mathbf{H}$ is use to check if solid body assumption is correct in the frequency band of interest. +From the response of one solid body expressed by its 6 acrshortpl:dof (i.e. from $\mathbf{H}_{\text{CoM}}$), and using equation eqref:eq:modal_cart_to_acc, it is possible to compute the response of the same solid body at any considered position. +In particular, the response at the location of the four accelerometers can be computed and compared with the original measurements $\mathbf{H}$. +This is what is here done to check if solid body assumption is correct in the frequency band of interest. #+begin_src matlab +%% Compute the FRF at the accelerometer location from the CoM reponses frfs_A = zeros(size(frf)); % For each excitation direction @@ -898,7 +918,7 @@ exportFig('figs/modal_comp_acc_solid_body_frf.pdf', 'width', 'full', 'height', ' :END: <> ** Introduction :ignore: -The goal here is to extract the modal parameters describing the modes of station being studied, namely the natural frequencies and the modal damping (i.e. the eigenvalues) and the mode shapes (.i.e. the eigenvectors). +The goal here is to extract the modal parameters describing the modes of station being studied, namely the natural frequencies and the modal damping (i.e. the eigenvalues) as well as the mode shapes (.i.e. the eigenvectors). This is done from the acrshort:frf matrix previously extracted from the measurements. In order to perform the modal parameter extraction, the order of the modal model needs to be estimated (i.e. the number of modes in the frequency band of interest). @@ -930,11 +950,11 @@ To validate the quality of the modal model, the full acrshort:frf matrix is comp <> #+end_src -** Determine the number of modes +** Number of modes determination <> The acrshort:mif is here applied to the $n\times p$ acrshort:frf matrix where $n$ is a relatively large number of measurement DOFs (here $n=69$) and $p$ is the number of excitation DOFs (here $p=3$). -The complex modal indication function is defined in equation eqref:eq:modal_cmif where $\Sigma$ is obtained from a acrshort:svd of the acrshort:frf matrix eqref:eq:modal_svd. +The complex modal indication function is defined in equation eqref:eq:modal_cmif where the diagonal matrix $\Sigma$ is obtained from a acrlong:svd of the acrshort:frf matrix as shown in equation eqref:eq:modal_svd. \begin{equation} \label{eq:modal_cmif} [CMIF(\omega)]_{p\times p} = [\Sigma(\omega)]_{p\times n}^T [\Sigma(\omega)]_{n\times p} \end{equation} @@ -1021,19 +1041,13 @@ exportFig('figs/modal_indication_function.pdf', 'width', 'wide', 'height', 'norm ** Modal parameter extraction <> -The modal identification generally consists of curve-fitting a theoretical expression for an individual acrshort:frf to the actual measured data. +The modal identification generally consists of curve-fitting a theoretical expression to the actual measured acrshort:frf data. However, there are multiple level of complexity, from fitting of a single resonance, a complete curve encompassing several resonances and working on a set of many acrshort:frf plots all obtained from the same structure. Here, the last method is used as it gives a unique and consistent model as direct output. -It takes into account the fact the the properties of all the individual curves are related by being from the same structure: all FRF plots on a given structure should indicate the same values for the natural frequencies and damping factor of each mode. +It takes into account the fact the properties of all the individual curves are related by being from the same structure: all acrshort:frf plots on a given structure should indicate the same values for the natural frequencies and damping factor of each mode. -From the obtained modal parameters, the mode shapes are computed and can be displayed in the form of animations. -Three mode shapes are shown in Figure ref:fig:modal_mode_animations. - -These animations are quite useful to easily get a better understanding of the system. -For instance, the mode shape of the first mode at 11Hz (figure ref:fig:modal_mode1_animation) indicates that there is an issue with the lower granite. -It turns out that four /Airloc Levelers/ are used to level the lower granite (figure ref:fig:modal_airloc). -These are difficult to tune so that the granite is well supported by four of them and not "wobbly" on just two of them. +From the obtained modal parameters, the mode shapes are computed and can be displayed in the form of animations (three mode shapes are shown in Figure ref:fig:modal_mode_animations). #+name: fig:modal_mode_animations #+caption: Three obtained mode shape animations @@ -1058,6 +1072,12 @@ These are difficult to tune so that the granite is well supported by four of the #+end_subfigure #+end_figure +These animations are quite useful to visually get a better understanding of the system dynamical behavior. +For instance, the mode shape of the first mode at $11\,\text{Hz}$ (figure ref:fig:modal_mode1_animation) indicates that there is an issue with the lower granite. +It turns out that four /Airloc Levelers/ are used to level the lower granite (figure ref:fig:modal_airloc). +These are difficult to adjust and can lead to a situation where the granite is only supported by two of them, and therefore has a low frequency "tilt mode". +The levelers were then better adjusted. + #+name: fig:modal_airloc #+caption: AirLoc used for the granite (2120-KSKC) #+attr_latex: :width 0.6\linewidth @@ -1070,20 +1090,19 @@ For each mode $r$ (from $1$ to the number of considered modes $m=16$), it output \{\phi_i\} = \begin{Bmatrix} \phi_{i, 1_x} & \phi_{i, 1_y} & \phi_{i, 1_z} & \phi_{i, 2_x} & \dots & \phi_{i, 23_z} \end{Bmatrix}^T \end{equation} -The eigenvalues $s_r$ and $s_r^*$ can then be computed from eqref:eq:modal_eigenvalues. +The eigenvalues $s_r$ and $s_r^*$ can then be computed from equation eqref:eq:modal_eigenvalues. \begin{equation}\label{eq:modal_eigenvalues} s_r = \omega_r (-\xi_r + i \sqrt{1 - \xi_r^2}), \quad s_r^* = \omega_r (-\xi_r - i \sqrt{1 - \xi_r^2}) \end{equation} -** Verify the validity of the Modal Model +** Verification of the modal model validity <> In order to check the validity of the modal model, the complete $n \times n$ acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ is first synthesized from the modal parameters. -Then, the elements of this acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ that were already measured can be compared with the measured elements $\mathbf{H}$. -New measurements may be performed to compare with elements of the synthesized acrshort:frf matrix that were not initialized measured to build the modal model. +Then, the elements of this acrshort:frf matrix $\mathbf{H}_{\text{syn}}$ that were already measured can be compared with the measured acrshort:frf matrix $\mathbf{H}$. -In order to synthesize the full acrshort:frf matrix, the eigenvectors $\phi_r$ are first reorganized in a matrix from as shown in equation eqref:eq:modal_eigvector_matrix. +In order to synthesize the full acrshort:frf matrix, the eigenvectors $\phi_r$ are first organized in a matrix from as shown in equation eqref:eq:modal_eigvector_matrix. \begin{equation}\label{eq:modal_eigvector_matrix} \Phi = \begin{bmatrix} & & & & &\\ @@ -1166,8 +1185,10 @@ for i = 1:size(Hsyn, 1) end #+end_src -The comparison between the original measured frequency response function and the synthesized one from the modal model is done in Figure ref:fig:modal_comp_acc_frf_modal. -The match is rather good considering the complex dynamics and the different directions considered. +The comparison between the original measured frequency response functions and the synthesized ones from the modal model is done in Figure ref:fig:modal_comp_acc_frf_modal. +Whether the obtained match can be considered good or bad is quite arbitrary. +Yet, the modal model seems to be able to represent the coupling between different nodes and different direction which is quite important in a control point of view. +This can be seen in Figure ref:fig:modal_comp_acc_frf_modal_3 that shows the frequency response function between a force applied on node 11 (i.e. on the translation stage) in the $y$ direction to the measured acceleration at node $2$ (i.e. at the top of the micro-hexapod) in the $x$ direction. #+begin_src matlab :exports none acc_o = 11; dir_o = 3; @@ -1270,14 +1291,14 @@ exportFig('figs/modal_comp_acc_frf_modal_3.pdf', 'width', 'third', 'height', 'no In this study, a modal analysis of the micro-station was performed. Thanks to adequate choice of instrumentation and proper set of measurements, high quality frequency response functions could be obtained. -As could be expected from a heavy stacked stages architecture, the obtained frequency response functions indicate that the dynamics of the micro-station is complex. -It shows lots of coupling between stages and different directions, as well as many modes with various damping properties. +The obtained frequency response functions indicate that the dynamics of the micro-station is complex, which is expected from a heavy stack stages architecture. +It shows lots of coupling between stages and different directions, as well as many modes. By measuring 12 degrees of freedom on each "stage", it could be verified that in the frequency range of interest, each stage is behaving as a rigid body. This confirms that a solid-body model can be used to properly model the micro-station. -Even though lots of efforts were put in the proper modal analysis of the micro-station, it was stiff very difficult to obtain an accurate modal model. -Yet, the measurements will be quite useful when tuning the parameters of the multi-body model. +Even though lots of efforts were put in this experimental modal analysis of the micro-station, it was proven difficult to obtain an accurate modal model. +Yet, the measurements will be quite useful for tuning the parameters of the micro-station multi-body model. * Bibliography :ignore: #+latex: \printbibliography[heading=bibintoc,title={Bibliography}] @@ -1313,7 +1334,8 @@ colors = colororder; * Footnotes -[fn:4]NVGate software from OROS company +[fn:5]As this matrix is in general non-square, the Moore–Penrose inverse can be used instead. +[fn:4]NVGate software from OROS company. [fn:3]OROS OR36. 24bits signal-delta ADC. [fn:2]Kistler 9722A2000. Sensitivity of $2.3\,mV/N$ and measurement range of $2\,kN$ [fn:1]PCB 356B18. Sensitivity is $1\,V/g$, measurement range is $\pm 5\,g$ and bandwidth is $0.5$ to $5\,\text{kHz}$. diff --git a/modal-analysis.pdf b/modal-analysis.pdf index dba8980..66b46c2 100644 Binary files a/modal-analysis.pdf and b/modal-analysis.pdf differ diff --git a/modal-analysis.tex b/modal-analysis.tex index 1de1c0a..baaebd1 100644 --- a/modal-analysis.tex +++ b/modal-analysis.tex @@ -1,4 +1,4 @@ -% Created 2024-10-24 Thu 17:41 +% Created 2024-10-24 Thu 18:44 % Intended LaTeX compiler: pdflatex \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} @@ -49,7 +49,7 @@ This modal model can then be used to tune the spatial model (i.e. the multi-body \begin{figure}[htbp] \centering \includegraphics[scale=1]{figs/modal_vibration_analysis_procedure.png} -\caption{\label{fig:modal_vibration_analysis_procedure}Figure caption} +\caption{\label{fig:modal_vibration_analysis_procedure}Three models of the same structure. The goal could be to tune a spatial model (i.e. mass, stiffness and damping properties) from a response model. As an intermediate step, the modal model can prove to be very useful.} \end{figure} The measurement setup used to obtain the response model is presented in Section \ref{sec:modal_meas_setup}. @@ -60,7 +60,7 @@ These measurements are projected at the center of mass of each considered solid The solid body assumption is then verified, validating the use of the multi-body model. Finally, the modal analysis is performed in Section \ref{sec:modal_analysis}. -It shows how complex the micro-station dynamics is, and the necessity of the developed more complex multi-body model. +It shows how complex the micro-station dynamics is, and the necessity of having a model that represented complex dynamics. \chapter{Measurement Setup} @@ -68,7 +68,7 @@ It shows how complex the micro-station dynamics is, and the necessity of the dev In order to perform an experimental modal analysis, a proper measurement setup is key. This include using appropriate instrumentation (presented in Section \ref{ssec:modal_instrumentation}) and properly preparing the structure to be measured (Section \ref{ssec:modal_test_preparation}). Then, the location of the measured motion (Section \ref{ssec:modal_accelerometers}) and the location of the hammer impacts (Section \ref{ssec:modal_hammer_impacts}) have to be chosen carefully. -Obtained force and acceleration signals are shown in Section \ref{ssec:modal_measured_signals}, and the quality of the measured data is checked. +Obtained force and acceleration signals are shown in Section \ref{ssec:modal_measured_signals}, and the quality of the measured data is assessed. \section{Used Instrumentation} \label{ssec:modal_instrumentation} @@ -117,13 +117,13 @@ The top part representing the active stabilization stage has been disassembled a To perform the modal-analysis from the measured responses, the \(n \times n\) frequency response function matrix \(\mathbf{H}\) needs to be measured, where \(n\) is the considered number of degrees of freedom. The \(H_{jk}\) element of this \acrfull{frf} matrix corresponds to the frequency response function from a force \(F_k\) applied at \acrfull{dof} \(k\) to the displacement of the structure \(X_j\) at \acrshort{dof} \(j\). -Measuring this \acrshort{frf} matrix is very time consuming as it requires to make \(n^2\) measurements. +Measuring this \acrshort{frf} matrix is very time consuming as it requires to make \(n \times n\) measurements. However thanks to the principle of reciprocity (\(H_{jk} = H_{kj}\)) and using the \emph{point measurement} (\(H_{jj}\)), it is possible to reconstruct the full matrix by measuring only one column or one line of the matrix \(\mathbf{H}\) \cite[chapt. 5.2]{ewins00_modal}. Therefore, a minimum set of \(n\) frequency response functions needs to be measured. This can be done either by measuring the response \(X_{j}\) at a fixed \acrshort{dof} \(j\) while applying forces \(F_{i}\) for at all \(n\) considered \acrshort{dof}, or by applying a force \(F_{k}\) at a fixed \acrshort{dof} \(k\) and measuring the response \(X_{i}\) for all \(n\) \acrshort{dof}. It is however not advised to measure only one row or one column as one or more modes may be missed by an unfortunate choice of force or acceleration measured locations (for instance if the force is applied at a vibration node of a particular mode). -In this modal-analysis, it is chosen to measure the response of the structure at all considered \acrshort{dof}, and to excite the structure at one location in three directions in order to have some redundancy and to make sure that all modes are properly energized. +In this modal-analysis, it is chosen to measure the response of the structure at all considered \acrshort{dof}, and to excite the structure at one location in three directions in order to have some redundancy and to make sure that all modes are properly identified. \section{Location of the Accelerometers} \label{ssec:modal_accelerometers} @@ -201,7 +201,6 @@ The chosen location of the hammer impact corresponds to the location of accelero It was chosen to match the location of one accelerometer, because a \emph{point measurement} (i.e. a measurement of \(H_{kk}\)) is necessary to be able to reconstruct the full \acrshort{frf} matrix \cite{ewins00_modal}. The impacts are performed in three directions, which are shown in figures \ref{fig:modal_impact_x}, \ref{fig:modal_impact_y} and \ref{fig:modal_impact_z}. -This excitation point with the three considered directions allows to properly energize all the modes in the frequency band of interest and to provide good coherence for all the accelerometers as will be shown in the next section. \begin{figure}[htbp] \begin{subfigure}{0.33\textwidth} @@ -234,6 +233,7 @@ For the accelerometer, a much more complex signal can be observed, indicating co The ``normalized'' \acrfull{asd} of the two signals are computed and shown in Figure \ref{fig:modal_asd_acc_force}. Conclusions based on the time domain signals can be clearly seen in the frequency domain (wide frequency content for the force signal and complex dynamics for the accelerometer). +Similar results are obtained for all the measured frequency response functions. \begin{figure}[htbp] \begin{subfigure}{0.49\textwidth} @@ -273,7 +273,7 @@ Good coherence is obtained from \(20\,\text{Hz}\) to \(200\,\text{Hz}\) which co \chapter{Frequency Analysis} \label{sec:modal_frf_processing} -All measurements where conducted and a \(n \times p \times q\) \acrlongpl{frf} Matrix were computed with: +After all measurements are conducted, a \(n \times p \times q\) \acrlongpl{frf} matrix can be computed with: \begin{itemize} \item \(n = 69\): the number of output measured accelerations (23 3-axis accelerometers) \item \(p = 3\): the number of input force excitations @@ -293,14 +293,14 @@ For each frequency point \(\omega_{i}\), a 2D complex matrix is obtained that li \end{bmatrix} \end{equation} -However, for the multi-body model being developed, only 6 solid bodies are considered, namely: the bottom granite, the top granite, the translation stage, the tilt stage, the spindle and the hexapod. +However, for the multi-body model being developed, only 6 solid bodies are considered, namely: the bottom granite, the top granite, the translation stage, the tilt stage, the spindle and the micro-hexapod. Therefore, only \(6 \times 6 = 36\) degrees of freedom are of interest. The objective in this section is therefore to process the Frequency Response Matrix to reduce the number of measured \acrshort{dof} from 69 to 36. The coordinate transformation from accelerometers \acrshort{dof} to the solid body 6 \acrshortpl{dof} (three translations and three rotations) is performed in Section \ref{ssec:modal_acc_to_solid_dof}. The \(69 \times 3 \times 801\) frequency response matrix is then reduced to a \(36 \times 3 \times 801\) frequency response matrix where the motion of each solid body is expressed with respect to its center of mass. -To validate this reduction of \acrshort{dof} and the solid body assumption, the frequency response function at the accelerometer location are recomputed from the reduced frequency response matrix and are compared with the initial measurements in Section \ref{ssec:modal_solid_body_assumption}. +To validate this reduction of \acrshort{dof} and the solid body assumption, the frequency response function at the accelerometer location are ``reconstructed'' from the reduced frequency response matrix and are compared with the initial measurements in Section \ref{ssec:modal_solid_body_assumption}. \section{From accelerometer DOFs to solid body DOFs} \label{ssec:modal_acc_to_solid_dof} @@ -313,9 +313,28 @@ The goal here is to link these \(4 \times 3 = 12\) measurements to the 6 \acrsho \caption{\label{fig:modal_local_to_global_coordinates}Schematic of the measured motions of a solid body} \end{figure} -Writing Eq. \eqref{eq:modal_p1_p2_motion} for the four displacement sensors in a matrix form gives \eqref{eq:modal_cart_to_acc}. +The motion of the rigid body of figure \ref{fig:modal_local_to_global_coordinates} can be described by its displacement \(\vec{\delta}p = [\delta p_x,\ \delta p_y,\ \delta p_z]\) and (small) rotations \([\delta \Omega_x,\ \delta \Omega_y,\ \delta \Omega_z]\) with respect to a reference frame \(\{O\}\). + +The motion \(\vec{\delta} p_{i}\) of a point \(p_i\) can be computed from \(\vec{\delta} p\) and \(\bm{\delta \Omega}\) using equation \eqref{eq:modal_compute_point_response}, with \(\bm{\delta\Omega}\) defined in equation \eqref{eq:modal_rotation_matrix}. + +\begin{equation}\label{eq:modal_compute_point_response} + \vec{\delta} p_{i} &= \vec{\delta} p + \bm{\delta \Omega} \cdot \vec{p}_{i} \\ +\end{equation} + +\begin{equation}\label{eq:modal_rotation_matrix} + \bm{\delta\Omega} = \begin{bmatrix} + 0 & -\delta\Omega_z & \delta\Omega_y \\ + \delta\Omega_z & 0 & -\delta\Omega_x \\ + -\delta\Omega_y & \delta\Omega_x & 0 +\end{bmatrix} +\end{equation} + +Writing this in a matrix form for the four points gives \eqref{eq:modal_cart_to_acc}. \begin{equation}\label{eq:modal_cart_to_acc} +\left[\begin{array}{c} + \delta p_{1x} \\ \delta p_{1y} \\ \delta p_{1z} \\\hline \vdots \\\hline \delta p_{4x} \\ \delta p_{4y} \\ \delta p_{4z} +\end{array}\right] = \left[\begin{array}{ccc|ccc} 1 & 0 & 0 & 0 & p_{1z} & -p_{1y} \\ 0 & 1 & 0 & -p_{1z} & 0 & p_{1x} \\ @@ -326,17 +345,14 @@ Writing Eq. \eqref{eq:modal_p1_p2_motion} for the four displacement sensors in a 0 & 0 & 1 & p_{4y} & -p_{4x} & 0 \end{array}\right] \left[\begin{array}{c} \delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z -\end{array}\right] = \left[\begin{array}{c} - \delta p_{1x} \\ \delta p_{1y} \\ \delta p_{1z} \\\hline \vdots \\\hline \delta p_{4x} \\ \delta p_{4y} \\ \delta p_{4z} \end{array}\right] \end{equation} -Provided that the four sensors are properly located, the system of equation \eqref{eq:modal_cart_to_acc} can be solved by matrix inversion. +Provided that the four sensors are properly located, the system of equation \eqref{eq:modal_cart_to_acc} can be solved by matrix inversion\footnote{As this matrix is in general non-square, the Moore–Penrose inverse can be used instead.}. The motion of the solid body expressed in a chosen frame \(\{O\}\) can be determined using equation \eqref{eq:modal_determine_global_disp}. Note that this matrix inversion is equivalent to resolving a mean square problem. Therefore, having more accelerometers permits to have a better approximation of the motion of the solid body. - \begin{equation} \left[\begin{array}{c} \delta p_x \\ \delta p_y \\ \delta p_z \\ \hline \delta\Omega_x \\ \delta\Omega_y \\ \delta\Omega_z @@ -394,9 +410,9 @@ Using \eqref{eq:modal_determine_global_disp}, the frequency response matrix \(\m \section{Verification of solid body assumption} \label{ssec:modal_solid_body_assumption} -From the response of one solid body along its 6 \acrshortpl{dof} (i.e. from \(\mathbf{H}_{\text{CoM}}\)), and using equation \eqref{eq:modal_cart_to_acc}, it is possible to compute the response of the same solid body at any considered position. -In particular, the response at the location of the four accelerometers can be computed. -Comparing the computed response of a particular accelerometer from \(\mathbf{H}_{\text{CoM}}\) with the original measurements \(\mathbf{H}\) is use to check if solid body assumption is correct in the frequency band of interest. +From the response of one solid body expressed by its 6 \acrshortpl{dof} (i.e. from \(\mathbf{H}_{\text{CoM}}\)), and using equation \eqref{eq:modal_cart_to_acc}, it is possible to compute the response of the same solid body at any considered position. +In particular, the response at the location of the four accelerometers can be computed and compared with the original measurements \(\mathbf{H}\). +This is what is here done to check if solid body assumption is correct in the frequency band of interest. The comparison is made for the 4 accelerometers fixed to the micro-hexapod (Figure \ref{fig:modal_comp_acc_solid_body_frf}). The original frequency response functions and the ones computed from the CoM responses are well matching in the frequency range of interested. @@ -411,7 +427,7 @@ This also validates the reduction of the number of degrees of freedom from 69 (2 \chapter{Modal Analysis} \label{sec:modal_analysis} -The goal here is to extract the modal parameters describing the modes of station being studied, namely the natural frequencies and the modal damping (i.e. the eigenvalues) and the mode shapes (.i.e. the eigenvectors). +The goal here is to extract the modal parameters describing the modes of station being studied, namely the natural frequencies and the modal damping (i.e. the eigenvalues) as well as the mode shapes (.i.e. the eigenvectors). This is done from the \acrshort{frf} matrix previously extracted from the measurements. In order to perform the modal parameter extraction, the order of the modal model needs to be estimated (i.e. the number of modes in the frequency band of interest). @@ -421,11 +437,11 @@ In section \ref{ssec:modal_parameter_extraction}, the modal parameter extraction Graphical display of the mode shapes can be computed from the modal model, which is quite quite useful to have a physical interpretation of the modes. To validate the quality of the modal model, the full \acrshort{frf} matrix is computed from the modal model and compared with the initial measured \acrshort{frf} (section \ref{ssec:modal_model_validity}). -\section{Determine the number of modes} +\section{Number of modes determination} \label{ssec:modal_number_of_modes} The \acrshort{mif} is here applied to the \(n\times p\) \acrshort{frf} matrix where \(n\) is a relatively large number of measurement DOFs (here \(n=69\)) and \(p\) is the number of excitation DOFs (here \(p=3\)). -The complex modal indication function is defined in equation \eqref{eq:modal_cmif} where \(\Sigma\) is obtained from a \acrshort{svd} of the \acrshort{frf} matrix \eqref{eq:modal_svd}. +The complex modal indication function is defined in equation \eqref{eq:modal_cmif} where the diagonal matrix \(\Sigma\) is obtained from a \acrlong{svd} of the \acrshort{frf} matrix as shown in equation \eqref{eq:modal_svd}. \begin{equation} \label{eq:modal_cmif} [CMIF(\omega)]_{p\times p} = [\Sigma(\omega)]_{p\times n}^T [\Sigma(\omega)]_{n\times p} \end{equation} @@ -479,19 +495,13 @@ Mode & Freq. [Hz] & Damp. [\%]\\ \section{Modal parameter extraction} \label{ssec:modal_parameter_extraction} -The modal identification generally consists of curve-fitting a theoretical expression for an individual \acrshort{frf} to the actual measured data. +The modal identification generally consists of curve-fitting a theoretical expression to the actual measured \acrshort{frf} data. However, there are multiple level of complexity, from fitting of a single resonance, a complete curve encompassing several resonances and working on a set of many \acrshort{frf} plots all obtained from the same structure. Here, the last method is used as it gives a unique and consistent model as direct output. -It takes into account the fact the the properties of all the individual curves are related by being from the same structure: all FRF plots on a given structure should indicate the same values for the natural frequencies and damping factor of each mode. +It takes into account the fact the properties of all the individual curves are related by being from the same structure: all \acrshort{frf} plots on a given structure should indicate the same values for the natural frequencies and damping factor of each mode. -From the obtained modal parameters, the mode shapes are computed and can be displayed in the form of animations. -Three mode shapes are shown in Figure \ref{fig:modal_mode_animations}. - -These animations are quite useful to easily get a better understanding of the system. -For instance, the mode shape of the first mode at 11Hz (figure \ref{fig:modal_mode1_animation}) indicates that there is an issue with the lower granite. -It turns out that four \emph{Airloc Levelers} are used to level the lower granite (figure \ref{fig:modal_airloc}). -These are difficult to tune so that the granite is well supported by four of them and not ``wobbly'' on just two of them. +From the obtained modal parameters, the mode shapes are computed and can be displayed in the form of animations (three mode shapes are shown in Figure \ref{fig:modal_mode_animations}). \begin{figure} \begin{subfigure}{\textwidth} @@ -515,33 +525,38 @@ These are difficult to tune so that the granite is well supported by four of the \caption{\label{fig:modal_mode_animations}Three obtained mode shape animations} \end{figure} +These animations are quite useful to visually get a better understanding of the system dynamical behavior. +For instance, the mode shape of the first mode at \(11\,\text{Hz}\) (figure \ref{fig:modal_mode1_animation}) indicates that there is an issue with the lower granite. +It turns out that four \emph{Airloc Levelers} are used to level the lower granite (figure \ref{fig:modal_airloc}). +These are difficult to adjust and can lead to a situation where the granite is only supported by two of them, and therefore has a low frequency ``tilt mode''. +The levelers were then better adjusted. + \begin{figure}[htbp] \centering \includegraphics[scale=1,width=0.6\linewidth]{figs/modal_airlock_picture.jpg} \caption{\label{fig:modal_airloc}AirLoc used for the granite (2120-KSKC)} \end{figure} -The modal parameter extraction is made using a proprietary software\footnote{NVGate software from OROS company}. +The modal parameter extraction is made using a proprietary software\footnote{NVGate software from OROS company.}. For each mode \(r\) (from \(1\) to the number of considered modes \(m=16\)), it outputs the frequency \(\omega_r\), the damping ratio \(\xi_r\), the eigenvectors \(\{\phi_{r}\}\) (vector of complex numbers with a size equal to the number of measured \acrshort{dof} \(n=69\), see equation \eqref{eq:modal_eigenvector}) and a scaling factor \(a_r\). \begin{equation}\label{eq:modal_eigenvector} \{\phi_i\} = \begin{Bmatrix} \phi_{i, 1_x} & \phi_{i, 1_y} & \phi_{i, 1_z} & \phi_{i, 2_x} & \dots & \phi_{i, 23_z} \end{Bmatrix}^T \end{equation} -The eigenvalues \(s_r\) and \(s_r^*\) can then be computed from \eqref{eq:modal_eigenvalues}. +The eigenvalues \(s_r\) and \(s_r^*\) can then be computed from equation \eqref{eq:modal_eigenvalues}. \begin{equation}\label{eq:modal_eigenvalues} s_r = \omega_r (-\xi_r + i \sqrt{1 - \xi_r^2}), \quad s_r^* = \omega_r (-\xi_r - i \sqrt{1 - \xi_r^2}) \end{equation} -\section{Verify the validity of the Modal Model} +\section{Verification of the modal model validity} \label{ssec:modal_model_validity} In order to check the validity of the modal model, the complete \(n \times n\) \acrshort{frf} matrix \(\mathbf{H}_{\text{syn}}\) is first synthesized from the modal parameters. -Then, the elements of this \acrshort{frf} matrix \(\mathbf{H}_{\text{syn}}\) that were already measured can be compared with the measured elements \(\mathbf{H}\). -New measurements may be performed to compare with elements of the synthesized \acrshort{frf} matrix that were not initialized measured to build the modal model. +Then, the elements of this \acrshort{frf} matrix \(\mathbf{H}_{\text{syn}}\) that were already measured can be compared with the measured \acrshort{frf} matrix \(\mathbf{H}\). -In order to synthesize the full \acrshort{frf} matrix, the eigenvectors \(\phi_r\) are first reorganized in a matrix from as shown in equation \eqref{eq:modal_eigvector_matrix}. +In order to synthesize the full \acrshort{frf} matrix, the eigenvectors \(\phi_r\) are first organized in a matrix from as shown in equation \eqref{eq:modal_eigvector_matrix}. \begin{equation}\label{eq:modal_eigvector_matrix} \Phi = \begin{bmatrix} & & & & &\\ @@ -561,8 +576,10 @@ With \(\mathbf{H}_{\text{mod}}(\omega)\) a diagonal matrix representing the resp \mathbf{H}_{\text{mod}}(\omega) = \text{diag}\left(\frac{1}{a_1 (j\omega - s_1)},\ \dots,\ \frac{1}{a_m (j\omega - s_m)}, \frac{1}{a_1^* (j\omega - s_1^*)},\ \dots,\ \frac{1}{a_m^* (j\omega - s_m^*)} \right)_{2m\times 2m} \end{equation} -The comparison between the original measured frequency response function and the synthesized one from the modal model is done in Figure \ref{fig:modal_comp_acc_frf_modal}. -The match is rather good considering the complex dynamics and the different directions considered. +The comparison between the original measured frequency response functions and the synthesized ones from the modal model is done in Figure \ref{fig:modal_comp_acc_frf_modal}. +Whether the obtained match can be considered good or bad is quite arbitrary. +Yet, the modal model seems to be able to represent the coupling between different nodes and different direction which is quite important in a control point of view. +This can be seen in Figure \ref{fig:modal_comp_acc_frf_modal_3} that shows the frequency response function between a force applied on node 11 (i.e. on the translation stage) in the \(y\) direction to the measured acceleration at node \(2\) (i.e. at the top of the micro-hexapod) in the \(x\) direction. \begin{figure}[htbp] \begin{subfigure}{0.33\textwidth} @@ -591,14 +608,14 @@ The match is rather good considering the complex dynamics and the different dire In this study, a modal analysis of the micro-station was performed. Thanks to adequate choice of instrumentation and proper set of measurements, high quality frequency response functions could be obtained. -As could be expected from a heavy stacked stages architecture, the obtained frequency response functions indicate that the dynamics of the micro-station is complex. -It shows lots of coupling between stages and different directions, as well as many modes with various damping properties. +The obtained frequency response functions indicate that the dynamics of the micro-station is complex, which is expected from a heavy stack stages architecture. +It shows lots of coupling between stages and different directions, as well as many modes. By measuring 12 degrees of freedom on each ``stage'', it could be verified that in the frequency range of interest, each stage is behaving as a rigid body. This confirms that a solid-body model can be used to properly model the micro-station. -Even though lots of efforts were put in the proper modal analysis of the micro-station, it was stiff very difficult to obtain an accurate modal model. -Yet, the measurements will be quite useful when tuning the parameters of the multi-body model. +Even though lots of efforts were put in this experimental modal analysis of the micro-station, it was proven difficult to obtain an accurate modal model. +Yet, the measurements will be quite useful for tuning the parameters of the micro-station multi-body model. \printbibliography[heading=bibintoc,title={Bibliography}]