diff --git a/hac_lac/figs b/hac_lac/figs
new file mode 120000
index 0000000..d440220
--- /dev/null
+++ b/hac_lac/figs
@@ -0,0 +1 @@
+../figs/
\ No newline at end of file
diff --git a/hac_lac/index.org b/hac_lac/index.org
new file mode 100644
index 0000000..ef66a0b
--- /dev/null
+++ b/hac_lac/index.org
@@ -0,0 +1,650 @@
+#+TITLE: HAC-LAC applied on the Simscape Model
+: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 no
+#+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:
+
+* Undamped System
+<>
+
+** Introduction :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)
+ <>
+#+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('hac_lac/matlab/sim_nass_hac_lac.slx')
+#+end_src
+
+** Identification of the plant
+*** Initialize the Simulation
+We initialize all the stages with the default parameters.
+#+begin_src matlab
+ initializeGround();
+ initializeGranite();
+ initializeTy();
+ initializeRy();
+ initializeRz();
+ initializeMicroHexapod();
+ initializeAxisc();
+ initializeMirror();
+#+end_src
+
+The nano-hexapod is a piezoelectric hexapod and the sample has a mass of 50kg.
+#+begin_src matlab
+ initializeNanoHexapod('actuator', 'piezo');
+ initializeSample('mass', 50);
+#+end_src
+
+No disturbances.
+#+begin_src matlab
+ initializeDisturbances('enable', false);
+#+end_src
+
+We set the references to zero.
+#+begin_src matlab
+ initializeReferences();
+#+end_src
+
+And all the controllers are set to 0.
+#+begin_src matlab
+ K = tf(zeros(6));
+ save('./mat/controllers.mat', 'K', '-append');
+ K_ine = tf(zeros(6));
+ save('./mat/controllers.mat', 'K_ine', '-append');
+ K_iff = tf(zeros(6));
+ save('./mat/controllers.mat', 'K_iff', '-append');
+ K_dvf = tf(zeros(6));
+ save('./mat/controllers.mat', 'K_dvf', '-append');
+#+end_src
+
+*** Identification
+First, we identify the dynamics of the system using the =linearize= function.
+#+begin_src matlab
+ %% Options for Linearized
+ options = linearizeOptions;
+ options.SampleTime = 0;
+
+ %% Name of the Simulink File
+ mdl = 'sim_nass_hac_lac';
+
+ %% Input/Output definition
+ clear io; io_i = 1;
+ io(io_i) = linio([mdl, '/HAC'], 1, 'openinput'); io_i = io_i + 1;
+ io(io_i) = linio([mdl, '/Compute Error in NASS base'], 2, 'openoutput'); io_i = io_i + 1;
+
+ %% Run the linearization
+ G = linearize(mdl, io, options);
+ G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'};
+ G.OutputName = {'Edx', 'Edy', 'Edz', 'Erx', 'Ery', 'Erz'};
+#+end_src
+
+#+begin_src matlab
+ load('mat/stages.mat', 'nano_hexapod');
+ G_cart = minreal(G*inv(nano_hexapod.J'));
+ G_cart.InputName = {'Fnx', 'Fny', 'Fnz', 'Mnx', 'Mny', 'Mnz'};
+#+end_src
+
+#+begin_src matlab
+ G_legs = minreal(inv(nano_hexapod.J)*G);
+ G_legs.OutputName = {'e1', 'e2', 'e3', 'e4', 'e5', 'e6'};
+#+end_src
+
+# And we save them for further analysis.
+# #+begin_src matlab
+# save('./hac_lac/mat/undamped_plant.mat', 'G');
+# #+end_src
+
+*** Display TF
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_cart(i, i), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_cart(i, i), freqs, 'Hz'))), 'DisplayName', [G_cart.InputName{i}, ' to ', G_cart.OutputName{i}]);
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
+ ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
+ ylim([-180, 180]);
+ yticks([-180, -90, 0, 90, 180]);
+ legend();
+
+ linkaxes([ax1,ax2],'x');
+#+end_src
+
+#+HEADER: :tangle no :exports results :results none :noweb yes
+#+begin_src matlab :var filepath="figs/plant_G_cart.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+ <>
+#+end_src
+
+#+NAME: fig:plant_G_cart
+#+CAPTION: Transfer Function from forces applied by the nano-hexapod to position error ([[./figs/plant_G_cart.png][png]], [[./figs/plant_G_cart.pdf][pdf]])
+[[file:figs/plant_G_cart.png]]
+
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_legs(['e', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_legs(['e', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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
+
+*** Obtained Plants for Active Damping
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_iff(['Fnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_iff(['Fnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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/nass_active_damping_iff_plant.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_active_damping_iff_plant
+#+CAPTION: =G_iff=: IFF Plant ([[./figs/nass_active_damping_iff_plant.png][png]], [[./figs/nass_active_damping_iff_plant.pdf][pdf]])
+[[file:figs/nass_active_damping_iff_plant.png]]
+
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_dvf(['Dnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_dvf(['Dnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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/nass_active_damping_dvf_plant.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_active_damping_dvf_plant
+#+CAPTION: =G_dvf=: Plant for Direct Velocity Feedback ([[./figs/nass_active_damping_dvf_plant.png][png]], [[./figs/nass_active_damping_dvf_plant.pdf][pdf]])
+[[file:figs/nass_active_damping_ine_plant.png]]
+
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_ine(['Vnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [$\frac{m/s}{N}$]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_ine(['Vnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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/nass_active_damping_inertial_plant.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_active_damping_inertial_plant
+#+CAPTION: Inertial Feedback Plant ([[./figs/nass_active_damping_inertial_plant.png][png]], [[./figs/nass_active_damping_inertial_plant.pdf][pdf]])
+[[file:figs/nass_active_damping_inertial_plant.png]]
+
+** Tomography Experiment
+*** Simulation
+We initialize elements for the tomography experiment.
+#+begin_src matlab
+ prepareTomographyExperiment();
+#+end_src
+
+We change the simulation stop time.
+#+begin_src matlab
+ load('mat/conf_simscape.mat');
+ set_param(conf_simscape, 'StopTime', '3');
+#+end_src
+
+And we simulate the system.
+#+begin_src matlab
+ sim('sim_nass_active_damping');
+#+end_src
+
+Finally, we save the simulation results for further analysis
+#+begin_src matlab
+ save('./active_damping/mat/tomo_exp.mat', 'En', 'Eg', '-append');
+#+end_src
+
+*** Results
+We load the results of tomography experiments.
+#+begin_src matlab
+ load('./active_damping/mat/tomo_exp.mat', 'En');
+ t = linspace(0, 3, length(En(:,1)));
+#+end_src
+
+#+begin_src matlab :exports none
+ figure;
+ hold on;
+ plot(t, En(:,1), 'DisplayName', '$\epsilon_{x}$')
+ plot(t, En(:,2), 'DisplayName', '$\epsilon_{y}$')
+ plot(t, En(:,3), 'DisplayName', '$\epsilon_{z}$')
+ hold off;
+ legend();
+ xlabel('Time [s]'); ylabel('Position Error [m]');
+#+end_src
+
+#+HEADER: :tangle no :exports results :results none :noweb yes
+#+begin_src matlab :var filepath="figs/nass_act_damp_undamped_sim_tomo_trans.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_act_damp_undamped_sim_tomo_trans
+#+CAPTION: Position Error during tomography experiment - Translations ([[./figs/nass_act_damp_undamped_sim_tomo_trans.png][png]], [[./figs/nass_act_damp_undamped_sim_tomo_trans.pdf][pdf]])
+[[file:figs/nass_act_damp_undamped_sim_tomo_trans.png]]
+
+#+begin_src matlab :exports none
+ figure;
+ hold on;
+ plot(t, En(:,4), 'DisplayName', '$\epsilon_{\theta_x}$')
+ plot(t, En(:,5), 'DisplayName', '$\epsilon_{\theta_y}$')
+ plot(t, En(:,6), 'DisplayName', '$\epsilon_{\theta_z}$')
+ hold off;
+ xlim([0.5,inf]);
+ legend();
+ xlabel('Time [s]'); ylabel('Position Error [rad]');
+#+end_src
+
+#+HEADER: :tangle no :exports results :results none :noweb yes
+#+begin_src matlab :var filepath="figs/nass_act_damp_undamped_sim_tomo_rot.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_act_damp_undamped_sim_tomo_rot
+#+CAPTION: Position Error during tomography experiment - Rotations ([[./figs/nass_act_damp_undamped_sim_tomo_rot.png][png]], [[./figs/nass_act_damp_undamped_sim_tomo_rot.pdf][pdf]])
+[[file:figs/nass_act_damp_undamped_sim_tomo_rot.png]]
+** Verification of the transfer function from nano hexapod to metrology
+*** Initialize the Simulation
+We initialize all the stages with the default parameters.
+#+begin_src matlab
+ initializeGround();
+ initializeGranite();
+ initializeTy();
+ initializeRy();
+ initializeRz();
+ initializeMicroHexapod();
+ initializeAxisc();
+ initializeMirror();
+#+end_src
+
+The nano-hexapod is a piezoelectric hexapod and the sample has a mass of 50kg.
+#+begin_src matlab
+ initializeNanoHexapod('actuator', 'piezo');
+ initializeSample('mass', 50);
+#+end_src
+
+No disturbances.
+#+begin_src matlab
+ initializeDisturbances('enable', false);
+#+end_src
+
+We set the references to zero.
+#+begin_src matlab
+ initializeReferences();
+#+end_src
+
+And all the controllers are set to 0.
+#+begin_src matlab
+ K = tf(zeros(6));
+ save('./mat/controllers.mat', 'K', '-append');
+ K_ine = tf(zeros(6));
+ save('./mat/controllers.mat', 'K_ine', '-append');
+ K_iff = tf(zeros(6));
+ save('./mat/controllers.mat', 'K_iff', '-append');
+ K_dvf = tf(zeros(6));
+ save('./mat/controllers.mat', 'K_dvf', '-append');
+#+end_src
+
+*** Identification
+First, we identify the dynamics of the system using the =linearize= function.
+#+begin_src matlab
+ %% Options for Linearized
+ options = linearizeOptions;
+ options.SampleTime = 0;
+
+ %% Name of the Simulink File
+ mdl = 'sim_nass_hac_lac';
+
+ %% Input/Output definition
+ clear io; io_i = 1;
+ io(io_i) = linio([mdl, '/HAC'], 1, 'openinput'); io_i = io_i + 1;
+ io(io_i) = linio([mdl, '/Compute Error in NASS base'], 2, 'openoutput'); io_i = io_i + 1;
+
+ %% Run the linearization
+ G = linearize(mdl, io, options);
+ G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'};
+ G.OutputName = {'Edx', 'Edy', 'Edz', 'Erx', 'Ery', 'Erz'};
+#+end_src
+
+#+begin_src matlab
+ load('mat/stages.mat', 'nano_hexapod');
+ G_cart = minreal(G*inv(nano_hexapod.J'));
+ G_cart.InputName = {'Fnx', 'Fny', 'Fnz', 'Mnx', 'Mny', 'Mnz'};
+#+end_src
+
+#+begin_src matlab
+ G_legs = minreal(inv(nano_hexapod.J)*G);
+ G_legs.OutputName = {'e1', 'e2', 'e3', 'e4', 'e5', 'e6'};
+#+end_src
+
+# And we save them for further analysis.
+# #+begin_src matlab
+# save('./hac_lac/mat/undamped_plant.mat', 'G');
+# #+end_src
+
+*** Display TF
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_cart(i, i), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_cart(i, i), freqs, 'Hz'))), 'DisplayName', [G_cart.InputName{i}, ' to ', G_cart.OutputName{i}]);
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
+ ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
+ ylim([-180, 180]);
+ yticks([-180, -90, 0, 90, 180]);
+ legend();
+
+ linkaxes([ax1,ax2],'x');
+#+end_src
+
+#+HEADER: :tangle no :exports results :results none :noweb yes
+#+begin_src matlab :var filepath="figs/plant_G_cart.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+ <>
+#+end_src
+
+#+NAME: fig:plant_G_cart
+#+CAPTION: Transfer Function from forces applied by the nano-hexapod to position error ([[./figs/plant_G_cart.png][png]], [[./figs/plant_G_cart.pdf][pdf]])
+[[file:figs/plant_G_cart.png]]
+
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_legs(['e', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_legs(['e', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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
+
+*** Obtained Plants for Active Damping
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_iff(['Fnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_iff(['Fnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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/nass_active_damping_iff_plant.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_active_damping_iff_plant
+#+CAPTION: =G_iff=: IFF Plant ([[./figs/nass_active_damping_iff_plant.png][png]], [[./figs/nass_active_damping_iff_plant.pdf][pdf]])
+[[file:figs/nass_active_damping_iff_plant.png]]
+
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_dvf(['Dnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_dvf(['Dnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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/nass_active_damping_dvf_plant.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_active_damping_dvf_plant
+#+CAPTION: =G_dvf=: Plant for Direct Velocity Feedback ([[./figs/nass_active_damping_dvf_plant.png][png]], [[./figs/nass_active_damping_dvf_plant.pdf][pdf]])
+[[file:figs/nass_active_damping_ine_plant.png]]
+
+#+begin_src matlab :exports none
+ freqs = logspace(0, 3, 1000);
+
+ figure;
+
+ ax1 = subplot(2, 1, 1);
+ hold on;
+ for i = 1:6
+ plot(freqs, abs(squeeze(freqresp(G_ine(['Vnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
+ ylabel('Amplitude [$\frac{m/s}{N}$]'); set(gca, 'XTickLabel',[]);
+
+ ax2 = subplot(2, 1, 2);
+ hold on;
+ for i = 1:6
+ plot(freqs, 180/pi*angle(squeeze(freqresp(G_ine(['Vnlm', num2str(i)], ['Fnl', num2str(i)]), freqs, 'Hz'))));
+ end
+ hold off;
+ 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/nass_active_damping_inertial_plant.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
+<>
+#+end_src
+
+#+NAME: fig:nass_active_damping_inertial_plant
+#+CAPTION: Inertial Feedback Plant ([[./figs/nass_active_damping_inertial_plant.png][png]], [[./figs/nass_active_damping_inertial_plant.pdf][pdf]])
+[[file:figs/nass_active_damping_inertial_plant.png]]
diff --git a/hac_lac/matlab/sim_nass_hac_lac.slx b/hac_lac/matlab/sim_nass_hac_lac.slx
new file mode 100644
index 0000000..3d06187
Binary files /dev/null and b/hac_lac/matlab/sim_nass_hac_lac.slx differ
diff --git a/mat/controllers.mat b/mat/controllers.mat
index 7566f55..b814c47 100644
Binary files a/mat/controllers.mat and b/mat/controllers.mat differ
diff --git a/mat/nass_disturbances.mat b/mat/nass_disturbances.mat
index b3300ef..3940d35 100644
Binary files a/mat/nass_disturbances.mat and b/mat/nass_disturbances.mat differ
diff --git a/mat/nass_references.mat b/mat/nass_references.mat
index 72aeb03..aae6b59 100644
Binary files a/mat/nass_references.mat and b/mat/nass_references.mat differ