diff --git a/docs/figs/noise_budget_ndL_max_asd.pdf b/docs/figs/noise_budget_ndL_max_asd.pdf new file mode 100644 index 0000000..61efba9 Binary files /dev/null and b/docs/figs/noise_budget_ndL_max_asd.pdf differ diff --git a/docs/figs/noise_budget_ndL_max_asd.png b/docs/figs/noise_budget_ndL_max_asd.png new file mode 100644 index 0000000..0a37b2a Binary files /dev/null and b/docs/figs/noise_budget_ndL_max_asd.png differ diff --git a/docs/figs/relative_motion_sensor_noise_ASD_example.pdf b/docs/figs/relative_motion_sensor_noise_ASD_example.pdf new file mode 100644 index 0000000..82bc770 Binary files /dev/null and b/docs/figs/relative_motion_sensor_noise_ASD_example.pdf differ diff --git a/docs/figs/relative_motion_sensor_noise_ASD_example.png b/docs/figs/relative_motion_sensor_noise_ASD_example.png new file mode 100644 index 0000000..bb30dcc Binary files /dev/null and b/docs/figs/relative_motion_sensor_noise_ASD_example.png differ diff --git a/docs/index.html b/docs/index.html index ad27033..8789986 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,10 +1,9 @@ - - + Simscape Model of the Nano-Active-Stabilization-System @@ -41,9 +40,10 @@
  • 12. Effect of Experimental conditions on the plant dynamics (link)
  • 13. Optimal Stiffness of the nano-hexapod to reduce plant uncertainty (link)
  • 14. Effect of flexible joints on the plant dynamics (link)
  • -
  • 15. Active Damping Techniques on the full Simscape Model (link)
  • -
  • 16. Control of the Nano-Active-Stabilization-System (link)
  • -
  • 17. Useful Matlab Functions (link)
  • +
  • 15. Dynamic Noise Budgeting (link)
  • +
  • 16. Active Damping Techniques on the full Simscape Model (link)
  • +
  • 17. Control of the Nano-Active-Stabilization-System (link)
  • +
  • 18. Useful Matlab Functions (link)
  • @@ -216,18 +216,27 @@ Conclusion are drawn on the required stiffness properties of the flexible joints -
    -

    15 Active Damping Techniques on the full Simscape Model (link)

    +
    +

    15 Dynamic Noise Budgeting (link)

    +The maximum allowed noise of the sensors in the system are estimated using a Dynamic Noise Budgeting. +

    +
    +
    + +
    +

    16 Active Damping Techniques on the full Simscape Model (link)

    +
    +

    Active damping techniques are applied to the full Simscape model.

    -

    16 Control of the Nano-Active-Stabilization-System (link)

    -
    +

    17 Control of the Nano-Active-Stabilization-System (link)

    +

    In this file are gathered all studies about the control the Nano-Active-Stabilization-System.

    @@ -235,8 +244,8 @@ In this file are gathered all studies about the control the Nano-Active-Stabiliz
    -

    17 Useful Matlab Functions (link)

    -
    +

    18 Useful Matlab Functions (link)

    +

    Many matlab functions are shared among all the files of the projects.

    @@ -249,7 +258,7 @@ These functions are all defined here.

    Author: Dehaeze Thomas

    -

    Created: 2020-05-05 mar. 11:38

    +

    Created: 2020-07-31 ven. 18:00

    diff --git a/docs/noise_budgeting.html b/docs/noise_budgeting.html new file mode 100644 index 0000000..880d828 --- /dev/null +++ b/docs/noise_budgeting.html @@ -0,0 +1,362 @@ + + + + + + +Noise Budgeting + + + + + + + + + + + + +
    + UP + | + HOME +
    +

    Noise Budgeting

    + + +
    +

    1 Maximum Noise of the Relative Motion Sensors

    +
    +
    +
    +

    1.1 Initialization

    +
    +
    +
    open('nass_model.slx');
    +
    +
    + +
    +
    initializeGround();
    +initializeGranite();
    +initializeTy();
    +initializeRy();
    +initializeRz();
    +initializeMicroHexapod();
    +initializeAxisc();
    +initializeMirror();
    +
    +initializeSimscapeConfiguration();
    +initializeDisturbances('enable', false);
    +initializeLoggingConfiguration('log', 'none');
    +
    +initializeController('type', 'hac-dvf');
    +
    +
    + +

    +We set the stiffness of the payload fixation: +

    +
    +
    Kp = 1e8; % [N/m]
    +
    +
    + +
    +
    initializeNanoHexapod('k', 1e5, 'c', 2e2);
    +
    +Ms = 50;
    +initializeSample('mass', Ms, 'freq', sqrt(Kp/Ms)/2/pi*ones(6,1));
    +
    +
    + +
    +
    initializeReferences('Rz_type', 'rotating-not-filtered', 'Rz_period', Ms);
    +
    +
    +
    +
    + +
    +

    1.2 Control System

    +
    +
    +
    Kdvf = 5e3*s/(1+s/2/pi/1e3)*eye(6);
    +
    +
    + +
    +
    h = 2.0;
    +Kl = 2e7 * eye(6) * ...
    +     1/h*(s/(2*pi*100/h) + 1)/(s/(2*pi*100*h) + 1) * ...
    +     1/h*(s/(2*pi*200/h) + 1)/(s/(2*pi*200*h) + 1) * ...
    +     (s/2/pi/10 + 1)/(s/2/pi/10) * ...
    +     1/(1 + s/2/pi/300);
    +
    +
    + +
    +
    load('mat/stages.mat', 'nano_hexapod');
    +K = Kl*nano_hexapod.kinematics.J*diag([1, 1, 1, 1, 1, 0]);
    +
    +
    + +
    +
    %% Run the linearization
    +G = linearize(mdl, io);
    +G.InputName  = {'ndL1', 'ndL2', 'ndL3', 'ndL4', 'ndL5', 'ndL6'};
    +G.OutputName = {'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'};
    +
    +
    +
    +
    + +
    +

    1.3 Maximum induced vibration’s ASD

    +
    +

    +Required maximum induced ASD of the sample’s vibration due to the relative motion sensor noise. +\[ \bm{\Gamma}_x(\omega) = \begin{bmatrix} \Gamma_x(\omega) & \Gamma_y(\omega) & \Gamma_{R_x}(\omega) & \Gamma_{R_y}(\omega) \end{bmatrix} \] +

    + +
    +
    Gamma_x = [(1e-9)/(1 + s/2/pi/100); % Dx
    +           (1e-9)/(1 + s/2/pi/100); % Dy
    +           (1e-9)/(1 + s/2/pi/100); % Dz
    +           (2e-8)/(1 + s/2/pi/100); % Rx
    +           (2e-8)/(1 + s/2/pi/100)]; % Ry
    +
    +
    + +
    +
    freqs = logspace(0, 3, 1000);
    +
    +
    + +

    +Corresponding RMS value in [nm rms, nrad rms] +

    +
    +
    1e9*sqrt(trapz(freqs, (abs(squeeze(freqresp(Gamma_x, freqs, 'Hz')))').^2))
    +
    +
    + + + +++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Specifications
    Dx [nm]12.1
    Dy [nm]12.1
    Dz [nm]12.1
    Rx [nrad]241.8
    Ry [nrad]241.8
    +
    +
    + +
    +

    1.4 Computation of the maximum relative motion sensor noise

    +
    +

    +Let’s note \(G\) the transfer function from the 6 sensor noise \(n\) to the 6dof pose error \(x\). +We have: +\[ x_i = \sum_{j=1}^6 G_{ij}(s) n_j, \quad i = 1 \dots 5 \] +In terms of ASD: +\[ \Gamma_{x_i}(\omega) = \sum_{j=1}^6 |G_{ij}(j\omega)|^2 \Gamma_{n_j}(\omega), \quad i = 1 \dots 5 \] +

    + +

    +Let’s suppose that the ASD of all the sensor noise are equal: +\[ \Gamma_{n_j} = \Gamma_{n}, \quad j = 1 \dots 6 \] +

    + +

    +We then have an upper bound of the sensor noise for each of the considered motion errors: +\[ \Gamma_{n_i, \text{max}}(\omega) = \frac{\Gamma_{n_i}(\omega)}{\sum_{j=1}^6 |G_{ij}(j\omega)|^2}, \quad i = 1 \dots 5 \] +

    + +
    +
    Gamma_ndL = zeros(5, length(freqs));
    +for in = 1:5
    +  Gamma_ndL(in, :) = abs(squeeze(freqresp(Gamma_x(in), freqs, 'Hz')))./sqrt(sum(abs(squeeze(freqresp(G(in, :), freqs, 'Hz'))).^2))';
    +end
    +
    +
    + + +
    +

    noise_budget_ndL_max_asd.png +

    +

    Figure 1: Maximum estimated ASD of the relative motion sensor noise

    +
    + +

    +If the noise ASD of the relative motion sensor is bellow the maximum specified ASD for all the considered motion: +\[ \Gamma_n < \Gamma_{n_i, \text{max}}, \quad i = 1 \dots 5 \] +Then, the motion error due to sensor noise should be bellow the one specified. +

    + +
    +
    Gamma_ndL_max = min(Gamma_ndL(1:5, :));
    +
    +
    + +

    +Let’s take a sensor with a white noise up to 1kHz that is bellow the specified one: +

    +
    +
    Gamma_ndL_ex = abs(squeeze(freqresp(min(Gamma_ndL_max)/(1 + s/2/pi/1e3), freqs, 'Hz')));
    +
    +
    + + +
    +

    relative_motion_sensor_noise_ASD_example.png +

    +

    Figure 2: Requirement maximum ASD of the sensor noise + example of a sensor validating the requirements

    +
    + +

    +The corresponding RMS value of the sensor noise taken as an example is [nm RMS]: +

    +
    +
    1e9*sqrt(trapz(freqs, Gamma_ndL_max.^2))
    +
    +
    + +
    +519.29
    +
    +
    +
    + +
    +

    1.5 Verification of the induced motion error

    +
    +

    +Verify that by taking the sensor noise, we have to wanted displacement error +From the sensor noise PSD \(\Gamma_n(\omega)\), we can estimate the obtained displacement PSD \(\Gamma_x(\omega)\): +\[ \Gamma_{x,i}(\omega) = \sqrt{ \sum_{j=1}^{6} |G_{ij}|^2(j\omega) \Gamma_{n,j}^2(\omega) }, \quad i = 1 \dots 5 \] +

    + +
    +
    Gamma_xest = zeros(5, length(freqs));
    +
    +for in = 1:5
    +    Gamma_xest(in, :) = sqrt(sum(abs(squeeze(freqresp(G(in, :), freqs, 'Hz'))).^2.*Gamma_ndL_max.^2));
    +end
    +
    +
    + + + + +++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     ResultsSpecifications
    Dx [nm]8.912.1
    Dy [nm]9.312.1
    Dz [nm]10.212.1
    Rx [nrad]110.2241.8
    Ry [nrad]107.8241.8
    +
    +
    +
    +
    +
    +

    Author: Dehaeze Thomas

    +

    Created: 2020-07-31 ven. 17:58

    +
    + + diff --git a/org/index.org b/org/index.org index 789696a..980bbdc 100644 --- a/org/index.org +++ b/org/index.org @@ -72,6 +72,9 @@ Conclusion are drawn about what experimental conditions are critical on the vari In this document is studied how the flexible joint stiffnesses (in flexion, torsion and compression) is affecting the plant dynamics. Conclusion are drawn on the required stiffness properties of the flexible joints. +* Dynamic Noise Budgeting ([[file:noise_budgeting.org][link]]) +The maximum allowed noise of the sensors in the system are estimated using a Dynamic Noise Budgeting. + * Active Damping Techniques on the full Simscape Model ([[file:control_active_damping.org][link]]) Active damping techniques are applied to the full Simscape model.