Add micro-station compliance measurement/analysis
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement1.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement1.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement10.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement10.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement3.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement3.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement4.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement4.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement5.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement5.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement6.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement6.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement7.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement7.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement8.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement8.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement9.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/Measurement9.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										49
									
								
								micro-station-compliance/data/id31_nass_11august2020.m
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										49
									
								
								micro-station-compliance/data/id31_nass_11august2020.m
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | ID31 NASS - 11/08/2020 | ||||||
|  |  | ||||||
|  | ch1 to 3: acc 3D 1v/g | ||||||
|  | ch4 to 6: acc 3D 1v/g | ||||||
|  | ch7 to 9: acc 3D 100m/g | ||||||
|  | ch10 to 12: acc 3D 1v/g | ||||||
|  | Ch13: hammer 230uV/N | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | %% 12/08/2020 | ||||||
|  | % change hammer tip to red | ||||||
|  | % Bandwidth changed to 400Hz | ||||||
|  |  | ||||||
|  | excitation capteur 1 Y | ||||||
|  | Meas1 | ||||||
|  |  | ||||||
|  | excitation capteur 1 -Z | ||||||
|  | Meas2 | ||||||
|  |  | ||||||
|  | excitation capteur 2 X | ||||||
|  | Meas3 | ||||||
|  |  | ||||||
|  | excitation capteur 2 -Z | ||||||
|  | Meas4 | ||||||
|  |  | ||||||
|  | excitation capteur 3 -Y | ||||||
|  | Meas5 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | excitation capteur 3 -Z | ||||||
|  | Meas6 | ||||||
|  |  | ||||||
|  | excitation capteur 4 -X | ||||||
|  | Meas7 | ||||||
|  |  | ||||||
|  | excitation capteur 4 -Z | ||||||
|  | Meas8 | ||||||
|  |  | ||||||
|  | excitation capteur 3 -X on black block RZ  | ||||||
|  | Meas9 | ||||||
|  |  | ||||||
|  | excitation capteur 1 -X on black block RZ  | ||||||
|  | Meas10 | ||||||
|  |  | ||||||
|  | % --------------------------- | ||||||
|  | %% vibrometre on TY 0.2mm/s/V | ||||||
|  | excitation -Y | ||||||
|  | Meas2 | ||||||
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/id31_nass_ty_12august2020/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/id31_nass_ty_12august2020/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/id31_nass_ty_12august2020/record/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/id31_nass_ty_12august2020/record/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement1.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement1.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement10.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement10.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement2.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement3.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement3.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement4.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement4.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement5.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement5.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement6.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement6.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement7.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement7.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement8.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement8.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement9.mat
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/data/record/Measurement9.mat
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/figs/compliance_diagonal_rotations.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/figs/compliance_diagonal_rotations.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 181 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 189 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 188 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 207 KiB | 
							
								
								
									
										959
									
								
								micro-station-compliance/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										959
									
								
								micro-station-compliance/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,959 @@ | |||||||
|  | <?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> | ||||||
|  | <!-- 2020-08-18 mar. 12:57 --> | ||||||
|  | <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" /> | ||||||
|  | <meta name="author" content="Dehaeze Thomas" /> | ||||||
|  | <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> | ||||||
|  | <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> | ||||||
|  | <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/> | ||||||
|  | <script type="text/javascript" src="../js/jquery.min.js"></script> | ||||||
|  | <script type="text/javascript" src="../js/bootstrap.min.js"></script> | ||||||
|  | <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script> | ||||||
|  | <script type="text/javascript" src="../js/readtheorg.js"></script> | ||||||
|  | <script>MathJax = { | ||||||
|  |           tex: { | ||||||
|  |             tags: 'ams', | ||||||
|  |             macros: {bm: ["\\boldsymbol{#1}",1],} | ||||||
|  |             } | ||||||
|  |           }; | ||||||
|  |           </script> | ||||||
|  |           <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> | ||||||
|  | </head> | ||||||
|  | <body> | ||||||
|  | <div id="org-div-home-and-up"> | ||||||
|  |  <a accesskey="h" href="../index.html"> UP </a> | ||||||
|  |  | | ||||||
|  |  <a accesskey="H" href="../index.html"> HOME </a> | ||||||
|  | </div><div id="content"> | ||||||
|  | <h1 class="title">Compliance Measurement of the Micro Station</h1> | ||||||
|  | <div id="table-of-contents"> | ||||||
|  | <h2>Table of Contents</h2> | ||||||
|  | <div id="text-table-of-contents"> | ||||||
|  | <ul> | ||||||
|  | <li><a href="#org0f99e70">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> | ||||||
|  | </ul> | ||||||
|  | </li> | ||||||
|  | <li><a href="#org945c638">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> | ||||||
|  | </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 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 class="outline-text-3" id="text-1-1"> | ||||||
|  | <p> | ||||||
|  | Orientation is relative to the frame determined by the X-ray | ||||||
|  | </p> | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <col  class="org-right" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-right" /> | ||||||
|  | </colgroup> | ||||||
|  | <thead> | ||||||
|  | <tr> | ||||||
|  | <th scope="col" class="org-right"><b>Num</b></th> | ||||||
|  | <th scope="col" class="org-left"><b>Position</b></th> | ||||||
|  | <th scope="col" class="org-left"><b>Orientation</b></th> | ||||||
|  | <th scope="col" class="org-left"><b>Sensibility</b></th> | ||||||
|  | <th scope="col" class="org-right"><b>Channels</b></th> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">1</td> | ||||||
|  | <td class="org-left">[0, +A, 0]</td> | ||||||
|  | <td class="org-left">[x, y, z]</td> | ||||||
|  | <td class="org-left">1V/g</td> | ||||||
|  | <td class="org-right">1-3</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">2</td> | ||||||
|  | <td class="org-left">[-B, 0, 0]</td> | ||||||
|  | <td class="org-left">[x, y, z]</td> | ||||||
|  | <td class="org-left">1V/g</td> | ||||||
|  | <td class="org-right">4-6</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">3</td> | ||||||
|  | <td class="org-left">[0, -A, 0]</td> | ||||||
|  | <td class="org-left">[x, y, z]</td> | ||||||
|  | <td class="org-left">0.1V/g</td> | ||||||
|  | <td class="org-right">7-9</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">4</td> | ||||||
|  | <td class="org-left">[+B, 0, 0]</td> | ||||||
|  | <td class="org-left">[x, y, z]</td> | ||||||
|  | <td class="org-left">1V/g</td> | ||||||
|  | <td class="org-right">10-12</td> | ||||||
|  | </tr> | ||||||
|  | </tbody> | ||||||
|  | </table> | ||||||
|  | 
 | ||||||
|  | <p> | ||||||
|  | Instrumented Hammer: | ||||||
|  | </p> | ||||||
|  | <ul class="org-ul"> | ||||||
|  | <li>Channel 13</li> | ||||||
|  | <li>Sensibility: 230 uV/N</li> | ||||||
|  | </ul> | ||||||
|  | 
 | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <col  class="org-right" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-right" /> | ||||||
|  | </colgroup> | ||||||
|  | <thead> | ||||||
|  | <tr> | ||||||
|  | <th scope="col" class="org-right">Acc Number</th> | ||||||
|  | <th scope="col" class="org-left">Dir</th> | ||||||
|  | <th scope="col" class="org-right">Channel Number</th> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">1</td> | ||||||
|  | <td class="org-left">x</td> | ||||||
|  | <td class="org-right">1</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">1</td> | ||||||
|  | <td class="org-left">y</td> | ||||||
|  | <td class="org-right">2</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">1</td> | ||||||
|  | <td class="org-left">z</td> | ||||||
|  | <td class="org-right">3</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">2</td> | ||||||
|  | <td class="org-left">x</td> | ||||||
|  | <td class="org-right">4</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">2</td> | ||||||
|  | <td class="org-left">y</td> | ||||||
|  | <td class="org-right">5</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">2</td> | ||||||
|  | <td class="org-left">z</td> | ||||||
|  | <td class="org-right">6</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">3</td> | ||||||
|  | <td class="org-left">x</td> | ||||||
|  | <td class="org-right">7</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">3</td> | ||||||
|  | <td class="org-left">y</td> | ||||||
|  | <td class="org-right">8</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">3</td> | ||||||
|  | <td class="org-left">z</td> | ||||||
|  | <td class="org-right">9</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">4</td> | ||||||
|  | <td class="org-left">x</td> | ||||||
|  | <td class="org-right">10</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">4</td> | ||||||
|  | <td class="org-left">y</td> | ||||||
|  | <td class="org-right">11</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">4</td> | ||||||
|  | <td class="org-left">z</td> | ||||||
|  | <td class="org-right">12</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">Hammer</td> | ||||||
|  | <td class="org-left"> </td> | ||||||
|  | <td class="org-right">13</td> | ||||||
|  | </tr> | ||||||
|  | </tbody> | ||||||
|  | </table> | ||||||
|  | 
 | ||||||
|  | <p> | ||||||
|  | From the acceleration measurement of the 4 accelerometers, we can compute the translations and rotations: | ||||||
|  | </p> | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | </colgroup> | ||||||
|  | <thead> | ||||||
|  | <tr> | ||||||
|  | <th scope="col" class="org-left"> </th> | ||||||
|  | <th scope="col" class="org-left"><b>Formula</b></th> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(D_x\)</td> | ||||||
|  | <td class="org-left">(1x + 2x + 3x + 4x)/4</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(D_y\)</td> | ||||||
|  | <td class="org-left">(1y + 2y + 3y + 4y)/4</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(D_z\)</td> | ||||||
|  | <td class="org-left">(1z + 2z + 3z + 4z)/4</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(R_x\)</td> | ||||||
|  | <td class="org-left">(1z - 3z)/A</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(R_y\)</td> | ||||||
|  | <td class="org-left">(2z - 4z)/B</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(R_z\)</td> | ||||||
|  | <td class="org-left">(3x - 1x)/A, (4y - 2y)/B</td> | ||||||
|  | </tr> | ||||||
|  | </tbody> | ||||||
|  | </table> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | </colgroup> | ||||||
|  | <thead> | ||||||
|  | <tr> | ||||||
|  | <th scope="col" class="org-left"> </th> | ||||||
|  | <th scope="col" class="org-left"><b>Formula</b></th> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(D_x\)</td> | ||||||
|  | <td class="org-left">(1 + 4 + 7 + 10)/4</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(D_y\)</td> | ||||||
|  | <td class="org-left">(2 + 5 + 8 + 11)/4</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(D_z\)</td> | ||||||
|  | <td class="org-left">(3 + 6 + 9 + 12)/4</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(R_x\)</td> | ||||||
|  | <td class="org-left">(1 - 9)/A</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(R_y\)</td> | ||||||
|  | <td class="org-left">(6 - 12)/B</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(R_z\)</td> | ||||||
|  | <td class="org-left">(7 - 1)/A, (11 - 5)/B</td> | ||||||
|  | </tr> | ||||||
|  | </tbody> | ||||||
|  | </table> | ||||||
|  | </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 class="outline-text-3" id="text-1-2"> | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <col  class="org-right" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | </colgroup> | ||||||
|  | <thead> | ||||||
|  | <tr> | ||||||
|  | <th scope="col" class="org-right"><b>Num</b></th> | ||||||
|  | <th scope="col" class="org-left"><b>Direction</b></th> | ||||||
|  | <th scope="col" class="org-left"><b>Position</b></th> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">1</td> | ||||||
|  | <td class="org-left">-Y</td> | ||||||
|  | <td class="org-left">[0, +A, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">2</td> | ||||||
|  | <td class="org-left">-Z</td> | ||||||
|  | <td class="org-left">[0, +A, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">3</td> | ||||||
|  | <td class="org-left">X</td> | ||||||
|  | <td class="org-left">[-B, 0, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">4</td> | ||||||
|  | <td class="org-left">-Z</td> | ||||||
|  | <td class="org-left">[-B, 0, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">5</td> | ||||||
|  | <td class="org-left">Y</td> | ||||||
|  | <td class="org-left">[0, -A, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">6</td> | ||||||
|  | <td class="org-left">-Z</td> | ||||||
|  | <td class="org-left">[0, -A, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">7</td> | ||||||
|  | <td class="org-left">-X</td> | ||||||
|  | <td class="org-left">[+B, 0, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">8</td> | ||||||
|  | <td class="org-left">-Z</td> | ||||||
|  | <td class="org-left">[+B, 0, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">9</td> | ||||||
|  | <td class="org-left">-X</td> | ||||||
|  | <td class="org-left">[0, -A, 0]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-right">10</td> | ||||||
|  | <td class="org-left">-X</td> | ||||||
|  | <td class="org-left">[0, +A, 0]</td> | ||||||
|  | </tr> | ||||||
|  | </tbody> | ||||||
|  | </table> | ||||||
|  | 
 | ||||||
|  | <p> | ||||||
|  | From hammer blows to pure forces / torques: | ||||||
|  | </p> | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | 
 | ||||||
|  | <col  class="org-left" /> | ||||||
|  | </colgroup> | ||||||
|  | <thead> | ||||||
|  | <tr> | ||||||
|  | <th scope="col" class="org-left"> </th> | ||||||
|  | <th scope="col" class="org-left"><b>Formula</b></th> | ||||||
|  | <th scope="col" class="org-left">Alternative</th> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(F_x\)</td> | ||||||
|  | <td class="org-left">+3</td> | ||||||
|  | <td class="org-left">-7</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(F_y\)</td> | ||||||
|  | <td class="org-left">-1</td> | ||||||
|  | <td class="org-left">+5</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(F_z\)</td> | ||||||
|  | <td class="org-left">-(2 + 6)/2</td> | ||||||
|  | <td class="org-left">-(4 + 8)/2</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(M_x\)</td> | ||||||
|  | <td class="org-left">A/2*(2 - 6)</td> | ||||||
|  | <td class="org-left"> </td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(M_y\)</td> | ||||||
|  | <td class="org-left">B/2*(8 - 4)</td> | ||||||
|  | <td class="org-left"> </td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(M_z\)</td> | ||||||
|  | <td class="org-left">A/2*(10 - 9)</td> | ||||||
|  | <td class="org-left"> </td> | ||||||
|  | </tr> | ||||||
|  | </tbody> | ||||||
|  | </table> | ||||||
|  | </div> | ||||||
|  | </div> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <div id="outline-container-org945c638" class="outline-2"> | ||||||
|  | <h2 id="org945c638"><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 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> | ||||||
|  | </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 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'; | ||||||
|  | 
 | ||||||
|  | A = 0.14; | ||||||
|  | B = 0.14; | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <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; | ||||||
|  | 
 | ||||||
|  | % 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; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | % 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)); | ||||||
|  | 
 | ||||||
|  | % 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)); | ||||||
|  | 
 | ||||||
|  | % 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)); | ||||||
|  | 
 | ||||||
|  | % 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)); | ||||||
|  | </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 class="outline-text-3" id="text-2-3"> | ||||||
|  | <div class="org-src-container"> | ||||||
|  | <pre class="src src-matlab">figure; | ||||||
|  | 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)), '.') | ||||||
|  | hold off; | ||||||
|  | set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  | ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  | ylim([1e-9, 2e-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$') | ||||||
|  | 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'); | ||||||
|  | 
 | ||||||
|  | linkaxes([ax1,ax2],'x'); | ||||||
|  | xlim([30, 300]); | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div id="org7d6f1be" 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; | ||||||
|  | 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)), '.') | ||||||
|  | hold off; | ||||||
|  | set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  | ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]); | ||||||
|  | ylim([1e-9, 2e-6]); | ||||||
|  | 
 | ||||||
|  | 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$') | ||||||
|  | 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'); | ||||||
|  | 
 | ||||||
|  | linkaxes([ax1,ax2],'x'); | ||||||
|  | xlim([30, 300]); | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div id="org445a1e9" 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> | ||||||
|  | 
 | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <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> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_x\)</td> | ||||||
|  | <td class="org-right">1e7</td> | ||||||
|  | <td class="org-left">[N/m]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_y\)</td> | ||||||
|  | <td class="org-right">1e7</td> | ||||||
|  | <td class="org-left">[N/m]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_z\)</td> | ||||||
|  | <td class="org-right">2e8</td> | ||||||
|  | <td class="org-left">[N/m]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_{R_x}\)</td> | ||||||
|  | <td class="org-right">?</td> | ||||||
|  | <td class="org-left">[Nm/rad]</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> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_{R_z}\)</td> | ||||||
|  | <td class="org-right">1e7</td> | ||||||
|  | <td class="org-left">[Nm/rad]</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 class="org-src-container"> | ||||||
|  | <pre class="src src-matlab">load('./mat/model.mat', 'Gm'); | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <div class="org-src-container"> | ||||||
|  | <pre class="src src-matlab">figure; | ||||||
|  | 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'))), '-') | ||||||
|  | hold off; | ||||||
|  | set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  | ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  | ylim([1e-9, 2e-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') | ||||||
|  | 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'); | ||||||
|  | 
 | ||||||
|  | linkaxes([ax1,ax2],'x'); | ||||||
|  | xlim([30, 300]); | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div id="org40c0b41" 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; | ||||||
|  | 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'))), '-') | ||||||
|  | hold off; | ||||||
|  | set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  | ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]); | ||||||
|  | % ylim([1e-9, 2e-6]); | ||||||
|  | 
 | ||||||
|  | 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') | ||||||
|  | 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'); | ||||||
|  | 
 | ||||||
|  | linkaxes([ax1,ax2],'x'); | ||||||
|  | xlim([30, 300]); | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div id="org644f661" 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> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <colgroup> | ||||||
|  | <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> | ||||||
|  | </tr> | ||||||
|  | </thead> | ||||||
|  | <tbody> | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_x\)</td> | ||||||
|  | <td class="org-right">1e7</td> | ||||||
|  | <td class="org-left">[N/m]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_y\)</td> | ||||||
|  | <td class="org-right">1e7</td> | ||||||
|  | <td class="org-left">[N/m]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_z\)</td> | ||||||
|  | <td class="org-right">2e8</td> | ||||||
|  | <td class="org-left">[N/m]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_{R_x}\)</td> | ||||||
|  | <td class="org-right">5e7</td> | ||||||
|  | <td class="org-left">[Nm/rad]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_{R_y}\)</td> | ||||||
|  | <td class="org-right">3e7</td> | ||||||
|  | <td class="org-left">[Nm/rad]</td> | ||||||
|  | </tr> | ||||||
|  | 
 | ||||||
|  | <tr> | ||||||
|  | <td class="org-left">\(K_{R_z}\)</td> | ||||||
|  | <td class="org-right">2e7</td> | ||||||
|  | <td class="org-left">[Nm/rad]</td> | ||||||
|  | </tr> | ||||||
|  | </tbody> | ||||||
|  | </table> | ||||||
|  | </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 class="org-src-container"> | ||||||
|  | <pre class="src src-matlab">figure; | ||||||
|  | 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'))), '-') | ||||||
|  | hold off; | ||||||
|  | set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  | ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  | ylim([1e-9, 2e-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') | ||||||
|  | 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'); | ||||||
|  | 
 | ||||||
|  | linkaxes([ax1,ax2],'x'); | ||||||
|  | xlim([30, 300]); | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | <div class="org-src-container"> | ||||||
|  | <pre class="src src-matlab">figure; | ||||||
|  | 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'))), '-') | ||||||
|  | hold off; | ||||||
|  | set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  | ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  | ylim([1e-9, 2e-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') | ||||||
|  | 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'); | ||||||
|  | 
 | ||||||
|  | linkaxes([ax1,ax2],'x'); | ||||||
|  | xlim([30, 300]); | ||||||
|  | </pre> | ||||||
|  | </div> | ||||||
|  | </div> | ||||||
|  | </div> | ||||||
|  | </div> | ||||||
|  | </div> | ||||||
|  | <div id="postamble" class="status"> | ||||||
|  | <p class="author">Author: Dehaeze Thomas</p> | ||||||
|  | <p class="date">Created: 2020-08-18 mar. 12:57</p> | ||||||
|  | </div> | ||||||
|  | </body> | ||||||
|  | </html> | ||||||
							
								
								
									
										473
									
								
								micro-station-compliance/index.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										473
									
								
								micro-station-compliance/index.org
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,473 @@ | |||||||
|  | #+TITLE: Compliance Measurement of the Micro Station | ||||||
|  | :DRAWER: | ||||||
|  | #+STARTUP: overview | ||||||
|  |  | ||||||
|  | #+LANGUAGE: en | ||||||
|  | #+EMAIL: dehaeze.thomas@gmail.com | ||||||
|  | #+AUTHOR: Dehaeze Thomas | ||||||
|  |  | ||||||
|  | #+HTML_LINK_HOME: ../index.html | ||||||
|  | #+HTML_LINK_UP: ../index.html | ||||||
|  |  | ||||||
|  | #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> | ||||||
|  | #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> | ||||||
|  | #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/> | ||||||
|  | #+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script> | ||||||
|  | #+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script> | ||||||
|  | #+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script> | ||||||
|  | #+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script> | ||||||
|  |  | ||||||
|  | #+HTML_MATHJAX: align: center tagside: right font: TeX | ||||||
|  |  | ||||||
|  | #+PROPERTY: header-args:matlab  :session *MATLAB* | ||||||
|  | #+PROPERTY: header-args:matlab+ :comments org | ||||||
|  | #+PROPERTY: header-args:matlab+ :results none | ||||||
|  | #+PROPERTY: header-args:matlab+ :exports both | ||||||
|  | #+PROPERTY: header-args:matlab+ :eval no-export | ||||||
|  | #+PROPERTY: header-args:matlab+ :output-dir figs | ||||||
|  |  | ||||||
|  | #+PROPERTY: header-args:shell  :eval no-export | ||||||
|  | :END: | ||||||
|  |  | ||||||
|  | * Setup | ||||||
|  | ** Position of inertial sensors on top of the micro-hexapod | ||||||
|  | Orientation is relative to the frame determined by the X-ray | ||||||
|  | | *Num* | *Position* | *Orientation* | *Sensibility* | *Channels* | | ||||||
|  | |-------+------------+---------------+---------------+------------| | ||||||
|  | |     1 | [0, +A, 0] | [x, y, z]     | 1V/g          |        1-3 | | ||||||
|  | |     2 | [-B, 0, 0] | [x, y, z]     | 1V/g          |        4-6 | | ||||||
|  | |     3 | [0, -A, 0] | [x, y, z]     | 0.1V/g        |        7-9 | | ||||||
|  | |     4 | [+B, 0, 0] | [x, y, z]     | 1V/g          |      10-12 | | ||||||
|  |  | ||||||
|  | Instrumented Hammer: | ||||||
|  | - Channel 13 | ||||||
|  | - Sensibility: 230 uV/N | ||||||
|  |  | ||||||
|  | | Acc Number | Dir | Channel Number | | ||||||
|  | |------------+-----+----------------| | ||||||
|  | |          1 | x   |              1 | | ||||||
|  | |          1 | y   |              2 | | ||||||
|  | |          1 | z   |              3 | | ||||||
|  | |          2 | x   |              4 | | ||||||
|  | |          2 | y   |              5 | | ||||||
|  | |          2 | z   |              6 | | ||||||
|  | |          3 | x   |              7 | | ||||||
|  | |          3 | y   |              8 | | ||||||
|  | |          3 | z   |              9 | | ||||||
|  | |          4 | x   |             10 | | ||||||
|  | |          4 | y   |             11 | | ||||||
|  | |          4 | z   |             12 | | ||||||
|  | |     Hammer |     |             13 | | ||||||
|  |  | ||||||
|  | From the acceleration measurement of the 4 accelerometers, we can compute the translations and rotations: | ||||||
|  | |       | *Formula*                | | ||||||
|  | |-------+--------------------------| | ||||||
|  | | $D_x$ | (1x + 2x + 3x + 4x)/4    | | ||||||
|  | | $D_y$ | (1y + 2y + 3y + 4y)/4    | | ||||||
|  | | $D_z$ | (1z + 2z + 3z + 4z)/4    | | ||||||
|  | | $R_x$ | (1z - 3z)/A              | | ||||||
|  | | $R_y$ | (2z - 4z)/B              | | ||||||
|  | | $R_z$ | (3x - 1x)/A, (4y - 2y)/B | | ||||||
|  |  | ||||||
|  |  | ||||||
|  | |       | *Formula*             | | ||||||
|  | |-------+-----------------------| | ||||||
|  | | $D_x$ | (1 + 4 + 7 + 10)/4    | | ||||||
|  | | $D_y$ | (2 + 5 + 8 + 11)/4    | | ||||||
|  | | $D_z$ | (3 + 6 + 9 + 12)/4    | | ||||||
|  | | $R_x$ | (1 - 9)/A             | | ||||||
|  | | $R_y$ | (6 - 12)/B            | | ||||||
|  | | $R_z$ | (7 - 1)/A, (11 - 5)/B | | ||||||
|  |  | ||||||
|  | ** Hammer blow position/orientation | ||||||
|  |  | ||||||
|  | | *Num* | *Direction* | *Position* | | ||||||
|  | |-------+-------------+------------| | ||||||
|  | |     1 | -Y          | [0, +A, 0] | | ||||||
|  | |     2 | -Z          | [0, +A, 0] | | ||||||
|  | |     3 | X           | [-B, 0, 0] | | ||||||
|  | |     4 | -Z          | [-B, 0, 0] | | ||||||
|  | |     5 | Y           | [0, -A, 0] | | ||||||
|  | |     6 | -Z          | [0, -A, 0] | | ||||||
|  | |     7 | -X          | [+B, 0, 0] | | ||||||
|  | |     8 | -Z          | [+B, 0, 0] | | ||||||
|  | |     9 | -X          | [0, -A, 0] | | ||||||
|  | |    10 | -X          | [0, +A, 0] | | ||||||
|  |  | ||||||
|  | From hammer blows to pure forces / torques: | ||||||
|  | |       | *Formula*    | Alternative | | ||||||
|  | |-------+--------------+-------------| | ||||||
|  | | $F_x$ | +3           |          -7 | | ||||||
|  | | $F_y$ | -1           |          +5 | | ||||||
|  | | $F_z$ | -(2 + 6)/2   |  -(4 + 8)/2 | | ||||||
|  | | $M_x$ | A/2*(2 - 6)  |             | | ||||||
|  | | $M_y$ | B/2*(8 - 4)  |             | | ||||||
|  | | $M_z$ | A/2*(10 - 9) |             | | ||||||
|  |  | ||||||
|  | * Results | ||||||
|  | ** 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>> | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_src matlab :exports none :results silent :noweb yes | ||||||
|  |   <<matlab-init>> | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | ** Load Data | ||||||
|  | #+begin_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'); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | ** Compute Transfer Functions | ||||||
|  | #+begin_src matlab | ||||||
|  |   freqs = m3.FFT1_H1_1_13_X_Val; | ||||||
|  |   w = 2*pi*freqs'; | ||||||
|  |  | ||||||
|  |   A = 0.14; | ||||||
|  |   B = 0.14; | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_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; | ||||||
|  |  | ||||||
|  |   % 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; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   % 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)); | ||||||
|  |  | ||||||
|  |   % 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)); | ||||||
|  |  | ||||||
|  |   % 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)); | ||||||
|  |  | ||||||
|  |   % 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)); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | ** Diagonal Dynamics | ||||||
|  | #+begin_src matlab | ||||||
|  |   figure; | ||||||
|  |   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)), '.') | ||||||
|  |   hold off; | ||||||
|  |   set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  |   ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  |   ylim([1e-9, 2e-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$') | ||||||
|  |   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'); | ||||||
|  |  | ||||||
|  |   linkaxes([ax1,ax2],'x'); | ||||||
|  |   xlim([30, 300]); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_src matlab :tangle no :exports results :results file replace | ||||||
|  |   exportFig('figs/compliance_diagonal_translations.pdf', 'width', 'full', 'height', 'full'); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+name: fig:compliance_diagonal_translations | ||||||
|  | #+caption: Dynamics from Forces to Translations | ||||||
|  | #+RESULTS: | ||||||
|  | [[file:figs/compliance_diagonal_translations.png]] | ||||||
|  |  | ||||||
|  | #+begin_src matlab | ||||||
|  |   figure; | ||||||
|  |   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)), '.') | ||||||
|  |   hold off; | ||||||
|  |   set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  |   ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]); | ||||||
|  |   ylim([1e-9, 2e-6]); | ||||||
|  |  | ||||||
|  |   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$') | ||||||
|  |   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'); | ||||||
|  |  | ||||||
|  |   linkaxes([ax1,ax2],'x'); | ||||||
|  |   xlim([30, 300]); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_src matlab :tangle no :exports results :results file replace | ||||||
|  |   exportFig('figs/compliance_diagonal_rotations.pdf', 'width', 'full', 'height', 'full'); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+name: fig:compliance_diagonal_rotations | ||||||
|  | #+caption: Dynamics from Torques to Rotations | ||||||
|  | #+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] | | ||||||
|  |  | ||||||
|  | ** Compare with Model | ||||||
|  | #+begin_src matlab | ||||||
|  |   load('./mat/model.mat', 'Gm'); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_src matlab | ||||||
|  |   figure; | ||||||
|  |   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'))), '-') | ||||||
|  |   hold off; | ||||||
|  |   set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  |   ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  |   ylim([1e-9, 2e-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') | ||||||
|  |   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'); | ||||||
|  |  | ||||||
|  |   linkaxes([ax1,ax2],'x'); | ||||||
|  |   xlim([30, 300]); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_src matlab :tangle no :exports results :results file replace | ||||||
|  |   exportFig('figs/compliance_diagonal_translations_comp_model.pdf', 'width', 'full', 'height', 'full'); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+name: fig:compliance_diagonal_translations_comp_model | ||||||
|  | #+caption: Dynamics from Forces to Translations | ||||||
|  | #+RESULTS: | ||||||
|  | [[file:figs/compliance_diagonal_translations_comp_model.png]] | ||||||
|  |  | ||||||
|  | #+begin_src matlab | ||||||
|  |   figure; | ||||||
|  |   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'))), '-') | ||||||
|  |   hold off; | ||||||
|  |   set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  |   ylabel('Magnitude [rad/Nm]'); set(gca, 'XTickLabel',[]); | ||||||
|  |   % ylim([1e-9, 2e-6]); | ||||||
|  |  | ||||||
|  |   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') | ||||||
|  |   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'); | ||||||
|  |  | ||||||
|  |   linkaxes([ax1,ax2],'x'); | ||||||
|  |   xlim([30, 300]); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_src matlab :tangle no :exports results :results file replace | ||||||
|  |   exportFig('figs/compliance_diagonal_rotations_comp_model.pdf', 'width', 'full', 'height', 'full'); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+name: fig:compliance_diagonal_rotations_comp_model | ||||||
|  | #+caption: Dynamics from Torques to Rotations | ||||||
|  | #+RESULTS: | ||||||
|  | [[file:figs/compliance_diagonal_rotations_comp_model.png]] | ||||||
|  |  | ||||||
|  | |           | Stiffness | Unit     | | ||||||
|  | |-----------+-----------+----------| | ||||||
|  | | $K_x$     |       1e7 | [N/m]    | | ||||||
|  | | $K_y$     |       1e7 | [N/m]    | | ||||||
|  | | $K_z$     |       2e8 | [N/m]    | | ||||||
|  | | $K_{R_x}$ |       5e7 | [Nm/rad] | | ||||||
|  | | $K_{R_y}$ |       3e7 | [Nm/rad] | | ||||||
|  | | $K_{R_z}$ |       2e7 | [Nm/rad] | | ||||||
|  |  | ||||||
|  | ** Coupling Dynamics | ||||||
|  | #+begin_src matlab | ||||||
|  |   figure; | ||||||
|  |   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'))), '-') | ||||||
|  |   hold off; | ||||||
|  |   set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  |   ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  |   ylim([1e-9, 2e-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') | ||||||
|  |   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'); | ||||||
|  |  | ||||||
|  |   linkaxes([ax1,ax2],'x'); | ||||||
|  |   xlim([30, 300]); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | #+begin_src matlab | ||||||
|  |   figure; | ||||||
|  |   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'))), '-') | ||||||
|  |   hold off; | ||||||
|  |   set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); | ||||||
|  |   ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); | ||||||
|  |   ylim([1e-9, 2e-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') | ||||||
|  |   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'); | ||||||
|  |  | ||||||
|  |   linkaxes([ax1,ax2],'x'); | ||||||
|  |   xlim([30, 300]); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
							
								
								
									
										
											BIN
										
									
								
								micro-station-compliance/mat/model.mat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								micro-station-compliance/mat/model.mat
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user