Update modal extraction

This commit is contained in:
Thomas Dehaeze 2019-07-16 11:09:14 +02:00
parent c0641f7865
commit e4d8712c94
8 changed files with 686 additions and 481 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-07-05 ven. 10:17 -->
<!-- 2019-07-12 ven. 11:24 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Modal Analysis of the ID31 Micro-Station</title>
@ -246,6 +246,28 @@ for the JavaScript code in this tag.
}
/*]]>*///-->
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="org-div-home-and-up">
@ -256,22 +278,22 @@ for the JavaScript code in this tag.
<h1 class="title">Modal Analysis of the ID31 Micro-Station</h1>
<p>
The goal is to experimentally extract a <b>Spatial Model</b> (mass, damping, stiffness) of the structure (shown on figure <a href="#org811aaee">1</a>) in order to tune the Multi-Body model.
The goal is to experimentally extract a <b>Spatial Model</b> (mass, damping, stiffness) of the structure (shown on figure <a href="#org4a31989">1</a>) in order to tune the Multi-Body model.
</p>
<div id="org811aaee" class="figure">
<div id="org4a31989" class="figure">
<p><img src="img/nass_picture.png" alt="nass_picture.png" width="500px" />
</p>
<p><span class="figure-number">Figure 1: </span>Picture of the ID31 Micro-Station. (1) Granite (2) Translation Stage (3) Tilt Stage (4) Hexapod (5) Dummy Mass</p>
</div>
<p>
The procedure is represented on figure <a href="#org60c2278">2</a> where we go from left to right.
The procedure is represented on figure <a href="#org4a4053c">2</a> where we go from left to right.
</p>
<div id="org60c2278" class="figure">
<div id="org4a4053c" class="figure">
<p><img src="img/vibration_analysis_procedure.png" alt="vibration_analysis_procedure.png" width="400px" />
</p>
<p><span class="figure-number">Figure 2: </span>Vibration Analysis Procedure</p>
@ -294,6 +316,107 @@ Theses matrices will be used to tune the Simscape (multi-body) model.
The modes we want to identify are those in the frequency range between 0Hz and 150Hz.
</p>
<table id="org890b40f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Terminology for further analysis</caption>
<colgroup>
<col class="org-center" />
<col class="org-left" />
<col class="org-center" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-center">Symbol</th>
<th scope="col" class="org-left">Meaning</th>
<th scope="col" class="org-center">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-center">\(S\)</td>
<td class="org-left">Number of solid body considered</td>
<td class="org-center">6</td>
</tr>
<tr>
<td class="org-center">\(M\)</td>
<td class="org-left">Number of accelerometers</td>
<td class="org-center">23</td>
</tr>
<tr>
<td class="org-center">\(N\)</td>
<td class="org-left">Number of identified modes</td>
<td class="org-center">21</td>
</tr>
<tr>
<td class="org-center">\(p\)</td>
<td class="org-left">Number of frequency points</td>
<td class="org-center">801</td>
</tr>
<tr>
<td class="org-center">\(E\)</td>
<td class="org-left">Number of excitation</td>
<td class="org-center">3</td>
</tr>
</tbody>
</table>
<table id="orgbda6b99" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Terminology for further analysis</caption>
<colgroup>
<col class="org-center" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-center">Symbol</th>
<th scope="col" class="org-left">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-center">\(\Lambda\)</td>
<td class="org-left">Complex eigen value matrix</td>
</tr>
<tr>
<td class="org-center">\([\Psi]\)</td>
<td class="org-left">Complex eigen vector matrix</td>
</tr>
<tr>
<td class="org-center">\(\omega_r\)</td>
<td class="org-left">Eigen frequency of mode \(r\) [rad/s]</td>
</tr>
<tr>
<td class="org-center">\(\xi_r\)</td>
<td class="org-left">Modal damping for mode \(r\)</td>
</tr>
<tr>
<td class="org-center">\(\{\psi\}_r\)</td>
<td class="org-left">Complex mode shape of mode \(r\)</td>
</tr>
<tr>
<td class="org-center">\([M], [C], [K]\)</td>
<td class="org-left">Mass, damping and stiffness matrices</td>
</tr>
<tr>
<td class="org-center">\(a_r\)</td>
<td class="org-left">"Modal A" for mode \(r\)</td>
</tr>
</tbody>
</table>
<p>
The modal analysis of the ID31 Micro-station thus consists of several parts:
@ -307,7 +430,7 @@ The modal analysis of the ID31 Micro-station thus consists of several parts:
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-07-05 ven. 10:17</p>
<p class="date">Created: 2019-07-12 ven. 11:24</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -43,6 +43,29 @@ Theses matrices will be used to tune the Simscape (multi-body) model.
The modes we want to identify are those in the frequency range between 0Hz and 150Hz.
#+name: tab:terminology_numbers
#+caption: Terminology for further analysis
| <c> | <l> | <c> |
| Symbol | Meaning | Value |
|--------+---------------------------------+-------|
| $p$ | Number of solid body considered | 6 |
| $m$ | Number of accelerometers | 23 |
| $n$ | Number of identified modes | 21 |
| $q$ | Number of frequency points | 801 |
| $s$ | Number of excitation | 3 |
#+name: tab:terminology_elements
#+caption: Terminology for further analysis
| <c> | <l> |
| Symbol | Meaning |
|-----------------+--------------------------------------|
| $[\Lambda]$ | Complex eigen value matrix |
| $[\Psi]$ | Complex eigen vector matrix |
| $\omega_r$ | Eigen frequency of mode $r$ [rad/s] |
| $\xi_r$ | Modal damping for mode $r$ |
| $\{\psi\}_r$ | Complex mode shape of mode $r$ |
| $[M], [C], [K]$ | Mass, damping and stiffness matrices |
| $a_r$ | "Modal A" for mode $r$ |
The modal analysis of the ID31 Micro-station thus consists of several parts:
- [[file:measurement.org][Frequency Response Measurements]]

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-07-11 jeu. 16:25 -->
<!-- 2019-07-12 ven. 09:15 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Modal Analysis - Measurement</title>
@ -280,39 +280,42 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org7579c58">1. Goal</a></li>
<li><a href="#org443821e">2. Instrumentation Used</a></li>
<li><a href="#org109ddf2">3. Structure Preparation and Test Planning</a>
<li><a href="#orgd5a2a9e">1. Instrumentation Used</a></li>
<li><a href="#org52e2020">2. Structure Preparation and Test Planning</a>
<ul>
<li><a href="#org050f028">3.1. Structure Preparation</a></li>
<li><a href="#org824ea1e">3.2. Test Planing</a></li>
<li><a href="#orgae947bb">3.3. Location of the Accelerometers</a></li>
<li><a href="#org85336e7">3.4. Hammer Impacts</a></li>
<li><a href="#org7455d27">2.1. Structure Preparation</a></li>
<li><a href="#orgdde52cc">2.2. Test Planing</a></li>
<li><a href="#org0855f5d">2.3. Location of the Accelerometers</a></li>
<li><a href="#org8f40892">2.4. Hammer Impacts</a></li>
</ul>
</li>
<li><a href="#orgc7582b9">4. Signal Processing</a>
<li><a href="#org8b69adc">3. Signal Processing</a>
<ul>
<li><a href="#orga2b8b8e">4.1. Averaging</a></li>
<li><a href="#org0dbf1dd">4.2. Windowing</a></li>
<li><a href="#orge8d40e5">3.1. Averaging</a></li>
<li><a href="#org3eeedb0">3.2. Windowing</a></li>
</ul>
</li>
<li><a href="#org45d897a">5. Force and Response signals</a>
<li><a href="#org2c59463">4. Force and Response signals</a>
<ul>
<li><a href="#org2a9b2e8">5.1. Raw Force Data</a></li>
<li><a href="#org85cf244">5.2. Raw Response Data</a></li>
<li><a href="#orgacd507e">5.3. Computation of one Frequency Response Function</a></li>
<li><a href="#org46f14b0">4.1. Raw Force Data</a></li>
<li><a href="#org0c9ff56">4.2. Raw Response Data</a></li>
<li><a href="#org9777957">4.3. Computation of one Frequency Response Function</a></li>
</ul>
</li>
<li><a href="#org40c5c29">6. Frequency Response Functions and Coherence Results</a></li>
<li><a href="#orge7a0dc1">7. Generation of a FRF matrix and a Coherence matrix from the measurements</a></li>
<li><a href="#org5ebd034">8. Plot showing the coherence of all the measurements</a></li>
<li><a href="#org259382d">9. Solid Bodies considered for further analysis</a></li>
<li><a href="#orgc0c679a">10. Note about the solid body assumption</a></li>
<li><a href="#org95c7199">11. Verification of the principle of reciprocity</a></li>
<li><a href="#orge4feeae">5. Frequency Response Functions and Coherence Results</a></li>
<li><a href="#org1d9d57c">6. Generation of a FRF matrix and a Coherence matrix from the measurements</a></li>
<li><a href="#org405df5c">7. Plot showing the coherence of all the measurements</a></li>
<li><a href="#org8e3f4c9">8. Solid Bodies considered for further analysis</a></li>
<li><a href="#org37825e5">9. Note about the solid body assumption</a></li>
<li><a href="#org73471a7">10. Verification of the principle of reciprocity</a></li>
</ul>
</div>
</div>
<p>
The goal is to measure the dynamic of the Micro-Station and to extract Frequency Response Functions.
</p>
<div class="note">
<p>
All the files (data and Matlab scripts) are accessible <a href="data/modal_frf_coh.zip">here</a>.
@ -320,29 +323,20 @@ All the files (data and Matlab scripts) are accessible <a href="data/modal_frf_c
</div>
<div id="outline-container-org7579c58" class="outline-2">
<h2 id="org7579c58"><span class="section-number-2">1</span> Goal</h2>
<div id="outline-container-orgd5a2a9e" class="outline-2">
<h2 id="orgd5a2a9e"><span class="section-number-2">1</span> Instrumentation Used</h2>
<div class="outline-text-2" id="text-1">
<p>
The goal is to measure the dynamic of the Micro-Station and to extract Frequency Response Functions.
</p>
</div>
</div>
<div id="outline-container-org443821e" class="outline-2">
<h2 id="org443821e"><span class="section-number-2">2</span> Instrumentation Used</h2>
<div class="outline-text-2" id="text-2">
<p>
In order to perform to <b>Modal Analysis</b> and to obtain first a <b>Response Model</b>, the following devices are used:
</p>
<ul class="org-ul">
<li>An <b>acquisition system</b> (OROS) with 24bits ADCs (figure <a href="#orgd3ed416">1</a>)</li>
<li>3 tri-axis <b>Accelerometers</b> (figure <a href="#org5652fe1">2</a>) with parameters shown on table <a href="#orgc08239a">1</a></li>
<li>An <b>Instrumented Hammer</b> with various Tips (figure <a href="#orgba60092">3</a>) (figure <a href="#org1248b1f">4</a>)</li>
<li>An <b>acquisition system</b> (OROS) with 24bits ADCs (figure <a href="#org3cb3139">1</a>)</li>
<li>3 tri-axis <b>Accelerometers</b> (figure <a href="#org1139d9d">2</a>) with parameters shown on table <a href="#org9413bac">1</a></li>
<li>An <b>Instrumented Hammer</b> with various Tips (figure <a href="#org9a3af29">3</a>) (figure <a href="#orgfb14766">4</a>)</li>
</ul>
<div id="orgd3ed416" class="figure">
<div id="org3cb3139" class="figure">
<p><img src="img/instrumentation/oros.png" alt="oros.png" width="500px" />
</p>
<p><span class="figure-number">Figure 1: </span>Acquisition system: OROS</p>
@ -355,13 +349,13 @@ Anti-aliasing filters are also included in the system.
</p>
<div id="org5652fe1" class="figure">
<div id="org1139d9d" class="figure">
<p><img src="img/instrumentation/accelero_M393B05.png" alt="accelero_M393B05.png" width="500px" />
</p>
<p><span class="figure-number">Figure 2: </span>Accelerometer used: M393B05</p>
</div>
<table id="orgc08239a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org9413bac" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> 393B05 Accelerometer Data Sheet</caption>
<colgroup>
@ -404,14 +398,14 @@ It excites more the low frequency range where the coherence is low, the overall
</p>
<div id="orgba60092" class="figure">
<div id="org9a3af29" class="figure">
<p><img src="img/instrumentation/instrumented_hammer.png" alt="instrumented_hammer.png" width="500px" />
</p>
<p><span class="figure-number">Figure 3: </span>Instrumented Hammer</p>
</div>
<div id="org1248b1f" class="figure">
<div id="orgfb14766" class="figure">
<p><img src="img/instrumentation/hammer_tips.png" alt="hammer_tips.png" width="500px" />
</p>
<p><span class="figure-number">Figure 4: </span>Hammer tips</p>
@ -423,13 +417,13 @@ The accelerometers are glued on the structure.
</div>
</div>
<div id="outline-container-org109ddf2" class="outline-2">
<h2 id="org109ddf2"><span class="section-number-2">3</span> Structure Preparation and Test Planning</h2>
<div class="outline-text-2" id="text-3">
<div id="outline-container-org52e2020" class="outline-2">
<h2 id="org52e2020"><span class="section-number-2">2</span> Structure Preparation and Test Planning</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org050f028" class="outline-3">
<h3 id="org050f028"><span class="section-number-3">3.1</span> Structure Preparation</h3>
<div class="outline-text-3" id="text-3-1">
<div id="outline-container-org7455d27" class="outline-3">
<h3 id="org7455d27"><span class="section-number-3">2.1</span> Structure Preparation</h3>
<div class="outline-text-3" id="text-2-1">
<p>
All the stages are turned ON.
This is done for two reasons:
@ -471,9 +465,9 @@ All other elements have been remove from the granite such as another heavy posit
</div>
</div>
<div id="outline-container-org824ea1e" class="outline-3">
<h3 id="org824ea1e"><span class="section-number-3">3.2</span> Test Planing</h3>
<div class="outline-text-3" id="text-3-2">
<div id="outline-container-orgdde52cc" class="outline-3">
<h3 id="orgdde52cc"><span class="section-number-3">2.2</span> Test Planing</h3>
<div class="outline-text-3" id="text-2-2">
<p>
The goal is to identify the full \(N \times N\) FRF matrix \(H\) (where \(N\) is the number of degree of freedom of the system):
</p>
@ -510,9 +504,9 @@ We will measured 3 columns (3 impacts location) in order to have some redundancy
</div>
</div>
<div id="outline-container-orgae947bb" class="outline-3">
<h3 id="orgae947bb"><span class="section-number-3">3.3</span> Location of the Accelerometers</h3>
<div class="outline-text-3" id="text-3-3">
<div id="outline-container-org0855f5d" class="outline-3">
<h3 id="org0855f5d"><span class="section-number-3">2.3</span> Location of the Accelerometers</h3>
<div class="outline-text-3" id="text-2-3">
<p>
4 tri-axis accelerometers are used for each solid body.
</p>
@ -530,11 +524,11 @@ The position of the accelerometers are:
</p>
<ul class="org-ul">
<li>4 on the first granite</li>
<li>4 on the second granite (figure <a href="#org05b745d">5</a>)</li>
<li>4 on top of the translation stage (figure <a href="#org676fa5a">6</a>)</li>
<li>4 on the second granite (figure <a href="#org5d2767d">5</a>)</li>
<li>4 on top of the translation stage (figure <a href="#orga2de2f1">6</a>)</li>
<li>4 on top of the tilt stage</li>
<li>3 on top of the spindle</li>
<li>4 on top of the hexapod (figure <a href="#orgd0b01da">7</a>)</li>
<li>4 on top of the hexapod (figure <a href="#org248966b">7</a>)</li>
</ul>
<p>
@ -542,43 +536,43 @@ In total, 23 accelerometers are used: <b>69 DOFs are thus measured</b>.
</p>
<p>
The position and orientation of all the accelerometers used are shown on figure <a href="#orgbc41472">8</a>.
The position and orientation of all the accelerometers used are shown on figure <a href="#orgea71a4d">8</a>.
</p>
<p>
The precise determination of the position of each accelerometer is done using the SolidWorks model (shown on figure <a href="#orgec3e0e6">9</a>).
The precise determination of the position of each accelerometer is done using the SolidWorks model (shown on figure <a href="#orgf845056">9</a>).
</p>
<div id="org05b745d" class="figure">
<div id="org5d2767d" class="figure">
<p><img src="img/accelerometers/accelerometers_granite2_overview.jpg" alt="accelerometers_granite2_overview.jpg" width="500px" />
</p>
<p><span class="figure-number">Figure 5: </span>Accelerometers located on the top granite</p>
</div>
<div id="org676fa5a" class="figure">
<div id="orga2de2f1" class="figure">
<p><img src="img/accelerometers/accelerometers_ty_overview.jpg" alt="accelerometers_ty_overview.jpg" width="500px" />
</p>
<p><span class="figure-number">Figure 6: </span>Accelerometers located on top of the translation stage</p>
</div>
<div id="orgd0b01da" class="figure">
<div id="org248966b" class="figure">
<p><img src="img/accelerometers/accelerometers_hexa_overview.jpg" alt="accelerometers_hexa_overview.jpg" width="500px" />
</p>
<p><span class="figure-number">Figure 7: </span>Accelerometers located on the Hexapod</p>
</div>
<div id="orgbc41472" class="figure">
<div id="orgea71a4d" class="figure">
<p><img src="figs/nass-modal-test.png" alt="nass-modal-test.png" width="800px" />
</p>
<p><span class="figure-number">Figure 8: </span>Position and orientation of the accelerometer used</p>
</div>
<div id="orgec3e0e6" class="figure">
<div id="orgf845056" class="figure">
<p><img src="img/location_accelerometers.png" alt="location_accelerometers.png" width="800px" />
</p>
<p><span class="figure-number">Figure 9: </span>Position of the accelerometers using SolidWorks</p>
@ -605,9 +599,9 @@ acc_pos = acc_pos<span class="org-rainbow-delimiters-depth-1">(</span><span clas
</div>
<p>
The positions of the sensors relative to the point of interest are shown below (table <a href="#org9932674">2</a>).
The positions of the sensors relative to the point of interest are shown below (table <a href="#orgbbdc8c9">2</a>).
</p>
<table id="org9932674" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgbbdc8c9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> position of the accelerometers</caption>
<colgroup>
@ -793,15 +787,15 @@ The positions of the sensors relative to the point of interest are shown below (
</div>
</div>
<div id="outline-container-org85336e7" class="outline-3">
<h3 id="org85336e7"><span class="section-number-3">3.4</span> Hammer Impacts</h3>
<div class="outline-text-3" id="text-3-4">
<div id="outline-container-org8f40892" class="outline-3">
<h3 id="org8f40892"><span class="section-number-3">2.4</span> Hammer Impacts</h3>
<div class="outline-text-3" id="text-2-4">
<p>
Only 3 impact points are used.
</p>
<p>
The impact points are shown on figures <a href="#orgd9f9e9e">10</a>, <a href="#org4002508">11</a> and <a href="#org2dbf07c">12</a>.
The impact points are shown on figures <a href="#org0bdeada">10</a>, <a href="#org6050c66">11</a> and <a href="#orgc40919a">12</a>.
</p>
<p>
@ -809,21 +803,21 @@ We chose this excitation point as it seems to excite all the modes in the freque
</p>
<div id="orgd9f9e9e" class="figure">
<div id="org0bdeada" class="figure">
<p><img src="img/impacts/hammer_x.gif" alt="hammer_x.gif" width="300px" />
</p>
<p><span class="figure-number">Figure 10: </span>Hammer Blow in the X direction</p>
</div>
<div id="org4002508" class="figure">
<div id="org6050c66" class="figure">
<p><img src="img/impacts/hammer_y.gif" alt="hammer_y.gif" width="300px" />
</p>
<p><span class="figure-number">Figure 11: </span>Hammer Blow in the Y direction</p>
</div>
<div id="org2dbf07c" class="figure">
<div id="orgc40919a" class="figure">
<p><img src="img/impacts/hammer_z.gif" alt="hammer_z.gif" width="300px" />
</p>
<p><span class="figure-number">Figure 12: </span>Hammer Blow in the Z direction</p>
@ -832,19 +826,19 @@ We chose this excitation point as it seems to excite all the modes in the freque
</div>
</div>
<div id="outline-container-orgc7582b9" class="outline-2">
<h2 id="orgc7582b9"><span class="section-number-2">4</span> Signal Processing</h2>
<div class="outline-text-2" id="text-4">
<div id="outline-container-org8b69adc" class="outline-2">
<h2 id="org8b69adc"><span class="section-number-2">3</span> Signal Processing</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-orga2b8b8e" class="outline-3">
<h3 id="orga2b8b8e"><span class="section-number-3">4.1</span> Averaging</h3>
<div class="outline-text-3" id="text-4-1">
<div id="outline-container-orge8d40e5" class="outline-3">
<h3 id="orge8d40e5"><span class="section-number-3">3.1</span> Averaging</h3>
<div class="outline-text-3" id="text-3-1">
<p>
The measurements are averaged 10 times corresponding to 10 hammer impacts in order to reduce the effect of random noise.
The parameters for the impact test are shown on table <a href="#org548b6a0">3</a>.
The parameters for the impact test are shown on table <a href="#orgaf07ad9">3</a>.
</p>
<table id="org548b6a0" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgaf07ad9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 3:</span> Impact test parameters</caption>
<colgroup>
@ -882,15 +876,15 @@ The parameters for the impact test are shown on table <a href="#org548b6a0">3</a
</div>
</div>
<div id="outline-container-org0dbf1dd" class="outline-3">
<h3 id="org0dbf1dd"><span class="section-number-3">4.2</span> Windowing</h3>
<div class="outline-text-3" id="text-4-2">
<div id="outline-container-org3eeedb0" class="outline-3">
<h3 id="org3eeedb0"><span class="section-number-3">3.2</span> Windowing</h3>
<div class="outline-text-3" id="text-3-2">
<p>
Windowing is used on the force and response signals.
</p>
<p>
A boxcar window (figure <a href="#org49a4fe0">13</a>) is used for the force signal as once the impact on the structure is done, the measured signal is meaningless.
A boxcar window (figure <a href="#org8aeb0a8">13</a>) is used for the force signal as once the impact on the structure is done, the measured signal is meaningless.
The parameters are:
</p>
<ul class="org-ul">
@ -899,14 +893,14 @@ The parameters are:
</ul>
<div id="org49a4fe0" class="figure">
<div id="org8aeb0a8" class="figure">
<p><img src="figs/windowing_force_signal.png" alt="windowing_force_signal.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Window used for the force signal</p>
</div>
<p>
An exponential window (figure <a href="#orgd0a23d4">14</a>) 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.
An exponential window (figure <a href="#org44ee464">14</a>) 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:
</p>
<ul class="org-ul">
@ -923,7 +917,7 @@ The parameters are:
</ul>
<div id="orgd0a23d4" class="figure">
<div id="org44ee464" class="figure">
<p><img src="figs/windowing_response_signal.png" alt="windowing_response_signal.png" />
</p>
<p><span class="figure-number">Figure 14: </span>Window used for the response signals</p>
@ -932,9 +926,9 @@ The parameters are:
</div>
</div>
<div id="outline-container-org45d897a" class="outline-2">
<h2 id="org45d897a"><span class="section-number-2">5</span> Force and Response signals</h2>
<div class="outline-text-2" id="text-5">
<div id="outline-container-org2c59463" class="outline-2">
<h2 id="org2c59463"><span class="section-number-2">4</span> Force and Response signals</h2>
<div class="outline-text-2" id="text-4">
<p>
Let's load some obtained data to look at the force and response signals.
</p>
@ -945,33 +939,33 @@ Let's load some obtained data to look at the force and response signals.
</div>
</div>
<div id="outline-container-org2a9b2e8" class="outline-3">
<h3 id="org2a9b2e8"><span class="section-number-3">5.1</span> Raw Force Data</h3>
<div class="outline-text-3" id="text-5-1">
<div id="outline-container-org46f14b0" class="outline-3">
<h3 id="org46f14b0"><span class="section-number-3">4.1</span> Raw Force Data</h3>
<div class="outline-text-3" id="text-4-1">
<p>
The force input for the first measurement is shown on figure <a href="#org272eb14">15</a>. We can see 10 impacts, one zoom on one impact is shown on figure <a href="#org502f99a">16</a>.
The force input for the first measurement is shown on figure <a href="#orge3844e4">15</a>. We can see 10 impacts, one zoom on one impact is shown on figure <a href="#org963923f">16</a>.
</p>
<p>
The Fourier transform of the force is shown on figure <a href="#org5df9406">17</a>. This has been obtained without any windowing.
The Fourier transform of the force is shown on figure <a href="#orgdb5bb18">17</a>. This has been obtained without any windowing.
</p>
<div id="org272eb14" class="figure">
<div id="orge3844e4" class="figure">
<p><img src="figs/raw_data_force.png" alt="raw_data_force.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Raw Force Data from Hammer Blow</p>
</div>
<div id="org502f99a" class="figure">
<div id="org963923f" class="figure">
<p><img src="figs/raw_data_force_zoom.png" alt="raw_data_force_zoom.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Raw Force Data from Hammer Blow - Zoom</p>
</div>
<div id="org5df9406" class="figure">
<div id="orgdb5bb18" class="figure">
<p><img src="figs/fourier_transfor_force_impact.png" alt="fourier_transfor_force_impact.png" />
</p>
<p><span class="figure-number">Figure 17: </span>Fourier Transform of the 10 force impacts for the first measurement</p>
@ -979,33 +973,33 @@ The Fourier transform of the force is shown on figure <a href="#org5df9406">17</
</div>
</div>
<div id="outline-container-org85cf244" class="outline-3">
<h3 id="org85cf244"><span class="section-number-3">5.2</span> Raw Response Data</h3>
<div class="outline-text-3" id="text-5-2">
<div id="outline-container-org0c9ff56" class="outline-3">
<h3 id="org0c9ff56"><span class="section-number-3">4.2</span> Raw Response Data</h3>
<div class="outline-text-3" id="text-4-2">
<p>
The response signal for the first measurement is shown on figure <a href="#orge2002e9">18</a>. One zoom on one response is shown on figure <a href="#org677b009">19</a>.
The response signal for the first measurement is shown on figure <a href="#orgb00576b">18</a>. One zoom on one response is shown on figure <a href="#orgfb23e9d">19</a>.
</p>
<p>
The Fourier transform of the response signals is shown on figure <a href="#orgade9101">20</a>. This has been obtained without any windowing.
The Fourier transform of the response signals is shown on figure <a href="#orgf9cdc9b">20</a>. This has been obtained without any windowing.
</p>
<div id="orge2002e9" class="figure">
<div id="orgb00576b" class="figure">
<p><img src="figs/raw_data_acceleration.png" alt="raw_data_acceleration.png" />
</p>
<p><span class="figure-number">Figure 18: </span>Raw Acceleration Data from Accelerometer</p>
</div>
<div id="org677b009" class="figure">
<div id="orgfb23e9d" class="figure">
<p><img src="figs/raw_data_acceleration_zoom.png" alt="raw_data_acceleration_zoom.png" />
</p>
<p><span class="figure-number">Figure 19: </span>Raw Acceleration Data from Accelerometer - Zoom</p>
</div>
<div id="orgade9101" class="figure">
<div id="orgf9cdc9b" class="figure">
<p><img src="figs/fourier_transform_response_signals.png" alt="fourier_transform_response_signals.png" />
</p>
<p><span class="figure-number">Figure 20: </span>Fourier transform of the measured response signals</p>
@ -1013,15 +1007,15 @@ The Fourier transform of the response signals is shown on figure <a href="#orgad
</div>
</div>
<div id="outline-container-orgacd507e" class="outline-3">
<h3 id="orgacd507e"><span class="section-number-3">5.3</span> Computation of one Frequency Response Function</h3>
<div class="outline-text-3" id="text-5-3">
<div id="outline-container-org9777957" class="outline-3">
<h3 id="org9777957"><span class="section-number-3">4.3</span> Computation of one Frequency Response Function</h3>
<div class="outline-text-3" id="text-4-3">
<p>
Now that we have obtained the Fourier transform of both the force input and the response signal, we can compute the Frequency Response Function from the force to the acceleration.
</p>
<p>
We then compare the result obtained with the FRF computed by the modal software (figure <a href="#orga66271c">21</a>).
We then compare the result obtained with the FRF computed by the modal software (figure <a href="#org49045bb">21</a>).
</p>
<p>
@ -1038,7 +1032,7 @@ In the following analysis, FRF computed from the software will be used.
</div>
<div id="orga66271c" class="figure">
<div id="org49045bb" class="figure">
<p><img src="figs/frf_comparison_software.png" alt="frf_comparison_software.png" />
</p>
<p><span class="figure-number">Figure 21: </span>Comparison of the computed FRF from the Fourier transform and using the modal software</p>
@ -1047,9 +1041,9 @@ In the following analysis, FRF computed from the software will be used.
</div>
</div>
<div id="outline-container-org40c5c29" class="outline-2">
<h2 id="org40c5c29"><span class="section-number-2">6</span> Frequency Response Functions and Coherence Results</h2>
<div class="outline-text-2" id="text-6">
<div id="outline-container-orge4feeae" class="outline-2">
<h2 id="orge4feeae"><span class="section-number-2">5</span> Frequency Response Functions and Coherence Results</h2>
<div class="outline-text-2" id="text-5">
<p>
Let's see one computed Frequency Response Function and one coherence in order to attest the quality of the measurement.
</p>
@ -1063,22 +1057,22 @@ First, we load the data.
</div>
<p>
And we plot on figure <a href="#org27a4dde">22</a> the frequency response function from the force applied in the \(X\) direction at the location of the accelerometer number 11 to the acceleration in the \(X\) direction as measured by the first accelerometer located on the top platform of the hexapod.
And we plot on figure <a href="#org6352405">22</a> the frequency response function from the force applied in the \(X\) direction at the location of the accelerometer number 11 to the acceleration in the \(X\) direction as measured by the first accelerometer located on the top platform of the hexapod.
</p>
<p>
The coherence associated is shown on figure <a href="#org27a4dde">22</a>.
The coherence associated is shown on figure <a href="#org6352405">22</a>.
</p>
<div id="org27a4dde" class="figure">
<div id="org6352405" class="figure">
<p><img src="figs/frf_result_example.png" alt="frf_result_example.png" />
</p>
<p><span class="figure-number">Figure 22: </span>Example of one measured FRF</p>
</div>
<div id="orgd5c11c0" class="figure">
<div id="org1b2c85f" class="figure">
<p><img src="figs/coh_result_example.png" alt="coh_result_example.png" />
</p>
<p><span class="figure-number">Figure 23: </span>Example of one measured Coherence</p>
@ -1086,9 +1080,9 @@ The coherence associated is shown on figure <a href="#org27a4dde">22</a>.
</div>
</div>
<div id="outline-container-orge7a0dc1" class="outline-2">
<h2 id="orge7a0dc1"><span class="section-number-2">7</span> Generation of a FRF matrix and a Coherence matrix from the measurements</h2>
<div class="outline-text-2" id="text-7">
<div id="outline-container-org1d9d57c" class="outline-2">
<h2 id="org1d9d57c"><span class="section-number-2">6</span> Generation of a FRF matrix and a Coherence matrix from the measurements</h2>
<div class="outline-text-2" id="text-6">
<p>
We want here to combine all the Frequency Response Functions measured into one big array called the <b>Frequency Response Matrix</b>.
</p>
@ -1183,16 +1177,16 @@ And we save the obtained FRF matrix and Coherence matrix in a <code>.mat</code>
</div>
</div>
<div id="outline-container-org5ebd034" class="outline-2">
<h2 id="org5ebd034"><span class="section-number-2">8</span> Plot showing the coherence of all the measurements</h2>
<div class="outline-text-2" id="text-8">
<div id="outline-container-org405df5c" class="outline-2">
<h2 id="org405df5c"><span class="section-number-2">7</span> Plot showing the coherence of all the measurements</h2>
<div class="outline-text-2" id="text-7">
<p>
Now that we have defined a Coherence matrix, we can plot each of its elements to have an idea of the overall coherence and thus, quality of the measurement.
The result is shown on figure <a href="#org820d336">24</a>.
The result is shown on figure <a href="#org273f352">24</a>.
</p>
<div id="org820d336" class="figure">
<div id="org273f352" class="figure">
<p><img src="figs/all_coherence.png" alt="all_coherence.png" />
</p>
<p><span class="figure-number">Figure 24: </span>Plot of the coherence of all the measurements</p>
@ -1200,9 +1194,9 @@ The result is shown on figure <a href="#org820d336">24</a>.
</div>
</div>
<div id="outline-container-org259382d" class="outline-2">
<h2 id="org259382d"><span class="section-number-2">9</span> Solid Bodies considered for further analysis</h2>
<div class="outline-text-2" id="text-9">
<div id="outline-container-org8e3f4c9" class="outline-2">
<h2 id="org8e3f4c9"><span class="section-number-2">8</span> Solid Bodies considered for further analysis</h2>
<div class="outline-text-2" id="text-8">
<p>
We consider the following solid bodies for further analysis:
</p>
@ -1216,7 +1210,7 @@ We consider the following solid bodies for further analysis:
</ul>
<p>
We create a <code>matlab</code> structure <code>solids</code> that contains the accelerometers ID connected to each solid bodies (as shown on figure <a href="#orgbc41472">8</a>).
We create a <code>matlab</code> structure <code>solids</code> that contains the accelerometers ID connected to each solid bodies (as shown on figure <a href="#orgea71a4d">8</a>).
</p>
<div class="org-src-container">
<pre class="src src-matlab">solids = <span class="org-rainbow-delimiters-depth-1">{}</span>;
@ -1241,26 +1235,26 @@ Finally, we save that into a <code>.mat</code> file.
</div>
</div>
<div id="outline-container-orgc0c679a" class="outline-2">
<h2 id="orgc0c679a"><span class="section-number-2">10</span> Note about the solid body assumption</h2>
<div class="outline-text-2" id="text-10">
<div id="outline-container-org37825e5" class="outline-2">
<h2 id="org37825e5"><span class="section-number-2">9</span> Note about the solid body assumption</h2>
<div class="outline-text-2" id="text-9">
<p>
If we measure the motion of a rigid body along a direction \(\vec{x}\) using 2 sensors that are co-linear with the same direction \(\vec{x}\) (\(\vec{p}_2 = \vec{p}_1 + \alpha \vec{x}\)), they will measured the same quantity.
</p>
<p>
This is illustrated on figure <a href="#org700c0ff">25</a>.
This is illustrated on figure <a href="#org9de92c6">25</a>.
</p>
<div id="org700c0ff" class="figure">
<div id="org9de92c6" class="figure">
<p><img src="figs/aligned_accelerometers.png" alt="aligned_accelerometers.png" />
</p>
<p><span class="figure-number">Figure 25: </span>Aligned measurement of the motion of a solid body</p>
</div>
<p>
The motion of the rigid body of figure <a href="#org700c0ff">25</a> is defined by its displacement \(\delta p\) and rotation \(\vec{\Omega}\) with respect to the reference frame \(\{O\}\).
The motion of the rigid body of figure <a href="#org9de92c6">25</a> is defined by its displacement \(\delta p\) and rotation \(\vec{\Omega}\) with respect to the reference frame \(\{O\}\).
</p>
<p>
@ -1298,15 +1292,15 @@ We can verify that the rigid body assumption is correct by comparing the measure
</p>
<p>
From the table <a href="#org9932674">2</a>, we can guess which sensors will give the same results in the X and Y directions.
From the table <a href="#orgbbdc8c9">2</a>, we can guess which sensors will give the same results in the X and Y directions.
</p>
<p>
Comparison of such measurements in the X direction is shown on figure <a href="#org8826aed">26</a> and in the Y direction on figure <a href="#org2a938cd">27</a>.
Comparison of such measurements in the X direction is shown on figure <a href="#org3ea4601">26</a> and in the Y direction on figure <a href="#org0f3a60e">27</a>.
</p>
<div id="org8826aed" class="figure">
<div id="org3ea4601" class="figure">
<p><img src="figs/compare_acc_x_dir.png" alt="compare_acc_x_dir.png" />
</p>
<p><span class="figure-number">Figure 26: </span>Compare accelerometers align in the X direction</p>
@ -1314,7 +1308,7 @@ Comparison of such measurements in the X direction is shown on figure <a href="#
<div id="org2a938cd" class="figure">
<div id="org0f3a60e" class="figure">
<p><img src="figs/compare_acc_y_dir.png" alt="compare_acc_y_dir.png" />
</p>
<p><span class="figure-number">Figure 27: </span>Compare accelerometers align in the Y direction</p>
@ -1328,9 +1322,9 @@ From the two figures above, we are more confident about the rigid body assumptio
</div>
</div>
</div>
<div id="outline-container-org95c7199" class="outline-2">
<h2 id="org95c7199"><span class="section-number-2">11</span> Verification of the principle of reciprocity</h2>
<div class="outline-text-2" id="text-11">
<div id="outline-container-org73471a7" class="outline-2">
<h2 id="org73471a7"><span class="section-number-2">10</span> Verification of the principle of reciprocity</h2>
<div class="outline-text-2" id="text-10">
<p>
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\):
@ -1350,14 +1344,14 @@ We can verify this reciprocity using 3 different pairs of response/force.
</p>
<div id="orga8de4fa" class="figure">
<div id="org8962d83" class="figure">
<p><img src="figs/principle_reciprocity.png" alt="principle_reciprocity.png" />
</p>
<p><span class="figure-number">Figure 28: </span>Verification of the principle of reciprocity</p>
</div>
<p>
From figure <a href="#orga8de4fa">28</a>, it seems that the principle of reciprocity is valid from 50Hz to 100Hz.
From figure <a href="#org8962d83">28</a>, it seems that the principle of reciprocity is valid from 50Hz to 100Hz.
Above that, the difference between the two could be due to:
</p>
<ul class="org-ul">
@ -1373,7 +1367,7 @@ Below, it could be due to:
<div class="important">
<p>
One should note here that the excitation is not applied on the same DOF as the measured response.
This could be seen on figures <a href="#orgd9f9e9e">10</a>, <a href="#org4002508">11</a> and <a href="#org2dbf07c">12</a> that show the excitation points, and on figure <a href="#org676fa5a">6</a> where the accelerometer on the bottom left shows the one used for the principle of reciprocity validation above.
This could be seen on figures <a href="#org0bdeada">10</a>, <a href="#org6050c66">11</a> and <a href="#orgc40919a">12</a> that show the excitation points, and on figure <a href="#orga2de2f1">6</a> where the accelerometer on the bottom left shows the one used for the principle of reciprocity validation above.
Thus, technically we cannot verify the principle of reciprocity here.
</p>
@ -1382,15 +1376,21 @@ Thus, technically we cannot verify the principle of reciprocity here.
<div class="warning">
<p>
As it is usually very important to measure point response \(\frac{X_j}{F_j}\), that is to say exciting and measuring the <b>same</b> DOF, should the measurements be redone?
On the modal software that is used to extract modal parameters, it is suppose that we are exciting the <b>exact</b> same DOF as the one measured by the accelerometer 11. As is it not the case in practice, could this induce large errors in the modal model?
</p>
</div>
</div>
</div>
<p>
<a href="ref.bib">ref.bib</a>
</p>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-07-11 jeu. 16:25</p>
<p class="date">Created: 2019-07-12 ven. 09:15</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -41,6 +41,9 @@
#+PROPERTY: header-args:latex+ :output-dir figs
:END:
* Introduction :ignore:
The goal is to measure the dynamic of the Micro-Station and to extract Frequency Response Functions.
* ZIP file containing the data and matlab files :ignore:
#+begin_src bash :exports none :results none
if [ matlab/modal_frf_coh.m -nt data/modal_frf_coh.zip ]; then
@ -67,9 +70,6 @@
<<matlab-init>>
#+end_src
* Goal
The goal is to measure the dynamic of the Micro-Station and to extract Frequency Response Functions.
* Instrumentation Used
In order to perform to *Modal Analysis* and to obtain first a *Response Model*, the following devices are used:
- An *acquisition system* (OROS) with 24bits ADCs (figure [[fig:oros]])
@ -956,3 +956,7 @@ Below, it could be due to:
As it is usually very important to measure point response $\frac{X_j}{F_j}$, that is to say exciting and measuring the *same* DOF, should the measurements be redone?
On the modal software that is used to extract modal parameters, it is suppose that we are exciting the *exact* same DOF as the one measured by the accelerometer 11. As is it not the case in practice, could this induce large errors in the modal model?
#+end_warning
* Bibliography :ignore:
bibliographystyle:unsrt
bibliography:ref.bib

File diff suppressed because it is too large Load Diff

View File

@ -273,41 +273,41 @@ They are all exported in a text file named =modes.asc=.
Its first 20 lines as shown below.
#+begin_src bash :results output :exports results :eval no-export
sed 20q mat/modes.asc | sed $'s/\r//'
sed 20q mat/modes_2019_07_16.asc | sed $'s/\r//'
#+end_src
#+RESULTS:
#+begin_example
Created by N-Modal
Estimator: bbfd
01-Jul-19 16:44:11
16-Jul-19 09:35:42
Mode 1
freq = 11.41275Hz
damp = 8.72664%
modal A = -4.50556e+003-9.41744e+003i
modal B = -7.00928e+005+2.62922e+005i
freq = 11.86509Hz
damp = 12.20318%
modal A = 4.13559e+003+6.22828e+003i
modal B = 4.98475e+005-2.49344e+005i
Mode matrix of local coordinate [DOF: Re IM]
1X-: -1.04114e-001 3.50664e-002
1Y-: 2.34008e-001 5.04273e-004
1Z+: -1.93303e-002 5.08614e-003
2X-: -8.38439e-002 3.45978e-002
2Y-: 2.42440e-001 0.00000e+000
2Z+: -7.40734e-003 5.17734e-003
3Y-: 2.17655e-001 6.10802e-003
3X+: 1.18685e-001 -3.54602e-002
3Z+: -2.37725e-002 -1.61649e-003
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
#+end_example
We split this big =modes.asc= file into sub text files using =bash=. The obtained files are described one table [[tab:modes_files]].
#+begin_src bash :results none
sed '/^\s*[0-9]*[XYZ][+-]:/!d' mat/modes.asc > mat/mode_shapes.txt
sed '/freq/!d' mat/modes.asc | sed 's/.* = \(.*\)Hz/\1/' > mat/mode_freqs.txt
sed '/damp/!d' mat/modes.asc | sed 's/.* = \(.*\)\%/\1/' > mat/mode_damps.txt
sed '/modal A/!d' mat/modes.asc | sed 's/.* =\s\+\([-0-9.e]\++[0-9]\+\)\([-+0-9.e]\+\)i/\1 \2/' > mat/mode_modal_a.txt
sed '/modal B/!d' mat/modes.asc | sed 's/.* =\s\+\([-0-9.e]\++[0-9]\+\)\([-+0-9.e]\+\)i/\1 \2/' > mat/mode_modal_b.txt
sed '/^\s*[0-9]*[XYZ][+-]:/!d' mat/modes_2019_07_16.asc > mat/mode_shapes.txt
sed '/freq/!d' mat/modes_2019_07_16.asc | sed 's/.* = \(.*\)Hz/\1/' > mat/mode_freqs.txt
sed '/damp/!d' mat/modes_2019_07_16.asc | sed 's/.* = \(.*\)\%/\1/' > mat/mode_damps.txt
sed '/modal A/!d' mat/modes_2019_07_16.asc | sed 's/.* =\s\+\([-0-9.e]\++[0-9]\+\)\([-+0-9.e]\+\)i/\1 \2/' > mat/mode_modal_a.txt
sed '/modal B/!d' mat/modes_2019_07_16.asc | sed 's/.* =\s\+\([-0-9.e]\++[0-9]\+\)\([-+0-9.e]\+\)i/\1 \2/' > mat/mode_modal_b.txt
#+end_src
#+name: tab:modes_files
@ -366,32 +366,29 @@ The obtained mode frequencies and damping are shown below.
data2orgtable([(1:length(freqs_m))', freqs_m, damps_m], {}, {'Mode number', 'Frequency [Hz]', 'Damping [%]'}, ' %.1f ');
#+end_src
#+name: tab:obtained_modes_freqs_damps
#+caption: Obtained eigen frequencies and modal damping
#+RESULTS:
| Mode number | Frequency [Hz] | Damping [%] |
|-------------+----------------+-------------|
| 1.0 | 11.4 | 8.7 |
| 2.0 | 18.5 | 11.8 |
| 3.0 | 37.6 | 6.4 |
| 4.0 | 39.4 | 3.6 |
| 5.0 | 54.0 | 0.2 |
| 6.0 | 56.1 | 2.8 |
| 7.0 | 69.7 | 4.6 |
| 8.0 | 71.6 | 0.6 |
| 9.0 | 72.4 | 1.6 |
| 10.0 | 84.9 | 3.6 |
| 11.0 | 90.6 | 0.3 |
| 12.0 | 91.0 | 2.9 |
| 13.0 | 95.8 | 3.3 |
| 14.0 | 105.4 | 3.3 |
| 15.0 | 106.8 | 1.9 |
| 16.0 | 112.6 | 3.0 |
| 17.0 | 116.8 | 2.7 |
| 18.0 | 124.1 | 0.6 |
| 19.0 | 145.4 | 1.6 |
| 20.0 | 150.1 | 2.2 |
| 21.0 | 164.7 | 1.4 |
| 1.0 | 11.9 | 12.2 |
| 2.0 | 18.6 | 11.7 |
| 3.0 | 37.8 | 6.2 |
| 4.0 | 39.1 | 2.8 |
| 5.0 | 56.3 | 2.8 |
| 6.0 | 69.8 | 4.3 |
| 7.0 | 72.5 | 1.3 |
| 8.0 | 84.8 | 3.7 |
| 9.0 | 91.3 | 2.9 |
| 10.0 | 105.5 | 3.2 |
| 11.0 | 106.6 | 1.6 |
| 12.0 | 112.7 | 3.1 |
| 13.0 | 124.2 | 2.8 |
| 14.0 | 145.3 | 1.3 |
| 15.0 | 150.5 | 2.4 |
| 16.0 | 165.4 | 1.4 |
#+name: tab:obtained_modes_freqs_damps
#+caption: Obtained eigen frequencies and modal damping
#+RESULTS:
** Theory
It seems that the modal analysis software makes the *assumption* of viscous damping for the model with which it tries to fit the FRF measurements.
@ -472,6 +469,9 @@ With $a_i$ is the "Modal A" parameter linked to mode i.
modal_b_ext_M = blkdiag(modal_b_M, conj(modal_b_M));
#+end_src
"Modal A" and "modal B" are linked through the following formula:
\[ B = - A \Lambda \]
* Obtained Mode Shapes animations
<<sec:mode_shape_display>>
From the modal parameters, it is possible to show the modal shapes with an animation.
@ -511,8 +511,8 @@ There are two main ways to verify the validity of the modal model
From the modal model, we want to synthesize the Frequency Response Functions that has been used to build the modal model.
Let's recall that:
- $M$ is the number of measured DOFs ($23 \times 3 = 69$)
- $N$ is the number of modes identified ($21$)
- $M$ is the number of measured DOFs ($3 \times n_\text{acc}$)
- $N$ is the number of modes identified
We then have that the FRF matrix $[H_{\text{syn}}]$ can be synthesize using the following formula:
#+begin_important
@ -529,12 +529,34 @@ with:
- $\psi_{pr}$: scaled modal coefficient for output DOF $p$, mode $r$
- $\lambda_r$: complex modal frequency
From the modal software documentation:
#+begin_quote
*Modal A*
Scaling constant for a complex mode. It has the same properties as modal mass for normal modes (undamped or proportionally damped cases). Assuming
- $\psi_{pr}$ = Modal coefficient for measured degree of freedom p and mode r
- $\psi_{qr}$ = Modal coefficient for measured degree of freedom q and mode r
- $A_{pqr}$ = Residue for measured degree of freedom p, measured degree of q and mode r
- $M_{Ar}$ = Modal A of mode r
Then
\[ A_{pqr} = \frac{\psi_{pr}\psi_{qr}}{M_{Ar}} \]
*Modal B*
Scaling constant for a complex mode. It has the same properties as modal stiffness for normal modes (undamped or proportionally damped cases). Assuming
- $M_{Ar}$ = Modal A of mode r
- $\lambda_r$ = System pole of mode r
Then
\[ M_{Br} = - \lambda_r M_{Ar} \]
#+end_quote
** Matlab Implementation
#+begin_src matlab
Hsyn = zeros(69, 69, 801);
Hsyn = zeros(acc_n*dir_n, acc_n*dir_n, length(freqs));
for i = 1:length(freqs)
Hsyn(:, :, i) = eigen_vec_ext_M*(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*((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.';
end
#+end_src
@ -542,13 +564,13 @@ Because the synthesize frequency response functions are representing the displac
#+begin_src matlab
for i = 1:size(Hsyn, 1)
Hsyn(i, :, :) = squeeze(-Hsyn(i, :, :)).*(j*2*pi*freqs).^2;
Hsyn(i, :, :) = squeeze(Hsyn(i, :, :)).*(j*2*pi*freqs).^2;
end
#+end_src
** Original and Synthesize FRF matrix comparison
#+begin_src matlab :exports none
acc_o = 15; dir_o = 1; dir_i = 1;
acc_o = 1; dir_o = 1; dir_i = 1;
figure;
ax1 = subplot(2, 1, 1);
@ -556,9 +578,10 @@ Because the synthesize frequency response functions are representing the displac
plot(freqs, abs(squeeze(FRFs(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');
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
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);
@ -567,7 +590,6 @@ Because the synthesize frequency response functions are representing the displac
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]);
set(gca, 'xscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
linkaxes([ax1,ax2],'x');
@ -583,10 +605,17 @@ Because the synthesize frequency response functions are representing the displac
#+CAPTION: Comparison of the Original and Synthesize FRF matrix element
[[file:figs/compare_synthesize_original_frf.png]]
#+name: fig:from11xto1x
#+caption: Original FRF and synthesize FRF using the modal software. From force applied in the X direction to the acceleration of accelerometer 11 in the X direction
[[file:img/modal_software/from11xto1x.jpg]]
#+begin_warning
The synthesize FRFs from the modal software do not match the synthesize FRFs computed here.
It is possible that it uses residues that are not exported? Nothing is said about that in the documentation.
#+end_warning
** Synthesize FRF that has not yet been measured
#+begin_src matlab :exports none
dir_names = {'X', 'Y', 'Z'};
accs = [1]; dirs = [1:3];
figure;
@ -594,7 +623,7 @@ Because the synthesize frequency response functions are representing the displac
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, dir_names{dir_i}));
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
hold off;
@ -846,9 +875,9 @@ This inversion is equivalent to a mean square problem.
** Matlab Implementation
The obtained mode shapes matrix that gives the mode shapes of each solid bodies with respect to the fixed frame $\{O\}$, =mode_shapes_O=, is an $n \times p \times q$ with:
- $n$ is the number of modes: 21
- $p$ is the number of DOFs for each solid body: 6
- $q$ is the number of solid bodies: 6
- $n$ is the number of identified modes
- $p$ is the number of DOFs for each solid body (6)
- $q$ is the number of solid bodies
#+begin_src matlab
mode_shapes_O = zeros(mod_n, 6, length(solid_names));
@ -885,7 +914,7 @@ with
\psi_{1, x} & \psi_{1, y} & \psi_{1, z} & \psi_{1, \theta_x} & \psi_{1, \theta_y} & \psi_{1, \theta_z} & \psi_{2, x} & \dots & \psi_{6, \theta_z}
\end{Bmatrix}^T \]
With $M = 6 \times 6$ is the new number of DOFs and $N=21$ is the number of modes.
With $M = 6 \times n_\text{solid}$ is the new number of DOFs and $N$ is the number of modes.
#+begin_src matlab
eigen_vec_O = reshape(mode_shapes_O, [mod_n, 6*length(solid_names)]).';
@ -1013,7 +1042,7 @@ Because the synthesize frequency response functions are representing the displac
We want to have the two eigen matrices.
They should have the same size $n \times n$ where $n$ is the number of mode_shapes as well as the number of degrees of freedom.
Thus, if we consider 21 modes, we should restrict our system to have only 21 DOFs.
Thus, if we consider $N$ modes, we should restrict our system to have only $N$ DOFs.
Actually, we are measured 6 DOFs of 6 solids, thus we have 36 DOFs.
@ -1140,7 +1169,7 @@ with
\psi_{1, x} & \psi_{1, y} & \psi_{1, z} & \psi_{1, \theta_x} & \psi_{1, \theta_y} & \psi_{1, \theta_z} & \psi_{2, x} & \dots & \psi_{6, \theta_z}
\end{Bmatrix}^T \]
With $M = 6 \times 6$ is the new number of DOFs and $N=21$ is the number of modes.
With $M = 6 \times n_\text{solids}$ is the new number of DOFs and $N$ is the number of modes.
Each eigen vector is normalized.