Update ground motion analysis

This commit is contained in:
Thomas Dehaeze 2020-01-28 15:01:32 +01:00
parent cb3f3009ed
commit b1bbae2f8f
9 changed files with 289 additions and 143 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-05-10 ven. 17:51 --> <!-- 2020-01-28 mar. 15:01 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Ground Motion Measurements</title> <title>Ground Motion Measurements</title>
@ -205,7 +206,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc. Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU redistribute it and/or modify it under the terms of the GNU
@ -262,7 +263,10 @@ for the JavaScript code in this tag.
TeX: { equationNumbers: {autoNumber: "AMS"}, TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%", MultLineWidth: "85%",
TagSide: "right", TagSide: "right",
TagIndent: ".8em" TagIndent: ".8em",
Macros: {
bm: ["{\\boldsymbol #1}",1],
}
} }
}); });
</script> </script>
@ -280,19 +284,21 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#orgddb7761">1. Experimental Setup</a></li> <li><a href="#org5f3a483">1. Experimental Setup</a></li>
<li><a href="#org828fff9">2. Measurement Analysis</a> <li><a href="#orgb6a54b7">2. Measurement Analysis</a>
<ul> <ul>
<li><a href="#orgadf99c0">2.1. Load data</a></li> <li><a href="#org4ded9a6">2.1. Load data</a></li>
<li><a href="#org93551bb">2.2. Time domain plots</a></li> <li><a href="#orgddfc81a">2.2. Time domain plots of the measured voltage</a></li>
<li><a href="#orgfd0b3a8">2.3. Computation of the ASD of the measured voltage</a></li> <li><a href="#orgf447e5f">2.3. Computation of the ASD of the measured voltage</a></li>
<li><a href="#org4d7ad21">2.4. Scaling to take into account the sensibility of the geophone and the voltage amplifier</a></li> <li><a href="#org7130c8f">2.4. Scaling to take into account the sensibility of the geophone and the voltage amplifier</a></li>
<li><a href="#org1b04be0">2.5. Computation of the ASD of the velocity and displacement</a></li> <li><a href="#org456f387">2.5. Time domain plots of the ground motion</a></li>
<li><a href="#orge570bf0">2.6. Comparison with other measurements of ground motion</a> <li><a href="#org76df958">2.6. Computation of the ASD of the velocity and displacement</a></li>
<li><a href="#org63b1f9a">2.7. Save</a></li>
<li><a href="#orgabb922e">2.8. Comparison with other measurements of ground motion</a>
<ul> <ul>
<li><a href="#org9008f38">2.6.1. Load the measurement data</a></li> <li><a href="#org499997c">2.8.1. Load the measurement data</a></li>
<li><a href="#org906cad8">2.6.2. Compute PSD of the measurements</a></li> <li><a href="#org3b715d1">2.8.2. Compute PSD of the measurements</a></li>
<li><a href="#orgab58013">2.6.3. Compare PSD of Cern, ID09 and ID31</a></li> <li><a href="#org59b7d0c">2.8.3. Compare PSD of Cern, ID09 and ID31</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -301,8 +307,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-orgddb7761" class="outline-2"> <div id="outline-container-org5f3a483" class="outline-2">
<h2 id="orgddb7761"><span class="section-number-2">1</span> Experimental Setup</h2> <h2 id="org5f3a483"><span class="section-number-2">1</span> Experimental Setup</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The goal here is to compare the ground motion at the location of the micro-station (ID31 beamline at ESRF) with other measurements of the ground motion. The goal here is to compare the ground motion at the location of the micro-station (ID31 beamline at ESRF) with other measurements of the ground motion.
@ -324,11 +330,11 @@ Then the signal is amplified by a Voltage Amplifier with the following settings:
</ul> </ul>
<p> <p>
On figure <a href="#org3e1d768">1</a> is an overview of multiple measurements made at famous location. On figure <a href="#org138fc2c">1</a> is an overview of multiple measurements made at famous location.
</p> </p>
<div id="org3e1d768" class="figure"> <div id="org138fc2c" class="figure">
<p><img src="./img/ground_motion_measurements.png" alt="ground_motion_measurements.png" width="800px" /> <p><img src="./img/ground_motion_measurements.png" alt="ground_motion_measurements.png" width="800px" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Power spectral density of ground vibration in the vertical direction at multiple locations (<a href="https://vibration.desy.de/">source</a>)</p> <p><span class="figure-number">Figure 1: </span>Power spectral density of ground vibration in the vertical direction at multiple locations (<a href="https://vibration.desy.de/">source</a>)</p>
@ -336,13 +342,12 @@ On figure <a href="#org3e1d768">1</a> is an overview of multiple measurements ma
</div> </div>
</div> </div>
<div id="outline-container-org828fff9" class="outline-2"> <div id="outline-container-orgb6a54b7" class="outline-2">
<h2 id="org828fff9"><span class="section-number-2">2</span> Measurement Analysis</h2> <h2 id="orgb6a54b7"><span class="section-number-2">2</span> Measurement Analysis</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
<a id="org1ffac8a"></a> <a id="org50bb0e4"></a>
</p> </p>
<div class="note"> <div class="note">
<p> <p>
All the files (data and Matlab scripts) are accessible <a href="data/ground_meas_id31.zip">here</a>. All the files (data and Matlab scripts) are accessible <a href="data/ground_meas_id31.zip">here</a>.
@ -351,31 +356,31 @@ All the files (data and Matlab scripts) are accessible <a href="data/ground_meas
</div> </div>
</div> </div>
<div id="outline-container-orgadf99c0" class="outline-3"> <div id="outline-container-org4ded9a6" class="outline-3">
<h3 id="orgadf99c0"><span class="section-number-3">2.1</span> Load data</h3> <h3 id="org4ded9a6"><span class="section-number-3">2.1</span> Load data</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">data = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_028.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; data = data.data; <pre class="src src-matlab">data = load(<span class="org-string">'mat/data_028.mat'</span>, <span class="org-string">'data'</span>); data = data.data;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org93551bb" class="outline-3"> <div id="outline-container-orgddfc81a" class="outline-3">
<h3 id="org93551bb"><span class="section-number-3">2.2</span> Time domain plots</h3> <h3 id="orgddfc81a"><span class="section-number-3">2.2</span> Time domain plots of the measured voltage</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; plot(data(<span class="org-type">:</span>, 3), data(<span class="org-type">:</span>, 1));
hold off; hold off;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</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">'Voltage </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">V</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>; xlabel(<span class="org-string">'Time [s]'</span>); ylabel(<span class="org-string">'Voltage [V]'</span>);
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; xlim([0, 100]);
</pre> </pre>
</div> </div>
<div id="orga85fb0d" class="figure"> <div id="org62b557f" class="figure">
<p><img src="figs/ground_motion_id31_time.png" alt="ground_motion_id31_time.png" /> <p><img src="figs/ground_motion_id31_time.png" alt="ground_motion_id31_time.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Measurement of the ground motion - Time domain</p> <p><span class="figure-number">Figure 2: </span>Measurement of the ground motion - Time domain</p>
@ -383,36 +388,36 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
</div> </div>
<div id="outline-container-orgfd0b3a8" class="outline-3"> <div id="outline-container-orgf447e5f" class="outline-3">
<h3 id="orgfd0b3a8"><span class="section-number-3">2.3</span> Computation of the ASD of the measured voltage</h3> <h3 id="orgf447e5f"><span class="section-number-3">2.3</span> Computation of the ASD of the measured voltage</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">dt = data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>; <pre class="src src-matlab">dt = data(2, 3) <span class="org-type">-</span> data(1, 3);
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; Fs = 1<span class="org-type">/</span>dt;
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; win = hanning(ceil(10<span class="org-type">*</span>Fs));
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>px_dc, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>; <pre class="src src-matlab">[px_dc, f] = pwelch(data(<span class="org-type">:</span>, 1), win, [], [], Fs);
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>px_dc<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; plot(f, sqrt(px_dc));
hold off; 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-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'xscale'</span>, <span class="org-string">'log'</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">'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'yscale'</span>, <span class="org-string">'log'</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">'</span>Amplitude Spectral Density $<span class="org-type">\</span>left<span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span>V<span class="org-rainbow-delimiters-depth-3">}{</span><span class="org-type">\</span>sqrt<span class="org-rainbow-delimiters-depth-4">{</span>Hz<span class="org-rainbow-delimiters-depth-4">}</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-type">\</span>right<span class="org-rainbow-delimiters-depth-2">]</span>$'<span class="org-rainbow-delimiters-depth-1">)</span> xlabel(<span class="org-string">'Frequency [Hz]'</span>); ylabel(<span class="org-string">'Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$'</span>)
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; xlim([0.1, 500]);
</pre> </pre>
</div> </div>
<div id="org6f3989c" class="figure"> <div id="org3ff16a1" class="figure">
<p><img src="figs/ground_motion_id31_asd_volt.png" alt="ground_motion_id31_asd_volt.png" /> <p><img src="figs/ground_motion_id31_asd_volt.png" alt="ground_motion_id31_asd_volt.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>Amplitude Spectral Density of the measured Voltage</p> <p><span class="figure-number">Figure 3: </span>Amplitude Spectral Density of the measured Voltage</p>
@ -420,23 +425,36 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
</div> </div>
<div id="outline-container-org4d7ad21" class="outline-3"> <div id="outline-container-org7130c8f" class="outline-3">
<h3 id="org4d7ad21"><span class="section-number-3">2.4</span> Scaling to take into account the sensibility of the geophone and the voltage amplifier</h3> <h3 id="org7130c8f"><span class="section-number-3">2.4</span> Scaling to take into account the sensibility of the geophone and the voltage amplifier</h3>
<div class="outline-text-3" id="text-2-4"> <div class="outline-text-3" id="text-2-4">
<p> <p>
The Geophone used are L22. Their sensibility is shown on figure <a href="#org137d089">4</a>. The Geophone used are L22. Their sensibility is shown on figure <a href="#org3a2258d">4</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">S0 = <span class="org-highlight-numbers-number">88</span>; <span class="org-comment">% Sensitivity [V/(m/s)]</span> <pre class="src src-matlab">S0 = 88; <span class="org-comment">% Sensitivity [V/(m/s)]</span>
f0 = <span class="org-highlight-numbers-number">2</span>; <span class="org-comment">% Cut-off frequency [Hz]</span> f0 = 2; <span class="org-comment">% Cut-off frequency [Hz]</span>
S = S0<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>f0<span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-type">+</span>s<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>f0<span class="org-rainbow-delimiters-depth-1">)</span>; S = S0<span class="org-type">*</span>(s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>f0)<span class="org-type">/</span>(1<span class="org-type">+</span>s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>f0);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">freqs = logspace(<span class="org-type">-</span>1, 2, 1000);
<span class="org-type">figure</span>;
hold on;
plot(f, abs(squeeze(freqresp(S, f, <span class="org-string">'Hz'</span>))));
hold off;
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'xscale'</span>, <span class="org-string">'log'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'yscale'</span>, <span class="org-string">'log'</span>);
xlabel(<span class="org-string">'Frequency [Hz]'</span>); ylabel(<span class="org-string">'Magnitude $\left[\frac{V}{m/s}\right]$'</span>);
xlim([0.1, 100]);
</pre> </pre>
</div> </div>
<div id="org137d089" class="figure"> <div id="org3a2258d" class="figure">
<p><img src="figs/geophone_sensibility.png" alt="geophone_sensibility.png" /> <p><img src="figs/geophone_sensibility.png" alt="geophone_sensibility.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Sensibility of the Geophone</p> <p><span class="figure-number">Figure 4: </span>Sensibility of the Geophone</p>
@ -447,169 +465,219 @@ We also take into account the gain of the electronics which is here set to be \(
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">G0_db = <span class="org-highlight-numbers-number">60</span>; <span class="org-comment">% [dB]</span> <pre class="src src-matlab">G0_db = 60; <span class="org-comment">% [dB]</span>
G0 = <span class="org-highlight-numbers-number">10</span><span class="org-type">^</span><span class="org-rainbow-delimiters-depth-1">(</span>G0_db<span class="org-type">/</span><span class="org-highlight-numbers-number">20</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [abs]</span> G0 = 10<span class="org-type">^</span>(G0_db<span class="org-type">/</span>20); <span class="org-comment">% [abs]</span>
</pre> </pre>
</div> </div>
<p> <p>
We divide the ASD measured (in \(\text{V}/\sqrt{\text{Hz}}\)) by the gain of the voltage amplifier to obtain the ASD of the voltage across the geophone. We divide the PSD measured (in \(\text{V^2}/\sqrt{Hz}\)) by the square of the gain of the voltage amplifier to obtain the PSD of the voltage across the geophone.
We further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in \(m/s/\sqrt{Hz}\). We further divide the result by the square of the magnitude of sensibility of the Geophone to obtain the PSD of the velocity in \((m/s)^2/Hz\).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">scaling = <span class="org-highlight-numbers-number">1</span><span class="org-type">./</span>squeeze<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>freqresp<span class="org-rainbow-delimiters-depth-3">(</span>G0<span class="org-type">*</span>S, f, <span class="org-string">'Hz'</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>; <pre class="src src-matlab">psd_gv = px_dc<span class="org-type">./</span>abs(squeeze(freqresp(G0<span class="org-type">*</span>S, f, <span class="org-string">'Hz'</span>)))<span class="org-type">.^</span>2;
</pre>
</div>
<p>
Finally, we obtain the PSD of the ground motion in \(m^2/Hz\) by dividing by the square of the frequency in \(rad/s\).
</p>
<div class="org-src-container">
<pre class="src src-matlab">psd_gm = psd_gv<span class="org-type">./</span>(2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>f)<span class="org-type">.^</span>2;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org1b04be0" class="outline-3"> <div id="outline-container-org456f387" class="outline-3">
<h3 id="org1b04be0"><span class="section-number-3">2.5</span> Computation of the ASD of the velocity and displacement</h3> <h3 id="org456f387"><span class="section-number-3">2.5</span> Time domain plots of the ground motion</h3>
<div class="outline-text-3" id="text-2-5"> <div class="outline-text-3" id="text-2-5">
<p> <p>
The ASD of the measured velocity is shown on figure <a href="#orgcf7bd1e">5</a>. We can inverse the dynamics of the geophone to convert the measured voltage into the estimated ground motion.
</p>
<div class="org-src-container">
<pre class="src src-matlab">est_vel = lsim(inv(G0<span class="org-type">*</span>S)<span class="org-type">*</span>(s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span>)<span class="org-type">/</span>(1<span class="org-type">+</span>s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span>), data(<span class="org-type">:</span>, 1), data(<span class="org-type">:</span>, 3)); <span class="org-comment">% Estimated velocity above 1Hz</span>
est_vel = est_vel <span class="org-type">-</span> mean(est_vel(data(<span class="org-type">:</span>,3)<span class="org-type">&gt;</span>10)); <span class="org-comment">% The mean value of the velocity if removed</span>
est_dis = lsim(1<span class="org-type">/</span>(1<span class="org-type">+</span>s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span>), est_vel, data(<span class="org-type">:</span>, 3)); <span class="org-comment">% The velocity is integrated above 1Hz</span>
</pre>
</div>
<div id="org85b0910" class="figure">
<p><img src="figs/time_domain_velocity.png" alt="time_domain_velocity.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Time domain velocity (<a href="./figs/time_domain_velocity.png">png</a>, <a href="./figs/time_domain_velocity.pdf">pdf</a>)</p>
</div>
<div id="org5dd32fd" class="figure">
<p><img src="figs/time_domain_displacement.png" alt="time_domain_displacement.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Time domain absolute displacement (<a href="./figs/time_domain_displacement.png">png</a>, <a href="./figs/time_domain_displacement.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org76df958" class="outline-3">
<h3 id="org76df958"><span class="section-number-3">2.6</span> Computation of the ASD of the velocity and displacement</h3>
<div class="outline-text-3" id="text-2-6">
<p>
The ASD of the measured velocity is shown on figure <a href="#org5031b4e">7</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>px_dc<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">.*</span>scaling<span class="org-rainbow-delimiters-depth-1">)</span>; plot(f, sqrt(psd_gv));
hold off; 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-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'xscale'</span>, <span class="org-string">'log'</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">'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'yscale'</span>, <span class="org-string">'log'</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">'</span>ASD of the measured Velocity $<span class="org-type">\</span>left<span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span>m<span class="org-type">/</span>s<span class="org-rainbow-delimiters-depth-3">}{</span><span class="org-type">\</span>sqrt<span class="org-rainbow-delimiters-depth-4">{</span>Hz<span class="org-rainbow-delimiters-depth-4">}</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-type">\</span>right<span class="org-rainbow-delimiters-depth-2">]</span>$'<span class="org-rainbow-delimiters-depth-1">)</span> xlabel(<span class="org-string">'Frequency [Hz]'</span>); ylabel(<span class="org-string">'ASD of the measured Velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$'</span>)
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; xlim([0.1, 500]);
</pre> </pre>
</div> </div>
<div id="orgcf7bd1e" class="figure"> <div id="org5031b4e" class="figure">
<p><img src="figs/ground_motion_id31_asd_velocity.png" alt="ground_motion_id31_asd_velocity.png" /> <p><img src="figs/ground_motion_id31_asd_velocity.png" alt="ground_motion_id31_asd_velocity.png" />
</p> </p>
<p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the Velocity</p> <p><span class="figure-number">Figure 7: </span>Amplitude Spectral Density of the Velocity</p>
</div> </div>
<p> <p>
We also plot the ASD in displacement (figure <a href="#orge1d92c4">6</a>); We also plot the ASD in displacement (figure <a href="#org593f7fc">8</a>);
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, <span class="org-rainbow-delimiters-depth-2">(</span>sqrt<span class="org-rainbow-delimiters-depth-3">(</span>px_dc<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">.*</span>scaling<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>f<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; plot(f, sqrt(psd_gm));
hold off; 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-variable-name">gca</span>, <span class="org-string">'xscale'</span>, <span class="org-string">'log'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'yscale'</span>, <span class="org-string">'log'</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">'</span>ASD of the displacement $<span class="org-type">\</span>left<span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span>m<span class="org-rainbow-delimiters-depth-3">}{</span><span class="org-type">\</span>sqrt<span class="org-rainbow-delimiters-depth-4">{</span>Hz<span class="org-rainbow-delimiters-depth-4">}</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-type">\</span>right<span class="org-rainbow-delimiters-depth-2">]</span>$'<span class="org-rainbow-delimiters-depth-1">)</span> xlabel(<span class="org-string">'Frequency [Hz]'</span>); ylabel(<span class="org-string">'ASD of the displacement $\left[\frac{m}{\sqrt{Hz}}\right]$'</span>)
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; xlim([0.1, 500]);
</pre> </pre>
</div> </div>
<div id="orge1d92c4" class="figure"> <div id="org593f7fc" class="figure">
<p><img src="figs/ground_motion_id31_asd_displacement.png" alt="ground_motion_id31_asd_displacement.png" /> <p><img src="figs/ground_motion_id31_asd_displacement.png" alt="ground_motion_id31_asd_displacement.png" />
</p> </p>
<p><span class="figure-number">Figure 6: </span>Amplitude Spectral Density of the Displacement</p> <p><span class="figure-number">Figure 8: </span>Amplitude Spectral Density of the Displacement</p>
</div> </div>
<p> <p>
And we also plot the PSD of the displacement in \(\frac{{\mu u}^2}{Hz}\) as it is a usual unit used (figure <a href="#org149605d">7</a>). And we also plot the PSD of the displacement in \(\frac{{\mu u}^2}{Hz}\) as it is a usual unit used (figure <a href="#orgfab6718">9</a>).
One can then compare this curve with the figure <a href="#org3e1d768">1</a>. One can then compare this curve with the figure <a href="#org138fc2c">1</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>sqrt<span class="org-rainbow-delimiters-depth-4">(</span>px_dc<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-type">.*</span>scaling<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>f<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">.*</span><span class="org-highlight-numbers-number">1e6</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span>; plot(f, psd_gm<span class="org-type">.*</span>1e12);
hold off; 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-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'xscale'</span>, <span class="org-string">'log'</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">'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'yscale'</span>, <span class="org-string">'log'</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">'</span>PSD of the measured displacement $<span class="org-type">\</span>left<span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span><span class="org-rainbow-delimiters-depth-4">{</span> <span class="org-type">\</span>mu m <span class="org-rainbow-delimiters-depth-4">}</span><span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-3">}{</span>Hz<span class="org-rainbow-delimiters-depth-3">}</span><span class="org-type">\</span>right<span class="org-rainbow-delimiters-depth-2">]</span>$'<span class="org-rainbow-delimiters-depth-1">)</span> xlabel(<span class="org-string">'Frequency [Hz]'</span>); ylabel(<span class="org-string">'PSD of the measured displacement $\left[\frac{{ \mu m }^2}{Hz}\right]$'</span>)
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; xlim([0.1, 500]); ylim([1e<span class="org-type">-</span>13, 1e3]);
</pre> </pre>
</div> </div>
<div id="org149605d" class="figure"> <div id="orgfab6718" class="figure">
<p><img src="figs/ground_motion_id31_psd_displacement.png" alt="ground_motion_id31_psd_displacement.png" /> <p><img src="figs/ground_motion_id31_psd_displacement.png" alt="ground_motion_id31_psd_displacement.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </span>Power Spectral Density of the measured displacement</p> <p><span class="figure-number">Figure 9: </span>Power Spectral Density of the measured displacement</p>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orge570bf0" class="outline-3"> <div id="outline-container-org63b1f9a" class="outline-3">
<h3 id="orge570bf0"><span class="section-number-3">2.6</span> Comparison with other measurements of ground motion</h3> <h3 id="org63b1f9a"><span class="section-number-3">2.7</span> Save</h3>
<div class="outline-text-3" id="text-2-6"> <div class="outline-text-3" id="text-2-7">
<p>
We save the PSD of the ground motion for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./mat/psd_gm.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'psd_gm'</span>, <span class="org-string">'psd_gv'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-orgabb922e" class="outline-3">
<h3 id="orgabb922e"><span class="section-number-3">2.8</span> Comparison with other measurements of ground motion</h3>
<div class="outline-text-3" id="text-2-8">
<p> <p>
Now we will compare with other measurements. Now we will compare with other measurements.
</p> </p>
</div> </div>
<div id="outline-container-org9008f38" class="outline-4"> <div id="outline-container-org499997c" class="outline-4">
<h4 id="org9008f38"><span class="section-number-4">2.6.1</span> Load the measurement data</h4> <h4 id="org499997c"><span class="section-number-4">2.8.1</span> Load the measurement data</h4>
<div class="outline-text-4" id="text-2-6-1"> <div class="outline-text-4" id="text-2-8-1">
<p> <p>
First we load the measurement data. First we load the measurement data.
Here we have one measurement of the floor motion made at the ESRF in 2018, and one measurement made at CERN. Here we have one measurement of the floor motion made at the ESRF in 2018, and one measurement made at CERN.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">id09 = load<span class="org-rainbow-delimiters-depth-1">(</span>'<span class="org-type">./</span>mat<span class="org-type">/</span>id09_floor_september2018.mat'<span class="org-rainbow-delimiters-depth-1">)</span>; <pre class="src src-matlab">id09 = load(<span class="org-string">'./mat/id09_floor_september2018.mat'</span>);
cern = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/ground_motion_dist.mat'</span><span class="org-rainbow-delimiters-depth-1">)</span>; cern = load(<span class="org-string">'./mat/ground_motion_dist.mat'</span>);
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org906cad8" class="outline-4"> <div id="outline-container-org3b715d1" class="outline-4">
<h4 id="org906cad8"><span class="section-number-4">2.6.2</span> Compute PSD of the measurements</h4> <h4 id="org3b715d1"><span class="section-number-4">2.8.2</span> Compute PSD of the measurements</h4>
<div class="outline-text-4" id="text-2-6-2"> <div class="outline-text-4" id="text-2-8-2">
<p> <p>
We compute the Power Spectral Densities of the measurements. We compute the Power Spectral Densities of the measurements.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Fs_id09 = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>id09.time3<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span>id09.time3<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; <pre class="src src-matlab">Fs_id09 = 1<span class="org-type">/</span>(id09.time3(2)<span class="org-type">-</span>id09.time3(1));
win_id09 = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs_id09<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; win_id09 = hanning(ceil(10<span class="org-type">*</span>Fs_id09));
<span class="org-rainbow-delimiters-depth-1">[</span>id09_pxx, id09_f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span><span class="org-type">*</span>id09.x_y_z<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, win_id09, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs_id09<span class="org-rainbow-delimiters-depth-1">)</span>; [id09_pxx, id09_f] = pwelch(1e<span class="org-type">-</span>6<span class="org-type">*</span>id09.x_y_z(<span class="org-type">:</span>, 3), win_id09, [], [], Fs_id09);
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Fs_cern = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>cern.gm.time<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">-</span>cern.gm.time<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; <pre class="src src-matlab">Fs_cern = 1<span class="org-type">/</span>(cern.gm.time(2)<span class="org-type">-</span>cern.gm.time(1));
win_cern = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs_cern<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>; win_cern = hanning(ceil(10<span class="org-type">*</span>Fs_cern));
<span class="org-rainbow-delimiters-depth-1">[</span>cern_pxx, cern_f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>cern.gm.signal, win_cern, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs_cern<span class="org-rainbow-delimiters-depth-1">)</span>; [cern_pxx, cern_f] = pwelch(cern.gm.signal, win_cern, [], [], Fs_cern);
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgab58013" class="outline-4"> <div id="outline-container-org59b7d0c" class="outline-4">
<h4 id="orgab58013"><span class="section-number-4">2.6.3</span> Compare PSD of Cern, ID09 and ID31</h4> <h4 id="org59b7d0c"><span class="section-number-4">2.8.3</span> Compare PSD of Cern, ID09 and ID31</h4>
<div class="outline-text-4" id="text-2-6-3"> <div class="outline-text-4" id="text-2-8-3">
<p> <p>
And we compare all the measurements (figure <a href="#org2a2b94e">8</a>). And we compare all the measurements (figure <a href="#orgfc63def">10</a>).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot<span class="org-rainbow-delimiters-depth-1">(</span>id09_f, id09_pxx, <span class="org-string">'DisplayName', '</span>ID09'<span class="org-rainbow-delimiters-depth-1">)</span>; plot(id09_f, id09_pxx, <span class="org-string">'DisplayName'</span>, <span class="org-string">'ID09'</span>);
plot<span class="org-rainbow-delimiters-depth-1">(</span>cern_f, cern_pxx, <span class="org-string">'DisplayName', 'CERN'</span><span class="org-rainbow-delimiters-depth-1">)</span>; plot(cern_f, cern_pxx, <span class="org-string">'DisplayName'</span>, <span class="org-string">'CERN'</span>);
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>sqrt<span class="org-rainbow-delimiters-depth-4">(</span>px_dc<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-type">.*</span>scaling<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>f<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span>, <span class="org-string">'k', 'DisplayName', 'ID31'</span><span class="org-rainbow-delimiters-depth-1">)</span>; plot(f, psd_gm, <span class="org-string">'k'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'ID31'</span>);
hold off; 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-variable-name">gca</span>, <span class="org-string">'XScale'</span>, <span class="org-string">'log'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'YScale'</span>, <span class="org-string">'log'</span>);
xlabel<span class="org-rainbow-delimiters-depth-1">(</span>'Frequency <span class="org-rainbow-delimiters-depth-2">[</span>Hz<span class="org-rainbow-delimiters-depth-2">]</span>'<span class="org-rainbow-delimiters-depth-1">)</span>; ylabel<span class="org-rainbow-delimiters-depth-1">(</span>'PSD <span class="org-rainbow-delimiters-depth-2">[</span>$m<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span>Hz$<span class="org-rainbow-delimiters-depth-2">]</span>'<span class="org-rainbow-delimiters-depth-1">)</span>; xlabel(<span class="org-string">'Frequency [Hz]'</span>); ylabel(<span class="org-string">'PSD [$m^2/Hz$]'</span>);
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>; legend(<span class="org-string">'Location'</span>, <span class="org-string">'northeast'</span>);
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; xlim([0.1, 500]);
</pre> </pre>
</div> </div>
<div id="org2a2b94e" class="figure"> <div id="orgfc63def" class="figure">
<p><img src="figs/ground_motion_compare.png" alt="ground_motion_compare.png" /> <p><img src="figs/ground_motion_compare.png" alt="ground_motion_compare.png" />
</p> </p>
<p><span class="figure-number">Figure 8: </span>Comparison of the PSD of the ground motion measured at different location</p> <p><span class="figure-number">Figure 10: </span>Comparison of the PSD of the ground motion measured at different location</p>
</div> </div>
</div> </div>
</div> </div>
@ -618,8 +686,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-05-10 ven. 17:51</p> <p class="date">Created: 2020-01-28 mar. 15:01</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -74,11 +74,11 @@ On figure [[fig:ground_motion_measurements]] is an overview of multiple measurem
** Matlab Init :noexport:ignore: ** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>> <<matlab-dir>>
#+end_src #+end_src
#+begin_src matlab :exports none :results silent :noweb yes #+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>> <<matlab-init>>
#+end_src #+end_src
** Load data ** Load data
@ -86,7 +86,7 @@ On figure [[fig:ground_motion_measurements]] is an overview of multiple measurem
data = load('mat/data_028.mat', 'data'); data = data.data; data = load('mat/data_028.mat', 'data'); data = data.data;
#+end_src #+end_src
** Time domain plots ** Time domain plots of the measured voltage
#+begin_src matlab #+begin_src matlab
figure; figure;
hold on; hold on;
@ -151,10 +151,16 @@ The Geophone used are L22. Their sensibility is shown on figure [[fig:geophone_s
S = S0*(s/2/pi/f0)/(1+s/2/pi/f0); S = S0*(s/2/pi/f0)/(1+s/2/pi/f0);
#+end_src #+end_src
#+begin_src matlab :results none :exports none #+begin_src matlab :results none
freqs = logspace(-1, 2, 1000);
figure; figure;
bodeFig({S}, logspace(-1, 2, 1000)); hold on;
ylabel('Amplitude $\left[\frac{V}{m/s}\right]$') plot(f, abs(squeeze(freqresp(S, f, 'Hz'))));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Magnitude $\left[\frac{V}{m/s}\right]$');
xlim([0.1, 100]);
#+end_src #+end_src
#+NAME: fig:geophone_sensibility #+NAME: fig:geophone_sensibility
@ -176,20 +182,70 @@ We also take into account the gain of the electronics which is here set to be $6
G0 = 10^(G0_db/20); % [abs] G0 = 10^(G0_db/20); % [abs]
#+end_src #+end_src
We divide the ASD measured (in $\text{V}/\sqrt{\text{Hz}}$) by the gain of the voltage amplifier to obtain the ASD of the voltage across the geophone. We divide the PSD measured (in $\text{V^2}/\sqrt{Hz}$) by the square of the gain of the voltage amplifier to obtain the PSD of the voltage across the geophone.
We further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in $m/s/\sqrt{Hz}$. We further divide the result by the square of the magnitude of sensibility of the Geophone to obtain the PSD of the velocity in $(m/s)^2/Hz$.
#+begin_src matlab :results none #+begin_src matlab :results none
scaling = 1./squeeze(abs(freqresp(G0*S, f, 'Hz'))); psd_gv = px_dc./abs(squeeze(freqresp(G0*S, f, 'Hz'))).^2;
#+end_src #+end_src
Finally, we obtain the PSD of the ground motion in $m^2/Hz$ by dividing by the square of the frequency in $rad/s$.
#+begin_src matlab
psd_gm = psd_gv./(2*pi*f).^2;
#+end_src
** Time domain plots of the ground motion
We can inverse the dynamics of the geophone to convert the measured voltage into the estimated ground motion.
#+begin_src matlab
est_vel = lsim(inv(G0*S)*(s/2/pi)/(1+s/2/pi), data(:, 1), data(:, 3)); % Estimated velocity above 1Hz
est_vel = est_vel - mean(est_vel(data(:,3)>10)); % The mean value of the velocity if removed
est_dis = lsim(1/(1+s/2/pi), est_vel, data(:, 3)); % The velocity is integrated above 1Hz
#+end_src
#+begin_src matlab :exports none
figure;
hold on;
plot(data(:, 3), est_vel);
hold off;
xlabel('Time [s]'); ylabel('Velocity [m/s]');
xlim([10, 100]);
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/time_domain_velocity.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:time_domain_velocity
#+CAPTION: Time domain velocity ([[./figs/time_domain_velocity.png][png]], [[./figs/time_domain_velocity.pdf][pdf]])
[[file:figs/time_domain_velocity.png]]
#+begin_src matlab :exports none
figure;
hold on;
plot(data(:, 3), est_dis);
hold off;
xlabel('Time [s]'); ylabel('Displacement [m]');
xlim([10, 100]);
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/time_domain_displacement.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:time_domain_displacement
#+CAPTION: Time domain absolute displacement ([[./figs/time_domain_displacement.png][png]], [[./figs/time_domain_displacement.pdf][pdf]])
[[file:figs/time_domain_displacement.png]]
** Computation of the ASD of the velocity and displacement ** Computation of the ASD of the velocity and displacement
The ASD of the measured velocity is shown on figure [[fig:ground_motion_id31_asd_velocity]]. The ASD of the measured velocity is shown on figure [[fig:ground_motion_id31_asd_velocity]].
#+begin_src matlab :results none #+begin_src matlab :results none
figure; figure;
hold on; hold on;
plot(f, sqrt(px_dc).*scaling); plot(f, sqrt(psd_gv));
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log'); set(gca, 'yscale', 'log');
@ -209,11 +265,10 @@ The ASD of the measured velocity is shown on figure [[fig:ground_motion_id31_asd
[[file:figs/ground_motion_id31_asd_velocity.png]] [[file:figs/ground_motion_id31_asd_velocity.png]]
We also plot the ASD in displacement (figure [[fig:ground_motion_id31_asd_displacement]]); We also plot the ASD in displacement (figure [[fig:ground_motion_id31_asd_displacement]]);
#+begin_src matlab :results none #+begin_src matlab :results none
figure; figure;
hold on; hold on;
plot(f, (sqrt(px_dc).*scaling)./(2*pi*f)); plot(f, sqrt(psd_gm));
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the displacement $\left[\frac{m}{\sqrt{Hz}}\right]$') xlabel('Frequency [Hz]'); ylabel('ASD of the displacement $\left[\frac{m}{\sqrt{Hz}}\right]$')
@ -237,12 +292,12 @@ One can then compare this curve with the figure [[fig:ground_motion_measurements
#+begin_src matlab :results none #+begin_src matlab :results none
figure; figure;
hold on; hold on;
plot(f, ((sqrt(px_dc).*scaling)./(2*pi*f).*1e6).^2); plot(f, psd_gm.*1e12);
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD of the measured displacement $\left[\frac{{ \mu m }^2}{Hz}\right]$') xlabel('Frequency [Hz]'); ylabel('PSD of the measured displacement $\left[\frac{{ \mu m }^2}{Hz}\right]$')
xlim([0.1, 500]); xlim([0.1, 500]); ylim([1e-13, 1e3]);
#+end_src #+end_src
#+NAME: fig:ground_motion_id31_psd_displacement #+NAME: fig:ground_motion_id31_psd_displacement
@ -256,6 +311,12 @@ One can then compare this curve with the figure [[fig:ground_motion_measurements
#+RESULTS: fig:ground_motion_id31_psd_displacement #+RESULTS: fig:ground_motion_id31_psd_displacement
[[file:figs/ground_motion_id31_psd_displacement.png]] [[file:figs/ground_motion_id31_psd_displacement.png]]
** Save
We save the PSD of the ground motion for further analysis.
#+begin_src matlab
save('./mat/psd_gm.mat', 'f', 'psd_gm', 'psd_gv');
#+end_src
** Comparison with other measurements of ground motion ** Comparison with other measurements of ground motion
Now we will compare with other measurements. Now we will compare with other measurements.
@ -289,8 +350,7 @@ And we compare all the measurements (figure [[fig:ground_motion_compare]]).
hold on; hold on;
plot(id09_f, id09_pxx, 'DisplayName', 'ID09'); plot(id09_f, id09_pxx, 'DisplayName', 'ID09');
plot(cern_f, cern_pxx, 'DisplayName', 'CERN'); plot(cern_f, cern_pxx, 'DisplayName', 'CERN');
plot(f, ((sqrt(px_dc).*scaling)./(2*pi*f)).^2, 'k', 'DisplayName', 'ID31'); plot(f, psd_gm, 'k', 'DisplayName', 'ID31');
plot(f, px_disp);
hold off; hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [$m^2/Hz$]'); xlabel('Frequency [Hz]'); ylabel('PSD [$m^2/Hz$]');

Binary file not shown.

View File

@ -44,9 +44,15 @@ f0 = 2; % Cut-off frequency [Hz]
S = S0*(s/2/pi/f0)/(1+s/2/pi/f0); S = S0*(s/2/pi/f0)/(1+s/2/pi/f0);
freqs = logspace(-1, 2, 1000);
figure; figure;
bodeFig({S}, logspace(-1, 2, 1000)); hold on;
ylabel('Amplitude $\left[\frac{V}{m/s}\right]$') plot(f, abs(squeeze(freqresp(S, f, 'Hz'))));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Magnitude $\left[\frac{V}{m/s}\right]$');
xlim([0.1, 100]);
@ -64,19 +70,25 @@ G0 = 10^(G0_db/20); % [abs]
% We divide the ASD measured (in $\text{V}/\sqrt{\text{Hz}}$) by the gain of the voltage amplifier to obtain the ASD of the voltage across the geophone. % We divide the PSD measured (in $\text{V^2}/\sqrt{Hz}$) by the square of the gain of the voltage amplifier to obtain the PSD of the voltage across the geophone.
% We further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in $m/s/\sqrt{Hz}$. % We further divide the result by the square of the magnitude of sensibility of the Geophone to obtain the PSD of the velocity in $(m/s)^2/Hz$.
scaling = 1./squeeze(abs(freqresp(G0*S, f, 'Hz'))); psd_gv = px_dc./abs(squeeze(freqresp(G0*S, f, 'Hz'))).^2;
% Computation of the ASD of the velocity
% Finally, we obtain the PSD of the ground motion in $m^2/Hz$ by dividing by the square of the frequency in $rad/s$.
psd_gm = psd_gv./(2*pi*f).^2;
% Computation of the ASD of the velocity and displacement
% The ASD of the measured velocity is shown on figure [[fig:ground_motion_id31_asd_velocity]]. % The ASD of the measured velocity is shown on figure [[fig:ground_motion_id31_asd_velocity]].
figure; figure;
hold on; hold on;
plot(f, sqrt(px_dc).*scaling); plot(f, sqrt(psd_gv));
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log'); set(gca, 'yscale', 'log');
@ -92,10 +104,9 @@ xlim([0.1, 500]);
% We also plot the ASD in displacement (figure [[fig:ground_motion_id31_asd_displacement]]); % We also plot the ASD in displacement (figure [[fig:ground_motion_id31_asd_displacement]]);
figure; figure;
hold on; hold on;
plot(f, (sqrt(px_dc).*scaling)./(2*pi*f)); plot(f, sqrt(psd_gm));
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('ASD of the displacement $\left[\frac{m}{\sqrt{Hz}}\right]$') xlabel('Frequency [Hz]'); ylabel('ASD of the displacement $\left[\frac{m}{\sqrt{Hz}}\right]$')
@ -107,16 +118,24 @@ xlim([0.1, 500]);
% #+CAPTION: Amplitude Spectral Density of the Displacement % #+CAPTION: Amplitude Spectral Density of the Displacement
% #+RESULTS: fig:ground_motion_id31_asd_displacement % #+RESULTS: fig:ground_motion_id31_asd_displacement
% [[file:figs/ground_motion_id31_asd_displacement.png]] % [[file:figs/ground_motion_id31_asd_displacement.png]]
% And also in $\frac{{\mu u}^2}{Hz}$ (figure [[fig:ground_motion_id31_psd_displacement]]).
% And we also plot the PSD of the displacement in $\frac{{\mu u}^2}{Hz}$ as it is a usual unit used (figure [[fig:ground_motion_id31_psd_displacement]]).
% One can then compare this curve with the figure [[fig:ground_motion_measurements]].
figure; figure;
hold on; hold on;
plot(f, ((sqrt(px_dc).*scaling)./(2*pi*f).*1e6).^2); plot(f, psd_gm.*1e12);
hold off; hold off;
set(gca, 'xscale', 'log'); set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log'); set(gca, 'yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD of the measured displacement $\left[\frac{{ \mu m }^2}{Hz}\right]$') xlabel('Frequency [Hz]'); ylabel('PSD of the measured displacement $\left[\frac{{ \mu m }^2}{Hz}\right]$')
xlim([0.1, 500]); xlim([0.1, 500]); ylim([1e-13, 1e3]);
% Save
% We save the PSD of the ground motion for further analysis.
save('./mat/psd_gm', 'f', 'psd_gm');
% Load the measurement data % Load the measurement data
% First we load the measurement data. % First we load the measurement data.
@ -144,7 +163,7 @@ figure;
hold on; hold on;
plot(id09_f, id09_pxx, 'DisplayName', 'ID09'); plot(id09_f, id09_pxx, 'DisplayName', 'ID09');
plot(cern_f, cern_pxx, 'DisplayName', 'CERN'); plot(cern_f, cern_pxx, 'DisplayName', 'CERN');
plot(f, ((sqrt(px_dc).*scaling)./(2*pi*f)).^2, 'k', 'DisplayName', 'ID31'); plot(f, psd_gm, 'k', 'DisplayName', 'ID31');
hold off; hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [$m^2/Hz$]'); xlabel('Frequency [Hz]'); ylabel('PSD [$m^2/Hz$]');