diff --git a/cedrat-actuator/docs/Amplified_Piezo_Actuator_APA120ML-PP.pdf b/cedrat-actuator/docs/Amplified_Piezo_Actuator_APA120ML-PP.pdf deleted file mode 100644 index 5fd0c70..0000000 Binary files a/cedrat-actuator/docs/Amplified_Piezo_Actuator_APA120ML-PP.pdf and /dev/null differ diff --git a/cedrat-actuator/figs b/cedrat-actuator/figs deleted file mode 120000 index 8ea5186..0000000 --- a/cedrat-actuator/figs +++ /dev/null @@ -1 +0,0 @@ -../figs \ No newline at end of file diff --git a/cedrat-actuator/index.html b/cedrat-actuator/index.html deleted file mode 100644 index 29c856d..0000000 --- a/cedrat-actuator/index.html +++ /dev/null @@ -1,452 +0,0 @@ - - - - - - - -Cedrat Actuator - - - - - - - - - - - - - - - -
- UP - | - HOME -
-

Cedrat Actuator

-
-

Table of Contents

- -
- -
-

1 Documentation

-
-
    -
  • Blocked force: \(1400\ N\)
  • -
  • Stiffness: \(10.8\ N/\mu m\)
  • -
  • Resonance (free-free): \(6450\ Hz\)
  • -
  • Resonance (blocked-free): \(1750\ Hz\)
  • -
  • Height: \(H = 45\ mm\)
  • -
  • Length: \(L = 80\ mm\)
  • -
  • Width: \(22\ mm\)
  • -
  • Mass: \(160\ g\)
  • -
- - -
-

cedrat_geometry.png -

-
-
-
- - -
-

2 Parameters

-
-
-
cedrat.L = 80; % Total Width of the Actuator[mm]
-cedrat.H = 45; % Total Height of the Actuator [mm]
-cedrat.L2 = sqrt((cedrat.L/2)^2 + (cedrat.H/2)^2); % Length of the elipsoidal sections [mm]
-cedrat.alpha = 180/pi*atan2(cedrat.L/2, cedrat.H/2); % [deg]
-cedrat.mtot = 0.160; % Total mass of the Actuator [kg]
-cedrat.m = cedrat.mtot/6; % Mass of each single element [kg]
-
-
- -
-
cedrat.k = 1e9; % Linear Stiffness of each "blade" [N/m]
-cedrat.c = 0.1*sqrt(cedrat.mtot*cedrat.k); % [N/(m/s)]
-
-cedrat.ka = 5e7; % Linear Stiffness of the stack [N/m]
-cedrat.ca = 0.1*sqrt(cedrat.mtot*cedrat.ka); % [N/(m/s)]
-
-cedrat.kr = 10; % Rotation Stiffness [N*m/(deg)]
-cedrat.cr = 0.0001; % Rotation Damping [N*m/(deg/s)]
-
-
- -
-
K_iff = tf(0);
-
-
- -
-
% dummy_mass = 140; % [kg]
-dummy_mass = 1; % [kg]
-
-
-
-
- -
-

3 Identification

-
-
-
%% Options for Linearized
-options = linearizeOptions;
-options.SampleTime = 0;
-
-%% Name of the Simulink File
-mdl = 'cedrat_piezo';
-
-%% Input/Output definition
-io(1)  = linio([mdl, '/F'],  1, 'input');
-io(2)  = linio([mdl, '/Fz'], 1, 'input');
-io(3)  = linio([mdl, '/Dw'], 1, 'input');
-io(4)  = linio([mdl, '/Dz'], 1, 'output');
-io(5)  = linio([mdl, '/Fm'], 1, 'output');
-
-%% Run the linearization
-G = linearize(mdl, io, options);
-G.InputName  = {'F', 'Fz', 'Dw'};
-G.OutputName = {'Dz', 'Fm'};
-
-
- - -
-

cedrat_piezo_identified_tf.png -

-

Figure 2: Identified Transfer function (png, pdf)

-
-
-
- -
-

4 Integral Force Feedback

-
- -
-

iff_plant_cedrat.png -

-

Figure 3: Transfer function from \(F\) to \(F_m\) (png, pdf)

-
- - -
-
K_iff = -100000/s*(s/2/pi/100)/(1 + s/2/pi/100)*(s/2/pi/100)/(1 + s/2/pi/100);
-
-
- - -
-

iff_open_loop_cedrat.png -

-

Figure 4: Open Loop Gain Transfer Function - Cedrat (png, pdf)

-
-
-
- -
-

5 Damped System

-
-
-
%% Options for Linearized
-options = linearizeOptions;
-options.SampleTime = 0;
-
-%% Name of the Simulink File
-mdl = 'cedrat_piezo';
-
-%% Input/Output definition
-io(1)  = linio([mdl, '/F'],  1, 'input');
-io(2)  = linio([mdl, '/Fz'],  1, 'input');
-io(3)  = linio([mdl, '/Dw'], 1, 'input');
-io(4)  = linio([mdl, '/Dz'], 1, 'output');
-io(5)  = linio([mdl, '/Fm'], 1, 'output');
-
-%% Run the linearization
-G_iff = linearize(mdl, io, options);
-G_iff.InputName  = {'F', 'Fz', 'Dw'};
-G_iff.OutputName = {'Dz', 'Fm'};
-
-
- - -
-

cedrat_iff_piezo_identified_tf.png -

-

Figure 5: Identified Transfer function (png, pdf)

-
-
-
-
-
-

Author: Dehaeze Thomas

-

Created: 2019-10-29 mar. 11:06

-

Validate

-
- - diff --git a/cedrat-actuator/index.org b/cedrat-actuator/index.org deleted file mode 100644 index fa9129c..0000000 --- a/cedrat-actuator/index.org +++ /dev/null @@ -1,330 +0,0 @@ -#+TITLE: Cedrat Actuator -:DRAWER: -#+STARTUP: overview - -#+LANGUAGE: en -#+EMAIL: dehaeze.thomas@gmail.com -#+AUTHOR: Dehaeze Thomas - -#+HTML_LINK_HOME: ../index.html -#+HTML_LINK_UP: ../index.html - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -#+HTML_MATHJAX: align: center tagside: right font: TeX - -#+PROPERTY: header-args:matlab :session *MATLAB* -#+PROPERTY: header-args:matlab+ :comments org -#+PROPERTY: header-args:matlab+ :results none -#+PROPERTY: header-args:matlab+ :exports both -#+PROPERTY: header-args:matlab+ :eval no-export -#+PROPERTY: header-args:matlab+ :output-dir figs -#+PROPERTY: header-args:matlab+ :tangle matlab/modal_frf_coh.m -#+PROPERTY: header-args:matlab+ :mkdirp yes - -#+PROPERTY: header-args:shell :eval no-export - -#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/thesis/latex/}{config.tex}") -#+PROPERTY: header-args:latex+ :imagemagick t :fit yes -#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150 -#+PROPERTY: header-args:latex+ :imoutoptions -quality 100 -#+PROPERTY: header-args:latex+ :results raw replace :buffer no -#+PROPERTY: header-args:latex+ :eval no-export -#+PROPERTY: header-args:latex+ :exports both -#+PROPERTY: header-args:latex+ :mkdirp yes -#+PROPERTY: header-args:latex+ :output-dir figs -:END: - -* Documentation -- Blocked force: $1400\ N$ -- Stiffness: $10.8\ N/\mu m$ -- Resonance (free-free): $6450\ Hz$ -- Resonance (blocked-free): $1750\ Hz$ -- Height: $H = 45\ mm$ -- Length: $L = 80\ mm$ -- Width: $22\ mm$ -- Mass: $160\ g$ - -#+begin_src latex :file cedrat_geometry.pdf :post pdf2svg(file=*this*, ext="png") :exports results - \begin{tikzpicture} - \node[branch] (O) at ( 0, 0){}; - \node[branch] (A) at (-3, 1.5){}; - \node[branch] (C) at ( 0, 1.5){}; - \node[branch] (B) at ( 3, 1.5){}; - \node[branch] (T) at ( 0, 3){}; - - \draw[] (O) -- (A); - \draw[] (O) -- node[midway, below]{$L_2$} (B); - \draw[] (A) -- (C); - \draw[] (C) -- (B); - \draw[] (A) -- (T); - \draw[] (B) -- (T); - - \draw[dashed] (O) -- (T); - \draw[dashed] (0, 0.5) arc (90:26:0.5) node[midway, above]{$\alpha$}; - - \draw[dashed, <->] ($(O) + (3.5, 0)$) -- node[right]{$H$} ($(T) + (3.5, 0)$); - \draw[dashed, <->] ($(A) + (0, -2)$) -- node[below]{$L$} ($(B) + (0, -2)$); - \end{tikzpicture} -#+end_src - -#+RESULTS: -[[file:figs/cedrat_geometry.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) - <> -#+end_src - -#+begin_src matlab :exports none :results silent :noweb yes - <> -#+end_src - -#+begin_src matlab :tangle no - simulinkproject('../'); -#+end_src - -#+begin_src matlab - open 'simscape/cedrat_piezo.slx' -#+end_src - -* Parameters -#+begin_src matlab - cedrat.L = 80; % Total Width of the Actuator[mm] - cedrat.H = 45; % Total Height of the Actuator [mm] - cedrat.L2 = sqrt((cedrat.L/2)^2 + (cedrat.H/2)^2); % Length of the elipsoidal sections [mm] - cedrat.alpha = 180/pi*atan2(cedrat.L/2, cedrat.H/2); % [deg] - cedrat.mtot = 0.160; % Total mass of the Actuator [kg] - cedrat.m = cedrat.mtot/6; % Mass of each single element [kg] -#+end_src - -#+begin_src matlab - cedrat.k = 1e9; % Linear Stiffness of each "blade" [N/m] - cedrat.c = 0.1*sqrt(cedrat.mtot*cedrat.k); % [N/(m/s)] - - cedrat.ka = 5e7; % Linear Stiffness of the stack [N/m] - cedrat.ca = 0.1*sqrt(cedrat.mtot*cedrat.ka); % [N/(m/s)] - - cedrat.kr = 10; % Rotation Stiffness [N*m/(deg)] - cedrat.cr = 0.0001; % Rotation Damping [N*m/(deg/s)] -#+end_src - -#+begin_src matlab - K_iff = tf(0); -#+end_src - -#+begin_src matlab - % dummy_mass = 140; % [kg] - dummy_mass = 1; % [kg] -#+end_src - -* Identification -#+begin_src matlab - %% Options for Linearized - options = linearizeOptions; - options.SampleTime = 0; - - %% Name of the Simulink File - mdl = 'cedrat_piezo'; - - %% Input/Output definition - io(1) = linio([mdl, '/F'], 1, 'input'); - io(2) = linio([mdl, '/Fz'], 1, 'input'); - io(3) = linio([mdl, '/Dw'], 1, 'input'); - io(4) = linio([mdl, '/Dz'], 1, 'output'); - io(5) = linio([mdl, '/Fm'], 1, 'output'); - - %% Run the linearization - G = linearize(mdl, io, options); - G.InputName = {'F', 'Fz', 'Dw'}; - G.OutputName = {'Dz', 'Fm'}; -#+end_src - -#+begin_src matlab :exports none - freqs = logspace(0, 5, 1000); - - figure; - subplot(2, 2, 1); - title('From $F_z$ to $D_z$ - Compliance'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Dz', 'Fz'), freqs, 'Hz'))), 'k-'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]'); - - subplot(2, 2, 2); - title('From $D_w$ to $D_z$ - Transmissibility'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Dz', 'Dw'), freqs, 'Hz'))), 'k-'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]'); - - subplot(2, 2, 3); - title('From $F$ to $D_z$ - Plant'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Dz', 'F'), freqs, 'Hz'))), 'k-'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]'); - - subplot(2, 2, 4); - title('From $F$ to $F_m$ - IFF Plant'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Fm', 'F'), freqs, 'Hz'))), 'k-'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/cedrat_piezo_identified_tf.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:cedrat_piezo_identified_tf -#+CAPTION: Identified Transfer function ([[./figs/cedrat_piezo_identified_tf.png][png]], [[./figs/cedrat_piezo_identified_tf.pdf][pdf]]) -[[file:figs/cedrat_piezo_identified_tf.png]] - -* Integral Force Feedback -#+begin_src matlab :exports none - freqs = logspace(1, 5, 1000); - - figure; - - ax1 = subplot(2, 1, 1); - plot(freqs, abs(squeeze(freqresp(-G('Fm', 'F'), freqs, 'Hz'))), 'k-'); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]); - - ax2 = subplot(2, 1, 2); - plot(freqs, 180/pi*angle(squeeze(freqresp(-G('Fm', 'F'), freqs, 'Hz'))), 'k-'); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); - ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); - ylim([-180, 180]); - yticks([-180, -90, 0, 90, 180]); - - linkaxes([ax1,ax2],'x'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/iff_plant_cedrat.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:iff_plant_cedrat -#+CAPTION: Transfer function from $F$ to $F_m$ ([[./figs/iff_plant_cedrat.png][png]], [[./figs/iff_plant_cedrat.pdf][pdf]]) -[[file:figs/iff_plant_cedrat.png]] - - -#+begin_src matlab - K_iff = -100000/s*(s/2/pi/100)/(1 + s/2/pi/100)*(s/2/pi/100)/(1 + s/2/pi/100); -#+end_src - -#+begin_src matlab :exports none - freqs = logspace(0, 5, 1000); - - figure; - - ax1 = subplot(2, 1, 1); - plot(freqs, abs(squeeze(freqresp(K_iff*G('Fm', 'F'), freqs, 'Hz'))), 'k-'); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]); - - ax2 = subplot(2, 1, 2); - plot(freqs, 180/pi*angle(squeeze(freqresp(K_iff*G('Fm', 'F'), freqs, 'Hz'))), 'k-'); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); - ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); - ylim([-180, 180]); - yticks([-180, -90, 0, 90, 180]); - - linkaxes([ax1,ax2],'x'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/iff_open_loop_cedrat.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:iff_open_loop_cedrat -#+CAPTION: Open Loop Gain Transfer Function - Cedrat ([[./figs/iff_open_loop_cedrat.png][png]], [[./figs/iff_open_loop_cedrat.pdf][pdf]]) -[[file:figs/iff_open_loop_cedrat.png]] - -* Damped System -#+begin_src matlab - %% Options for Linearized - options = linearizeOptions; - options.SampleTime = 0; - - %% Name of the Simulink File - mdl = 'cedrat_piezo'; - - %% Input/Output definition - io(1) = linio([mdl, '/F'], 1, 'input'); - io(2) = linio([mdl, '/Fz'], 1, 'input'); - io(3) = linio([mdl, '/Dw'], 1, 'input'); - io(4) = linio([mdl, '/Dz'], 1, 'output'); - io(5) = linio([mdl, '/Fm'], 1, 'output'); - - %% Run the linearization - G_iff = linearize(mdl, io, options); - G_iff.InputName = {'F', 'Fz', 'Dw'}; - G_iff.OutputName = {'Dz', 'Fm'}; -#+end_src - -#+begin_src matlab :exports none - freqs = logspace(0, 5, 1000); - - figure; - subplot(2, 2, 1); - title('From $F_z$ to $D_z$ - Compliance'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Dz', 'Fz'), freqs, 'Hz'))), 'k-'); - plot(freqs, abs(squeeze(freqresp(G_iff('Dz', 'Fz'), freqs, 'Hz'))), 'k--'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]'); - - subplot(2, 2, 2); - title('From $D_w$ to $D_z$ - Transmissibility'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Dz', 'Dw'), freqs, 'Hz'))), 'k-'); - plot(freqs, abs(squeeze(freqresp(G_iff('Dz', 'Dw'), freqs, 'Hz'))), 'k--'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]'); - - subplot(2, 2, 3); - title('From $F$ to $D_z$ - Plant'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Dz', 'F'), freqs, 'Hz'))), 'k-'); - plot(freqs, abs(squeeze(freqresp(G_iff('Dz', 'F'), freqs, 'Hz'))), 'k--'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]'); - - subplot(2, 2, 4); - title('From $F$ to $F_m$ - IFF Plant'); - hold on; - plot(freqs, abs(squeeze(freqresp(G('Fm', 'F'), freqs, 'Hz'))), 'k-'); - plot(freqs, abs(squeeze(freqresp(G_iff('Fm', 'F'), freqs, 'Hz'))), 'k--'); - hold off; - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [V/N]'); xlabel('Frequency [Hz]'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/cedrat_iff_piezo_identified_tf.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:cedrat_iff_piezo_identified_tf -#+CAPTION: Identified Transfer function ([[./figs/cedrat_iff_piezo_identified_tf.png][png]], [[./figs/cedrat_iff_piezo_identified_tf.pdf][pdf]]) -[[file:figs/cedrat_iff_piezo_identified_tf.png]] diff --git a/figs/cedrat_geometry.png b/figs/cedrat_geometry.png deleted file mode 100644 index 95eafa8..0000000 Binary files a/figs/cedrat_geometry.png and /dev/null differ diff --git a/figs/cedrat_iff_piezo_identified_tf.png b/figs/cedrat_iff_piezo_identified_tf.png deleted file mode 100644 index ffe9e5a..0000000 Binary files a/figs/cedrat_iff_piezo_identified_tf.png and /dev/null differ diff --git a/figs/cedrat_piezo_identified_tf.png b/figs/cedrat_piezo_identified_tf.png deleted file mode 100644 index 642687f..0000000 Binary files a/figs/cedrat_piezo_identified_tf.png and /dev/null differ diff --git a/figs/iff_open_loop_cedrat.png b/figs/iff_open_loop_cedrat.png deleted file mode 100644 index 6e31a36..0000000 Binary files a/figs/iff_open_loop_cedrat.png and /dev/null differ diff --git a/figs/iff_plant_cedrat.png b/figs/iff_plant_cedrat.png deleted file mode 100644 index af878af..0000000 Binary files a/figs/iff_plant_cedrat.png and /dev/null differ