Update model for Cedrat actuator (simple one)
BIN
figs/cedrat-uniaxial-actuator.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 121 KiB |
BIN
simscape/sim_nano_station_uniaxial_cedrat_bis.slx
Normal 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
|
||||
|