Add estimation of mass and stiffness
This commit is contained in:
parent
5f59f13f9a
commit
5089f5b2ab
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2020-08-18 mar. 12:57 -->
|
||||
<!-- 2020-11-03 mar. 09:32 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Compliance Measurement of the Micro Station</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
@ -35,31 +35,32 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org0f99e70">1. Setup</a>
|
||||
<li><a href="#orgaec7e8e">1. Setup</a>
|
||||
<ul>
|
||||
<li><a href="#org3071865">1.1. Position of inertial sensors on top of the micro-hexapod</a></li>
|
||||
<li><a href="#org93c276c">1.2. Hammer blow position/orientation</a></li>
|
||||
<li><a href="#org43be1a2">1.1. Position of inertial sensors on top of the micro-hexapod</a></li>
|
||||
<li><a href="#org095d116">1.2. Hammer blow position/orientation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org945c638">2. Results</a>
|
||||
<li><a href="#org7140136">2. Results</a>
|
||||
<ul>
|
||||
<li><a href="#org36b19fa">2.1. Load Data</a></li>
|
||||
<li><a href="#orgb64ed09">2.2. Compute Transfer Functions</a></li>
|
||||
<li><a href="#orgc4d6849">2.3. Diagonal Dynamics</a></li>
|
||||
<li><a href="#org87be1fb">2.4. Compare with Model</a></li>
|
||||
<li><a href="#orgaa2c58a">2.5. Coupling Dynamics</a></li>
|
||||
<li><a href="#org6082142">2.1. Load Data</a></li>
|
||||
<li><a href="#orgd4012ad">2.2. Compute Transfer Functions</a></li>
|
||||
<li><a href="#org7af3187">2.3. Diagonal Dynamics</a></li>
|
||||
<li><a href="#org23b9749">2.4. Equivalent Stiffness and Mass Estimation</a></li>
|
||||
<li><a href="#org208dda9">2.5. Compare with Model</a></li>
|
||||
<li><a href="#org94eb6da">2.6. Coupling Dynamics</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0f99e70" class="outline-2">
|
||||
<h2 id="org0f99e70"><span class="section-number-2">1</span> Setup</h2>
|
||||
<div id="outline-container-orgaec7e8e" class="outline-2">
|
||||
<h2 id="orgaec7e8e"><span class="section-number-2">1</span> Setup</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
</div>
|
||||
<div id="outline-container-org3071865" class="outline-3">
|
||||
<h3 id="org3071865"><span class="section-number-3">1.1</span> Position of inertial sensors on top of the micro-hexapod</h3>
|
||||
<div id="outline-container-org43be1a2" class="outline-3">
|
||||
<h3 id="org43be1a2"><span class="section-number-3">1.1</span> Position of inertial sensors on top of the micro-hexapod</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
Orientation is relative to the frame determined by the X-ray
|
||||
@ -328,8 +329,8 @@ From the acceleration measurement of the 4 accelerometers, we can compute the tr
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org93c276c" class="outline-3">
|
||||
<h3 id="org93c276c"><span class="section-number-3">1.2</span> Hammer blow position/orientation</h3>
|
||||
<div id="outline-container-org095d116" class="outline-3">
|
||||
<h3 id="org095d116"><span class="section-number-3">1.2</span> Hammer blow position/orientation</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
@ -473,35 +474,35 @@ From hammer blows to pure forces / torques:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org945c638" class="outline-2">
|
||||
<h2 id="org945c638"><span class="section-number-2">2</span> Results</h2>
|
||||
<div id="outline-container-org7140136" class="outline-2">
|
||||
<h2 id="org7140136"><span class="section-number-2">2</span> Results</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org36b19fa" class="outline-3">
|
||||
<h3 id="org36b19fa"><span class="section-number-3">2.1</span> Load Data</h3>
|
||||
<div id="outline-container-org6082142" class="outline-3">
|
||||
<h3 id="org6082142"><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">m1 = load('data/Measurement1.mat');
|
||||
m2 = load('data/Measurement2.mat');
|
||||
m3 = load('data/Measurement3.mat');
|
||||
m4 = load('data/Measurement4.mat');
|
||||
m5 = load('data/Measurement5.mat');
|
||||
m6 = load('data/Measurement6.mat');
|
||||
m7 = load('data/Measurement7.mat');
|
||||
m8 = load('data/Measurement8.mat');
|
||||
m9 = load('data/Measurement9.mat');
|
||||
m10 = load('data/Measurement10.mat');
|
||||
<pre class="src src-matlab">m1 = load(<span class="org-string">'data/Measurement1.mat'</span>);
|
||||
m2 = load(<span class="org-string">'data/Measurement2.mat'</span>);
|
||||
m3 = load(<span class="org-string">'data/Measurement3.mat'</span>);
|
||||
m4 = load(<span class="org-string">'data/Measurement4.mat'</span>);
|
||||
m5 = load(<span class="org-string">'data/Measurement5.mat'</span>);
|
||||
m6 = load(<span class="org-string">'data/Measurement6.mat'</span>);
|
||||
m7 = load(<span class="org-string">'data/Measurement7.mat'</span>);
|
||||
m8 = load(<span class="org-string">'data/Measurement8.mat'</span>);
|
||||
m9 = load(<span class="org-string">'data/Measurement9.mat'</span>);
|
||||
m10 = load(<span class="org-string">'data/Measurement10.mat'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb64ed09" class="outline-3">
|
||||
<h3 id="orgb64ed09"><span class="section-number-3">2.2</span> Compute Transfer Functions</h3>
|
||||
<div id="outline-container-orgd4012ad" class="outline-3">
|
||||
<h3 id="orgd4012ad"><span class="section-number-3">2.2</span> Compute Transfer Functions</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">freqs = m3.FFT1_H1_1_13_X_Val;
|
||||
w = 2*pi*freqs';
|
||||
w = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>freqs<span class="org-type">'</span>;
|
||||
|
||||
A = 0.14;
|
||||
B = 0.14;
|
||||
@ -511,158 +512,178 @@ B = 0.14;
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">G = zeros(6,6,length(freqs));
|
||||
|
||||
% Fx
|
||||
G(1,1,:) = (m3.FFT1_H1_1_13_Y_ReIm + m3.FFT1_H1_4_13_Y_ReIm + m3.FFT1_H1_7_13_Y_ReIm + m3.FFT1_H1_10_13_Y_ReIm)./4;
|
||||
G(2,1,:) = (m3.FFT1_H1_2_13_Y_ReIm + m3.FFT1_H1_5_13_Y_ReIm + m3.FFT1_H1_8_13_Y_ReIm + m3.FFT1_H1_11_13_Y_ReIm)./4;
|
||||
G(3,1,:) = (m3.FFT1_H1_3_13_Y_ReIm + m3.FFT1_H1_6_13_Y_ReIm + m3.FFT1_H1_9_13_Y_ReIm + m3.FFT1_H1_12_13_Y_ReIm)./4;
|
||||
G(4,1,:) = (m3.FFT1_H1_1_13_Y_ReIm - m3.FFT1_H1_9_13_Y_ReIm )./A;
|
||||
G(5,1,:) = (m3.FFT1_H1_6_13_Y_ReIm - m3.FFT1_H1_12_13_Y_ReIm)./B;
|
||||
G(6,1,:) = (m3.FFT1_H1_7_13_Y_ReIm - m3.FFT1_H1_1_13_Y_ReIm )./A;
|
||||
<span class="org-comment">% Fx</span>
|
||||
G<span class="org-type">(1,1,:) </span>= (m3.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_10_13_Y_ReIm)<span class="org-type">./</span>4;
|
||||
G<span class="org-type">(2,1,:) </span>= (m3.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_11_13_Y_ReIm)<span class="org-type">./</span>4;
|
||||
G<span class="org-type">(3,1,:) </span>= (m3.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m3.FFT1_H1_12_13_Y_ReIm)<span class="org-type">./</span>4;
|
||||
G<span class="org-type">(4,1,:) </span>= (m3.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m3.FFT1_H1_9_13_Y_ReIm )<span class="org-type">./</span>A;
|
||||
G<span class="org-type">(5,1,:) </span>= (m3.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m3.FFT1_H1_12_13_Y_ReIm)<span class="org-type">./</span>B;
|
||||
G<span class="org-type">(6,1,:) </span>= (m3.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m3.FFT1_H1_1_13_Y_ReIm )<span class="org-type">./</span>A;
|
||||
|
||||
% Fy
|
||||
G(1,2,:) = -(m1.FFT1_H1_2_13_Y_ReIm + m1.FFT1_H1_5_13_Y_ReIm + m1.FFT1_H1_8_13_Y_ReIm + m1.FFT1_H1_11_13_Y_ReIm)./4;
|
||||
G(2,2,:) = -(m1.FFT1_H1_2_13_Y_ReIm + m1.FFT1_H1_5_13_Y_ReIm + m1.FFT1_H1_8_13_Y_ReIm + m1.FFT1_H1_11_13_Y_ReIm)./4;
|
||||
G(3,2,:) = -(m1.FFT1_H1_3_13_Y_ReIm + m1.FFT1_H1_6_13_Y_ReIm + m1.FFT1_H1_9_13_Y_ReIm + m1.FFT1_H1_12_13_Y_ReIm)./4;
|
||||
G(4,2,:) = -(m1.FFT1_H1_1_13_Y_ReIm - m1.FFT1_H1_9_13_Y_ReIm )./A;
|
||||
G(5,2,:) = -(m1.FFT1_H1_6_13_Y_ReIm - m1.FFT1_H1_12_13_Y_ReIm)./B;
|
||||
G(6,2,:) = -(m1.FFT1_H1_7_13_Y_ReIm - m1.FFT1_H1_1_13_Y_ReIm )./A;
|
||||
<span class="org-comment">% Fy</span>
|
||||
G<span class="org-type">(1,2,:) </span>= <span class="org-type">-</span>(m1.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_11_13_Y_ReIm)<span class="org-type">./</span>4;
|
||||
G<span class="org-type">(2,2,:) </span>= <span class="org-type">-</span>(m1.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_11_13_Y_ReIm)<span class="org-type">./</span>4;
|
||||
G<span class="org-type">(3,2,:) </span>= <span class="org-type">-</span>(m1.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m1.FFT1_H1_12_13_Y_ReIm)<span class="org-type">./</span>4;
|
||||
G<span class="org-type">(4,2,:) </span>= <span class="org-type">-</span>(m1.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m1.FFT1_H1_9_13_Y_ReIm )<span class="org-type">./</span>A;
|
||||
G<span class="org-type">(5,2,:) </span>= <span class="org-type">-</span>(m1.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m1.FFT1_H1_12_13_Y_ReIm)<span class="org-type">./</span>B;
|
||||
G<span class="org-type">(6,2,:) </span>= <span class="org-type">-</span>(m1.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m1.FFT1_H1_1_13_Y_ReIm )<span class="org-type">./</span>A;
|
||||
|
||||
|
||||
% Fz
|
||||
G(1,3,:) = -1/2./(1./(m2.FFT1_H1_1_13_Y_ReIm + m2.FFT1_H1_4_13_Y_ReIm + m2.FFT1_H1_7_13_Y_ReIm + m2.FFT1_H1_10_13_Y_ReIm) + ...
|
||||
1./(m6.FFT1_H1_1_13_Y_ReIm + m6.FFT1_H1_4_13_Y_ReIm + m6.FFT1_H1_7_13_Y_ReIm + m6.FFT1_H1_10_13_Y_ReIm));
|
||||
G(2,3,:) = -1/2./(1./(m2.FFT1_H1_2_13_Y_ReIm + m2.FFT1_H1_5_13_Y_ReIm + m2.FFT1_H1_8_13_Y_ReIm + m2.FFT1_H1_11_13_Y_ReIm) + ...
|
||||
1./(m6.FFT1_H1_2_13_Y_ReIm + m6.FFT1_H1_5_13_Y_ReIm + m6.FFT1_H1_8_13_Y_ReIm + m6.FFT1_H1_11_13_Y_ReIm));
|
||||
G(3,3,:) = -1/2./(1./(m2.FFT1_H1_3_13_Y_ReIm + m2.FFT1_H1_6_13_Y_ReIm + m2.FFT1_H1_9_13_Y_ReIm + m2.FFT1_H1_12_13_Y_ReIm) + ...
|
||||
1./(m6.FFT1_H1_3_13_Y_ReIm + m6.FFT1_H1_6_13_Y_ReIm + m6.FFT1_H1_9_13_Y_ReIm + m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G(4,3,:) = -2/A./(1./(m2.FFT1_H1_1_13_Y_ReIm - m2.FFT1_H1_9_13_Y_ReIm) + ...
|
||||
1./(m6.FFT1_H1_1_13_Y_ReIm - m6.FFT1_H1_9_13_Y_ReIm));
|
||||
G(5,3,:) = -2/B./(1./(m2.FFT1_H1_6_13_Y_ReIm - m2.FFT1_H1_12_13_Y_ReIm) + ...
|
||||
1./(m6.FFT1_H1_6_13_Y_ReIm - m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G(6,3,:) = -2/A./(1./(m2.FFT1_H1_7_13_Y_ReIm - m2.FFT1_H1_1_13_Y_ReIm) + ...
|
||||
1./(m6.FFT1_H1_7_13_Y_ReIm - m6.FFT1_H1_1_13_Y_ReIm));
|
||||
<span class="org-comment">% Fz</span>
|
||||
G<span class="org-type">(1,3,:) </span>= <span class="org-type">-</span>1<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_10_13_Y_ReIm) <span class="org-type">+</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_10_13_Y_ReIm));
|
||||
G<span class="org-type">(2,3,:) </span>= <span class="org-type">-</span>1<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_11_13_Y_ReIm) <span class="org-type">+</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_11_13_Y_ReIm));
|
||||
G<span class="org-type">(3,3,:) </span>= <span class="org-type">-</span>1<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_12_13_Y_ReIm) <span class="org-type">+</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(4,3,:) </span>= <span class="org-type">-</span>2<span class="org-type">/</span>A<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m2.FFT1_H1_9_13_Y_ReIm) <span class="org-type">+</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m6.FFT1_H1_9_13_Y_ReIm));
|
||||
G<span class="org-type">(5,3,:) </span>= <span class="org-type">-</span>2<span class="org-type">/</span>B<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m2.FFT1_H1_12_13_Y_ReIm) <span class="org-type">+</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(6,3,:) </span>= <span class="org-type">-</span>2<span class="org-type">/</span>A<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m2.FFT1_H1_1_13_Y_ReIm) <span class="org-type">+</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m6.FFT1_H1_1_13_Y_ReIm));
|
||||
|
||||
% Mx
|
||||
G(1,4,:) = 1/A/2./(1./(m2.FFT1_H1_1_13_Y_ReIm + m2.FFT1_H1_4_13_Y_ReIm + m2.FFT1_H1_7_13_Y_ReIm + m2.FFT1_H1_10_13_Y_ReIm) - ...
|
||||
1./(m6.FFT1_H1_1_13_Y_ReIm + m6.FFT1_H1_4_13_Y_ReIm + m6.FFT1_H1_7_13_Y_ReIm + m6.FFT1_H1_10_13_Y_ReIm));
|
||||
G(2,4,:) = 1/A/2./(1./(m2.FFT1_H1_2_13_Y_ReIm + m2.FFT1_H1_5_13_Y_ReIm + m2.FFT1_H1_8_13_Y_ReIm + m2.FFT1_H1_11_13_Y_ReIm) - ...
|
||||
1./(m6.FFT1_H1_2_13_Y_ReIm + m6.FFT1_H1_5_13_Y_ReIm + m6.FFT1_H1_8_13_Y_ReIm + m6.FFT1_H1_11_13_Y_ReIm));
|
||||
G(3,4,:) = 1/A/2./(1./(m2.FFT1_H1_3_13_Y_ReIm + m2.FFT1_H1_6_13_Y_ReIm + m2.FFT1_H1_9_13_Y_ReIm + m2.FFT1_H1_12_13_Y_ReIm) - ...
|
||||
1./(m6.FFT1_H1_3_13_Y_ReIm + m6.FFT1_H1_6_13_Y_ReIm + m6.FFT1_H1_9_13_Y_ReIm + m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G(4,4,:) = 1/A^2*2./(1./(m2.FFT1_H1_1_13_Y_ReIm - m2.FFT1_H1_9_13_Y_ReIm) - ...
|
||||
1./(m6.FFT1_H1_1_13_Y_ReIm - m6.FFT1_H1_9_13_Y_ReIm));
|
||||
G(5,4,:) = 2/A/B./(1./(m2.FFT1_H1_6_13_Y_ReIm - m2.FFT1_H1_12_13_Y_ReIm) - ...
|
||||
1./(m6.FFT1_H1_6_13_Y_ReIm - m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G(6,4,:) = 1/A^2*2./(1./(m2.FFT1_H1_7_13_Y_ReIm - m2.FFT1_H1_1_13_Y_ReIm) - ...
|
||||
1./(m6.FFT1_H1_7_13_Y_ReIm - m6.FFT1_H1_1_13_Y_ReIm));
|
||||
<span class="org-comment">% Mx</span>
|
||||
G<span class="org-type">(1,4,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_10_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_10_13_Y_ReIm));
|
||||
G<span class="org-type">(2,4,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_11_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_11_13_Y_ReIm));
|
||||
G<span class="org-type">(3,4,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m2.FFT1_H1_12_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(4,4,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">^</span>2<span class="org-type">*</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m2.FFT1_H1_9_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m6.FFT1_H1_9_13_Y_ReIm));
|
||||
G<span class="org-type">(5,4,:) </span>= 2<span class="org-type">/</span>A<span class="org-type">/</span>B<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m2.FFT1_H1_12_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m6.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(6,4,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">^</span>2<span class="org-type">*</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m2.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m2.FFT1_H1_1_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m6.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m6.FFT1_H1_1_13_Y_ReIm));
|
||||
|
||||
% My
|
||||
G(1,5,:) = 1/B/2./(1./(m8.FFT1_H1_1_13_Y_ReIm + m8.FFT1_H1_4_13_Y_ReIm + m8.FFT1_H1_7_13_Y_ReIm + m8.FFT1_H1_10_13_Y_ReIm) - ...
|
||||
1./(m4.FFT1_H1_1_13_Y_ReIm + m4.FFT1_H1_4_13_Y_ReIm + m4.FFT1_H1_7_13_Y_ReIm + m4.FFT1_H1_10_13_Y_ReIm));
|
||||
G(2,5,:) = 1/B/2./(1./(m8.FFT1_H1_2_13_Y_ReIm + m8.FFT1_H1_5_13_Y_ReIm + m8.FFT1_H1_8_13_Y_ReIm + m8.FFT1_H1_11_13_Y_ReIm) - ...
|
||||
1./(m4.FFT1_H1_2_13_Y_ReIm + m4.FFT1_H1_5_13_Y_ReIm + m4.FFT1_H1_8_13_Y_ReIm + m4.FFT1_H1_11_13_Y_ReIm));
|
||||
G(3,5,:) = 1/B/2./(1./(m8.FFT1_H1_3_13_Y_ReIm + m8.FFT1_H1_6_13_Y_ReIm + m8.FFT1_H1_9_13_Y_ReIm + m8.FFT1_H1_12_13_Y_ReIm) - ...
|
||||
1./(m4.FFT1_H1_3_13_Y_ReIm + m4.FFT1_H1_6_13_Y_ReIm + m4.FFT1_H1_9_13_Y_ReIm + m4.FFT1_H1_12_13_Y_ReIm));
|
||||
G(4,5,:) = 2/B/A./(1./(m8.FFT1_H1_1_13_Y_ReIm - m8.FFT1_H1_9_13_Y_ReIm) - ...
|
||||
1./(m4.FFT1_H1_1_13_Y_ReIm - m4.FFT1_H1_9_13_Y_ReIm));
|
||||
G(5,5,:) = 1/B^2*2./(1./(m8.FFT1_H1_6_13_Y_ReIm - m8.FFT1_H1_12_13_Y_ReIm) - ...
|
||||
1./(m4.FFT1_H1_6_13_Y_ReIm - m4.FFT1_H1_12_13_Y_ReIm));
|
||||
G(6,5,:) = 2/B/A./(1./(m8.FFT1_H1_7_13_Y_ReIm - m8.FFT1_H1_1_13_Y_ReIm) - ...
|
||||
1./(m4.FFT1_H1_7_13_Y_ReIm - m4.FFT1_H1_1_13_Y_ReIm));
|
||||
<span class="org-comment">% My</span>
|
||||
G<span class="org-type">(1,5,:) </span>= 1<span class="org-type">/</span>B<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m8.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_10_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m4.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_10_13_Y_ReIm));
|
||||
G<span class="org-type">(2,5,:) </span>= 1<span class="org-type">/</span>B<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m8.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_11_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m4.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_11_13_Y_ReIm));
|
||||
G<span class="org-type">(3,5,:) </span>= 1<span class="org-type">/</span>B<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m8.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m8.FFT1_H1_12_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m4.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m4.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(4,5,:) </span>= 2<span class="org-type">/</span>B<span class="org-type">/</span>A<span class="org-type">./</span>(1<span class="org-type">./</span>(m8.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m8.FFT1_H1_9_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m4.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m4.FFT1_H1_9_13_Y_ReIm));
|
||||
G<span class="org-type">(5,5,:) </span>= 1<span class="org-type">/</span>B<span class="org-type">^</span>2<span class="org-type">*</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m8.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m8.FFT1_H1_12_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m4.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m4.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(6,5,:) </span>= 2<span class="org-type">/</span>B<span class="org-type">/</span>A<span class="org-type">./</span>(1<span class="org-type">./</span>(m8.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m8.FFT1_H1_1_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m4.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m4.FFT1_H1_1_13_Y_ReIm));
|
||||
|
||||
% Mz
|
||||
G(1,6,:) = 1/A/2./(1./(m10.FFT1_H1_1_13_Y_ReIm + m10.FFT1_H1_4_13_Y_ReIm + m10.FFT1_H1_7_13_Y_ReIm + m10.FFT1_H1_10_13_Y_ReIm) - ...
|
||||
1./(m9.FFT1_H1_1_13_Y_ReIm + m9.FFT1_H1_4_13_Y_ReIm + m9.FFT1_H1_7_13_Y_ReIm + m9.FFT1_H1_10_13_Y_ReIm));
|
||||
G(2,6,:) = 1/A/2./(1./(m10.FFT1_H1_2_13_Y_ReIm + m10.FFT1_H1_5_13_Y_ReIm + m10.FFT1_H1_8_13_Y_ReIm + m10.FFT1_H1_11_13_Y_ReIm) - ...
|
||||
1./(m9.FFT1_H1_2_13_Y_ReIm + m9.FFT1_H1_5_13_Y_ReIm + m9.FFT1_H1_8_13_Y_ReIm + m9.FFT1_H1_11_13_Y_ReIm));
|
||||
G(3,6,:) = 1/A/2./(1./(m10.FFT1_H1_3_13_Y_ReIm + m10.FFT1_H1_6_13_Y_ReIm + m10.FFT1_H1_9_13_Y_ReIm + m10.FFT1_H1_12_13_Y_ReIm) - ...
|
||||
1./(m9.FFT1_H1_3_13_Y_ReIm + m9.FFT1_H1_6_13_Y_ReIm + m9.FFT1_H1_9_13_Y_ReIm + m9.FFT1_H1_12_13_Y_ReIm));
|
||||
G(4,6,:) = 1/A^2*2./(1./(m10.FFT1_H1_1_13_Y_ReIm - m10.FFT1_H1_9_13_Y_ReIm) - ...
|
||||
1./(m9.FFT1_H1_1_13_Y_ReIm - m9.FFT1_H1_9_13_Y_ReIm));
|
||||
G(5,6,:) = 2*A/B./(1./(m10.FFT1_H1_6_13_Y_ReIm - m10.FFT1_H1_12_13_Y_ReIm) - ...
|
||||
1./(m9.FFT1_H1_6_13_Y_ReIm - m9.FFT1_H1_12_13_Y_ReIm));
|
||||
G(6,6,:) = 1/A^2*2./(1./(m10.FFT1_H1_7_13_Y_ReIm - m10.FFT1_H1_1_13_Y_ReIm) - ...
|
||||
1./(m9.FFT1_H1_7_13_Y_ReIm - m9.FFT1_H1_1_13_Y_ReIm));
|
||||
<span class="org-comment">% Mz</span>
|
||||
G<span class="org-type">(1,6,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m10.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_10_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m9.FFT1_H1_1_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_4_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_7_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_10_13_Y_ReIm));
|
||||
G<span class="org-type">(2,6,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m10.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_11_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m9.FFT1_H1_2_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_5_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_8_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_11_13_Y_ReIm));
|
||||
G<span class="org-type">(3,6,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">/</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m10.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m10.FFT1_H1_12_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m9.FFT1_H1_3_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_6_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_9_13_Y_ReIm <span class="org-type">+</span> m9.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(4,6,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">^</span>2<span class="org-type">*</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m10.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m10.FFT1_H1_9_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m9.FFT1_H1_1_13_Y_ReIm <span class="org-type">-</span> m9.FFT1_H1_9_13_Y_ReIm));
|
||||
G<span class="org-type">(5,6,:) </span>= 2<span class="org-type">*</span>A<span class="org-type">/</span>B<span class="org-type">./</span>(1<span class="org-type">./</span>(m10.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m10.FFT1_H1_12_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m9.FFT1_H1_6_13_Y_ReIm <span class="org-type">-</span> m9.FFT1_H1_12_13_Y_ReIm));
|
||||
G<span class="org-type">(6,6,:) </span>= 1<span class="org-type">/</span>A<span class="org-type">^</span>2<span class="org-type">*</span>2<span class="org-type">./</span>(1<span class="org-type">./</span>(m10.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m10.FFT1_H1_1_13_Y_ReIm) <span class="org-type">-</span> ...
|
||||
1<span class="org-type">./</span>(m9.FFT1_H1_7_13_Y_ReIm <span class="org-type">-</span> m9.FFT1_H1_1_13_Y_ReIm));
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc4d6849" class="outline-3">
|
||||
<h3 id="orgc4d6849"><span class="section-number-3">2.3</span> Diagonal Dynamics</h3>
|
||||
<div id="outline-container-org7af3187" class="outline-3">
|
||||
<h3 id="org7af3187"><span class="section-number-3">2.3</span> Diagonal Dynamics</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">figure;
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(G(1,1,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(2,2,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(3,3,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(1,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(2,2,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(3,3,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-9, 2e-6]);
|
||||
<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>);
|
||||
ylabel(<span class="org-string">'Magnitude [m/N]'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,[]);
|
||||
ylim([1e<span class="org-type">-</span>9, 2e<span class="org-type">-</span>6]);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*angle(squeeze(G(1,1,:))./(-w.^2)), '.', 'DisplayName', '$D_x/F_x$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(2,2,:))./(-w.^2)), '.', 'DisplayName', '$D_y/F_y$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(3,3,:))./(-w.^2)), '.', 'DisplayName', '$D_z/F_z$')
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(1,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_x/F_x$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(2,2,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_y/F_y$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(3,3,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_z/F_z$'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
xlabel('Freqency [Hz]'); ylabel('Phase [deg]');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
legend('location', 'southwest');
|
||||
<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">'lin'</span>);
|
||||
xlabel(<span class="org-string">'Freqency [Hz]'</span>); ylabel(<span class="org-string">'Phase [deg]'</span>);
|
||||
ylim([<span class="org-type">-</span>180, 180]);
|
||||
yticks([<span class="org-type">-</span>180, <span class="org-type">-</span>90, 0, 90, 180]);
|
||||
legend(<span class="org-string">'location'</span>, <span class="org-string">'southwest'</span>);
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
linkaxes([ax1,ax2],<span class="org-string">'x'</span>);
|
||||
xlim([30, 300]);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org7d6f1be" class="figure">
|
||||
<div id="orgf9adbb6" class="figure">
|
||||
<p><img src="figs/compliance_diagonal_translations.png" alt="compliance_diagonal_translations.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Dynamics from Forces to Translations</p>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">figure;
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(G(4,4,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(5,5,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(6,6,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(4,4,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(5,5,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(6,6,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-9, 2e-6]);
|
||||
<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>);
|
||||
ylabel(<span class="org-string">'Magnitude [rad/Nm]'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,[]);
|
||||
ylim([1e<span class="org-type">-</span>7, 2e<span class="org-type">-</span>4]);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*angle(squeeze(G(4,4,:))./(-w.^2)), '.', 'DisplayName', '$R_x/M_x$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(5,5,:))./(-w.^2)), '.', 'DisplayName', '$R_y/M_y$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(6,6,:))./(-w.^2)), '.', 'DisplayName', '$R_z/M_z$')
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(4,4,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_x/M_x$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(5,5,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_y/M_y$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(6,6,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_z/M_z$'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
xlabel('Freqency [Hz]'); ylabel('Phase [deg]');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
legend('location', 'southwest');
|
||||
<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">'lin'</span>);
|
||||
xlabel(<span class="org-string">'Freqency [Hz]'</span>); ylabel(<span class="org-string">'Phase [deg]'</span>);
|
||||
ylim([<span class="org-type">-</span>180, 180]);
|
||||
yticks([<span class="org-type">-</span>180, <span class="org-type">-</span>90, 0, 90, 180]);
|
||||
legend(<span class="org-string">'location'</span>, <span class="org-string">'southwest'</span>);
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
linkaxes([ax1,ax2],<span class="org-string">'x'</span>);
|
||||
xlim([30, 300]);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org445a1e9" class="figure">
|
||||
<div id="org1468ca5" class="figure">
|
||||
<p><img src="figs/compliance_diagonal_rotations.png" alt="compliance_diagonal_rotations.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Dynamics from Torques to Rotations</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org23b9749" class="outline-3">
|
||||
<h3 id="org23b9749"><span class="section-number-3">2.4</span> Equivalent Stiffness and Mass Estimation</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">K = [1e7, 1e7, 2e8, 5e7, 3e7, 2e7];
|
||||
f_res = [125, 135, 390, 335, 335, 160];
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">M = [20, 20, 20, 11, 7, 20];
|
||||
f_res_est = sqrt(K<span class="org-type">./</span>M)<span class="org-type">./</span>(2<span class="org-type">*</span><span class="org-constant">pi</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Here is the inertia / stiffness to the granite that can represent the micro-station compliance dynamics:
|
||||
</p>
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
@ -670,148 +691,139 @@ xlim([30, 300]);
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-left"> </th>
|
||||
<th scope="col" class="org-right">Stiffness</th>
|
||||
<th scope="col" class="org-left">Unit</th>
|
||||
<th scope="col" class="org-left">Stiffness</th>
|
||||
<th scope="col" class="org-right">Inertia</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left">\(K_x\)</td>
|
||||
<td class="org-right">1e7</td>
|
||||
<td class="org-left">[N/m]</td>
|
||||
<td class="org-left">x</td>
|
||||
<td class="org-right">10000000.0</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">\(K_y\)</td>
|
||||
<td class="org-right">1e7</td>
|
||||
<td class="org-left">[N/m]</td>
|
||||
<td class="org-left">y</td>
|
||||
<td class="org-right">10000000.0</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">\(K_z\)</td>
|
||||
<td class="org-right">2e8</td>
|
||||
<td class="org-left">[N/m]</td>
|
||||
<td class="org-left">z</td>
|
||||
<td class="org-right">200000000.0</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">\(K_{R_x}\)</td>
|
||||
<td class="org-right">?</td>
|
||||
<td class="org-left">[Nm/rad]</td>
|
||||
<td class="org-left">Rx</td>
|
||||
<td class="org-right">50000000.0</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">\(K_{R_y}\)</td>
|
||||
<td class="org-right">1.8e7</td>
|
||||
<td class="org-left">[Nm/rad]</td>
|
||||
<td class="org-left">Ry</td>
|
||||
<td class="org-right">30000000.0</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">\(K_{R_z}\)</td>
|
||||
<td class="org-right">1e7</td>
|
||||
<td class="org-left">[Nm/rad]</td>
|
||||
<td class="org-left">Rz</td>
|
||||
<td class="org-right">20000000.0</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org87be1fb" class="outline-3">
|
||||
<h3 id="org87be1fb"><span class="section-number-3">2.4</span> Compare with Model</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<div id="outline-container-org208dda9" class="outline-3">
|
||||
<h3 id="org208dda9"><span class="section-number-3">2.5</span> Compare with Model</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load('./mat/model.mat', 'Gm');
|
||||
<pre class="src src-matlab">load(<span class="org-string">'./mat/model.mat'</span>, <span class="org-string">'Gm'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">figure;
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(G(1,1,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(2,2,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(3,3,:))./(-w.^2)), '.')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(2,2,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(3,3,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(G(1,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(2,2,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(3,3,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(1,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(2,2,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(3,3,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-9, 2e-6]);
|
||||
<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>);
|
||||
ylabel(<span class="org-string">'Magnitude [m/N]'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,[]);
|
||||
ylim([1e<span class="org-type">-</span>9, 2e<span class="org-type">-</span>6]);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*angle(squeeze(G(1,1,:))./(-w.^2)), '.', 'DisplayName', '$D_x/F_x$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(2,2,:))./(-w.^2)), '.', 'DisplayName', '$D_y/F_y$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(3,3,:))./(-w.^2)), '.', 'DisplayName', '$D_z/F_z$')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(2,2,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(3,3,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(1,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_x/F_x$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(2,2,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_y/F_y$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(3,3,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_z/F_z$'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(1,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(2,2,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(3,3,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
xlabel('Freqency [Hz]'); ylabel('Phase [deg]');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
legend('location', 'southwest');
|
||||
<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">'lin'</span>);
|
||||
xlabel(<span class="org-string">'Freqency [Hz]'</span>); ylabel(<span class="org-string">'Phase [deg]'</span>);
|
||||
ylim([<span class="org-type">-</span>180, 180]);
|
||||
yticks([<span class="org-type">-</span>180, <span class="org-type">-</span>90, 0, 90, 180]);
|
||||
legend(<span class="org-string">'location'</span>, <span class="org-string">'southwest'</span>);
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
linkaxes([ax1,ax2],<span class="org-string">'x'</span>);
|
||||
xlim([30, 300]);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org40c0b41" class="figure">
|
||||
<div id="orgbdba037" class="figure">
|
||||
<p><img src="figs/compliance_diagonal_translations_comp_model.png" alt="compliance_diagonal_translations_comp_model.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Dynamics from Forces to Translations</p>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">figure;
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(G(4,4,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(5,5,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(6,6,:))./(-w.^2)), '.')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(4,4,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(5,5,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(6,6,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(G(4,4,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(5,5,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(6,6,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(4,4,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(5,5,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(6,6,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]);
|
||||
% ylim([1e-9, 2e-6]);
|
||||
<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>);
|
||||
ylabel(<span class="org-string">'Magnitude [rad/Nm]'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,[]);
|
||||
<span class="org-comment">% ylim([1e-9, 2e-6]);</span>
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*angle(squeeze(G(4,4,:))./(-w.^2)), '.', 'DisplayName', '$R_x/M_x$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(5,5,:))./(-w.^2)), '.', 'DisplayName', '$R_y/M_y$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(6,6,:))./(-w.^2)), '.', 'DisplayName', '$R_z/M_z$')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(4,4,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(5,5,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(6,6,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(4,4,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_x/M_x$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(5,5,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_y/M_y$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(6,6,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_z/M_z$'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(4,4,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(5,5,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(6,6,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
xlabel('Freqency [Hz]'); ylabel('Phase [deg]');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
legend('location', 'southwest');
|
||||
<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">'lin'</span>);
|
||||
xlabel(<span class="org-string">'Freqency [Hz]'</span>); ylabel(<span class="org-string">'Phase [deg]'</span>);
|
||||
ylim([<span class="org-type">-</span>180, 180]);
|
||||
yticks([<span class="org-type">-</span>180, <span class="org-type">-</span>90, 0, 90, 180]);
|
||||
legend(<span class="org-string">'location'</span>, <span class="org-string">'southwest'</span>);
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
linkaxes([ax1,ax2],<span class="org-string">'x'</span>);
|
||||
xlim([30, 300]);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org644f661" class="figure">
|
||||
<div id="org3c85450" class="figure">
|
||||
<p><img src="figs/compliance_diagonal_rotations_comp_model.png" alt="compliance_diagonal_rotations_comp_model.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Dynamics from Torques to Rotations</p>
|
||||
@ -875,75 +887,75 @@ xlim([30, 300]);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgaa2c58a" class="outline-3">
|
||||
<h3 id="orgaa2c58a"><span class="section-number-3">2.5</span> Coupling Dynamics</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
<div id="outline-container-org94eb6da" class="outline-3">
|
||||
<h3 id="org94eb6da"><span class="section-number-3">2.6</span> Coupling Dynamics</h3>
|
||||
<div class="outline-text-3" id="text-2-6">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">figure;
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(G(1,1,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(2,1,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(3,1,:))./(-w.^2)), '.')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(2,1,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(3,1,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(G(1,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(2,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(3,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(1,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(2,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(3,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-9, 2e-6]);
|
||||
<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>);
|
||||
ylabel(<span class="org-string">'Magnitude [m/N]'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,[]);
|
||||
ylim([1e<span class="org-type">-</span>9, 2e<span class="org-type">-</span>6]);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*angle(squeeze(G(1,1,:))./(-w.^2)), '.', 'DisplayName', '$D_x/F_x$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(2,1,:))./(-w.^2)), '.', 'DisplayName', '$D_y/F_x$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(3,1,:))./(-w.^2)), '.', 'DisplayName', '$D_z/F_x$')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(1,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(2,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(3,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(1,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_x/F_x$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(2,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_y/F_x$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(3,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$D_z/F_x$'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(1,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(2,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(3,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
xlabel('Freqency [Hz]'); ylabel('Phase [deg]');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
legend('location', 'southwest');
|
||||
<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">'lin'</span>);
|
||||
xlabel(<span class="org-string">'Freqency [Hz]'</span>); ylabel(<span class="org-string">'Phase [deg]'</span>);
|
||||
ylim([<span class="org-type">-</span>180, 180]);
|
||||
yticks([<span class="org-type">-</span>180, <span class="org-type">-</span>90, 0, 90, 180]);
|
||||
legend(<span class="org-string">'location'</span>, <span class="org-string">'southwest'</span>);
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
linkaxes([ax1,ax2],<span class="org-string">'x'</span>);
|
||||
xlim([30, 300]);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">figure;
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(G(5,1,:))./(-w.^2)), '.')
|
||||
plot(freqs, abs(squeeze(G(4,2,:))./(-w.^2)), '.')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(5,1,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(4,2,:), freqs, 'Hz'))), '-')
|
||||
plot(freqs, abs(squeeze(G(5,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
plot(freqs, abs(squeeze(G(4,2,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(5,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
plot(freqs, abs(squeeze(freqresp(Gm(4,2,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-9, 2e-6]);
|
||||
<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>);
|
||||
ylabel(<span class="org-string">'Magnitude [m/N]'</span>); <span class="org-type">set</span>(<span class="org-variable-name">gca</span>, <span class="org-string">'XTickLabel'</span>,[]);
|
||||
ylim([1e<span class="org-type">-</span>9, 2e<span class="org-type">-</span>6]);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*angle(squeeze(G(5,1,:))./(-w.^2)), '.', 'DisplayName', '$R_y/F_x$')
|
||||
plot(freqs, 180/pi*angle(squeeze(G(4,2,:))./(-w.^2)), '.', 'DisplayName', '$R_x/F_y$')
|
||||
set(gca,'ColorOrderIndex',1);
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(5,1,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180/pi*angle(squeeze(freqresp(Gm(4,2,:), freqs, 'Hz'))), '-', 'HandleVisibility', 'off')
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(5,1,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_y/F_x$'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(G(4,2,<span class="org-type">:</span>))<span class="org-type">./</span>(<span class="org-type">-</span>w<span class="org-type">.^</span>2)), <span class="org-string">'.'</span>, <span class="org-string">'DisplayName'</span>, <span class="org-string">'$R_x/F_y$'</span>)
|
||||
<span class="org-type">set</span>(<span class="org-variable-name">gca</span>,<span class="org-string">'ColorOrderIndex'</span>,1);
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(5,1,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
plot(freqs, 180<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">*</span>angle(squeeze(freqresp(Gm(4,2,<span class="org-type">:</span>), freqs, <span class="org-string">'Hz'</span>))), <span class="org-string">'-'</span>, <span class="org-string">'HandleVisibility'</span>, <span class="org-string">'off'</span>)
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
xlabel('Freqency [Hz]'); ylabel('Phase [deg]');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
legend('location', 'southwest');
|
||||
<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">'lin'</span>);
|
||||
xlabel(<span class="org-string">'Freqency [Hz]'</span>); ylabel(<span class="org-string">'Phase [deg]'</span>);
|
||||
ylim([<span class="org-type">-</span>180, 180]);
|
||||
yticks([<span class="org-type">-</span>180, <span class="org-type">-</span>90, 0, 90, 180]);
|
||||
legend(<span class="org-string">'location'</span>, <span class="org-string">'southwest'</span>);
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
linkaxes([ax1,ax2],<span class="org-string">'x'</span>);
|
||||
xlim([30, 300]);
|
||||
</pre>
|
||||
</div>
|
||||
@ -953,7 +965,7 @@ xlim([30, 300]);
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2020-08-18 mar. 12:57</p>
|
||||
<p class="date">Created: 2020-11-03 mar. 09:32</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -262,7 +262,7 @@ From hammer blows to pure forces / torques:
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-9, 2e-6]);
|
||||
ylim([1e-7, 2e-4]);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
@ -289,14 +289,33 @@ From hammer blows to pure forces / torques:
|
||||
#+RESULTS:
|
||||
[[file:figs/compliance_diagonal_rotations.png]]
|
||||
|
||||
| | Stiffness | Unit |
|
||||
|-----------+-----------+----------|
|
||||
| $K_x$ | 1e7 | [N/m] |
|
||||
| $K_y$ | 1e7 | [N/m] |
|
||||
| $K_z$ | 2e8 | [N/m] |
|
||||
| $K_{R_x}$ | ? | [Nm/rad] |
|
||||
| $K_{R_y}$ | 1.8e7 | [Nm/rad] |
|
||||
| $K_{R_z}$ | 1e7 | [Nm/rad] |
|
||||
** Equivalent Stiffness and Mass Estimation
|
||||
|
||||
#+begin_src matlab
|
||||
K = [1e7, 1e7, 2e8, 5e7, 3e7, 2e7];
|
||||
f_res = [125, 135, 390, 335, 335, 160];
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
M = [20, 20, 20, 11, 7, 20];
|
||||
f_res_est = sqrt(K./M)./(2*pi);
|
||||
#+end_src
|
||||
|
||||
Here is the inertia / stiffness to the granite that can represent the micro-station compliance dynamics:
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
||||
data2orgtable([K'], {'x', 'y', 'z', 'Rx', 'Ry', 'Rz'}, {'Stiffness', 'Inertia'}, ' %.1g ');
|
||||
#+end_src
|
||||
|
||||
|
||||
#+RESULTS:
|
||||
| Stiffness | Inertia |
|
||||
|-----------+-------------|
|
||||
| x | 10000000.0 |
|
||||
| y | 10000000.0 |
|
||||
| z | 200000000.0 |
|
||||
| Rx | 50000000.0 |
|
||||
| Ry | 30000000.0 |
|
||||
| Rz | 20000000.0 |
|
||||
|
||||
** Compare with Model
|
||||
#+begin_src matlab
|
||||
|
Loading…
x
Reference in New Issue
Block a user