FRF from accelerometers to global cartesian and comparison

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 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-03 mer. 11:57 -->
<!-- 2019-07-03 mer. 13:38 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Modal Analysis</title>
@ -280,32 +280,33 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgfd1ddd7">1. Setup</a></li>
<li><a href="#org99d32c3">2. Mode extraction and importation</a></li>
<li><a href="#orge353966">3. Positions of the sensors</a></li>
<li><a href="#org8d40ac6">4. Solids</a></li>
<li><a href="#orgd982872">5. From local coordinates to global coordinates</a></li>
<li><a href="#orgf706067">6. Modal Matrices</a></li>
<li><a href="#org3ff4738">7. Modal Complexity</a></li>
<li><a href="#org9f862ae">8. Some notes about constraining the number of degrees of freedom</a></li>
<li><a href="#org4eafab8">9. <span class="todo TODO">TODO</span> Normalization of mode shapes?</a></li>
<li><a href="#org4275189">10. Compare Mode Shapes</a></li>
<li><a href="#org4913088">11. Importation of measured FRF curves</a></li>
<li><a href="#orgd62aa51">12. Importation of measured FRF curves to global FRF matrix</a></li>
<li><a href="#orge91382a">13. Analysis of some FRFs</a></li>
<li><a href="#org03aa4ac">14. From local coordinates to global coordinates with the FRFs</a></li>
<li><a href="#orgb6f5a18">15. Analysis of some FRF in the global coordinates</a></li>
<li><a href="#org75aeafb">16. Compare global coordinates to local coordinates</a></li>
<li><a href="#org86e258d">17. <span class="todo TODO">TODO</span> Synthesis of FRF curves</a></li>
<li><a href="#org222267a">1. Setup</a></li>
<li><a href="#org6d2f9fb">2. Mode extraction and importation</a></li>
<li><a href="#orgf667e97">3. Positions of the sensors</a></li>
<li><a href="#org950ac1b">4. Solids</a></li>
<li><a href="#orgf857139">5. From local coordinates to global coordinates</a></li>
<li><a href="#org1f301af">6. Modal Matrices</a></li>
<li><a href="#orgc5754da">7. Modal Complexity</a></li>
<li><a href="#org571cb5c">8. Some notes about constraining the number of degrees of freedom</a></li>
<li><a href="#org63d4f29">9. <span class="todo TODO">TODO</span> Normalization of mode shapes?</a></li>
<li><a href="#org1cc7c6e">10. Compare Mode Shapes</a></li>
<li><a href="#orgf13e17f">11. Importation of measured FRF curves</a></li>
<li><a href="#org22af433">12. Importation of measured FRF curves to global FRF matrix</a></li>
<li><a href="#org8686279">13. Analysis of some FRFs</a></li>
<li><a href="#orged94f65">14. From local coordinates to global coordinates with the FRFs</a></li>
<li><a href="#orgc9405ef">15. Analysis of some FRF in the global coordinates</a></li>
<li><a href="#orgabaf3d0">16. Compare global coordinates to local coordinates</a></li>
<li><a href="#org157bd81">17. Verify that we find the original FRF from the FRF in the global coordinates</a></li>
<li><a href="#org6f98d62">18. <span class="todo TODO">TODO</span> Synthesis of FRF curves</a></li>
</ul>
</div>
</div>
<div id="outline-container-orgfd1ddd7" class="outline-2">
<h2 id="orgfd1ddd7"><span class="section-number-2">1</span> Setup</h2>
<div id="outline-container-org222267a" class="outline-2">
<h2 id="org222267a"><span class="section-number-2">1</span> Setup</h2>
<div class="outline-text-2" id="text-1">
<div id="org58309c0" class="figure">
<div id="org2e944fd" class="figure">
<p><img src="figs/nass-modal-test.png" alt="nass-modal-test.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Position and orientation of the accelerometer used</p>
@ -313,8 +314,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org99d32c3" class="outline-2">
<h2 id="org99d32c3"><span class="section-number-2">2</span> Mode extraction and importation</h2>
<div id="outline-container-org6d2f9fb" class="outline-2">
<h2 id="org6d2f9fb"><span class="section-number-2">2</span> Mode extraction and importation</h2>
<div class="outline-text-2" id="text-2">
<p>
First, we split the big <code>modes.asc</code> files into sub text files using <code>bash</code>.
@ -510,8 +511,8 @@ The obtained mode frequencies and damping are shown below.
</div>
</div>
<div id="outline-container-orge353966" class="outline-2">
<h2 id="orge353966"><span class="section-number-2">3</span> Positions of the sensors</h2>
<div id="outline-container-orgf667e97" class="outline-2">
<h2 id="orgf667e97"><span class="section-number-2">3</span> Positions of the sensors</h2>
<div class="outline-text-2" id="text-3">
<p>
We process the file exported from the <code>modal</code> software containing the positions of the sensors using <code>bash</code>.
@ -700,8 +701,8 @@ The positions of the sensors relative to the point of interest are shown below.
</div>
</div>
<div id="outline-container-org8d40ac6" class="outline-2">
<h2 id="org8d40ac6"><span class="section-number-2">4</span> Solids</h2>
<div id="outline-container-org950ac1b" class="outline-2">
<h2 id="org950ac1b"><span class="section-number-2">4</span> Solids</h2>
<div class="outline-text-2" id="text-4">
<p>
We consider the following solid bodies:
@ -716,7 +717,7 @@ We consider the following solid bodies:
</ul>
<p>
We create a structure <code>solids</code> that contains the accelerometer number of each solid bodies (as shown on figure <a href="#org58309c0">1</a>).
We create a structure <code>solids</code> that contains the accelerometer number of each solid bodies (as shown on figure <a href="#org2e944fd">1</a>).
</p>
<div class="org-src-container">
<pre class="src src-matlab">solids = <span class="org-rainbow-delimiters-depth-1">{}</span>;
@ -733,8 +734,8 @@ solid_names = fields<span class="org-rainbow-delimiters-depth-1">(</span>solids<
</div>
</div>
<div id="outline-container-orgd982872" class="outline-2">
<h2 id="orgd982872"><span class="section-number-2">5</span> From local coordinates to global coordinates</h2>
<div id="outline-container-orgf857139" class="outline-2">
<h2 id="orgf857139"><span class="section-number-2">5</span> From local coordinates to global coordinates</h2>
<div class="outline-text-2" id="text-5">
<div class="figure">
@ -834,8 +835,8 @@ This inversion is equivalent to a mean square problem.
</div>
</div>
<div id="outline-container-orgf706067" class="outline-2">
<h2 id="orgf706067"><span class="section-number-2">6</span> Modal Matrices</h2>
<div id="outline-container-org1f301af" class="outline-2">
<h2 id="org1f301af"><span class="section-number-2">6</span> Modal Matrices</h2>
<div class="outline-text-2" id="text-6">
<p>
We want to obtain the two following matrices:
@ -866,11 +867,11 @@ eigen_vector_M = reshape<span class="org-rainbow-delimiters-depth-1">(</span>mod
</div>
</div>
<div id="outline-container-org3ff4738" class="outline-2">
<h2 id="org3ff4738"><span class="section-number-2">7</span> Modal Complexity</h2>
<div id="outline-container-orgc5754da" class="outline-2">
<h2 id="orgc5754da"><span class="section-number-2">7</span> Modal Complexity</h2>
<div class="outline-text-2" id="text-7">
<p>
A method of displaying <b>modal complexity</b> is by plotting the elements of the eigenvector on an <b>Argand diagram</b>, such as the ones shown in figure <a href="#orgc897dfe">3</a>.
A method of displaying <b>modal complexity</b> is by plotting the elements of the eigenvector on an <b>Argand diagram</b>, such as the ones shown in figure <a href="#org04ca94d">3</a>.
</p>
<p>
@ -879,26 +880,26 @@ The obtained area of this polygon is then compared with the area of the circle w
</p>
<p>
A little complex mode is shown on figure <a href="#orgc897dfe">3</a> whereas an highly complex mode is shown on figure <a href="#orge0ec9b3">4</a>.
The complexity of all the modes are compared on figure <a href="#org73ab260">5</a>.
A little complex mode is shown on figure <a href="#org04ca94d">3</a> whereas an highly complex mode is shown on figure <a href="#orgb5f9171">4</a>.
The complexity of all the modes are compared on figure <a href="#orgae9d053">5</a>.
</p>
<div id="orgc897dfe" class="figure">
<div id="org04ca94d" class="figure">
<p><img src="figs/modal_complexity_small.png" alt="modal_complexity_small.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Modal Complexity of one mode with small complexity</p>
</div>
<div id="orge0ec9b3" class="figure">
<div id="orgb5f9171" class="figure">
<p><img src="figs/modal_complexity_high.png" alt="modal_complexity_high.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Modal Complexity of one higly complex mode</p>
</div>
<div id="org73ab260" class="figure">
<div id="orgae9d053" class="figure">
<p><img src="figs/modal_complexities.png" alt="modal_complexities.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Modal complexity for each mode</p>
@ -906,8 +907,8 @@ The complexity of all the modes are compared on figure <a href="#org73ab260">5</
</div>
</div>
<div id="outline-container-org9f862ae" class="outline-2">
<h2 id="org9f862ae"><span class="section-number-2">8</span> Some notes about constraining the number of degrees of freedom</h2>
<div id="outline-container-org571cb5c" class="outline-2">
<h2 id="org571cb5c"><span class="section-number-2">8</span> Some notes about constraining the number of degrees of freedom</h2>
<div class="outline-text-2" id="text-8">
<p>
We want to have the two eigen matrices.
@ -1019,8 +1020,8 @@ Is it meaningful to compare mode shapes as they give no information about the am
</div>
</div>
<div id="outline-container-org4eafab8" class="outline-2">
<h2 id="org4eafab8"><span class="section-number-2">9</span> <span class="todo TODO">TODO</span> Normalization of mode shapes?</h2>
<div id="outline-container-org63d4f29" class="outline-2">
<h2 id="org63d4f29"><span class="section-number-2">9</span> <span class="todo TODO">TODO</span> Normalization of mode shapes?</h2>
<div class="outline-text-2" id="text-9">
<p>
We normalize each column of the eigen vector matrix.
@ -1033,8 +1034,8 @@ Then, each eigenvector as a norm of 1.
</div>
</div>
<div id="outline-container-org4275189" class="outline-2">
<h2 id="org4275189"><span class="section-number-2">10</span> Compare Mode Shapes</h2>
<div id="outline-container-org1cc7c6e" class="outline-2">
<h2 id="org1cc7c6e"><span class="section-number-2">10</span> Compare Mode Shapes</h2>
<div class="outline-text-2" id="text-10">
<p>
Let's say we want to see for the first mode which DOFs can be neglected.
@ -1088,8 +1089,8 @@ test = mode_shapes_O<span class="org-rainbow-delimiters-depth-1">(</span><span c
</div>
</div>
<div id="outline-container-org4913088" class="outline-2">
<h2 id="org4913088"><span class="section-number-2">11</span> Importation of measured FRF curves</h2>
<div id="outline-container-orgf13e17f" class="outline-2">
<h2 id="orgf13e17f"><span class="section-number-2">11</span> Importation of measured FRF curves</h2>
<div class="outline-text-2" id="text-11">
<p>
There are 24 measurements files corresponding to 24 series of impacts:
@ -1137,8 +1138,8 @@ xlim<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbo
</div>
</div>
<div id="outline-container-orgd62aa51" class="outline-2">
<h2 id="orgd62aa51"><span class="section-number-2">12</span> Importation of measured FRF curves to global FRF matrix</h2>
<div id="outline-container-org22af433" class="outline-2">
<h2 id="org22af433"><span class="section-number-2">12</span> Importation of measured FRF curves to global FRF matrix</h2>
<div class="outline-text-2" id="text-12">
<p>
FRF matrix \(n \times p\):
@ -1214,8 +1215,8 @@ freqs = meas.FFT1_Coh_10_1_RMS_X_Val;
</div>
</div>
<div id="outline-container-orge91382a" class="outline-2">
<h2 id="orge91382a"><span class="section-number-2">13</span> Analysis of some FRFs</h2>
<div id="outline-container-org8686279" class="outline-2">
<h2 id="org8686279"><span class="section-number-2">13</span> Analysis of some FRFs</h2>
<div class="outline-text-2" id="text-13">
<div class="org-src-container">
<pre class="src src-matlab">acc_i = <span class="org-highlight-numbers-number">3</span>;
@ -1296,8 +1297,8 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
</div>
<div id="outline-container-org03aa4ac" class="outline-2">
<h2 id="org03aa4ac"><span class="section-number-2">14</span> From local coordinates to global coordinates with the FRFs</h2>
<div id="outline-container-orged94f65" class="outline-2">
<h2 id="orged94f65"><span class="section-number-2">14</span> From local coordinates to global coordinates with the FRFs</h2>
<div class="outline-text-2" id="text-14">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Number of Solids * DOF for each solid / Number of excitation / frequency points</span>
@ -1324,8 +1325,8 @@ FRFs_O = zeros<span class="org-rainbow-delimiters-depth-1">(</span>length<span c
</div>
</div>
<div id="outline-container-orgb6f5a18" class="outline-2">
<h2 id="orgb6f5a18"><span class="section-number-2">15</span> Analysis of some FRF in the global coordinates</h2>
<div id="outline-container-orgc9405ef" class="outline-2">
<h2 id="orgc9405ef"><span class="section-number-2">15</span> Analysis of some FRF in the global coordinates</h2>
<div class="outline-text-2" id="text-15">
<div class="org-src-container">
<pre class="src src-matlab">solid_i = <span class="org-highlight-numbers-number">6</span>;
@ -1357,11 +1358,12 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
</div>
<div id="outline-container-org75aeafb" class="outline-2">
<h2 id="org75aeafb"><span class="section-number-2">16</span> Compare global coordinates to local coordinates</h2>
<div id="outline-container-orgabaf3d0" class="outline-2">
<h2 id="orgabaf3d0"><span class="section-number-2">16</span> Compare global coordinates to local coordinates</h2>
<div class="outline-text-2" id="text-16">
<div class="org-src-container">
<pre class="src src-matlab">solid_i = <span class="org-highlight-numbers-number">1</span>;
acc_dir_O = <span class="org-highlight-numbers-number">6</span>;
acc_dir = <span class="org-highlight-numbers-number">3</span>;
exc_dir = <span class="org-highlight-numbers-number">3</span>;
@ -1372,7 +1374,7 @@ hold on;
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant">solids.</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">solid_names</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-constant">solid_i</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs<span class="org-rainbow-delimiters-depth-4">(</span>acc_dir<span class="org-type">+</span><span class="org-highlight-numbers-number">3</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-5">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, exc_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">end</span>
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs_O<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>solid_i<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-type">*</span><span class="org-highlight-numbers-number">6</span><span class="org-type">+</span>acc_dir, exc_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'-k'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs_O<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>solid_i<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-type">*</span><span class="org-highlight-numbers-number">6</span><span class="org-type">+</span>acc_dir_O, exc_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'-k'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,<span class="org-rainbow-delimiters-depth-2">[]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1383,7 +1385,7 @@ hold on;
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant">solids.</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">solid_names</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-constant">solid_i</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>squeeze<span class="org-rainbow-delimiters-depth-4">(</span>FRFs<span class="org-rainbow-delimiters-depth-5">(</span>acc_dir<span class="org-type">+</span><span class="org-highlight-numbers-number">3</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-6">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-6">)</span>, exc_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">end</span>
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>squeeze<span class="org-rainbow-delimiters-depth-4">(</span>FRFs_O<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">(</span>solid_i<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-type">*</span><span class="org-highlight-numbers-number">6</span><span class="org-type">+</span>acc_dir, exc_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-string">'-k'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, mod<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">180</span><span class="org-type">+</span><span class="org-highlight-numbers-number">180</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>phase<span class="org-rainbow-delimiters-depth-3">(</span>squeeze<span class="org-rainbow-delimiters-depth-4">(</span>FRFs_O<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">(</span>solid_i<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-type">*</span><span class="org-highlight-numbers-number">6</span><span class="org-type">+</span>acc_dir_O, exc_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">360</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-string">'-k'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span>, <span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; yticks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">-</span><span class="org-highlight-numbers-number">180</span><span class="org-type">:</span><span class="org-highlight-numbers-number">90</span><span class="org-type">:</span><span class="org-highlight-numbers-number">180</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Phase </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">deg</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
@ -1396,14 +1398,37 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
</div>
<div id="outline-container-org157bd81" class="outline-2">
<h2 id="org157bd81"><span class="section-number-2">17</span> Verify that we find the original FRF from the FRF in the global coordinates</h2>
<div class="outline-text-2" id="text-17">
<p>
From the computed FRF of the Hexapod in its 6 DOFs, compute the FRF of the accelerometer 1 fixed to the Hexapod during the measurement.
</p>
<div id="outline-container-org86e258d" class="outline-2">
<h2 id="org86e258d"><span class="section-number-2">17</span> <span class="todo TODO">TODO</span> Synthesis of FRF curves</h2>
<div class="org-src-container">
<pre class="src src-matlab">FRF_test = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">801</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">801</span></span>
FRF_test<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = FRFs_O<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">31</span><span class="org-type">:</span><span class="org-highlight-numbers-number">33</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> cross<span class="org-rainbow-delimiters-depth-1">(</span>FRFs_O<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">34</span><span class="org-type">:</span><span class="org-highlight-numbers-number">36</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-2">)</span>, acc_pos<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-2">)</span>'<span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">end</span>
</pre>
</div>
<div id="orgb8684e6" class="figure">
<p><img src="figs/compare_original_meas_with_recovered.png" alt="compare_original_meas_with_recovered.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Comparison of the original measured FRFs with the recovered FRF from the FRF in the common cartesian frame</p>
</div>
</div>
</div>
<div id="outline-container-org6f98d62" class="outline-2">
<h2 id="org6f98d62"><span class="section-number-2">18</span> <span class="todo TODO">TODO</span> Synthesis of FRF curves</h2>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-07-03 mer. 11:57</p>
<p class="date">Created: 2019-07-03 mer. 13:38</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

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