io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<p>
Finally, we use the <code>linearize</code> Matlab function to extract a state space model from the simscape model.
</p>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
We show several plots representing the sensitivity to disturbances:
</p>
<ulclass="org-ul">
<li>in figure <ahref="#orgbfaf2d3">3</a> the transfer functions from ground motion \(D_w\) to the sample position \(D\) and the transfer function from direct force on the sample \(F_s\) to the sample position \(D\) are shown</li>
<li>in figure <ahref="#orge6ba7ee">4</a>, it is the effect of parasitic forces of the positioning stages (\(F_{ty}\) and \(F_{rz}\)) on the position \(D\) of the sample that are shown</li>
The effect of these disturbances on the distance \(D\) is computed below.
The PSD of the obtain distance \(D\) due to each of the perturbation is shown in figure <ahref="#org1c1d9b8">5</a> and the Cumulative Amplitude Spectrum is shown in figure <ahref="#org2f678d5">6</a>.
</p>
<p>
The Root Mean Square value of the obtained displacement \(D\) is computed below and can be determined from the figure <ahref="#org2f678d5">6</a>.
<p><spanclass="figure-number">Figure 5: </span>PSD of the effect of disturbances on \(D\) (<ahref="./figs/uniaxial-psd-dist.png">png</a>, <ahref="./figs/uniaxial-psd-dist.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 6: </span>CAS of the effect of disturbances on \(D\) (<ahref="./figs/uniaxial-cas-dist.png">png</a>, <ahref="./figs/uniaxial-cas-dist.pdf">pdf</a>)</p>
The transfer function from the force \(F\) applied by the nano-hexapod to the position of the sample \(D\) is shown in figure <ahref="#orgaaf3fcb">7</a>.
<p><spanclass="figure-number">Figure 7: </span>Bode plot of the Plant (<ahref="./figs/uniaxial-plant.png">png</a>, <ahref="./figs/uniaxial-plant.pdf">pdf</a>)</p>
Let’s look at the transfer function from actuator forces in the nano-hexapod to the force sensor in the nano-hexapod legs for all 6 pairs of actuator/sensor.
<p><spanclass="figure-number">Figure 9: </span>Transfer function from forces applied in the legs to force sensor (<ahref="./figs/uniaxial_iff_plant.png">png</a>, <ahref="./figs/uniaxial_iff_plant.pdf">pdf</a>)</p>
</div>
<p>
The controller for each pair of actuator/sensor is:
<p><spanclass="figure-number">Figure 10: </span>Loop Gain for the Integral Force Feedback (<ahref="./figs/uniaxial_iff_open_loop.png">png</a>, <ahref="./figs/uniaxial_iff_open_loop.pdf">pdf</a>)</p>
io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
<p><spanclass="figure-number">Figure 11: </span>Sensitivity to disturbance once the IFF controller is applied to the system (<ahref="./figs/uniaxial_sensitivity_dist_iff.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_iff.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 12: </span>Sensitivity to force disturbances in various stages when IFF is applied (<ahref="./figs/uniaxial_sensitivity_dist_stages_iff.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_stages_iff.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 13: </span>Damped Plant after IFF is applied (<ahref="./figs/uniaxial_plant_iff_damped.png">png</a>, <ahref="./figs/uniaxial_plant_iff_damped.pdf">pdf</a>)</p>
Let’s look at the transfer function from actuator forces in the nano-hexapod to the measured displacement of the actuator for all 6 pairs of actuator/sensor.
<p><spanclass="figure-number">Figure 15: </span>Transfer function from forces applied in the legs to leg displacement sensor (<ahref="./figs/uniaxial_rmc_plant.png">png</a>, <ahref="./figs/uniaxial_rmc_plant.pdf">pdf</a>)</p>
</div>
<p>
The Relative Motion Controller is defined below.
A Low pass Filter is added to make the controller transfer function proper.
<p><spanclass="figure-number">Figure 16: </span>Loop Gain for the Integral Force Feedback (<ahref="./figs/uniaxial_rmc_open_loop.png">png</a>, <ahref="./figs/uniaxial_rmc_open_loop.pdf">pdf</a>)</p>
io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
<p><spanclass="figure-number">Figure 17: </span>Sensitivity to disturbance once the RMC controller is applied to the system (<ahref="./figs/uniaxial_sensitivity_dist_rmc.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_rmc.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 18: </span>Sensitivity to force disturbances in various stages when RMC is applied (<ahref="./figs/uniaxial_sensitivity_dist_stages_rmc.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_stages_rmc.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 19: </span>Damped Plant after RMC is applied (<ahref="./figs/uniaxial_plant_rmc_damped.png">png</a>, <ahref="./figs/uniaxial_plant_rmc_damped.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 21: </span>Transfer function from forces applied in the legs to leg velocity sensor (<ahref="./figs/uniaxial_dvf_plant.png">png</a>, <ahref="./figs/uniaxial_dvf_plant.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 22: </span>Transfer function from forces applied in the legs to leg velocity sensor (<ahref="./figs/uniaxial_dvf_loop_gain.png">png</a>, <ahref="./figs/uniaxial_dvf_loop_gain.pdf">pdf</a>)</p>
io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
<p><spanclass="figure-number">Figure 23: </span>Sensitivity to disturbance once the DVF controller is applied to the system (<ahref="./figs/uniaxial_sensitivity_dist_dvf.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_dvf.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 24: </span>Sensitivity to force disturbances in various stages when DVF is applied (<ahref="./figs/uniaxial_sensitivity_dist_stages_dvf.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_stages_dvf.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 25: </span>Damped Plant after DVF is applied (<ahref="./figs/uniaxial_plant_dvf_damped.png">png</a>, <ahref="./figs/uniaxial_plant_dvf_damped.pdf">pdf</a>)</p>
io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<p>
Finally, we use the <code>linearize</code> Matlab function to extract a state space model from the simscape model.
</p>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
Let’s look at the transfer function from actuator forces in the nano-hexapod to the force sensor in the nano-hexapod legs for all 6 pairs of actuator/sensor.
<p><spanclass="figure-number">Figure 27: </span>Transfer function from forces applied in the legs to force sensor (<ahref="./figs/uniaxial_cedrat_plant.png">png</a>, <ahref="./figs/uniaxial_cedrat_plant.pdf">pdf</a>)</p>
</div>
<p>
The controller for each pair of actuator/sensor is:
<p><spanclass="figure-number">Figure 28: </span>Loop Gain for the Integral Force Feedback (<ahref="./figs/uniaxial_cedrat_open_loop.png">png</a>, <ahref="./figs/uniaxial_cedrat_open_loop.pdf">pdf</a>)</p>
io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
<p><spanclass="figure-number">Figure 29: </span>Sensitivity to disturbance once the CEDRAT controller is applied to the system (<ahref="./figs/uniaxial_sensitivity_dist_cedrat.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_cedrat.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 30: </span>Sensitivity to force disturbances in various stages when CEDRAT is applied (<ahref="./figs/uniaxial_sensitivity_dist_stages_cedrat.png">png</a>, <ahref="./figs/uniaxial_sensitivity_dist_stages_cedrat.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 31: </span>Damped Plant after CEDRAT is applied (<ahref="./figs/uniaxial_plant_cedrat_damped.png">png</a>, <ahref="./figs/uniaxial_plant_cedrat_damped.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 34: </span>Sensitivity to force disturbances - Comparison (<ahref="./figs/uniaxial_sensitivity_fty.png">png</a>, <ahref="./figs/uniaxial_sensitivity_fty.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 35: </span>Sensitivity to force disturbances - Comparison (<ahref="./figs/uniaxial_sensitivity_frz.png">png</a>, <ahref="./figs/uniaxial_sensitivity_frz.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 36: </span>Comparison of the Cumulative Amplitude Spectrum of \(D\) for different active damping techniques (<ahref="./figs/uniaxial-comp-cas-dist.png">png</a>, <ahref="./figs/uniaxial-comp-cas-dist.pdf">pdf</a>)</p>
</div>
<p>
The obtained Root Mean Square Value for each active damping technique is shown below.
<captionclass="t-above"><spanclass="table-number">Table 1:</span> Obtain Root Mean Square value of \(D\) for each Active Damping Technique applied</caption>
<colgroup>
<colclass="org-left"/>
<colclass="org-right"/>
</colgroup>
<thead>
<tr>
<thscope="col"class="org-left"> </th>
<thscope="col"class="org-right">D [m rms]</th>
</tr>
</thead>
<tbody>
<tr>
<tdclass="org-left">OL</td>
<tdclass="org-right">3.38e-06</td>
</tr>
<tr>
<tdclass="org-left">IFF</td>
<tdclass="org-right">3.40e-06</td>
</tr>
<tr>
<tdclass="org-left">RMC</td>
<tdclass="org-right">3.37e-06</td>
</tr>
<tr>
<tdclass="org-left">DVF</td>
<tdclass="org-right">3.38e-06</td>
</tr>
</tbody>
</table>
<p>
It is important to note that the effect of direct forces applied to the sample are not taken into account here.
io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<p>
Finally, we use the <code>linearize</code> Matlab function to extract a state space model from the simscape model.
</p>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
We show several plots representing the sensitivity to disturbances:
</p>
<ulclass="org-ul">
<li>in figure <ahref="#orgc80c94c">38</a> the transfer functions from ground motion \(D_w\) to the sample position \(D\) and the transfer function from direct force on the sample \(F_s\) to the sample position \(D\) are shown</li>
<li>in figure <ahref="#org96743f2">39</a>, it is the effect of parasitic forces of the positioning stages (\(F_{ty}\) and \(F_{rz}\)) on the position \(D\) of the sample that are shown</li>
The effect of these disturbances on the distance \(D\) is computed below.
The PSD of the obtain distance \(D\) due to each of the perturbation is shown in figure <ahref="#orgd3fd39b">40</a> and the Cumulative Amplitude Spectrum is shown in figure <ahref="#org2ccc8a7">41</a>.
</p>
<p>
The Root Mean Square value of the obtained displacement \(D\) is computed below and can be determined from the figure <ahref="#org2ccc8a7">41</a>.
<p><spanclass="figure-number">Figure 40: </span>PSD of the displacement \(D\) due to disturbances (<ahref="./figs/uniaxial-vc-psd-dist.png">png</a>, <ahref="./figs/uniaxial-vc-psd-dist.pdf">pdf</a>)</p>
<p><spanclass="figure-number">Figure 41: </span>CAS of the displacement \(D\) due the disturbances (<ahref="./figs/uniaxial-vc-cas-dist.png">png</a>, <ahref="./figs/uniaxial-vc-cas-dist.pdf">pdf</a>)</p>
</div>
<divclass="important">
<p>
Even though the RMS value of the displacement \(D\) is lower when using a piezo-electric actuator, the motion is mainly due to high frequency disturbances which are more difficult to control (an higher control bandwidth is required).
</p>
<p>
Thus, it may be desirable to use voice coil actuators.
<p><spanclass="figure-number">Figure 42: </span>Open Loop Transfer Function for IFF control when using a voice coil actuator (<ahref="./figs/uniaxial_iff_vc_open_loop.png">png</a>, <ahref="./figs/uniaxial_iff_vc_open_loop.pdf">pdf</a>)</p>
io<spanclass="org-type">(2) </span>= linio([mdl, <spanclass="org-string">'/Fs'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied on the sample</span>
io<spanclass="org-type">(3) </span>= linio([mdl, <spanclass="org-string">'/Fnl'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Force applied by the NASS</span>
io<spanclass="org-type">(4) </span>= linio([mdl, <spanclass="org-string">'/Fdty'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Ty</span>
io<spanclass="org-type">(5) </span>= linio([mdl, <spanclass="org-string">'/Fdrz'</span>], 1, <spanclass="org-string">'input'</span>); <spanclass="org-comment">% Parasitic force Rz</span>
io<spanclass="org-type">(6) </span>= linio([mdl, <spanclass="org-string">'/Dsm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Displacement of the sample</span>
io<spanclass="org-type">(7) </span>= linio([mdl, <spanclass="org-string">'/Fnlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Force sensor in NASS's legs</span>
io<spanclass="org-type">(9) </span>= linio([mdl, <spanclass="org-string">'/Dgm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Absolute displacement of the granite</span>
io<spanclass="org-type">(10) </span>= linio([mdl, <spanclass="org-string">'/Vlm'</span>], 1, <spanclass="org-string">'output'</span>); <spanclass="org-comment">% Measured absolute velocity of the top NASS platform</span>
</pre>
</div>
<divclass="org-src-container">
<preclass="src src-matlab"><spanclass="org-matlab-cellbreak"><spanclass="org-comment">%% Run the linearization</span></span>
<p><spanclass="figure-number">Figure 43: </span>CAS of the displacement \(D\) (<ahref="./figs/uniaxial-cas-iff-vc.png">png</a>, <ahref="./figs/uniaxial-cas-iff-vc.pdf">pdf</a>)</p>