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
|
#+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
|
||||||
|