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"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"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-05-10 ven. 17:51 -->
<!-- 2020-01-28 mar. 15:01 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Ground Motion Measurements</title>
@ -205,7 +206,7 @@
@licstart The following is the entire license notice for the
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
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"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
TagIndent: ".8em",
Macros: {
bm: ["{\\boldsymbol #1}",1],
}
}
});
</script>
@ -280,19 +284,21 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgddb7761">1. Experimental Setup</a></li>
<li><a href="#org828fff9">2. Measurement Analysis</a>
<li><a href="#org5f3a483">1. Experimental Setup</a></li>
<li><a href="#orgb6a54b7">2. Measurement Analysis</a>
<ul>
<li><a href="#orgadf99c0">2.1. Load data</a></li>
<li><a href="#org93551bb">2.2. Time domain plots</a></li>
<li><a href="#orgfd0b3a8">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="#org1b04be0">2.5. Computation of the ASD of the velocity and displacement</a></li>
<li><a href="#orge570bf0">2.6. Comparison with other measurements of ground motion</a>
<li><a href="#org4ded9a6">2.1. Load data</a></li>
<li><a href="#orgddfc81a">2.2. Time domain plots 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="#org7130c8f">2.4. Scaling to take into account the sensibility of the geophone and the voltage amplifier</a></li>
<li><a href="#org456f387">2.5. Time domain plots of the ground motion</a></li>
<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>
<li><a href="#org9008f38">2.6.1. Load the measurement data</a></li>
<li><a href="#org906cad8">2.6.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="#org499997c">2.8.1. Load the measurement data</a></li>
<li><a href="#org3b715d1">2.8.2. Compute PSD of the measurements</a></li>
<li><a href="#org59b7d0c">2.8.3. Compare PSD of Cern, ID09 and ID31</a></li>
</ul>
</li>
</ul>
@ -301,8 +307,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgddb7761" class="outline-2">
<h2 id="orgddb7761"><span class="section-number-2">1</span> Experimental Setup</h2>
<div id="outline-container-org5f3a483" class="outline-2">
<h2 id="org5f3a483"><span class="section-number-2">1</span> Experimental Setup</h2>
<div class="outline-text-2" id="text-1">
<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.
@ -324,11 +330,11 @@ Then the signal is amplified by a Voltage Amplifier with the following settings:
</ul>
<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>
<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>
<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 id="outline-container-org828fff9" class="outline-2">
<h2 id="org828fff9"><span class="section-number-2">2</span> Measurement Analysis</h2>
<div id="outline-container-orgb6a54b7" class="outline-2">
<h2 id="orgb6a54b7"><span class="section-number-2">2</span> Measurement Analysis</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org1ffac8a"></a>
<a id="org50bb0e4"></a>
</p>
<div class="note">
<p>
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 id="outline-container-orgadf99c0" class="outline-3">
<h3 id="orgadf99c0"><span class="section-number-3">2.1</span> Load data</h3>
<div id="outline-container-org4ded9a6" class="outline-3">
<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="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>
</div>
</div>
</div>
<div id="outline-container-org93551bb" class="outline-3">
<h3 id="org93551bb"><span class="section-number-3">2.2</span> Time domain plots</h3>
<div id="outline-container-orgddfc81a" class="outline-3">
<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="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
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;
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>;
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>;
xlabel(<span class="org-string">'Time [s]'</span>); ylabel(<span class="org-string">'Voltage [V]'</span>);
xlim([0, 100]);
</pre>
</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>
<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 id="outline-container-orgfd0b3a8" class="outline-3">
<h3 id="orgfd0b3a8"><span class="section-number-3">2.3</span> Computation of the ASD of the measured voltage</h3>
<div id="outline-container-orgf447e5f" class="outline-3">
<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="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;
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>;
Fs = 1<span class="org-type">/</span>dt;
win = hanning(ceil(10<span class="org-type">*</span>Fs));
</pre>
</div>
<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>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
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;
<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-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>;
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>
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>;
<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">'Amplitude Spectral Density $\left[\frac{V}{\sqrt{Hz}}\right]$'</span>)
xlim([0.1, 500]);
</pre>
</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>
<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 id="outline-container-org4d7ad21" 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>
<div id="outline-container-org7130c8f" class="outline-3">
<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">
<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>
<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>
f0 = <span class="org-highlight-numbers-number">2</span>; <span class="org-comment">% Cut-off frequency [Hz]</span>
<pre class="src src-matlab">S0 = 88; <span class="org-comment">% Sensitivity [V/(m/s)]</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>
</div>
<div id="org137d089" class="figure">
<div id="org3a2258d" class="figure">
<p><img src="figs/geophone_sensibility.png" alt="geophone_sensibility.png" />
</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>
<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>
</div>
<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 further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in \(m/s/\sqrt{Hz}\).
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 square of the magnitude of sensibility of the Geophone to obtain the PSD of the velocity in \((m/s)^2/Hz\).
</p>
<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>
</div>
</div>
</div>
<div id="outline-container-org1b04be0" class="outline-3">
<h3 id="org1b04be0"><span class="section-number-3">2.5</span> Computation of the ASD of the velocity and displacement</h3>
<div id="outline-container-org456f387" class="outline-3">
<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">
<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>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
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;
<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-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>;
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>
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>;
<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">'ASD of the measured Velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$'</span>)
xlim([0.1, 500]);
</pre>
</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>
<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>
<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>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
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;
<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>;
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>
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>;
<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">'ASD of the displacement $\left[\frac{m}{\sqrt{Hz}}\right]$'</span>)
xlim([0.1, 500]);
</pre>
</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>
<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>
<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>).
One can then compare this curve with the figure <a href="#org3e1d768">1</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="#org138fc2c">1</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
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;
<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-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>;
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>
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>;
<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">'PSD of the measured displacement $\left[\frac{{ \mu m }^2}{Hz}\right]$'</span>)
xlim([0.1, 500]); ylim([1e<span class="org-type">-</span>13, 1e3]);
</pre>
</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>
<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 id="outline-container-orge570bf0" class="outline-3">
<h3 id="orge570bf0"><span class="section-number-3">2.6</span> Comparison with other measurements of ground motion</h3>
<div class="outline-text-3" id="text-2-6">
<div id="outline-container-org63b1f9a" class="outline-3">
<h3 id="org63b1f9a"><span class="section-number-3">2.7</span> Save</h3>
<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>
Now we will compare with other measurements.
</p>
</div>
<div id="outline-container-org9008f38" class="outline-4">
<h4 id="org9008f38"><span class="section-number-4">2.6.1</span> Load the measurement data</h4>
<div class="outline-text-4" id="text-2-6-1">
<div id="outline-container-org499997c" class="outline-4">
<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-8-1">
<p>
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.
</p>
<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>;
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>;
<pre class="src src-matlab">id09 = load(<span class="org-string">'./mat/id09_floor_september2018.mat'</span>);
cern = load(<span class="org-string">'./mat/ground_motion_dist.mat'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org906cad8" class="outline-4">
<h4 id="org906cad8"><span class="section-number-4">2.6.2</span> Compute PSD of the measurements</h4>
<div class="outline-text-4" id="text-2-6-2">
<div id="outline-container-org3b715d1" class="outline-4">
<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-8-2">
<p>
We compute the Power Spectral Densities of the measurements.
</p>
<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>;
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>;
<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>;
<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(ceil(10<span class="org-type">*</span>Fs_id09));
[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>
</div>
<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>;
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>;
<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>;
<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(ceil(10<span class="org-type">*</span>Fs_cern));
[cern_pxx, cern_f] = pwelch(cern.gm.signal, win_cern, [], [], Fs_cern);
</pre>
</div>
</div>
</div>
<div id="outline-container-orgab58013" class="outline-4">
<h4 id="orgab58013"><span class="section-number-4">2.6.3</span> Compare PSD of Cern, ID09 and ID31</h4>
<div class="outline-text-4" id="text-2-6-3">
<div id="outline-container-org59b7d0c" class="outline-4">
<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-8-3">
<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>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
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<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<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(id09_f, id09_pxx, <span class="org-string">'DisplayName'</span>, <span class="org-string">'ID09'</span>);
plot(cern_f, cern_pxx, <span class="org-string">'DisplayName'</span>, <span class="org-string">'CERN'</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;
<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>;
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>;
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</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>;
<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">'PSD [$m^2/Hz$]'</span>);
legend(<span class="org-string">'Location'</span>, <span class="org-string">'northeast'</span>);
xlim([0.1, 500]);
</pre>
</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>
<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>
@ -618,8 +686,7 @@ xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbo
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-05-10 ven. 17:51</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
<p class="date">Created: 2020-01-28 mar. 15:01</p>
</div>
</body>
</html>

View File

@ -74,11 +74,11 @@ On figure [[fig:ground_motion_measurements]] is an overview of multiple measurem
** Matlab Init :noexport:ignore:
#+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
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
<<matlab-init>>
#+end_src
** 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;
#+end_src
** Time domain plots
** Time domain plots of the measured voltage
#+begin_src matlab
figure;
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);
#+end_src
#+begin_src matlab :results none :exports none
#+begin_src matlab :results none
freqs = logspace(-1, 2, 1000);
figure;
bodeFig({S}, logspace(-1, 2, 1000));
ylabel('Amplitude $\left[\frac{V}{m/s}\right]$')
hold on;
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
#+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]
#+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 further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in $m/s/\sqrt{Hz}$.
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 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
scaling = 1./squeeze(abs(freqresp(G0*S, f, 'Hz')));
psd_gv = px_dc./abs(squeeze(freqresp(G0*S, f, 'Hz'))).^2;
#+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
The ASD of the measured velocity is shown on figure [[fig:ground_motion_id31_asd_velocity]].
#+begin_src matlab :results none
figure;
hold on;
plot(f, sqrt(px_dc).*scaling);
plot(f, sqrt(psd_gv));
hold off;
set(gca, 'xscale', '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]]
We also plot the ASD in displacement (figure [[fig:ground_motion_id31_asd_displacement]]);
#+begin_src matlab :results none
figure;
hold on;
plot(f, (sqrt(px_dc).*scaling)./(2*pi*f));
plot(f, sqrt(psd_gm));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
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
figure;
hold on;
plot(f, ((sqrt(px_dc).*scaling)./(2*pi*f).*1e6).^2);
plot(f, psd_gm.*1e12);
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
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
#+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
[[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
Now we will compare with other measurements.
@ -289,8 +350,7 @@ And we compare all the measurements (figure [[fig:ground_motion_compare]]).
hold on;
plot(id09_f, id09_pxx, 'DisplayName', 'ID09');
plot(cern_f, cern_pxx, 'DisplayName', 'CERN');
plot(f, ((sqrt(px_dc).*scaling)./(2*pi*f)).^2, 'k', 'DisplayName', 'ID31');
plot(f, px_disp);
plot(f, psd_gm, 'k', 'DisplayName', 'ID31');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
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);
freqs = logspace(-1, 2, 1000);
figure;
bodeFig({S}, logspace(-1, 2, 1000));
ylabel('Amplitude $\left[\frac{V}{m/s}\right]$')
hold on;
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 further divide the result by the sensibility of the Geophone to obtain the ASD of the velocity in $m/s/\sqrt{Hz}$.
% 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 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]].
figure;
hold on;
plot(f, sqrt(px_dc).*scaling);
plot(f, sqrt(psd_gv));
hold off;
set(gca, 'xscale', '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]]);
figure;
hold on;
plot(f, (sqrt(px_dc).*scaling)./(2*pi*f));
plot(f, sqrt(psd_gm));
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
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
% #+RESULTS: fig:ground_motion_id31_asd_displacement
% [[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;
hold on;
plot(f, ((sqrt(px_dc).*scaling)./(2*pi*f).*1e6).^2);
plot(f, psd_gm.*1e12);
hold off;
set(gca, 'xscale', 'log');
set(gca, 'yscale', 'log');
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
% First we load the measurement data.
@ -144,7 +163,7 @@ figure;
hold on;
plot(id09_f, id09_pxx, 'DisplayName', 'ID09');
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;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('PSD [$m^2/Hz$]');