Add PSD and CAS analysis for cascade control
This commit is contained in:
parent
0303b7b944
commit
67e9d2a6c2
BIN
docs/figs/cascade_hac_lac_tomography_cas.pdf
Normal file
BIN
docs/figs/cascade_hac_lac_tomography_cas.pdf
Normal file
Binary file not shown.
BIN
docs/figs/cascade_hac_lac_tomography_cas.png
Normal file
BIN
docs/figs/cascade_hac_lac_tomography_cas.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
BIN
docs/figs/cascade_hac_lac_tomography_psd.pdf
Normal file
BIN
docs/figs/cascade_hac_lac_tomography_psd.pdf
Normal file
Binary file not shown.
BIN
docs/figs/cascade_hac_lac_tomography_psd.png
Normal file
BIN
docs/figs/cascade_hac_lac_tomography_psd.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 143 KiB |
@ -668,6 +668,159 @@ And we simulate the system.
|
|||||||
load('./mat/cascade_hac_lac.mat', 'cascade_hac_lac');
|
load('./mat/cascade_hac_lac.mat', 'cascade_hac_lac');
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab
|
||||||
|
n_av = 4;
|
||||||
|
han_win = hanning(ceil(length(cascade_hac_lac.Em.En.Data(:,1))/n_av));
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab
|
||||||
|
t = cascade_hac_lac.Em.En.Time;
|
||||||
|
Ts = t(2)-t(1);
|
||||||
|
|
||||||
|
[pxx_ol, f] = pwelch(tomo_align_dist.Em.En.Data, han_win, [], [], 1/Ts);
|
||||||
|
[pxx_ca, ~] = pwelch(cascade_hac_lac.Em.En.Data, han_win, [], [], 1/Ts);
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
figure;
|
||||||
|
ax1 = subplot(2, 3, 1);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(pxx_ol(:, 1)))
|
||||||
|
plot(f, sqrt(pxx_ca(:, 1)))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('$\Gamma_{D_x}$ [$m/\sqrt{Hz}$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax2 = subplot(2, 3, 2);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(pxx_ol(:, 2)))
|
||||||
|
plot(f, sqrt(pxx_ca(:, 2)))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('$\Gamma_{D_y}$ [$m/\sqrt{Hz}$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax3 = subplot(2, 3, 3);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(pxx_ol(:, 3)))
|
||||||
|
plot(f, sqrt(pxx_ca(:, 3)))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('$\Gamma_{D_z}$ [$m/\sqrt{Hz}$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax4 = subplot(2, 3, 4);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(pxx_ol(:, 4)))
|
||||||
|
plot(f, sqrt(pxx_ca(:, 4)))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('$\Gamma_{R_x}$ [$rad/\sqrt{Hz}$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax5 = subplot(2, 3, 5);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(pxx_ol(:, 5)))
|
||||||
|
plot(f, sqrt(pxx_ca(:, 5)))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('$\Gamma_{R_y}$ [$rad/\sqrt{Hz}$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax6 = subplot(2, 3, 6);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(pxx_ol(:, 6)), 'DisplayName', '$\mu$-Station')
|
||||||
|
plot(f, sqrt(pxx_ca(:, 6)), 'DisplayName', 'Cascade')
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('$\Gamma_{R_z}$ [$rad/\sqrt{Hz}$]');
|
||||||
|
legend('location', 'southwest');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2,ax3,ax4,ax5,ax6],'x');
|
||||||
|
xlim([f(2), f(end)])
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+header: :tangle no :exports results :results none :noweb yes
|
||||||
|
#+begin_src matlab :var filepath="figs/cascade_hac_lac_tomography_psd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||||
|
<<plt-matlab>>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:cascade_hac_lac_tomography_psd
|
||||||
|
#+caption: ASD of the position error ([[./figs/cascade_hac_lac_tomography_psd.png][png]], [[./figs/cascade_hac_lac_tomography_psd.pdf][pdf]])
|
||||||
|
[[file:figs/cascade_hac_lac_tomography_psd.png]]
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
figure;
|
||||||
|
ax1 = subplot(2, 3, 1);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ol(:, 1))))))
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ca(:, 1))))))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('CAS $D_x$ [$m$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax2 = subplot(2, 3, 2);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ol(:, 2))))))
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ca(:, 2))))))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('CAS $D_y$ [$m$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax3 = subplot(2, 3, 3);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ol(:, 3))))))
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ca(:, 3))))))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('CAS $D_z$ [$m$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax4 = subplot(2, 3, 4);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ol(:, 4))))))
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ca(:, 4))))))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('CAS $R_x$ [$rad$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax5 = subplot(2, 3, 5);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ol(:, 5))))))
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ca(:, 5))))))
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('CAS $R_y$ [$rad$]');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
ax6 = subplot(2, 3, 6);
|
||||||
|
hold on;
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ol(:, 6))))), 'DisplayName', '$\mu$-Station')
|
||||||
|
plot(f, sqrt(flip(-cumtrapz(flip(f), flip(pxx_ca(:, 6))))), 'DisplayName', 'Cascade')
|
||||||
|
hold off;
|
||||||
|
xlabel('Frequency [Hz]');
|
||||||
|
ylabel('CAS $R_z$ [$rad$]');
|
||||||
|
legend('location', 'southwest');
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2,ax3,ax4,ax5,ax6],'x');
|
||||||
|
xlim([f(2), f(end)])
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+header: :tangle no :exports results :results none :noweb yes
|
||||||
|
#+begin_src matlab :var filepath="figs/cascade_hac_lac_tomography_cas.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||||
|
<<plt-matlab>>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:cascade_hac_lac_tomography_cas
|
||||||
|
#+caption: Cumulative Amplitude Spectrum of the position error ([[./figs/cascade_hac_lac_tomography_cas.png][png]], [[./figs/cascade_hac_lac_tomography_cas.pdf][pdf]])
|
||||||
|
[[file:figs/cascade_hac_lac_tomography_cas.png]]
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
figure;
|
figure;
|
||||||
ax1 = subplot(2, 3, 1);
|
ax1 = subplot(2, 3, 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user