Update model for Cedrat actuator (simple one)

This commit is contained in:
Thomas Dehaeze 2019-11-05 11:28:05 +01:00
parent 47034f56a7
commit b8264eceb5
9 changed files with 350 additions and 232 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -2188,6 +2188,40 @@ Direct Velocity Feedback:
#+end_important
* With Cedrat Piezo-electric Actuators
<<sec:cedrat_actuator>>
** Introduction :ignore:
The model used for the Cedrat actuator is shown in figure [[fig:cedrat_schematic]].
#+begin_src latex :file cedrat-uniaxial-actuator.pdf :post pdf2svg(file=*this*, ext="png") :exports results
\begin{tikzpicture}
% Spring, Damper, and Actuator
\draw[] (0, -0.2) -- (0, 0);
\draw[] (-1, 0) -- (1, 0);
\draw[spring] (-1, 0) -- (-1, 2) node[midway, left=0.1]{$k_{a}$};
\draw[damper] (0, 0) -- ( 0, 2) node[midway, left=0.2]{$c_{a}$};
\draw[actuator] (1, 0) -- ( 1, 2) node[midway, left=0.2]{$F$};
\draw[] (-1, 2) -- (1, 2);
\draw[] (0, 2) -- (0, 2.2);
\node[forcesensor={0.4}{0.4}] (fsensn) at (0, 2.2){};
\draw[] (0, 2.6) -- (0, 2.8);
\draw[spring] (2, -0.2) -- (2, 2.8) node[midway, left=0.2]{$k$};
\draw[] (0, -0.2) -- (2, -0.2);
\draw[] (0, 2.8) -- (2, 2.8);
\draw[] (1, 2.8) -- (1, 3);
\draw[] (1, -0.2) -- (1, -0.4);
\end{tikzpicture}
#+end_src
#+name: fig:cedrat_schematic
#+caption: Schematic of the model used for the Cedrat Actuator
#+RESULTS:
[[file:figs/cedrat-uniaxial-actuator.png]]
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
@ -2206,6 +2240,33 @@ Direct Velocity Feedback:
#+end_src
** Identification
Let's initialize the system prior to identification.
#+begin_src matlab
initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc();
initializeMirror();
initializeNanoHexapod(struct('actuator', 'piezo'));
initializeCedratPiezo();
initializeSample(struct('mass', 50));
#+end_src
And initialize the controllers.
#+begin_src matlab
K = tf(0);
save('./mat/controllers.mat', 'K', '-append');
K_iff = tf(0);
save('./mat/controllers.mat', 'K_iff', '-append');
K_rmc = tf(0);
save('./mat/controllers.mat', 'K_rmc', '-append');
K_dvf = tf(0);
save('./mat/controllers.mat', 'K_dvf', '-append');
#+end_src
We identify the dynamics of the system.
#+begin_src matlab
%% Options for Linearized
@ -2213,7 +2274,7 @@ We identify the dynamics of the system.
options.SampleTime = 0;
%% Name of the Simulink File
mdl = 'sim_nano_station_uniaxial_cedrat';
mdl = 'sim_nano_station_uniaxial_cedrat_bis';
#+end_src
The inputs and outputs are defined below and corresponds to the name of simulink blocks.
@ -2252,7 +2313,7 @@ Finally, we use the =linearize= Matlab function to extract a state space model f
Let's look at the transfer function from actuator forces in the nano-hexapod to the force sensor in the nano-hexapod legs for all 6 pairs of actuator/sensor.
#+begin_src matlab :exports none
freqs = logspace(0, 3, 1000);
freqs = logspace(0, 4, 1000);
figure;
@ -2282,11 +2343,11 @@ Let's look at the transfer function from actuator forces in the nano-hexapod to
The controller for each pair of actuator/sensor is:
#+begin_src matlab
K_cedrat = 1000/s;
K_cedrat = -5000/s;
#+end_src
#+begin_src matlab :exports none
freqs = logspace(0, 3, 1000);
freqs = logspace(0, 4, 1000);
figure;
@ -2326,6 +2387,7 @@ Let's initialize the system prior to identification.
initializeAxisc();
initializeMirror();
initializeNanoHexapod(struct('actuator', 'piezo'));
initializeCedratPiezo();
initializeSample(struct('mass', 50));
#+end_src
@ -2347,7 +2409,7 @@ All the controllers are set to 0.
options.SampleTime = 0;
%% Name of the Simulink File
mdl = 'sim_nano_station_uniaxial_cedrat';
mdl = 'sim_nano_station_uniaxial_cedrat_bis';
#+end_src
#+begin_src matlab
@ -2381,7 +2443,7 @@ All the controllers are set to 0.
#+end_src
#+begin_src matlab
save('./uniaxial/mat/plants.mat', 'G_cedrat', '-append');
% save('./uniaxial/mat/plants.mat', 'G_cedrat', '-append');
#+end_src
** Sensitivity to Disturbance
@ -2492,7 +2554,7 @@ All the controllers are set to 0.
** Conclusion
#+begin_important
This gives similar results than with a classical force sensor.
This gives similar results than with a classical force sensor.
#+end_important
* Comparison of Active Damping Techniques