Reworked the section about basic measurements
Before Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 677 KiB |
Before Width: | Height: | Size: 538 KiB |
Before Width: | Height: | Size: 291 KiB After Width: | Height: | Size: 291 KiB |
BIN
figs/flatness_meas_setup.jpg
Normal file
After Width: | Height: | Size: 243 KiB |
BIN
figs/picture_strut_top_view.jpg
Normal file
After Width: | Height: | Size: 244 KiB |
BIN
figs/received_apa.jpg
Normal file
After Width: | Height: | Size: 275 KiB |
BIN
figs/souleille18_model_piezo.pdf
Normal file
BIN
figs/souleille18_model_piezo.png
Normal file
After Width: | Height: | Size: 191 KiB |
BIN
figs/stroke_test_bench.jpg
Normal file
After Width: | Height: | Size: 621 KiB |
@ -55,27 +55,34 @@
|
||||
|
||||
In this document, a test-bench is used to characterize the struts of the nano-hexapod.
|
||||
|
||||
Each strut includes:
|
||||
- 2 flexible joints at each ends. This flexible joints have been characterized in a [[file:../test-bench-nass-flexible-joints/test-bench-flexible-joints.org][separate test bench]].
|
||||
- one Amplified Piezoelectric Actuator (APA300ML) (described in Section [[sec:model_apa]])
|
||||
- one encoder (Renishaw Vionci) that has been characterized in a [[file:../test-bench-vionic/test-bench-vionic.org][separate test bench]].
|
||||
Each strut includes (Figure [[fig:picture_strut_top_view]]):
|
||||
- 2 flexible joints at each ends.
|
||||
These flexible joints have been characterized in a [[file:../test-bench-nass-flexible-joints/test-bench-flexible-joints.org][separate test bench]].
|
||||
- 1 Amplified Piezoelectric Actuator (APA300ML) (described in Section [[sec:model_apa]]).
|
||||
Two stacks are used as an actuator and one stack as a (force) sensor.
|
||||
- 1 encoder (Renishaw Vionic) that has been characterized in a [[file:../test-bench-vionic/test-bench-vionic.org][separate test bench]].
|
||||
|
||||
The goal here, is to first characterize the APA300ML in terms of:
|
||||
#+name: fig:picture_strut_top_view
|
||||
#+caption: One strut including two flexible joints, an amplified piezoelectric actuator and an encoder
|
||||
#+attr_latex: :width 0.8\linewidth
|
||||
[[file:figs/picture_strut_top_view.jpg]]
|
||||
|
||||
The first goal is to characterize the APA300ML in terms of:
|
||||
- The, geometric features, electrical capacitance, stroke, hysteresis, spurious resonances.
|
||||
This is performed in Section [[sec:first_measurements]].
|
||||
- The dynamics from the voltage applied on the actuator stacks to the induced displacement, and to the measured voltage by the force sensor stack.
|
||||
- The dynamics from the generated DAC voltage (going to the voltage amplifiers and then applied on the actuator stacks) to the induced displacement, and to the measured voltage by the force sensor stack.
|
||||
Also the "actuator constant" and "sensor constant" are identified.
|
||||
This is done in Section [[sec:dynamical_meas_apa]].
|
||||
- Compare the measurements with the Simscape models (2DoF, Super-Element) in order to tuned/validate the models.
|
||||
This is explained in Section [[sec:simscape_bench_apa]].
|
||||
|
||||
Then the struts are mounted, and are fixed to the same measurement bench.
|
||||
Then the struts are mounted (procedure described [[file:../test-bench-strut-mounting/test-bench-strut-mounting.org][here]]), and are fixed to the same measurement bench.
|
||||
Similarly, the goals are to:
|
||||
- Identify the dynamics from the generated DAC voltage (going to the PD200 voltage amplitifer and then to the actuator stacks) to (Section [[sec:dynamical_meas_struts]]):
|
||||
- Section [[sec:dynamical_meas_struts]]: Identify the dynamics from the generated DAC voltage to:
|
||||
- the sensors stack generated voltage
|
||||
- the measured displacement by the encoder
|
||||
- the measured displacement by the interferometer
|
||||
- Compare the measurements with the Simscape model of the struts and tune the models (Section [[sec:simscape_bench_struts]])
|
||||
- the measured displacement by the interferometer (representing encoders that would be fixed to the nano-hexapod's plates instead of the struts)
|
||||
- Section [[sec:simscape_bench_struts]]: Compare the measurements with the Simscape model of the struts and tune the models
|
||||
|
||||
The final goal of the work presented in this document is to have an accurate Simscape model of the struts that can then be included in the Simscape model of the nano-hexapod.
|
||||
|
||||
@ -89,7 +96,7 @@ The Amplified Piezoelectric Actuator (APA) used is the APA300ML from Cedrat tech
|
||||
#+attr_latex: :width 0.8\linewidth
|
||||
[[file:figs/apa300ML.png]]
|
||||
|
||||
Simscape models of the APA300ML are developed:
|
||||
Two simscape models of the APA300ML are developed:
|
||||
- Section [[sec:apa_2dof_model]]: a simple 2 degrees of freedom (DoF) model
|
||||
- Section [[sec:apa_flexible_model]]: a "flexible" model using a "super-element" extracted from a Finite Element Model of the APA
|
||||
|
||||
@ -100,6 +107,32 @@ They are described in Section [[sec:apa_constants]].
|
||||
** Two Degrees of Freedom Model
|
||||
<<sec:apa_2dof_model>>
|
||||
|
||||
The presented model is based on cite:souleille18_concep_activ_mount_space_applic and represented in Figure [[fig:souleille18_model_piezo]].
|
||||
|
||||
#+name: fig:souleille18_model_piezo
|
||||
#+caption: Picture of an APA100M from Cedrat Technologies. Simplified model of a one DoF payload mounted on such isolator
|
||||
#+attr_latex: :width 0.6\linewidth
|
||||
[[file:./figs/souleille18_model_piezo.png]]
|
||||
|
||||
The parameters are described in Table [[tab:souleille18_model_params]].
|
||||
|
||||
#+name: tab:souleille18_model_params
|
||||
#+caption: Parameters used for the model of the APA 100M
|
||||
#+attr_latex: :environment tabularx :width 0.6\linewidth :align lX
|
||||
#+attr_latex: :center t :booktabs t :float t
|
||||
| | *Meaning* |
|
||||
|-------+----------------------------------------------------------------|
|
||||
| $k_e$ | Stiffness used to adjust the pole of the isolator |
|
||||
| $k_1$ | Stiffness of the metallic suspension when the stack is removed |
|
||||
| $k_a$ | Stiffness of the actuator |
|
||||
| $c_1$ | Added viscous damping |
|
||||
|
||||
The model is shown again in Figure [[fig:2dof_apa_model]].
|
||||
As will be shown in the next section, such model can be quite accurate in modelling the axial behavior of the APA.
|
||||
However, it does not model the flexibility of the APA in the other directions.
|
||||
|
||||
Therefore this model can be useful for quick simulations as it contains a very limited number of states, but when more complex dynamics of the APA is to be modelled, a flexible model will be used.
|
||||
|
||||
#+name: fig:2dof_apa_model
|
||||
#+attr_latex: :width 0.2\linewidth
|
||||
#+caption: Schematic of the 2DoF model for the Amplified Piezoelectric Actuator
|
||||
@ -108,11 +141,19 @@ They are described in Section [[sec:apa_constants]].
|
||||
** Flexible Model
|
||||
<<sec:apa_flexible_model>>
|
||||
|
||||
In order to model with high accuracy the behavior of the APA, a flexible model can be used.
|
||||
|
||||
The idea is to do a Finite element model of the structure, and to defined "remote points" as shown in Figure [[fig:apa300ml_ansys]].
|
||||
Then, on the finite element software, a "super-element" can be extracted which consists of a mass matrix, a stiffness matrix, and the coordinates of the remote points.
|
||||
|
||||
#+name: fig:apa300ml_ansys
|
||||
#+caption: Remote points for the APA300ML (Ansys)
|
||||
#+attr_latex: :width 0.3\linewidth
|
||||
[[file:figs/mesh_APA.png]]
|
||||
|
||||
This "super-element" can then be included in the Simscape model as shown in Figure [[fig:figure_name]].
|
||||
The remotes points are defined as "frames" in Simscape, and the "super-element" can be connected with other Simscape elements (mechanical joints, masses, force actuators, etc..).
|
||||
|
||||
#+name: fig:figure_name
|
||||
#+caption: From a finite Element Model (Ansys, bottom left) is extract the mass and stiffness matrices that are then used on Simscape (right)
|
||||
#+attr_latex: :width \linewidth
|
||||
@ -121,6 +162,10 @@ They are described in Section [[sec:apa_constants]].
|
||||
** Actuator and Sensor constants
|
||||
<<sec:apa_constants>>
|
||||
|
||||
On Simscape, we want to model both the actuator stacks and the sensors stack.
|
||||
We therefore need to link the electrical domain (voltages, charges) with the mechanical domain (forces, strain).
|
||||
To do so, we use the "actuator constant" and the "sensor constant".
|
||||
|
||||
Consider a schematic of the Amplified Piezoelectric Actuator in Figure [[fig:apa_model_schematic]].
|
||||
|
||||
#+name: fig:apa_model_schematic
|
||||
@ -130,16 +175,14 @@ Consider a schematic of the Amplified Piezoelectric Actuator in Figure [[fig:apa
|
||||
|
||||
A voltage $V_a$ applied to the actuator stacks will induce an actuator force $F_a$:
|
||||
\begin{equation}
|
||||
F_a = g_a \cdot V_a
|
||||
\boxed{F_a = g_a \cdot V_a}
|
||||
\end{equation}
|
||||
|
||||
A change of length $dl$ of the sensor stack will induce a voltage $V_s$:
|
||||
\begin{equation}
|
||||
V_s = g_s \cdot dl
|
||||
\boxed{V_s = g_s \cdot dl}
|
||||
\end{equation}
|
||||
|
||||
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 [[fig:apa-model-simscape-schematic]].
|
||||
|
||||
#+begin_src latex :file apa-model-simscape-schematic.pdf
|
||||
@ -160,14 +203,17 @@ The block-diagram model of the piezoelectric actuator is then as shown in Figure
|
||||
#+RESULTS:
|
||||
[[file:figs/apa-model-simscape-schematic.png]]
|
||||
|
||||
The constants $g_a$ and $g_s$ will be experimentally estimated.
|
||||
|
||||
* First Basic Measurements
|
||||
<<sec:first_measurements>>
|
||||
** Introduction :ignore:
|
||||
|
||||
- Section [[sec:geometrical_measurements]]:
|
||||
- Section [[sec:electrical_measurements]]:
|
||||
- Section [[sec:stroke_measurements]]:
|
||||
- Section [[sec:spurious_resonances]]:
|
||||
Before using the measurement bench to characterize the APA300ML, first simple measurements are performed:
|
||||
- Section [[sec:geometrical_measurements]]: the geometric tolerances of the interface planes are checked
|
||||
- Section [[sec:electrical_measurements]]: the capacitance of the stacks are measured
|
||||
- Section [[sec:stroke_measurements]]: the stroke of the APA are measured
|
||||
- Section [[sec:spurious_resonances]]: the "spurious" resonances of the APA are investigated
|
||||
|
||||
** Geometrical Measurements
|
||||
<<sec:geometrical_measurements>>
|
||||
@ -178,7 +224,7 @@ The received APA are shown in Figure [[fig:received_apa]].
|
||||
#+name: fig:received_apa
|
||||
#+caption: Received APA
|
||||
#+attr_latex: :width 0.6\linewidth
|
||||
[[file:figs/IMG_20210224_143500.jpg]]
|
||||
[[file:figs/received_apa.jpg]]
|
||||
|
||||
*** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@ -209,12 +255,13 @@ The flatness corresponding to the two interface planes are measured as shown in
|
||||
#+name: fig:flatness_meas_setup
|
||||
#+caption: Measurement Setup
|
||||
#+attr_latex: :width 0.6\linewidth
|
||||
[[file:figs/IMG_20210224_143809.jpg]]
|
||||
[[file:figs/flatness_meas_setup.jpg]]
|
||||
|
||||
*** Measurement Results
|
||||
|
||||
The height (Z) measurements at the 8 locations (4 points by plane) are defined below.
|
||||
#+begin_src matlab
|
||||
%% Measured height for all the APA at the 8 locations
|
||||
apa1 = 1e-6*[0, -0.5 , 3.5 , 3.5 , 42 , 45.5, 52.5 , 46];
|
||||
apa2 = 1e-6*[0, -2.5 , -3 , 0 , -1.5 , 1 , -2 , -4];
|
||||
apa3 = 1e-6*[0, -1.5 , 15 , 17.5 , 6.5 , 6.5 , 21 , 23];
|
||||
@ -223,21 +270,31 @@ apa5 = 1e-6*[0, -12.5, 16.5 , 28.5 , -43 , -52 , -22.5, -13.5];
|
||||
apa6 = 1e-6*[0, -8 , -2 , 5 , -57.5, -62 , -55.5, -52.5];
|
||||
apa7 = 1e-6*[0, 19.5 , -8 , -29.5, 75 , 97.5, 70 , 48];
|
||||
apa7b = 1e-6*[0, 9 , -18.5, -30 , 31 , 46.5, 16.5 , 7.5];
|
||||
|
||||
apa = {apa1, apa2, apa3, apa4, apa5, apa6, apa7b};
|
||||
#+end_src
|
||||
|
||||
The X/Y Positions of the 8 measurement points are defined below.
|
||||
#+begin_src matlab
|
||||
%% X-Y positions of the measurements points
|
||||
W = 20e-3; % Width [m]
|
||||
L = 61e-3; % Length [m]
|
||||
d = 1e-3; % Distance from border [m]
|
||||
l = 15.5e-3; % [m]
|
||||
|
||||
pos = [[-L/2 + d; W/2 - d], [-L/2 + l - d; W/2 - d], [-L/2 + l - d; -W/2 + d], [-L/2 + d; -W/2 + d], [L/2 - l + d; W/2 - d], [L/2 - d; W/2 - d], [L/2 - d; -W/2 + d], [L/2 - l + d; -W/2 + d]];
|
||||
pos = [[-L/2 + d; W/2 - d],
|
||||
[-L/2 + l - d; W/2 - d],
|
||||
[-L/2 + l - d; -W/2 + d],
|
||||
[-L/2 + d; -W/2 + d],
|
||||
[L/2 - l + d; W/2 - d],
|
||||
[L/2 - d; W/2 - d],
|
||||
[L/2 - d; -W/2 + d],
|
||||
[L/2 - l + d; -W/2 + d]];
|
||||
#+end_src
|
||||
|
||||
Finally, the flatness is estimated by fitting a plane through the 8 points using the =fminsearch= command.
|
||||
#+begin_src matlab
|
||||
%% Using fminsearch to find the best fitting plane
|
||||
apa_d = zeros(1, 7);
|
||||
for i = 1:7
|
||||
fun = @(x)max(abs(([pos; apa{i}]-[0;0;x(1)])'*([x(2:3);1]/norm([x(2:3);1]))));
|
||||
@ -268,19 +325,33 @@ data2orgtable(1e6*apa_d', {'APA 1', 'APA 2', 'APA 3', 'APA 4', 'APA 5', 'APA 6',
|
||||
| APA 6 | 7.1 |
|
||||
| APA 7 | 18.7 |
|
||||
|
||||
#+begin_important
|
||||
The measured flatness of the APA300ML interface planes are within the specifications.
|
||||
#+end_important
|
||||
|
||||
** Electrical Measurements
|
||||
<<sec:electrical_measurements>>
|
||||
|
||||
*** Measurement Setup
|
||||
#+begin_note
|
||||
The capacitance of the stacks is measure with the [[https://www.gwinstek.com/en-global/products/detail/LCR-800][LCR-800 Meter]] ([[file:doc/DS_LCR-800_Series_V2_E.pdf][doc]])
|
||||
The capacitance of the stacks is measure with the [[https://www.gwinstek.com/en-global/products/detail/LCR-800][LCR-800 Meter]] ([[file:doc/DS_LCR-800_Series_V2_E.pdf][doc]]) shown in Figure [[fig:LCR_meter]].
|
||||
The excitation frequency is set to be 1kHz.
|
||||
#+end_note
|
||||
|
||||
#+name: fig:LCR_meter
|
||||
#+caption: LCR Meter used for the measurements
|
||||
#+attr_latex: :width 0.9\linewidth
|
||||
[[file:figs/IMG_20210312_120337.jpg]]
|
||||
[[file:figs/LCR_meter.jpg]]
|
||||
|
||||
The excitation frequency is set to be 1kHz.
|
||||
*** Measured Capacitance
|
||||
From the documentation of the APA300ML, the total capacitance of the three stacks should be between $18\mu F$ and $26\mu F$ with a nominal capacitance of $20\mu F$.
|
||||
However, from the documentation of the stack themselves, it can be seen that the capacitance of a single stack should be $4.4\mu F$.
|
||||
Clearly, the total capacitance of the APA300ML if more than just three times the capacitance of one stack.
|
||||
|
||||
#+begin_question
|
||||
Could it be possible that the capacitance of the stacks increase that much when they are pre-stressed?
|
||||
#+end_question
|
||||
|
||||
The measured capacitance of the stacks are summarized in Table [[tab:apa300ml_capacitance]].
|
||||
|
||||
#+name: tab:apa300ml_capacitance
|
||||
#+caption: Capacitance measured with the LCR meter. The excitation signal is a sinus at 1kHz
|
||||
@ -296,16 +367,18 @@ The excitation frequency is set to be 1kHz.
|
||||
| APA 6 | 4.99 | 9.91 |
|
||||
| APA 7 | 4.85 | 9.85 |
|
||||
|
||||
#+begin_important
|
||||
From the measurements (Table [[tab:apa300ml_capacitance]]), the capacitance of one stack is found to be $\approx 5 \mu F$.
|
||||
#+end_important
|
||||
|
||||
#+begin_warning
|
||||
There is clearly a problem with APA300ML number 3
|
||||
#+end_warning
|
||||
|
||||
The APA number 3 has ben sent back to Cedrat, and a new APA300ML has been shipped back.
|
||||
#+end_warning
|
||||
|
||||
** Stroke measurement
|
||||
<<sec:stroke_measurements>>
|
||||
*** Introduction :ignore:
|
||||
|
||||
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 [[fig:stroke_test_bench]].
|
||||
@ -322,7 +395,9 @@ Here are the documentation of the equipment used for this test bench:
|
||||
#+name: fig:stroke_test_bench
|
||||
#+caption: Bench to measured the APA stroke
|
||||
#+attr_latex: :width 0.9\linewidth
|
||||
[[file:figs/CE0EF55E-07B7-461B-8CDB-98590F68D15B.jpeg]]
|
||||
[[file:figs/stroke_test_bench.jpg]]
|
||||
|
||||
From the documentation, the nominal stroke of the APA300ML is $304\,\mu m$.
|
||||
|
||||
*** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@ -351,6 +426,7 @@ addpath('./mat/');
|
||||
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.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Load the measurements
|
||||
apa300ml_1s = {};
|
||||
for i = 1:7
|
||||
apa300ml_1s(i) = {load(['mat/stroke_apa_1stacks_' num2str(i) '.mat'], 't', 'V', 'd')};
|
||||
@ -358,6 +434,7 @@ end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Only take the data between t=2 and t=10 and reset the measured displacement at t=2
|
||||
for i = 1:7
|
||||
t = apa300ml_1s{i}.t;
|
||||
apa300ml_1s{i}.d = apa300ml_1s{i}.d - mean(apa300ml_1s{i}.d(t > 1.9 & t < 2.0));
|
||||
@ -370,6 +447,7 @@ end
|
||||
The applied voltage is shown in Figure [[fig:apa_stroke_voltage_time]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Applied voltage as a function of time
|
||||
figure;
|
||||
plot(apa300ml_1s{1}.t, 20*apa300ml_1s{1}.V)
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
@ -385,10 +463,11 @@ exportFig('figs/apa_stroke_voltage_time.pdf', 'width', 'wide', 'height', 'normal
|
||||
#+RESULTS:
|
||||
[[file:figs/apa_stroke_voltage_time.png]]
|
||||
|
||||
The obtained displacement is shown in Figure [[fig:apa_stroke_time_1s]].
|
||||
The obtained displacements for all the APA are shown in Figure [[fig:apa_stroke_time_1s]].
|
||||
The displacement is set to zero at initial time when the voltage applied is -20V.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Measured motion for all the APA300ML
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:7
|
||||
@ -404,7 +483,7 @@ exportFig('figs/apa_stroke_time_1s.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:apa_stroke_time_1s
|
||||
#+caption: Displacement as a function of time for all the APA300ML
|
||||
#+caption: Displacement as a function of time for all the APA300ML (only one stack is used as an actuator)
|
||||
#+RESULTS:
|
||||
[[file:figs/apa_stroke_time_1s.png]]
|
||||
|
||||
@ -413,6 +492,7 @@ We can clearly see that there is a problem with the APA 3.
|
||||
Also, there is a large hysteresis.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Displacement as a function of the applied voltage
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:7
|
||||
@ -429,12 +509,12 @@ exportFig('figs/apa_d_vs_V_1s.pdf', 'width', 'wide', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:apa_d_vs_V_1s
|
||||
#+caption: Displacement as a function of the applied voltage
|
||||
#+caption: Displacement as a function of the applied voltage (on only one stack)
|
||||
#+RESULTS:
|
||||
[[file:figs/apa_d_vs_V_1s.png]]
|
||||
|
||||
#+begin_important
|
||||
We can clearly see from Figure [[fig:apa_d_vs_V_1s]] that there is a problem with the APA number 3.
|
||||
We can clearly confirm from Figure [[fig:apa_d_vs_V_1s]] that there is a problem with the APA number 3.
|
||||
#+end_important
|
||||
|
||||
*** Voltage applied on two stacks
|
||||
@ -442,6 +522,7 @@ We can clearly see from Figure [[fig:apa_d_vs_V_1s]] that there is a problem wit
|
||||
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.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Load the measurements
|
||||
apa300ml_2s = {};
|
||||
for i = 1:7
|
||||
apa300ml_2s(i) = {load(['mat/stroke_apa_2stacks_' num2str(i) '.mat'], 't', 'V', 'd')};
|
||||
@ -449,6 +530,7 @@ end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Only take the data between t=2 and t=10 and reset the measured displacement at t=2
|
||||
for i = 1:7
|
||||
t = apa300ml_2s{i}.t;
|
||||
apa300ml_2s{i}.d = apa300ml_2s{i}.d - mean(apa300ml_2s{i}.d(t > 1.9 & t < 2.0));
|
||||
@ -460,8 +542,8 @@ end
|
||||
|
||||
The obtained displacement is shown in Figure [[fig:apa_stroke_time_2s]].
|
||||
The displacement is set to zero at initial time when the voltage applied is -20V.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Measured motion for all the APA300ML
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:7
|
||||
@ -478,15 +560,13 @@ exportFig('figs/apa_stroke_time_2s.pdf', 'width', 'wide', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:apa_stroke_time_2s
|
||||
#+caption: Displacement as a function of time for all the APA300ML
|
||||
#+caption: Displacement as a function of time for all the APA300ML (two stacks are used as actuators)
|
||||
#+RESULTS:
|
||||
[[file:figs/apa_stroke_time_2s.png]]
|
||||
|
||||
Finally, the displacement is shown as a function of the applied voltage in Figure [[fig:apa_d_vs_V_2s]].
|
||||
We can clearly see that there is a problem with the APA 3.
|
||||
Also, there is a large hysteresis.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Displacement as a function of the applied voltage
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:7
|
||||
@ -503,7 +583,7 @@ exportFig('figs/apa_d_vs_V_2s.pdf', 'width', 'wide', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:apa_d_vs_V_2s
|
||||
#+caption: Displacement as a function of the applied voltage
|
||||
#+caption: Displacement as a function of the applied voltage on two stacks
|
||||
#+RESULTS:
|
||||
[[file:figs/apa_d_vs_V_2s.png]]
|
||||
|
||||
@ -512,6 +592,7 @@ exportFig('figs/apa_d_vs_V_2s.pdf', 'width', 'wide', 'height', 'tall');
|
||||
Finally, we can combine the two measurements to estimate the relation between the displacement and the voltage applied to the *three* stacks (Figure [[fig:apa_d_vs_V_3s]]).
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Motion induced by applying a voltage to the three stack is the sum to the previous two measured displacements
|
||||
apa300ml_3s = {};
|
||||
for i = 1:7
|
||||
apa300ml_3s(i) = apa300ml_1s(i);
|
||||
@ -520,6 +601,7 @@ end
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Displacement as a function of the applied voltage
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:7
|
||||
@ -536,13 +618,14 @@ exportFig('figs/apa_d_vs_V_3s.pdf', 'width', 'wide', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:apa_d_vs_V_3s
|
||||
#+caption: Displacement as a function of the applied voltage
|
||||
#+caption: Displacement as a function of the applied voltage on all three stacks
|
||||
#+RESULTS:
|
||||
[[file:figs/apa_d_vs_V_3s.png]]
|
||||
|
||||
The obtained maximum stroke for all the APA are summarized in Table [[tab:apa_measured_stroke]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Estimate the maximum stroke
|
||||
apa300ml_stroke = zeros(1, 7);
|
||||
for i = 1:7
|
||||
apa300ml_stroke(i) = max(apa300ml_3s{i}.d) - min(apa300ml_3s{i}.d);
|
||||
@ -568,12 +651,19 @@ data2orgtable(1e6*apa300ml_stroke', {'APA 1', 'APA 2', 'APA 3', 'APA 4', 'APA 5'
|
||||
| APA 6 | 363.9 |
|
||||
| APA 7 | 358.4 |
|
||||
|
||||
*** Conclusion
|
||||
#+begin_important
|
||||
The except from APA 3 that has a problem, all the APA are similar when it comes to stroke and hysteresis.
|
||||
Also, the obtained stroke is more than specified in the documentation.
|
||||
Therefore, only two stacks can be used as an actuator.
|
||||
#+end_important
|
||||
|
||||
** Spurious resonances
|
||||
<<sec:spurious_resonances>>
|
||||
*** Introduction
|
||||
|
||||
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
|
||||
From a Finite Element Model of the struts, it have been found that three main resonances are foreseen to be problematic for the control of the APA300ML (Figure [[fig:apa_mode_shapes]]):
|
||||
- Mode in X-bending at 200Hz
|
||||
- Mode in Y-bending at 285Hz
|
||||
- Mode in Z-torsion at 400Hz
|
||||
|
||||
@ -608,13 +698,14 @@ addpath('matlab/mat/');
|
||||
addpath('mat/');
|
||||
#+end_src
|
||||
|
||||
*** Setup
|
||||
*** Measurement Setup
|
||||
|
||||
The measurement setup is shown in Figure [[fig:measurement_setup_torsion]].
|
||||
A Laser vibrometer is measuring the difference of motion of two points.
|
||||
A Laser vibrometer is measuring the difference of motion between two points.
|
||||
The APA is excited with an instrumented hammer and the transfer function from the hammer to the measured rotation is computed.
|
||||
|
||||
#+begin_note
|
||||
The instrumentation used are:
|
||||
- Laser Doppler Vibrometer Polytec OFV512
|
||||
- Instrumented hammer
|
||||
#+end_note
|
||||
@ -624,9 +715,9 @@ The APA is excited with an instrumented hammer and the transfer function from th
|
||||
#+attr_latex: :width 0.7\linewidth
|
||||
[[file:figs/measurement_setup_torsion.jpg]]
|
||||
|
||||
*** Bending - X
|
||||
*** X-Bending Mode
|
||||
|
||||
The setup to measure the X-bending motion is shown in Figure [[fig:measurement_setup_X_bending]].
|
||||
The vibrometer is setup to measure the X-bending motion is shown in Figure [[fig:measurement_setup_X_bending]].
|
||||
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.
|
||||
|
||||
@ -637,17 +728,20 @@ The impact point is on the back-side of the APA aligned with the top measurement
|
||||
|
||||
The data is loaded.
|
||||
#+begin_src matlab
|
||||
%% Load Data
|
||||
bending_X = load('apa300ml_bending_X_top.mat');
|
||||
#+end_src
|
||||
|
||||
The config for =tfestimate= is performed:
|
||||
The configuration (Sampling time and windows) for =tfestimate= is done:
|
||||
#+begin_src matlab
|
||||
Ts = bending_X.Track1_X_Resolution; % Sampling frequency [Hz]
|
||||
%% Spectral Analysis setup
|
||||
Ts = bending_X.Track1_X_Resolution; % Sampling Time [s]
|
||||
win = hann(ceil(1/Ts));
|
||||
#+end_src
|
||||
|
||||
The transfer function from the input force to the output "rotation" (difference between the two measured distances).
|
||||
#+begin_src matlab
|
||||
%% Compute the transfer function from applied force to measured rotation
|
||||
[G_bending_X, f] = tfestimate(bending_X.Track1, bending_X.Track2, win, [], [], 1/Ts);
|
||||
#+end_src
|
||||
|
||||
@ -655,6 +749,7 @@ The result is shown in Figure [[fig:apa300ml_meas_freq_bending_x]].
|
||||
|
||||
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).
|
||||
#+begin_src matlab :exports none
|
||||
%% Plot the transfer function
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, abs(G_bending_X), 'k-');
|
||||
@ -676,7 +771,12 @@ exportFig('figs/apa300ml_meas_freq_bending_x.pdf', 'width', 'wide', 'height', 'n
|
||||
#+RESULTS:
|
||||
[[file:figs/apa300ml_meas_freq_bending_x.png]]
|
||||
|
||||
*** Bending - Y
|
||||
Then the APA is in the "free-free" condition, this bending mode is foreseen to be at 200Hz (Figure [[fig:apa_mode_shapes]]).
|
||||
We are here in the "fixed-free" condition.
|
||||
If we consider that we therefore double the stiffness associated with this mode, we should obtain a resonance a factor $\sqrt{2}$ higher than 200Hz which is indeed 280Hz.
|
||||
Not sure this reasoning is correct though.
|
||||
|
||||
*** Y-Bending Mode
|
||||
|
||||
The setup to measure the Y-bending is shown in Figure [[fig:measurement_setup_Y_bending]].
|
||||
|
||||
@ -689,7 +789,10 @@ The impact point of the instrumented hammer is located on the back surface of th
|
||||
|
||||
The data is loaded, and the transfer function from the force to the measured rotation is computed.
|
||||
#+begin_src matlab
|
||||
%% Load Data
|
||||
bending_Y = load('apa300ml_bending_Y_top.mat');
|
||||
|
||||
%% Compute the transfer function
|
||||
[G_bending_Y, ~] = tfestimate(bending_Y.Track1, bending_Y.Track2, win, [], [], 1/Ts);
|
||||
#+end_src
|
||||
|
||||
@ -697,6 +800,7 @@ The results are shown in Figure [[fig:apa300ml_meas_freq_bending_y]].
|
||||
The main resonance is at 412Hz, and we also see the third "harmonic" at 1220Hz.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Plot the transfer function
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, abs(G_bending_Y), 'k-');
|
||||
@ -717,7 +821,10 @@ exportFig('figs/apa300ml_meas_freq_bending_y.pdf', 'width', 'wide', 'height', 'n
|
||||
#+RESULTS:
|
||||
[[file:figs/apa300ml_meas_freq_bending_y.png]]
|
||||
|
||||
*** Torsion - Z
|
||||
We can apply the same reasoning as in the previous section and estimate the mode to be a factor $\sqrt{2}$ higher than the mode estimated in the "free-free" condition.
|
||||
We would obtain a mode at 403Hz which is very close to the one estimated here.
|
||||
|
||||
*** Z-Torsion Mode
|
||||
|
||||
Finally, we measure the Z-torsion resonance as shown in Figure [[fig:measurement_setup_torsion_bis]].
|
||||
|
||||
@ -730,15 +837,20 @@ The excitation is shown on the other side of the APA, on the side to excite the
|
||||
|
||||
The data is loaded, and the transfer function computed.
|
||||
#+begin_src matlab
|
||||
%% Load Data
|
||||
torsion = load('apa300ml_torsion_left.mat');
|
||||
|
||||
%% Compute transfer function
|
||||
[G_torsion, ~] = tfestimate(torsion.Track1, torsion.Track2, win, [], [], 1/Ts);
|
||||
#+end_src
|
||||
|
||||
The results are shown in Figure [[fig:apa300ml_meas_freq_torsion_z]].
|
||||
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?).
|
||||
A third mode at 800Hz could correspond to this torsion mode.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
%% Plot the transfer function
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, abs(G_torsion), 'k-');
|
||||
@ -762,7 +874,10 @@ exportFig('figs/apa300ml_meas_freq_torsion_z.pdf', 'width', 'wide', 'height', 'n
|
||||
|
||||
In order to verify that, the APA is excited on the top part such that the torsion mode should not be excited.
|
||||
#+begin_src matlab
|
||||
%% Load data
|
||||
torsion = load('apa300ml_torsion_top.mat');
|
||||
|
||||
%% Compute transfer function
|
||||
[G_torsion_top, ~] = tfestimate(torsion.Track1, torsion.Track2, win, [], [], 1/Ts);
|
||||
#+end_src
|
||||
|
||||
@ -770,6 +885,7 @@ The two FRF are compared in Figure [[fig:apa300ml_meas_freq_torsion_z_comp]].
|
||||
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.
|
||||
#+begin_src matlab :exports none
|
||||
%% Plot the two transfer functions
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, abs(G_torsion), 'k-', 'DisplayName', 'Left excitation');
|
||||
@ -827,13 +943,13 @@ It is however quite interesting that there is a factor $\approx \sqrt{2}$ betwee
|
||||
|
||||
#+name: tab:apa300ml_measured_modes_freq
|
||||
#+caption: Measured frequency of the modes
|
||||
#+attr_latex: :environment tabularx :width 0.6\linewidth :align ccc
|
||||
#+attr_latex: :environment tabularx :width 0.7\linewidth :align ccc
|
||||
#+attr_latex: :center t :booktabs t :float t
|
||||
| Mode | Strut Mode | Measured Frequency |
|
||||
|-----------+------------+--------------------|
|
||||
| X-Bending | 189Hz | 280Hz |
|
||||
| Y-Bending | 285Hz | 410Hz |
|
||||
| Z-Torsion | 400Hz | ? |
|
||||
| *Mode* | *FEM - Strut mode* | *Measured Frequency* |
|
||||
|-----------+--------------------+----------------------|
|
||||
| X-Bending | 189Hz | 280Hz |
|
||||
| Y-Bending | 285Hz | 410Hz |
|
||||
| Z-Torsion | 400Hz | 800Hz? |
|
||||
|
||||
* Dynamical measurements - APA
|
||||
<<sec:dynamical_meas_apa>>
|
||||
@ -4461,6 +4577,12 @@ From Figure [[fig:comp_enc_frf_align_perfect]], it is clear that:
|
||||
2. The measured FRF have different shapes
|
||||
#+end_important
|
||||
|
||||
#+begin_question
|
||||
Why is the flexible mode of the strut at 200Hz is not seen in the model in Figure [[fig:comp_enc_frf_align_perfect]]?
|
||||
Probably because the presence of this mode is not due because of the "unbalanced" mass of the encoder, but rather because of the misalignment of the APA with respect to the two flexible joints.
|
||||
This will be verified in the next sections.
|
||||
#+end_question
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = 5*logspace(0, 3, 1000);
|
||||
|
||||
@ -4924,7 +5046,7 @@ This method gives nice match between the measured FRF and the one extracted from
|
||||
Using this method, an axial stiffness of $70 N/\mu m$ is found to give good results (and is reasonable based on the finite element models).
|
||||
#+end_important
|
||||
|
||||
*** Effect of bending damping
|
||||
*** TODO Effect of bending damping
|
||||
|
||||
* TODO Compare with the FEM/Simscape Model :noexport:
|
||||
:PROPERTIES:
|
||||
|