diff --git a/figs/apa_mode_shapes.gif b/figs/apa_mode_shapes.gif new file mode 100644 index 0000000..f92b1fc Binary files /dev/null and b/figs/apa_mode_shapes.gif differ diff --git a/figs/apa_mode_shapes.png b/figs/apa_mode_shapes.png new file mode 100644 index 0000000..acd9419 Binary files /dev/null and b/figs/apa_mode_shapes.png differ diff --git a/test-bench-apa300ml.html b/test-bench-apa300ml.html index 14de9c8..441f4b3 100644 --- a/test-bench-apa300ml.html +++ b/test-bench-apa300ml.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Amplifier Piezoelectric Actuator APA300ML - Test Bench @@ -39,206 +39,206 @@

Table of Contents

-
+

apa300ML.png

Figure 1: Picture of the APA300ML

-
-

1 Model of an Amplified Piezoelectric Actuator and Sensor

+
+

1 Model of an Amplified Piezoelectric Actuator and Sensor

-Consider a schematic of the Amplified Piezoelectric Actuator in Figure 2. +Consider a schematic of the Amplified Piezoelectric Actuator in Figure 2.

-
+

apa_model_schematic.png

Figure 2: Amplified Piezoelectric Actuator Schematic

@@ -306,11 +306,11 @@ We wish here to experimental measure \(g_a\) and \(g_s\).

-The block-diagram model of the piezoelectric actuator is then as shown in Figure 3. +The block-diagram model of the piezoelectric actuator is then as shown in Figure 3.

-
+

apa-model-simscape-schematic.png

Figure 3: Model of the APA with Simscape/Simulink

@@ -318,45 +318,45 @@ The block-diagram model of the piezoelectric actuator is then as shown in Figure
-
-

2 First Basic Measurements

+
+

2 First Basic Measurements

- +

-
-

2.1 Geometrical Measurements

+
+

2.1 Geometrical Measurements

- +

-The received APA are shown in Figure 4. +The received APA are shown in Figure 4.

-
+

IMG_20210224_143500.jpg

Figure 4: Received APA

-
-

2.1.1 Measurement Setup

+
+

2.1.1 Measurement Setup

-The flatness corresponding to the two interface planes are measured as shown in Figure 5. +The flatness corresponding to the two interface planes are measured as shown in Figure 5.

-
+

IMG_20210224_143809.jpg

Figure 5: Measurement Setup

@@ -364,8 +364,8 @@ The flatness corresponding to the two interface planes are measured as shown in
-
-

2.1.2 Measurement Results

+
+

2.1.2 Measurement Results

The height (Z) measurements at the 8 locations (4 points by plane) are defined below. @@ -411,10 +411,10 @@ Finally, the flatness is estimated by fitting a plane through the 8 points using

-The obtained flatness are shown in Table 1. +The obtained flatness are shown in Table 1.

- +
@@ -469,14 +469,14 @@ The obtained flatness are shown in Table 1. -
-

2.2 Electrical Measurements

+
+

2.2 Electrical Measurements

- +

-
+

The capacitance of the stacks is measure with the LCR-800 Meter (doc)

@@ -484,7 +484,7 @@ The capacitance of the stacks is measure with the +
Table 1: Estimated flatness
@@ -556,7 +556,7 @@ The excitation frequency is set to be 1kHz.
Table 2: Capacitance measured with the LCR meter. The excitation signal is a sinus at 1kHz
-
+

There is clearly a problem with APA300ML number 3

@@ -569,25 +569,25 @@ The APA number 3 has ben sent back to Cedrat, and a new APA300ML has been shippe
-
-

2.3 Stroke measurement

+
+

2.3 Stroke measurement

- +

We here wish to estimate the stroke of the APA.

-To do so, one side of the APA is fixed, and a displacement probe is located on the other side as shown in Figure 7. +To do so, one side of the APA is fixed, and a displacement probe is located on the other side as shown in Figure 7.

Then, a voltage is applied on either one or two stacks using a DAC and a voltage amplifier.

-
+

Here are the documentation of the equipment used for this test bench:

@@ -600,91 +600,91 @@ Here are the documentation of the equipment used for this test bench:
-
+

CE0EF55E-07B7-461B-8CDB-98590F68D15B.jpeg

Figure 7: Bench to measured the APA stroke

-
-

2.3.1 Voltage applied on one stack

+
+

2.3.1 Voltage applied on one stack

Let’s first look at the relation between the voltage applied to one stack to the displacement of the APA as measured by the displacement probe.

-The applied voltage is shown in Figure 8. +The applied voltage is shown in Figure 8.

-
+

apa_stroke_voltage_time.png

Figure 8: Applied voltage as a function of time

-The obtained displacement is shown in Figure 9. +The obtained displacement is shown in Figure 9. The displacement is set to zero at initial time when the voltage applied is -20V.

-
+

apa_stroke_time_1s.png

Figure 9: Displacement as a function of time for all the APA300ML

-Finally, the displacement is shown as a function of the applied voltage in Figure 10. +Finally, the displacement is shown as a function of the applied voltage in Figure 10. We can clearly see that there is a problem with the APA 3. Also, there is a large hysteresis.

-
+

apa_d_vs_V_1s.png

Figure 10: Displacement as a function of the applied voltage

-
+

-We can clearly see from Figure 10 that there is a problem with the APA number 3. +We can clearly see from Figure 10 that there is a problem with the APA number 3.

-
-

2.3.2 Voltage applied on two stacks

+
+

2.3.2 Voltage applied on two stacks

Now look at the relation between the voltage applied to the two other stacks to the displacement of the APA as measured by the displacement probe.

-The obtained displacement is shown in Figure 11. +The obtained displacement is shown in Figure 11. The displacement is set to zero at initial time when the voltage applied is -20V.

-
+

apa_stroke_time_2s.png

Figure 11: Displacement as a function of time for all the APA300ML

-Finally, the displacement is shown as a function of the applied voltage in Figure 12. +Finally, the displacement is shown as a function of the applied voltage in Figure 12. We can clearly see that there is a problem with the APA 3. Also, there is a large hysteresis.

-
+

apa_d_vs_V_2s.png

Figure 12: Displacement as a function of the applied voltage

@@ -692,25 +692,25 @@ Also, there is a large hysteresis.
-
-

2.3.3 Voltage applied on all three stacks

+
+

2.3.3 Voltage applied on all three stacks

-Finally, we can combine the two measurements to estimate the relation between the displacement and the voltage applied to the three stacks (Figure 13). +Finally, we can combine the two measurements to estimate the relation between the displacement and the voltage applied to the three stacks (Figure 13).

-
+

apa_d_vs_V_3s.png

Figure 13: Displacement as a function of the applied voltage

-The obtained maximum stroke for all the APA are summarized in Table 3. +The obtained maximum stroke for all the APA are summarized in Table 3.

- +
@@ -765,44 +765,30 @@ The obtained maximum stroke for all the APA are summarized in Table -

2.4 Spurious resonances

+
+

2.4 Spurious resonances

- +

-
-

2.4.1 Introduction

+
+

2.4.1 Introduction

-Three main resonances are foreseen to be problematic for the control of the APA300ML: +Three main resonances are foreseen to be problematic for the control of the APA300ML (Figure 14):

    -
  • Mode in X-bending at 189Hz (Figure 14)
  • -
  • Mode in Y-bending at 285Hz (Figure 15)
  • -
  • Mode in Z-torsion at 400Hz (Figure 16)
  • +
  • Mode in X-bending at 189Hz
  • +
  • Mode in Y-bending at 285Hz
  • +
  • Mode in Z-torsion at 400Hz
-
-

mode_bending_x.gif +

+

apa_mode_shapes.gif

-

Figure 14: X-bending mode (189Hz)

-
- - -
-

mode_bending_y.gif -

-

Figure 15: Y-bending mode (285Hz)

-
- - -
-

mode_torsion_z.gif -

-

Figure 16: Z-torsion mode (400Hz)

+

Figure 14: Spurious resonances. a) X-bending mode at 189Hz. b) Y-bending mode at 285Hz. c) Z-torsion mode at 400Hz

@@ -815,16 +801,16 @@ In this section, we try to find the resonance frequency of these modes when one

-
-

2.4.2 Setup

+
+

2.4.2 Setup

-The measurement setup is shown in Figure 17. +The measurement setup is shown in Figure 15. A Laser vibrometer is measuring the difference of motion of two points. The APA is excited with an instrumented hammer and the transfer function from the hammer to the measured rotation is computed.

-
+
  • Laser Doppler Vibrometer Polytec OFV512
  • Instrumented hammer
  • @@ -833,28 +819,28 @@ The APA is excited with an instrumented hammer and the transfer function from th
-
+

measurement_setup_torsion.jpg

-

Figure 17: Measurement setup with a Laser Doppler Vibrometer and one instrumental hammer

+

Figure 15: Measurement setup with a Laser Doppler Vibrometer and one instrumental hammer

-
-

2.4.3 Bending - X

+
+

2.4.3 Bending - X

-The setup to measure the X-bending motion is shown in Figure 18. +The setup to measure the X-bending motion is shown in Figure 16. The APA is excited with an instrumented hammer having a solid metallic tip. The impact point is on the back-side of the APA aligned with the top measurement point.

-
+

measurement_setup_X_bending.jpg

-

Figure 18: X-Bending measurement setup

+

Figure 16: X-Bending measurement setup

@@ -883,26 +869,26 @@ The transfer function from the input force to the output “rotation”

-The result is shown in Figure 19. +The result is shown in Figure 17.

The can clearly observe a nice peak at 280Hz, and then peaks at the odd “harmonics” (third “harmonic” at 840Hz, and fifth “harmonic” at 1400Hz).

-
+

apa300ml_meas_freq_bending_x.png

-

Figure 19: Obtained FRF for the X-bending

+

Figure 17: Obtained FRF for the X-bending

-
-

2.4.4 Bending - Y

+
+

2.4.4 Bending - Y

-The setup to measure the Y-bending is shown in Figure 20. +The setup to measure the Y-bending is shown in Figure 18.

@@ -910,10 +896,10 @@ The impact point of the instrumented hammer is located on the back surface of th

-
+

measurement_setup_Y_bending.jpg

-

Figure 20: Y-Bending measurement setup

+

Figure 18: Y-Bending measurement setup

@@ -926,24 +912,24 @@ The data is loaded, and the transfer function from the force to the measured rot

-The results are shown in Figure 21. +The results are shown in Figure 19. The main resonance is at 412Hz, and we also see the third “harmonic” at 1220Hz.

-
+

apa300ml_meas_freq_bending_y.png

-

Figure 21: Obtained FRF for the Y-bending

+

Figure 19: Obtained FRF for the Y-bending

-
-

2.4.5 Torsion - Z

+
+

2.4.5 Torsion - Z

-Finally, we measure the Z-torsion resonance as shown in Figure 22. +Finally, we measure the Z-torsion resonance as shown in Figure 20.

@@ -951,10 +937,10 @@ The excitation is shown on the other side of the APA, on the side to excite the

-
+

measurement_setup_torsion_bis.jpg

-

Figure 22: Z-Torsion measurement setup

+

Figure 20: Z-Torsion measurement setup

@@ -967,16 +953,16 @@ The data is loaded, and the transfer function computed.

-The results are shown in Figure 23. +The results are shown in Figure 21. We observe a first peak at 267Hz, which corresponds to the X-bending mode that was measured at 280Hz. And then a second peak at 415Hz, which corresponds to the X-bending mode that was measured at 412Hz. The mode in pure torsion is probably at higher frequency (peak around 1kHz?).

-
+

apa300ml_meas_freq_torsion_z.png

-

Figure 23: Obtained FRF for the Z-torsion

+

Figure 21: Obtained FRF for the Z-torsion

@@ -989,36 +975,36 @@ In order to verify that, the APA is excited on the top part such that the torsio

-The two FRF are compared in Figure 24. +The two FRF are compared in Figure 22. It is clear that the first two modes does not correspond to the torsional mode. Maybe the resonance at 800Hz, or even higher resonances. It is difficult to conclude here.

-
+

apa300ml_meas_freq_torsion_z_comp.png

-

Figure 24: Obtained FRF for the Z-torsion

+

Figure 22: Obtained FRF for the Z-torsion

-
-

2.4.6 Compare

+
+

2.4.6 Compare

-The three measurements are shown in Figure 25. +The three measurements are shown in Figure 23.

-
+

apa300ml_meas_freq_compare.png

-

Figure 25: Obtained FRF - Comparison

+

Figure 23: Obtained FRF - Comparison

-
-

2.4.7 Conclusion

+
+

2.4.7 Conclusion

When two flexible joints are fixed at each ends of the APA, the APA is mostly in a free/free condition in terms of bending/torsion (the bending/torsional stiffness of the joints being very small). @@ -1030,7 +1016,7 @@ Therefore, it is quite obvious that we measured higher resonance frequencies tha It is however quite interesting that there is a factor \(\approx \sqrt{2}\) between the two (increased of the stiffness by a factor 2?).

-
Table 3: Measured maximum stroke
+
@@ -1072,35 +1058,35 @@ It is however quite interesting that there is a factor \(\approx \sqrt{2}\) betw -
-

3 Dynamical measurements - APA

+
+

3 Dynamical measurements - APA

- +

In this section, a measurement test bench is used to identify the dynamics of the APA.

-The bench is shown in Figure 26, and a zoom picture on the APA and encoder is shown in Figure 27. +The bench is shown in Figure 24, and a zoom picture on the APA and encoder is shown in Figure 25.

-
+

picture_apa_bench.png

-

Figure 26: Picture of the test bench

+

Figure 24: Picture of the test bench

-
+

picture_apa_bench_encoder.png

-

Figure 27: Zoom on the APA with the encoder

+

Figure 25: Zoom on the APA with the encoder

-
+

Here are the documentation of the equipment used for this test bench:

@@ -1115,17 +1101,17 @@ Here are the documentation of the equipment used for this test bench:

-The bench is schematically shown in Figure 28 and the signal used are summarized in Table 5. +The bench is schematically shown in Figure 26 and the signal used are summarized in Table 5.

-
+

test_bench_apa_alone.png

-

Figure 28: Schematic of the Test Bench

+

Figure 26: Schematic of the Test Bench

-
Table 4: Measured frequency of the modes
+
@@ -1187,20 +1173,20 @@ The bench is schematically shown in Figure 28 and the This section is structured as follows:

    -
  • Section 3.1: the Speedgoat setup is described (excitation signals, saved signals, etc.)
  • -
  • Section 3.2: the measurements are first performed on one APA.
  • -
  • Section 3.3: the same measurements are performed on all the APA and are compared.
  • +
  • Section 3.1: the Speedgoat setup is described (excitation signals, saved signals, etc.)
  • +
  • Section 3.2: the measurements are first performed on one APA.
  • +
  • Section 3.3: the same measurements are performed on all the APA and are compared.
-
-

3.1 Speedgoat Setup

+
+

3.1 Speedgoat Setup

- +

-
-

3.1.1 frf_setup.m - Measurement Setup

+
+

3.1.1 frf_setup.m - Measurement Setup

First is defined the sampling frequency: @@ -1240,10 +1226,10 @@ V_noise = generateShapedNoise('Ts', 1 -

+

frf_meas_noise_excitation.png

-

Figure 29: Example of Shaped noise excitation signal

+

Figure 27: Example of Shaped noise excitation signal

@@ -1270,14 +1256,14 @@ V_sweep = generateSweepExc('Ts', Ts, ...

-
+

frf_meas_sweep_excitation.png

-

Figure 30: Example of Sweep Sin excitation signal

+

Figure 28: Example of Sweep Sin excitation signal

-In order to better estimate the high frequency dynamics, a band-limited noise can be used (Figure 31). +In order to better estimate the high frequency dynamics, a band-limited noise can be used (Figure 29). The frequency content of the noise can be precisely controlled.

@@ -1295,10 +1281,10 @@ V_noise_hf = generateShapedNoise('Ts', 1 -
+

frf_meas_noise_hf_exc.png

-

Figure 31: Example of band-limited noise excitation signal

+

Figure 29: Example of band-limited noise excitation signal

@@ -1318,10 +1304,10 @@ V_sin = generateSinIncreasingAmpl('Ts', 1 -
+

frf_meas_sin_excitation.png

-

Figure 32: Example of Shaped noise excitation signal

+

Figure 30: Example of Shaped noise excitation signal

@@ -1341,8 +1327,8 @@ save('./frf_data.mat',

-
-

3.1.2 frf_save.m - Save Data

+
+

3.1.2 frf_save.m - Save Data

First, we get data from the Speedgoat: @@ -1383,19 +1369,19 @@ save(sprintf('mat/frf_data_%i_huddle.mat', apa_n

-
-

3.2 Measurements on APA 1

+
+

3.2 Measurements on APA 1

- +

Measurements are first performed on only one APA. Once the measurement procedure is validated, it is performed on all the other APA.

-
-

3.2.1 Excitation Signal

+
+

3.2.1 Excitation Signal

For this first measurement, a basic logarithmic sweep is used between 10Hz and 2kHz. @@ -1419,20 +1405,20 @@ t = apa_sweep.t - apa_sweep.t(1) ; 33. +The excitation signal is shown in Figure 31. It is a sweep sine from 10Hz up to 2kHz filtered with a notch centered with the main resonance of the system and a low pass filter.

-
+

apa_bench_exc_sweep.png

-

Figure 33: Excitation voltage

+

Figure 31: Excitation voltage

-
-

3.2.2 FRF Identification - Setup

+
+

3.2.2 FRF Identification - Setup

Let’s define the sampling time/frequency. @@ -1463,15 +1449,15 @@ We get the frequency vector that will be the same for all the frequency domain a

-
-

3.2.3 FRF Identification - Displacement

+
+

3.2.3 FRF Identification - Displacement

In this section, the transfer function from the excitation voltage \(V_a\) to the encoder measured displacement \(d_e\) and interferometer measurement \(d_a\).

-The coherence from \(V_a\) to \(d_e\) is computed and shown in Figure 34. +The coherence from \(V_a\) to \(d_e\) is computed and shown in Figure 32. It is quite good from 10Hz up to 500Hz.

@@ -1481,14 +1467,14 @@ It is quite good from 10Hz up to 500Hz.
-
+

apa_1_coh_dvf.png

-

Figure 34: Coherence for the identification from \(V_a\) to \(d_e\)

+

Figure 32: Coherence for the identification from \(V_a\) to \(d_e\)

-The transfer functions are then estimated and shown in Figure 35. +The transfer functions are then estimated and shown in Figure 33.

%% TF - Encoder
@@ -1500,13 +1486,13 @@ The transfer functions are then estimated and shown in Figure 
+

apa_1_frf_dvf.png

-

Figure 35: Obtained transfer functions from \(V_a\) to both \(d_e\) and \(d_a\)

+

Figure 33: Obtained transfer functions from \(V_a\) to both \(d_e\) and \(d_a\)

-
+

It seems that using the interferometer, we have a lot more time delay than when using the encoder.

@@ -1515,15 +1501,15 @@ It seems that using the interferometer, we have a lot more time delay than when
-
-

3.2.4 FRF Identification - Force Sensor

+
+

3.2.4 FRF Identification - Force Sensor

Now the dynamics from excitation voltage \(V_a\) to the force sensor stack voltage \(V_s\) is identified.

-The coherence is computed and shown in Figure 36 and found very good from 10Hz up to 2kHz. +The coherence is computed and shown in Figure 34 and found very good from 10Hz up to 2kHz.

%% TF - Encoder
@@ -1532,14 +1518,14 @@ The coherence is computed and shown in Figure 36 and f
 
-
+

apa_1_coh_iff.png

-

Figure 36: Coherence for the identification from \(V_a\) to \(V_s\)

+

Figure 34: Coherence for the identification from \(V_a\) to \(V_s\)

-The transfer function is estimated and shown in Figure 37. +The transfer function is estimated and shown in Figure 35.

%% Transfer function estimation
@@ -1548,16 +1534,16 @@ The transfer function is estimated and shown in Figure 37<
 
-
+

apa_1_frf_iff.png

-

Figure 37: Obtained transfer functions from \(V_a\) to \(V_s\)

+

Figure 35: Obtained transfer functions from \(V_a\) to \(V_s\)

-
-

3.2.5 Hysteresis

+
+

3.2.5 Hysteresis

We here wish to visually see the amount of hysteresis present in the APA. @@ -1580,14 +1566,14 @@ Then, \(d\) is plotted as a function of \(V_a\) for all the amplitudes.

-We expect to obtained something like the hysteresis shown in Figure 38. +We expect to obtained something like the hysteresis shown in Figure 36.

-
+

expected_hysteresis.png

-

Figure 38: Expected Hysteresis poel10_explor_activ_hard_mount_vibrat

+

Figure 36: Expected Hysteresis poel10_explor_activ_hard_mount_vibrat

@@ -1609,13 +1595,13 @@ The excitation voltage amplitudes are:

-The excitation voltage and the measured displacement are shown in Figure 39. +The excitation voltage and the measured displacement are shown in Figure 37.

-
+

hyst_exc_signal_time.png

-

Figure 39: Excitation voltage and measured displacement

+

Figure 37: Excitation voltage and measured displacement

@@ -1624,16 +1610,16 @@ Also, it is centered on zero.

-The measured displacement at a function of the output voltage are shown in Figure 40. +The measured displacement at a function of the output voltage are shown in Figure 38.

-
+

hyst_results_multi_ampl.png

-

Figure 40: Obtained hysteresis for multiple excitation amplitudes

+

Figure 38: Obtained hysteresis for multiple excitation amplitudes

-
+

It is quite clear that hysteresis is increasing with the excitation amplitude.

@@ -1646,8 +1632,8 @@ Also, no hysteresis is found on the sensor stack voltage.
-
-

3.2.6 Estimation of the APA axial stiffness

+
+

3.2.6 Estimation of the APA axial stiffness

In order to estimate the stiffness of the APA, a weight with known mass \(m_a\) is added on top of the suspended granite and the deflection \(d_e\) is measured using the encoder. @@ -1666,7 +1652,7 @@ Here, a mass of 6.4 kg is used:

-The data is loaded, and the measured displacement is shown in Figure 41. +The data is loaded, and the measured displacement is shown in Figure 39.

apa_mass = load(sprintf('frf_data_%i_add_mass_closed_circuit.mat', 1), 't', 'de');
@@ -1675,10 +1661,10 @@ apa_mass.de = apa_mass.de - mean(apa_mass.de(apa_m
 
-
+

apa_1_meas_stiffness.png

-

Figure 41: Measured displacement when adding the mass and removing the mass

+

Figure 39: Measured displacement when adding the mass and removing the mass

@@ -1702,8 +1688,8 @@ k = 1.68 [N/um]

-
-

3.2.7 Stiffness change due to electrical connections

+
+

3.2.7 Stiffness change due to electrical connections

We wish here to see if the stiffness changes when the actuator stacks are not connected to the amplifier and the sensor stacks are not connected to the ADC. @@ -1732,19 +1718,19 @@ add_mass_cc.de = add_mass_cc.de - mean(add_mass_cc

-The measured displacements are shown in Figure 42. +The measured displacements are shown in Figure 40.

-
+

apa_meas_k_time_oc_cc.png

-

Figure 42: Measured displacement

+

Figure 40: Measured displacement

And the stiffness is estimated in both case. -The results are shown in Table 6. +The results are shown in Table 6.

apa_k_oc = 9.8 * added_mass / (mean(add_mass_oc.de(add_mass_oc.t > 12 & add_mass_oc.t < 12.5)) - mean(add_mass_oc.de(add_mass_oc.t > 20 & add_mass_oc.t < 20.5)));
@@ -1752,7 +1738,7 @@ apa_k_cc = 9.8 * added_mass 
 
-
Table 5: Variables used during the measurements
+
@@ -1779,7 +1765,7 @@ apa_k_cc = 9.8 * added_mass
Table 6: Measured stiffnesses on “open” and “closed” circuits
-
+

Clearly, connecting the actuator stacks to the amplified (basically equivalent as to short circuiting them) lowers the stiffness.

@@ -1788,8 +1774,8 @@ Clearly, connecting the actuator stacks to the amplified (basically equivalent a
-
-

3.2.8 Effect of the resistor on the IFF Plant

+
+

3.2.8 Effect of the resistor on the IFF Plant

A resistor \(R \approx 80.6\,k\Omega\) is added in parallel with the sensor stack. @@ -1851,16 +1837,16 @@ The transfer function of the corresponding high pass filter is:

-Let’s compare the transfer function from actuator stack to sensor stack with and without the added resistor in Figure 43. +Let’s compare the transfer function from actuator stack to sensor stack with and without the added resistor in Figure 41.

-
+

frf_iff_effect_R.png

-

Figure 43: Transfer function from \(V_a\) to \(V_s\) with and without the resistor \(k\)

+

Figure 41: Transfer function from \(V_a\) to \(V_s\) with and without the resistor \(k\)

-
+

The added resistor has indeed the expected effect.

@@ -1870,18 +1856,18 @@ The added resistor has indeed the expected effect.
-
-

3.3 Comparison of all the APA

+
+

3.3 Comparison of all the APA

- +

-The same measurements that was performed in Section 3.2 are now performed on all the APA and then compared. +The same measurements that was performed in Section 3.2 are now performed on all the APA and then compared.

-
-

3.3.1 Axial Stiffnesses - Comparison

+
+

3.3.1 Axial Stiffnesses - Comparison

Let’s first compare the APA axial stiffnesses. @@ -1917,11 +1903,11 @@ The data are loaded.

-The raw measurements are shown in Figure 44. +The raw measurements are shown in Figure 42. All the APA seems to have similar stiffness except the APA 7 which should have an higher stiffness.

-
+

It is however strange that the displacement \(d_e\) when the mass is removed is higher for the APA 7 than for the other APA. What could cause that? @@ -1930,17 +1916,17 @@ What could cause that?

-
+

apa_meas_k_time.png

-

Figure 44: Raw measurements for all the APA. A mass of 6.4kg is added at arround 15s and removed at arround 22s

+

Figure 42: Raw measurements for all the APA. A mass of 6.4kg is added at arround 15s and removed at arround 22s

-The stiffnesses are computed for all the APA and are summarized in Table 7. +The stiffnesses are computed for all the APA and are summarized in Table 7.

- +
@@ -1992,7 +1978,7 @@ The stiffnesses are computed for all the APA and are summarized in Table
Table 7: Measured stiffnesses
-
+

The APA300ML manual specifies the nominal stiffness to be \(1.8\,[N/\mu m]\) which is very close to what have been measured. Only the APA number 7 is a little bit off. @@ -2002,8 +1988,8 @@ Only the APA number 7 is a little bit off.

-
-

3.3.2 FRF Identification - Setup

+
+

3.3.2 FRF Identification - Setup

The identification is performed in three steps: @@ -2079,8 +2065,8 @@ We get the frequency vector that will be the same for all the frequency domain a

-
-

3.3.3 FRF Identification - DVF

+
+

3.3.3 FRF Identification - DVF

In this section, the dynamics from excitation voltage \(V_a\) to encoder measured displacement \(d_e\) is identified. @@ -2106,15 +2092,15 @@ coh_noise_hf = zeros(length(f), length(apa_nums));

-The coherence is shown in Figure 45. +The coherence is shown in Figure 43. It is clear that the Sweep sine gives good coherence up to 400Hz and that the high frequency noise excitation signal helps increasing a little bit the coherence at high frequency.

-
+

apa_frf_dvf_plant_coh.png

-

Figure 45: Obtained coherence for the plant from \(V_a\) to \(d_e\)

+

Figure 43: Obtained coherence for the plant from \(V_a\) to \(d_e\)

@@ -2138,11 +2124,11 @@ dvf_noise_hf = zeros(length(f), length(apa_nums));

-The obtained transfer functions are shown in Figure 46. +The obtained transfer functions are shown in Figure 44. They are all superimposed except for the APA7.

-
+

Why is the APA7 off? We could think that the APA7 is stiffer, but also the mass line is off. @@ -2157,14 +2143,14 @@ Maybe it could be due to the amplifier?

-
+

apa_frf_dvf_plant_tf.png

-

Figure 46: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

+

Figure 44: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

-A zoom on the main resonance is shown in Figure 47. +A zoom on the main resonance is shown in Figure 45. It is clear that expect for the APA 7, the response around the resonances are well matching for all the APA.

@@ -2172,7 +2158,7 @@ It is clear that expect for the APA 7, the response around the resonances are we It is also clear that there is not a single resonance but two resonances, a first one at 95Hz and a second one at 105Hz.

-
+

Why is there a double resonance at around 94Hz?

@@ -2180,23 +2166,23 @@ Why is there a double resonance at around 94Hz?
-
+

apa_frf_dvf_zoom_res_plant_tf.png

-

Figure 47: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\)) - Zoom on the main resonance

+

Figure 45: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\)) - Zoom on the main resonance

-
-

3.3.4 FRF Identification - IFF

+
+

3.3.4 FRF Identification - IFF

In this section, the dynamics from \(V_a\) to \(V_s\) is identified.

-First the coherence is computed and shown in Figure 48. +First the coherence is computed and shown in Figure 46. The coherence is very nice from 10Hz to 2kHz. It is only dropping near a zeros at 40Hz, and near the resonance at 95Hz (the excitation amplitude being lowered).

@@ -2218,14 +2204,14 @@ coh_noise_hf = zeros(length(f), length(apa_nums));
-
+

apa_frf_iff_plant_coh.png

-

Figure 48: Obtained coherence for the IFF plant

+

Figure 46: Obtained coherence for the IFF plant

-Then the FRF are estimated and shown in Figure 49 +Then the FRF are estimated and shown in Figure 47

%% FRF estimation of the transfer function from Va to Vs
@@ -2244,57 +2230,57 @@ iff_noise_hf = zeros(length(f), length(apa_nums));
 
-
+

apa_frf_iff_plant_tf.png

-

Figure 49: Identified IFF Plant

+

Figure 47: Identified IFF Plant

-
-

4 Dynamical measurements - Struts

+
+

4 Dynamical measurements - Struts

- +

-The same bench used in Section 3 is here used with the strut instead of only the APA. +The same bench used in Section 3 is here used with the strut instead of only the APA.

-The bench is shown in Figure 50. -Measurements are performed either when no encoder is fixed to the strut (Figure 51) or when one encoder is fixed to the strut (Figure 50). +The bench is shown in Figure 48. +Measurements are performed either when no encoder is fixed to the strut (Figure 49) or when one encoder is fixed to the strut (Figure 48).

-
+

test_bench_leg_overview.png

-

Figure 50: Test Bench with Strut - Overview

+

Figure 48: Test Bench with Strut - Overview

-
+

test_bench_leg_front.png

-

Figure 51: Test Bench with Strut - Zoom on the strut

+

Figure 49: Test Bench with Strut - Zoom on the strut

-
+

test_bench_leg_coder.png

-

Figure 52: Test Bench with Strut - Zoom on the strut with the encoder

+

Figure 50: Test Bench with Strut - Zoom on the strut with the encoder

-
-

4.1 Measurement on Strut 1

+
+

4.1 Measurement on Strut 1

- +

Measurements are first performed on the strut 1 that contains: @@ -2304,15 +2290,15 @@ Measurements are first performed on the strut 1 that contains:

  • flex 1 and flex 2
  • -
    -

    4.1.1 Without Encoder

    +
    +

    4.1.1 Without Encoder

    - +

    -
    -
    4.1.1.1 FRF Identification - Setup
    +
    +
    4.1.1.1 FRF Identification - Setup

    The identification is performed in three steps: @@ -2368,8 +2354,8 @@ We get the frequency vector that will be the same for all the frequency domain a

    -
    -
    4.1.1.2 FRF Identification - Displacement
    +
    +
    4.1.1.2 FRF Identification - Displacement

    In this section, the dynamics from the excitation voltage \(V_a\) to the interferometer \(d_a\) is identified. @@ -2385,14 +2371,14 @@ We compute the coherence for 2nd and 3rd identification:

    -
    +

    strut_1_frf_dvf_plant_coh.png

    -

    Figure 53: Obtained coherence for the plant from \(V_a\) to \(d_a\)

    +

    Figure 51: Obtained coherence for the plant from \(V_a\) to \(d_a\)

    -The transfer function from \(V_a\) to the interferometer measured displacement \(d_a\) is estimated and shown in Figure 54. +The transfer function from \(V_a\) to the interferometer measured displacement \(d_a\) is estimated and shown in Figure 52.

    [dvf_sweep, ~]    = tfestimate(leg_sweep.Va,    leg_sweep.da,    win, [], [], 1/Ts);
    @@ -2401,23 +2387,23 @@ The transfer function from \(V_a\) to the interferometer measured displacement \
     
    -
    +

    strut_1_frf_dvf_plant_tf.png

    -

    Figure 54: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the interferometer \(d_a\))

    +

    Figure 52: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the interferometer \(d_a\))

    -
    -
    4.1.1.3 FRF Identification - IFF
    +
    +
    4.1.1.3 FRF Identification - IFF

    In this section, the dynamics from \(V_a\) to \(V_s\) is identified.

    -First the coherence is computed and shown in Figure 55. +First the coherence is computed and shown in Figure 53. The coherence is very nice from 10Hz to 2kHz. It is only dropping near a zeros at 40Hz, and near the resonance at 95Hz (the excitation amplitude being lowered).

    @@ -2429,14 +2415,14 @@ It is only dropping near a zeros at 40Hz, and near the resonance at 95Hz (the ex
    -
    +

    strut_1_frf_iff_plant_coh.png

    -

    Figure 55: Obtained coherence for the IFF plant

    +

    Figure 53: Obtained coherence for the IFF plant

    -Then the FRF are estimated and shown in Figure 56 +Then the FRF are estimated and shown in Figure 54

    [iff_sweep, ~] = tfestimate(leg_sweep.Va, leg_sweep.Vs, win, [], [], 1/Ts);
    @@ -2445,24 +2431,24 @@ Then the FRF are estimated and shown in Figure 56
     
    -
    +

    strut_1_frf_iff_plant_tf.png

    -

    Figure 56: Identified IFF Plant for the Strut 1

    +

    Figure 54: Identified IFF Plant for the Strut 1

    -
    -

    4.1.2 With Encoder

    +
    +

    4.1.2 With Encoder

    - +

    -
    -
    4.1.2.1 Measurement Data
    +
    +
    4.1.2.1 Measurement Data
    leg_enc_sweep    = load(sprintf('frf_data_leg_coder_badly_align_%i_noise.mat',    1), 't', 'Va', 'Vs', 'de', 'da');
    @@ -2472,8 +2458,8 @@ leg_enc_noise_hf = load(sprintf('frf_data_leg_coder_bad
     
    -
    -
    4.1.2.2 FRF Identification - DVF
    +
    +
    4.1.2.2 FRF Identification - DVF

    In this section, the dynamics from \(V_a\) to \(d_e\) is identified. @@ -2489,10 +2475,10 @@ We compute the coherence for 2nd and 3rd identification:

    -
    +

    strut_1_enc_frf_dvf_plant_coh.png

    -

    Figure 57: Obtained coherence for the plant from \(V_a\) to \(d_e\)

    +

    Figure 55: Obtained coherence for the plant from \(V_a\) to \(d_e\)

    @@ -2508,14 +2494,14 @@ We compute the coherence for 2nd and 3rd identification:

    -The obtained transfer functions are shown in Figure 58. +The obtained transfer functions are shown in Figure 56.

    They are all superimposed except for the APA7.

    -
    +

    Why is the APA7 off? We could think that the APA7 is stiffer, but also the mass line is off. @@ -2529,7 +2515,7 @@ Maybe it could be due to the amplifier?

    -
    +

    Why is there a double resonance at around 94Hz?

    @@ -2537,33 +2523,33 @@ Why is there a double resonance at around 94Hz?
    -
    +

    strut_1_enc_frf_dvf_plant_tf.png

    -

    Figure 58: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

    +

    Figure 56: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

    -
    -
    4.1.2.3 Comparison of the Encoder and Interferometer
    +
    +
    4.1.2.3 Comparison of the Encoder and Interferometer

    The interferometer could here represent the case where the encoders are fixed to the plates and not the APA.

    -The dynamics from \(V_a\) to \(d_e\) and from \(V_a\) to \(d_a\) are compared in Figure 59. +The dynamics from \(V_a\) to \(d_e\) and from \(V_a\) to \(d_a\) are compared in Figure 57.

    -
    +

    strut_1_comp_enc_int.png

    -

    Figure 59: Comparison of the transfer functions from excitation voltage \(V_a\) to either the encoder \(d_e\) or the interferometer \(d_a\)

    +

    Figure 57: Comparison of the transfer functions from excitation voltage \(V_a\) to either the encoder \(d_e\) or the interferometer \(d_a\)

    -
    +

    It will clearly be difficult to do something (except some low frequency positioning) with the encoders fixed to the APA.

    @@ -2572,53 +2558,39 @@ It will clearly be difficult to do something (except some low frequency position
    -
    -
    4.1.2.4 APA Resonances Frequency
    +
    +
    4.1.2.4 APA Resonances Frequency

    -As shown in Figure 60, we can clearly see three spurious resonances at 197Hz, 290Hz and 376Hz. +As shown in Figure 58, we can clearly see three spurious resonances at 197Hz, 290Hz and 376Hz.

    -
    +

    strut_1_spurious_resonances.png

    -

    Figure 60: Magnitude of the transfer function from excitation voltage \(V_a\) to encoder measurement \(d_e\). The frequency of the resonances are noted.

    +

    Figure 58: Magnitude of the transfer function from excitation voltage \(V_a\) to encoder measurement \(d_e\). The frequency of the resonances are noted.

    These resonances correspond to parasitic resonances of the APA itself. -They are very close to what was estimated using the FEM: +They are very close to what was estimated using the FEM (Figure 59):

      -
    • X-bending mode at around 190Hz (Figure 61)
    • -
    • Y-bending mode at around 290Hz (Figure 62)
    • -
    • Z-torsion mode at around 400Hz (Figure 63)
    • +
    • Mode in X-bending at 189Hz
    • +
    • Mode in Y-bending at 285Hz
    • +
    • Mode in Z-torsion at 400Hz
    -
    -

    mode_bending_x.gif +

    +

    apa_mode_shapes.gif

    -

    Figure 61: X-bending mode (189Hz)

    +

    Figure 59: Spurious resonances. a) X-bending mode at 189Hz. b) Y-bending mode at 285Hz. c) Z-torsion mode at 400Hz

    - -
    -

    mode_bending_y.gif -

    -

    Figure 62: Y-bending mode (285Hz)

    -
    - - -
    -

    mode_torsion_z.gif -

    -

    Figure 63: Z-torsion mode (400Hz)

    -
    - -
    +

    The resonances are indeed due to limited stiffness of the APA.

    @@ -2627,8 +2599,8 @@ The resonances are indeed due to limited stiffness of the APA.
    -
    -
    4.1.2.5 Estimated Flexible Joint axial stiffness
    +
    +
    4.1.2.5 Estimated Flexible Joint axial stiffness
    load(sprintf('frf_data_leg_coder_%i_add_mass_closed_circuit.mat',    1), 't', 'Va', 'Vs', 'de', 'da');
    @@ -2682,7 +2654,7 @@ hold off;
     
    -
    +

    What is strange is that the encoder is measuring a larger displacement than the interferometer. That should be the opposite. @@ -2693,15 +2665,15 @@ Maybe is is caused by the fact that the APA is experiencing some bending and the

    -
    -
    4.1.2.6 FRF Identification - IFF
    +
    +
    4.1.2.6 FRF Identification - IFF

    In this section, the dynamics from \(V_a\) to \(V_s\) is identified.

    -First the coherence is computed and shown in Figure 55. +First the coherence is computed and shown in Figure 53. The coherence is very nice from 10Hz to 2kHz. It is only dropping near a zeros at 40Hz, and near the resonance at 95Hz (the excitation amplitude being lowered).

    @@ -2713,14 +2685,14 @@ It is only dropping near a zeros at 40Hz, and near the resonance at 95Hz (the ex
    -
    +

    strut_1_frf_iff_plant_coh.png

    -

    Figure 64: Obtained coherence for the IFF plant

    +

    Figure 60: Obtained coherence for the IFF plant

    -Then the FRF are estimated and shown in Figure 65 +Then the FRF are estimated and shown in Figure 61

    [iff_enc_sweep,    ~] = tfestimate(leg_enc_sweep.Va,    leg_enc_sweep.Vs,    win, [], [], 1/Ts);
    @@ -2729,23 +2701,23 @@ Then the FRF are estimated and shown in Figure 65
     
    -
    +

    strut_1_enc_frf_iff_plant_tf.png

    -

    Figure 65: Identified IFF Plant

    +

    Figure 61: Identified IFF Plant

    -Let’s now compare the IFF plants whether the encoders are fixed to the APA or not (Figure 66). +Let’s now compare the IFF plants whether the encoders are fixed to the APA or not (Figure 62).

    -
    +

    strut_1_frf_iff_effect_enc.png

    -

    Figure 66: Effect of the encoder on the IFF plant

    +

    Figure 62: Effect of the encoder on the IFF plant

    -
    +

    We can see that the IFF does not change whether of not the encoder are fixed to the struts.

    @@ -2756,18 +2728,18 @@ We can see that the IFF does not change whether of not the encoder are fixed to
    -
    -

    4.2 Comparison of all the Struts

    +
    +

    4.2 Comparison of all the Struts

    - +

    Now all struts are measured using the same procedure and test bench.

    -
    -

    4.2.1 FRF Identification - Setup

    +
    +

    4.2.1 FRF Identification - Setup

    The identification is performed in two steps: @@ -2841,8 +2813,8 @@ We get the frequency vector that will be the same for all the frequency domain a

    -
    -

    4.2.2 FRF Identification - DVF

    +
    +

    4.2.2 FRF Identification - DVF

    In this section, the dynamics from \(V_a\) to \(d_e\) is identified. @@ -2868,15 +2840,15 @@ coh_noise_hf = zeros(length(f), length(leg_nums));

    -The coherence is shown in Figure 67. +The coherence is shown in Figure 63. It is clear that the Noise sine gives good coherence up to 400Hz and that the high frequency noise excitation signal helps increasing a little bit the coherence at high frequency.

    -
    +

    struts_frf_dvf_plant_coh.png

    -

    Figure 67: Obtained coherence for the plant from \(V_a\) to \(d_e\)

    +

    Figure 63: Obtained coherence for the plant from \(V_a\) to \(d_e\)

    @@ -2900,22 +2872,22 @@ dvf_noise_hf = zeros(length(f), length(leg_nums));

    -The obtained transfer functions are shown in Figure 68. +The obtained transfer functions are shown in Figure 64.

    They are all superimposed except for the LEG7.

    -
    +

    struts_frf_dvf_plant_tf.png

    -

    Figure 68: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

    +

    Figure 64: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

    -
    +

    -Depending on how the APA are mounted with the flexible joints, the dynamics can change a lot as shown in Figure 68. +Depending on how the APA are mounted with the flexible joints, the dynamics can change a lot as shown in Figure 64. In the future, a “pin” will be used to better align the APA with the flexible joints. We can expect the amplitude of the spurious resonances to decrease.

    @@ -2924,8 +2896,8 @@ We can expect the amplitude of the spurious resonances to decrease.
    -
    -

    4.2.3 FRF Identification - DVF with interferometer

    +
    +

    4.2.3 FRF Identification - DVF with interferometer

    In this section, the dynamics from \(V_a\) to \(d_a\) is identified. @@ -2951,14 +2923,14 @@ coh_noise_hf = zeros(length(f), length(leg_nums));

    -The coherence is shown in Figure 69. +The coherence is shown in Figure 65. It is clear that the Noise sine gives good coherence up to 400Hz and that the high frequency noise excitation signal helps increasing a little bit the coherence at high frequency.

    -
    +

    struts_frf_int_plant_coh.png

    -

    Figure 69: Obtained coherence for the plant from \(V_a\) to \(d_e\)

    +

    Figure 65: Obtained coherence for the plant from \(V_a\) to \(d_e\)

    @@ -2981,7 +2953,7 @@ dvf_a_noise_hf = zeros(length(f), length(leg_nums));

    -The obtained transfer functions are shown in Figure 70. +The obtained transfer functions are shown in Figure 66.

    @@ -2989,23 +2961,23 @@ They are all superimposed except for the LEG7.

    -
    +

    struts_frf_int_plant_tf.png

    -

    Figure 70: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

    +

    Figure 66: Estimated FRF for the DVF plant (transfer function from \(V_a\) to the encoder \(d_e\))

    -
    -

    4.2.4 FRF Identification - IFF

    +
    +

    4.2.4 FRF Identification - IFF

    In this section, the dynamics from \(V_a\) to \(V_s\) is identified.

    -First the coherence is computed and shown in Figure 71. +First the coherence is computed and shown in Figure 67. The coherence is very nice from 10Hz to 2kHz. It is only dropping near a zeros at 40Hz, and near the resonance at 95Hz (the excitation amplitude being lowered).

    @@ -3027,14 +2999,14 @@ coh_noise_hf = zeros(length(f), length(leg_nums));
    -
    +

    struts_frf_iff_plant_coh.png

    -

    Figure 71: Obtained coherence for the IFF plant

    +

    Figure 67: Obtained coherence for the IFF plant

    -Then the FRF are estimated and shown in Figure 72 +Then the FRF are estimated and shown in Figure 68

    %% FRF estimation of the transfer function from Va to Vs
    @@ -3053,38 +3025,38 @@ iff_noise_hf = zeros(length(f), length(leg_nums));
     
    -
    +

    struts_frf_iff_plant_tf.png

    -

    Figure 72: Identified IFF Plant

    +

    Figure 68: Identified IFF Plant

    -
    -

    5 Test Bench APA300ML - Simscape Model

    +
    +

    5 Test Bench APA300ML - Simscape Model

    -
    -

    5.1 Introduction

    +
    +

    5.1 Introduction

    -A simscape model (Figure 73) of the measurement bench is used. +A simscape model (Figure 69) of the measurement bench is used.

    -
    +

    model_bench_apa.png

    -

    Figure 73: Screenshot of the Simscape model

    +

    Figure 69: Screenshot of the Simscape model

    -
    -

    5.2 First Identification

    +
    +

    5.2 First Identification

    The APA is first initialized with default parameters and the transfer function from excitation voltage \(V_a\) (before the amplification of 20 due to the PD200 amplifier) to the sensor stack voltage \(V_s\), encoder \(d_L\) and interferometer \(z\) is identified. @@ -3112,35 +3084,35 @@ Ga.OutputName = {'Vs',

    -The obtain dynamics are shown in Figure 74 and 75. +The obtain dynamics are shown in Figure 70 and 71.

    -
    +

    apa_model_bench_bode_vs.png

    -

    Figure 74: Bode plot of the transfer function from \(V_a\) to \(V_s\)

    +

    Figure 70: Bode plot of the transfer function from \(V_a\) to \(V_s\)

    -
    +

    apa_model_bench_bode_dl_z.png

    -

    Figure 75: Bode plot of the transfer function from \(V_a\) to \(d_L\) and to \(z\)

    +

    Figure 71: Bode plot of the transfer function from \(V_a\) to \(d_L\) and to \(z\)

    -
    -

    5.3 Identify Sensor/Actuator constants and compare with measured FRF

    +
    +

    5.3 Identify Sensor/Actuator constants and compare with measured FRF

    -
    -

    5.3.1 How to identify these constants?

    +
    +

    5.3.1 How to identify these constants?

    -
    -
    5.3.1.1 Piezoelectric Actuator Constant
    +
    +
    5.3.1.1 Piezoelectric Actuator Constant

    Using the measurement test-bench, it is rather easy the determine the static gain between the applied voltage \(V_a\) to the induced displacement \(d\). @@ -3165,8 +3137,8 @@ From the two gains, it is then easy to determine \(g_a\):

    -
    -
    5.3.1.2 Piezoelectric Sensor Constant
    +
    +
    5.3.1.2 Piezoelectric Sensor Constant

    Similarly, it is easy to determine the gain from the excitation voltage \(V_a\) to the voltage generated by the sensor stack \(V_s\): @@ -3200,8 +3172,8 @@ Then, the “sensor” constant is:

    -
    -

    5.3.2 Identification Data

    +
    +

    5.3.2 Identification Data

    %% Load the identification Data
    @@ -3257,12 +3229,12 @@ We get the frequency vector that will be the same for all the frequency domain a
     
    -
    -

    5.3.3 2DoF APA

    +
    +

    5.3.3 2DoF APA

    -
    -
    5.3.3.1 2DoF APA
    +
    +
    5.3.3.1 2DoF APA
    %% Initialize a 2DoF APA with Ga=Gs=1
    @@ -3272,8 +3244,8 @@ n_hexapod.actuator = initializeAPA('type', 
     
    -
    -
    5.3.3.2 Identification without actuator or sensor constants
    +
    +
    5.3.3.2 Identification without actuator or sensor constants
    %% Input/Output definition
    @@ -3292,8 +3264,8 @@ Gs.OutputName = {'Vs', 
     
    -
    -
    5.3.3.3 Actuator Constant
    +
    +
    5.3.3.3 Actuator Constant
    %% Estimated Actuator Constant
    @@ -3313,8 +3285,8 @@ ga = -32.1 [N/V]
     
    -
    -
    5.3.3.4 Sensor Constant
    +
    +
    5.3.3.4 Sensor Constant
    %% Estimated Sensor Constant
    @@ -3334,8 +3306,8 @@ gs = 0.085 [V/m]
     
    -
    -
    5.3.3.5 Comparison
    +
    +
    5.3.3.5 Comparison

    Identify the dynamics with included constants. @@ -3350,28 +3322,28 @@ Gs.OutputName = {'Vs',

    -
    +

    apa_act_constant_comp.png

    -

    Figure 76: Comparison of the experimental data and Simscape model (\(u\) to \(d\mathcal{L}_m\))

    +

    Figure 72: Comparison of the experimental data and Simscape model (\(u\) to \(d\mathcal{L}_m\))

    -
    +

    apa_sens_constant_comp.png

    -

    Figure 77: Comparison of the experimental data and Simscape model (\(V_a\) to \(V_s\))

    +

    Figure 73: Comparison of the experimental data and Simscape model (\(V_a\) to \(V_s\))

    -
    -

    5.3.4 Flexible APA

    +
    +

    5.3.4 Flexible APA

    -
    -
    5.3.4.1 Flexible APA
    +
    +
    5.3.4.1 Flexible APA
    %% Initialize the APA as a flexible body
    @@ -3381,8 +3353,8 @@ n_hexapod.actuator = initializeAPA('type', 
     
    -
    -
    5.3.4.2 Identification without actuator or sensor constants
    +
    +
    5.3.4.2 Identification without actuator or sensor constants
    %% Identify the dynamics
    @@ -3394,8 +3366,8 @@ Gs.OutputName = {'Vs', 
     
    -
    -
    5.3.4.3 Actuator Constant
    +
    +
    5.3.4.3 Actuator Constant
    %% Actuator Constant
    @@ -3415,8 +3387,8 @@ ga = 23.4 [N/V]
     
    -
    -
    5.3.4.4 Sensor Constant
    +
    +
    5.3.4.4 Sensor Constant
    %% Sensor Constant
    @@ -3436,8 +3408,8 @@ gs = -4674826.805 [V/m]
     
    -
    -
    5.3.4.5 Comparison
    +
    +
    5.3.4.5 Comparison
    %% Identify with updated constants
    @@ -3449,25 +3421,25 @@ Gs.OutputName = {'Vs', 
     
    -
    +

    apa_act_constant_comp_flex.png

    -

    Figure 78: Comparison of the experimental data and Simscape model (\(u\) to \(d\mathcal{L}_m\))

    +

    Figure 74: Comparison of the experimental data and Simscape model (\(u\) to \(d\mathcal{L}_m\))

    -
    +

    apa_sens_constant_comp_flex.png

    -

    Figure 79: Comparison of the experimental data and Simscape model (\(u\) to \(\tau_m\))

    +

    Figure 75: Comparison of the experimental data and Simscape model (\(u\) to \(\tau_m\))

    -
    -

    5.4 Optimize 2-DoF model to fit the experimental Data

    +
    +

    5.4 Optimize 2-DoF model to fit the experimental Data

    %% Optimized parameters
    @@ -3485,24 +3457,24 @@ n_hexapod.actuator = initializeAPA('type', 
     
     
    -
    +

    comp_apa_plant_after_opt.png

    -

    Figure 80: Comparison of the measured FRF and the optimized model

    +

    Figure 76: Comparison of the measured FRF and the optimized model

    -
    -

    6 Test Bench Struts - Simscape Model

    +
    +

    6 Test Bench Struts - Simscape Model

    -
    -

    6.1 Introduction

    +
    +

    6.1 Introduction

    -
    -

    6.2 First Identification

    +
    +

    6.2 First Identification

    The object containing all the data is created. @@ -3535,23 +3507,23 @@ Gs.OutputName = {'Vs',

    -
    +

    strut_bench_model_iff_bode.png

    -

    Figure 81: Identified transfer function from \(V_a\) to \(V_s\)

    +

    Figure 77: Identified transfer function from \(V_a\) to \(V_s\)

    -
    +

    strut_bench_model_dvf_bode.png

    -

    Figure 82: Identified transfer function from \(V_a\) to \(d_L\)

    +

    Figure 78: Identified transfer function from \(V_a\) to \(d_L\)

    -
    -

    6.3 Effect of flexible joints

    +
    +

    6.3 Effect of flexible joints

    Perfect @@ -3610,31 +3582,31 @@ Gf.OutputName = {'Vs',

    -Comparison in Figures 83, 84 and 85. +Comparison in Figures 79, 80 and 81.

    -
    +

    strut_effect_joint_comp_vs.png

    -

    Figure 83: Effect of the joint’s flexibility on the transfer function from \(V_a\) to \(V_s\)

    +

    Figure 79: Effect of the joint’s flexibility on the transfer function from \(V_a\) to \(V_s\)

    -
    +

    strut_effect_joint_comp_dl.png

    -

    Figure 84: Effect of the joint’s flexibility on the transfer function from \(V_a\) to \(d_L\) (encoder)

    +

    Figure 80: Effect of the joint’s flexibility on the transfer function from \(V_a\) to \(d_L\) (encoder)

    -
    +

    strut_effect_joint_comp_z.png

    -

    Figure 85: Effect of the joint’s flexibility on the transfer function from \(V_a\) to \(z\) (interferometer)

    +

    Figure 81: Effect of the joint’s flexibility on the transfer function from \(V_a\) to \(z\) (interferometer)

    -
    +

    Imperfection of the flexible joints has the largest impact on the transfer function from \(V_a\) to \(d_L\). However, it has relatively small impact on the transfer functions from \(V_a\) to \(V_s\) and to \(z\). @@ -3644,12 +3616,12 @@ However, it has relatively small impact on the transfer functions from \(V_a\) t

    -
    -

    6.4 Integral Force Feedback

    +
    +

    6.4 Integral Force Feedback

    -
    -

    6.4.1 Initialize the system

    +
    +

    6.4.1 Initialize the system

    %% Initialize typical system
    @@ -3662,8 +3634,8 @@ n_hexapod.actuator = initializeAPA('type', 
     
    -
    -

    6.4.2 Plant Identification

    +
    +

    6.4.2 Plant Identification

    %% Identify th edynamics
    @@ -3681,8 +3653,8 @@ Giff = G('Vs', 'Va'
     
    -
    -

    6.4.3 Root Locus

    +
    +

    6.4.3 Root Locus

    \begin{equation} K_{\text{IFF}} = \frac{g}{s + \omega_c} @@ -3697,8 +3669,8 @@ wc = 2*pi
    -
    -

    6.5 Comparison with the experimental Data

    +
    +

    6.5 Comparison with the experimental Data

    %% Initialize Simscape data
    @@ -3723,30 +3695,30 @@ Gs.OutputName = {'Vs', 
     
    -
    +

    comp_strut_plant_after_opt.png

    -

    Figure 86: Comparison of the measured FRF and the optimized model

    +

    Figure 82: Comparison of the measured FRF and the optimized model

    -
    -

    7 Function

    +
    +

    7 Function

    -
    -

    7.1 initializeBotFlexibleJoint - Initialize Flexible Joint

    +
    +

    7.1 initializeBotFlexibleJoint - Initialize Flexible Joint

    - +

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [flex_bot] = initializeBotFlexibleJoint(args)
     % initializeBotFlexibleJoint -
    @@ -3763,9 +3735,9 @@ Gs.OutputName = {'Vs', 
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         args.type      char   {mustBeMember(args.type,{'2dof', '3dof', '4dof'})} = '2dof'
    @@ -3785,9 +3757,9 @@ Gs.OutputName = {'Vs', 
     
    -
    -

    Initialize the structure

    -
    +
    +

    Initialize the structure

    +
    flex_bot = struct();
     
    @@ -3795,9 +3767,9 @@ Gs.OutputName = {'Vs',
    -
    -

    Set the Joint’s type

    -
    +
    +

    Set the Joint’s type

    +
    switch args.type
       case '2dof'
    @@ -3812,9 +3784,9 @@ Gs.OutputName = {'Vs', 
     
    -
    -

    Set parameters

    -
    +
    +

    Set parameters

    +
    flex_bot.kRx = args.kRx;
     flex_bot.kRy = args.kRy;
    @@ -3834,17 +3806,17 @@ flex_bot.cz  = args.cz;
     
    -
    -

    7.2 initializeTopFlexibleJoint - Initialize Flexible Joint

    +
    +

    7.2 initializeTopFlexibleJoint - Initialize Flexible Joint

    - +

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [flex_top] = initializeTopFlexibleJoint(args)
     % initializeTopFlexibleJoint -
    @@ -3861,9 +3833,9 @@ flex_bot.cz  = args.cz;
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         args.type      char   {mustBeMember(args.type,{'2dof', '3dof', '4dof'})} = '2dof'
    @@ -3883,9 +3855,9 @@ flex_bot.cz  = args.cz;
     
    -
    -

    Initialize the structure

    -
    +
    +

    Initialize the structure

    +
    flex_top = struct();
     
    @@ -3893,9 +3865,9 @@ flex_bot.cz = args.cz;
    -
    -

    Set the Joint’s type

    -
    +
    +

    Set the Joint’s type

    +
    switch args.type
       case '2dof'
    @@ -3910,9 +3882,9 @@ flex_bot.cz  = args.cz;
     
    -
    -

    Set parameters

    -
    +
    +

    Set parameters

    +
    flex_top.kRx = args.kRx;
     flex_top.kRy = args.kRy;
    @@ -3932,17 +3904,17 @@ flex_top.cz  = args.cz;
     
    -
    -

    7.3 initializeAPA - Initialize APA

    +
    +

    7.3 initializeAPA - Initialize APA

    - +

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [actuator] = initializeAPA(args)
     % initializeAPA -
    @@ -3959,9 +3931,9 @@ flex_top.cz  = args.cz;
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         args.type      char   {mustBeMember(args.type,{'2dof', 'flexible frame', 'flexible'})} = '2dof'
    @@ -3992,9 +3964,9 @@ flex_top.cz  = args.cz;
     
    -
    -

    Initialize Structure

    -
    +
    +

    Initialize Structure

    +
    actuator = struct();
     
    @@ -4002,9 +3974,9 @@ flex_top.cz = args.cz;
    -
    -

    Type

    -
    +
    +

    Type

    +
    switch args.type
       case '2dof'
    @@ -4019,9 +3991,9 @@ flex_top.cz  = args.cz;
     
    -
    -

    Actuator/Sensor Constants

    -
    +
    +

    Actuator/Sensor Constants

    +
    if args.Ga == 0
         switch args.type
    @@ -4056,9 +4028,9 @@ flex_top.cz  = args.cz;
     
    -
    -

    2DoF parameters

    -
    +
    +

    2DoF parameters

    +
    actuator.k  = args.k;  % [N/m]
     actuator.ke = args.ke; % [N/m]
    @@ -4074,9 +4046,9 @@ actuator.Leq = args.Leq; % [m]
     
    -
    -

    Flexible frame and fully flexible

    -
    +
    +

    Flexible frame and fully flexible

    +
    switch args.type
       case 'flexible frame'
    @@ -4099,17 +4071,17 @@ actuator.cs = args.cs; % Damping of one stack [N/m]
     
    -
    -

    7.4 generateSweepExc: Generate sweep sinus excitation

    +
    +

    7.4 generateSweepExc: Generate sweep sinus excitation

    - +

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [U_exc] = generateSweepExc(args)
     % generateSweepExc - Generate a Sweep Sine excitation signal
    @@ -4132,9 +4104,9 @@ actuator.cs = args.cs; % Damping of one stack [N/m]
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         args.Ts              (1,1) double  {mustBeNumeric, mustBePositive} = 1e-4
    @@ -4152,9 +4124,9 @@ actuator.cs = args.cs; % Damping of one stack [N/m]
     
    -
    -

    Sweep Sine part

    -
    +
    +

    Sweep Sine part

    +
    t_sweep = 0:args.Ts:args.exc_duration;
     
    @@ -4183,9 +4155,9 @@ actuator.cs = args.cs; % Damping of one stack [N/m]
     
    -
    -

    Smooth Ends

    -
    +
    +

    Smooth Ends

    +
    if args.t_start > 0
         t_smooth_start = args.Ts:args.Ts:args.t_start;
    @@ -4214,9 +4186,9 @@ actuator.cs = args.cs; % Damping of one stack [N/m]
     
    -
    -

    Combine Excitation signals

    -
    +
    +

    Combine Excitation signals

    +
    V_exc = [V_smooth_start, V_sweep, V_smooth_end];
     t_exc = args.Ts*[0:1:length(V_exc)-1];
    @@ -4231,17 +4203,17 @@ t_exc = args.Ts*[0:1
     
    -
    -

    7.5 generateShapedNoise: Generate Shaped Noise excitation

    +
    +

    7.5 generateShapedNoise: Generate Shaped Noise excitation

    - +

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [U_exc] = generateShapedNoise(args)
     % generateShapedNoise - Generate a Shaped Noise excitation signal
    @@ -4261,9 +4233,9 @@ t_exc = args.Ts*[0:1
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         args.Ts              (1,1) double  {mustBeNumeric, mustBePositive} = 1e-4
    @@ -4278,9 +4250,9 @@ t_exc = args.Ts*[0:1
     
    -
    -

    Shaped Noise

    -
    +
    +

    Shaped Noise

    +
    t_noise = 0:args.Ts:args.exc_duration;
     
    @@ -4298,9 +4270,9 @@ t_exc = args.Ts*[0:1
     
    -
    -

    Smooth Ends

    -
    +
    +

    Smooth Ends

    +
    t_smooth_start = args.Ts:args.Ts:args.t_start;
     
    @@ -4324,9 +4296,9 @@ V_smooth_end   = zeros(size(t_smooth_start));
     
    -
    -

    Combine Excitation signals

    -
    +
    +

    Combine Excitation signals

    +
    V_exc = [V_smooth_start, V_noise, V_smooth_end];
     t_exc = args.Ts*[0:1:length(V_exc)-1];
    @@ -4341,17 +4313,17 @@ t_exc = args.Ts*[0:1
     
    -
    -

    7.6 generateSinIncreasingAmpl: Generate Sinus with increasing amplitude

    +
    +

    7.6 generateSinIncreasingAmpl: Generate Sinus with increasing amplitude

    - +

    -
    -

    Function description

    -
    +
    +

    Function description

    +
    function [U_exc] = generateSinIncreasingAmpl(args)
     % generateSinIncreasingAmpl - Generate Sinus with increasing amplitude
    @@ -4372,9 +4344,9 @@ t_exc = args.Ts*[0:1
     
    -
    -

    Optional Parameters

    -
    +
    +

    Optional Parameters

    +
    arguments
         args.Ts              (1,1) double  {mustBeNumeric, mustBePositive} = 1e-4
    @@ -4390,9 +4362,9 @@ t_exc = args.Ts*[0:1
     
    -
    -

    Sinus excitation

    -
    +
    +

    Sinus excitation

    +
    t_noise = 0:args.Ts:args.sin_period*args.sin_num;
     sin_exc = [];
    @@ -4408,9 +4380,9 @@ sin_exc = [];
     
    -
    -

    Smooth Ends

    -
    +
    +

    Smooth Ends

    +
    t_smooth_start = args.Ts:args.Ts:args.t_start;
     
    @@ -4434,9 +4406,9 @@ V_smooth_end   = zeros(size(t_smooth_start));
     
    -
    -

    Combine Excitation signals

    -
    +
    +

    Combine Excitation signals

    +
    V_exc = [V_smooth_start, sin_exc, V_smooth_end];
     t_exc = args.Ts*[0:1:length(V_exc)-1];
    @@ -4459,7 +4431,7 @@ t_exc = args.Ts*[0:1
     

    Author: Dehaeze Thomas

    -

    Created: 2021-06-09 mer. 19:01

    +

    Created: 2021-06-14 lun. 23:20

    diff --git a/test-bench-apa300ml.org b/test-bench-apa300ml.org index 0ab6a97..45f49fb 100644 --- a/test-bench-apa300ml.org +++ b/test-bench-apa300ml.org @@ -520,25 +520,15 @@ data2orgtable(1e6*apa300ml_stroke', {'APA 1', 'APA 2', 'APA 3', 'APA 4', 'APA 5' <> *** Introduction -Three main resonances are foreseen to be problematic for the control of the APA300ML: -- Mode in X-bending at 189Hz (Figure [[fig:mode_bending_x]]) -- Mode in Y-bending at 285Hz (Figure [[fig:mode_bending_y]]) -- Mode in Z-torsion at 400Hz (Figure [[fig:mode_torsion_z]]) +Three main resonances are foreseen to be problematic for the control of the APA300ML (Figure [[fig:apa_mode_shapes]]): +- Mode in X-bending at 189Hz +- Mode in Y-bending at 285Hz +- Mode in Z-torsion at 400Hz -#+name: fig:mode_bending_x -#+caption: X-bending mode (189Hz) -#+attr_latex: :width 0.9\linewidth -[[file:figs/mode_bending_x.gif]] - -#+name: fig:mode_bending_y -#+caption: Y-bending mode (285Hz) -#+attr_latex: :width 0.9\linewidth -[[file:figs/mode_bending_y.gif]] - -#+name: fig:mode_torsion_z -#+caption: Z-torsion mode (400Hz) -#+attr_latex: :width 0.9\linewidth -[[file:figs/mode_torsion_z.gif]] +#+name: fig:apa_mode_shapes +#+caption: Spurious resonances. a) X-bending mode at 189Hz. b) Y-bending mode at 285Hz. c) Z-torsion mode at 400Hz +#+attr_latex: :width \linewidth +[[file:figs/apa_mode_shapes.gif]] These modes are present when flexible joints are fixed to the ends of the APA300ML. @@ -2532,25 +2522,15 @@ exportFig('figs/strut_1_spurious_resonances.pdf', 'width', 'wide', 'height', 'ta These resonances correspond to parasitic resonances of the APA itself. -They are very close to what was estimated using the FEM: -- X-bending mode at around 190Hz (Figure [[fig:mode_bending_x_bis]]) -- Y-bending mode at around 290Hz (Figure [[fig:mode_bending_y_bis]]) -- Z-torsion mode at around 400Hz (Figure [[fig:mode_torsion_z_bis]]) +They are very close to what was estimated using the FEM (Figure [[fig:apa_mode_shapes_bis]]): +- Mode in X-bending at 189Hz +- Mode in Y-bending at 285Hz +- Mode in Z-torsion at 400Hz -#+name: fig:mode_bending_x_bis -#+caption: X-bending mode (189Hz) -#+attr_latex: :width 0.9\linewidth -[[file:figs/mode_bending_x.gif]] - -#+name: fig:mode_bending_y_bis -#+caption: Y-bending mode (285Hz) -#+attr_latex: :width 0.9\linewidth -[[file:figs/mode_bending_y.gif]] - -#+name: fig:mode_torsion_z_bis -#+caption: Z-torsion mode (400Hz) -#+attr_latex: :width 0.9\linewidth -[[file:figs/mode_torsion_z.gif]] +#+name: fig:apa_mode_shapes_bis +#+caption: Spurious resonances. a) X-bending mode at 189Hz. b) Y-bending mode at 285Hz. c) Z-torsion mode at 400Hz +#+attr_latex: :width \linewidth +[[file:figs/apa_mode_shapes.gif]] #+begin_important The resonances are indeed due to limited stiffness of the APA. diff --git a/test-bench-apa300ml.pdf b/test-bench-apa300ml.pdf index 781917c..b7111b5 100644 Binary files a/test-bench-apa300ml.pdf and b/test-bench-apa300ml.pdf differ