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 #+end_important
* With Cedrat Piezo-electric Actuators * With Cedrat Piezo-electric Actuators
<<sec:cedrat_actuator>> <<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: ** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>> <<matlab-dir>>
@ -2206,6 +2240,33 @@ Direct Velocity Feedback:
#+end_src #+end_src
** Identification ** 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. We identify the dynamics of the system.
#+begin_src matlab #+begin_src matlab
%% Options for Linearized %% Options for Linearized
@ -2213,7 +2274,7 @@ We identify the dynamics of the system.
options.SampleTime = 0; options.SampleTime = 0;
%% Name of the Simulink File %% Name of the Simulink File
mdl = 'sim_nano_station_uniaxial_cedrat'; mdl = 'sim_nano_station_uniaxial_cedrat_bis';
#+end_src #+end_src
The inputs and outputs are defined below and corresponds to the name of simulink blocks. 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. 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 #+begin_src matlab :exports none
freqs = logspace(0, 3, 1000); freqs = logspace(0, 4, 1000);
figure; 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: The controller for each pair of actuator/sensor is:
#+begin_src matlab #+begin_src matlab
K_cedrat = 1000/s; K_cedrat = -5000/s;
#+end_src #+end_src
#+begin_src matlab :exports none #+begin_src matlab :exports none
freqs = logspace(0, 3, 1000); freqs = logspace(0, 4, 1000);
figure; figure;
@ -2326,6 +2387,7 @@ Let's initialize the system prior to identification.
initializeAxisc(); initializeAxisc();
initializeMirror(); initializeMirror();
initializeNanoHexapod(struct('actuator', 'piezo')); initializeNanoHexapod(struct('actuator', 'piezo'));
initializeCedratPiezo();
initializeSample(struct('mass', 50)); initializeSample(struct('mass', 50));
#+end_src #+end_src
@ -2347,7 +2409,7 @@ All the controllers are set to 0.
options.SampleTime = 0; options.SampleTime = 0;
%% Name of the Simulink File %% Name of the Simulink File
mdl = 'sim_nano_station_uniaxial_cedrat'; mdl = 'sim_nano_station_uniaxial_cedrat_bis';
#+end_src #+end_src
#+begin_src matlab #+begin_src matlab
@ -2381,7 +2443,7 @@ All the controllers are set to 0.
#+end_src #+end_src
#+begin_src matlab #+begin_src matlab
save('./uniaxial/mat/plants.mat', 'G_cedrat', '-append'); % save('./uniaxial/mat/plants.mat', 'G_cedrat', '-append');
#+end_src #+end_src
** Sensitivity to Disturbance ** Sensitivity to Disturbance