Update figures (half width)
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 110 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 94 KiB |
148
matlab/index.org
@ -23,6 +23,10 @@
|
||||
#+LATEX_CLASS: cleanreport
|
||||
#+LATEX_CLASS_OPTIONS: [tocnp, minted, secbreak]
|
||||
|
||||
#+LATEX_HEADER_EXTRA: \usepackage[cache=false]{minted}
|
||||
#+LATEX_HEADER_EXTRA: \usemintedstyle{autumn}
|
||||
#+LATEX_HEADER_EXTRA: \setminted[matlab]{linenos=true, breaklines=true, tabsize=4, fontsize=\scriptsize, autogobble=true}
|
||||
|
||||
#+LATEX_HEADER: \newcommand{\authorFirstName}{Thomas}
|
||||
#+LATEX_HEADER: \newcommand{\authorLastName}{Dehaeze}
|
||||
#+LATEX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
|
||||
@ -71,13 +75,16 @@ In this example, the measured quantity $x$ is the velocity of an object.
|
||||
#+caption: Description of signals in Figure [[fig:sensor_model_noise_uncertainty]]
|
||||
#+attr_latex: :environment tabular :align clc
|
||||
#+attr_latex: :center t :booktabs t :float t
|
||||
| *Notation* | *Meaning* | *Unit* |
|
||||
|---------------+---------------------------------+---------|
|
||||
| $x$ | Physical measured quantity | $[m/s]$ |
|
||||
| $\tilde{n}_i$ | White noise with unitary PSD | |
|
||||
| $n_i$ | Shaped noise | $[m/s]$ |
|
||||
| $v_i$ | Sensor output measurement | $[V]$ |
|
||||
| $\hat{x}_i$ | Estimate of $x$ from the sensor | $[m/s]$ |
|
||||
| *Notation* | *Meaning* | *Unit* |
|
||||
|------------------+-----------------------------------+---------------------------|
|
||||
| $x$ | Physical measured quantity | $[m/s]$ |
|
||||
| $\tilde{n}_i$ | White noise with unitary PSD | |
|
||||
| $n_i$ | Shaped noise | $[m/s]$ |
|
||||
| $v_i$ | Sensor output measurement | $[V]$ |
|
||||
| $\hat{x}_i$ | Estimate of $x$ from the sensor | $[m/s]$ |
|
||||
| $\Phi_n(\omega)$ | Power Spectral Density of $n$ | $[\frac{(m/s)^2}{Hz}]$ |
|
||||
| $\phi_n(\omega)$ | Amplitude Spectral Density of $n$ | $[\frac{m/s}{\sqrt{Hz}}]$ |
|
||||
| $\sigma_n$ | Root Mean Square Value of $n$ | $[m/s\ rms]$ |
|
||||
|
||||
#+name: tab:sensor_dynamical_blocks
|
||||
#+caption: Description of Systems in Figure [[fig:sensor_model_noise_uncertainty]]
|
||||
@ -144,8 +151,8 @@ Both sensor dynamics in $[\frac{V}{m/s}]$ are shown in Figure [[fig:sensors_nomi
|
||||
plot(freqs, abs(squeeze(freqresp(G1, freqs, 'Hz'))), '-', 'DisplayName', '$G_1(j\omega)$');
|
||||
plot(freqs, abs(squeeze(freqresp(G2, freqs, 'Hz'))), '-', 'DisplayName', '$G_2(j\omega)$');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude $[\frac{V}{m/s}]$'); set(gca, 'XTickLabel',[]);
|
||||
legend('location', 'northeast');
|
||||
ylabel('Magnitude $\left[\frac{V}{m/s}\right]$'); set(gca, 'XTickLabel',[]);
|
||||
legend('location', 'northeast', 'FontSize', 8);
|
||||
hold off;
|
||||
|
||||
% Phase
|
||||
@ -163,7 +170,7 @@ Both sensor dynamics in $[\frac{V}{m/s}]$ are shown in Figure [[fig:sensors_nomi
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/sensors_nominal_dynamics.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/sensors_nominal_dynamics.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensors_nominal_dynamics
|
||||
@ -201,11 +208,11 @@ The bode plot of the sensors nominal dynamics as well as their defined dynamical
|
||||
xlabel('Frequency [Hz]'); ylabel('Magnitude');
|
||||
ylim([0, 5]);
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'northwest');
|
||||
legend('location', 'northwest', 'FontSize', 8);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/sensors_uncertainty_weights.pdf', 'width', 'wide', 'height', 'normal');
|
||||
exportFig('figs/sensors_uncertainty_weights.pdf', 'width', 'half', 'height', 'short');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensors_uncertainty_weights
|
||||
@ -228,8 +235,9 @@ The bode plot of the sensors nominal dynamics as well as their defined dynamical
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude $[\frac{V}{m/s}]$');
|
||||
ylim([1e-2, 2e3]);
|
||||
legend('location', 'northeast');
|
||||
legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 2);
|
||||
hold off;
|
||||
ylim([1e-2, 1e4])
|
||||
|
||||
% Phase
|
||||
ax2 = subplot(2,1,2);
|
||||
@ -250,7 +258,7 @@ The bode plot of the sensors nominal dynamics as well as their defined dynamical
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/sensors_nominal_dynamics_and_uncertainty.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/sensors_nominal_dynamics_and_uncertainty.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensors_nominal_dynamics_and_uncertainty
|
||||
@ -285,14 +293,14 @@ The weights $N_1$ and $N_2$ representing the amplitude spectral density of the s
|
||||
plot(freqs, abs(squeeze(freqresp(N1, freqs, 'Hz'))), '-', 'DisplayName', '$|N_1(j\omega)|$');
|
||||
plot(freqs, abs(squeeze(freqresp(N2, freqs, 'Hz'))), '-', 'DisplayName', '$|N_2(j\omega)|$');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Amplitude Spectral Density $\left[ \frac{m/s}{\sqrt{Hz}} \right]$');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD $\left[ \frac{m/s}{\sqrt{Hz}} \right]$');
|
||||
hold off;
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'northeast');
|
||||
legend('location', 'northeast', 'FontSize', 8);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/sensors_noise.pdf', 'width', 'normal', 'height', 'normal');
|
||||
exportFig('figs/sensors_noise.pdf', 'width', 'half', 'height', 'short');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensors_noise
|
||||
@ -387,10 +395,6 @@ The uncertainty set of the transfer function from $\hat{x}$ to $x$ at frequency
|
||||
** Introduction :ignore:
|
||||
In this section, the complementary filters $H_1(s)$ and $H_2(s)$ are designed in order to minimize the RMS value of super sensor noise $\sigma_n$.
|
||||
|
||||
#+name: fig:sensor_fusion_noise_arch
|
||||
#+caption: Optimal Sensor Fusion Architecture
|
||||
[[file:figs-tikz/sensor_fusion_noise_arch.png]]
|
||||
|
||||
The RMS value of the super sensor noise is (neglecting the model uncertainty):
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
@ -479,7 +483,7 @@ The obtained complementary filters are shown in Figure [[fig:htwo_comp_filters]]
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
hold off;
|
||||
legend('location', 'northeast');
|
||||
legend('location', 'northeast', 'FontSize', 8);
|
||||
|
||||
% Phase
|
||||
ax2 = subplot(2,1,2);
|
||||
@ -496,7 +500,7 @@ The obtained complementary filters are shown in Figure [[fig:htwo_comp_filters]]
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/htwo_comp_filters.pdf', 'width', 'full', 'height', 'tall');
|
||||
exportFig('figs/htwo_comp_filters.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:htwo_comp_filters
|
||||
@ -507,7 +511,7 @@ The obtained complementary filters are shown in Figure [[fig:htwo_comp_filters]]
|
||||
** Super Sensor Noise
|
||||
<<sec:H2_super_sensor_noise>>
|
||||
|
||||
The Power Spectral Density of the individual sensors' noise $\Phi_{n_1}, \Phi_{n_2}$ and of the super sensor noise $\Phi_{n_{\mathcal{H}_2}}$ are computed below and shown in Figure [[fig:psd_sensors_htwo_synthesis]].
|
||||
The Power Spectral Density of the individual sensors' noise $\Phi_{n_1}, \Phi_{n_2}$ and of the super sensor noise $\Phi_{n_{\mathcal{H}_2}}$ are computed below.
|
||||
#+begin_src matlab
|
||||
PSD_S1 = abs(squeeze(freqresp(N1, freqs, 'Hz'))).^2;
|
||||
PSD_S2 = abs(squeeze(freqresp(N2, freqs, 'Hz'))).^2;
|
||||
@ -515,6 +519,8 @@ The Power Spectral Density of the individual sensors' noise $\Phi_{n_1}, \Phi_{n
|
||||
abs(squeeze(freqresp(N2*H2, freqs, 'Hz'))).^2;
|
||||
#+end_src
|
||||
|
||||
The obtained ASD are shown in Figure [[fig:psd_sensors_htwo_synthesis]].
|
||||
|
||||
The RMS value of the individual sensors and of the super sensor are listed in Table [[tab:rms_noise_H2]].
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
||||
data2orgtable([sqrt(trapz(freqs, PSD_S1)); sqrt(trapz(freqs, PSD_S2)); sqrt(trapz(freqs, PSD_H2))], ...
|
||||
@ -536,18 +542,18 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, PSD_S1, '-', 'DisplayName', '$\Phi_{n_1}$');
|
||||
plot(freqs, PSD_S2, '-', 'DisplayName', '$\Phi_{n_2}$');
|
||||
plot(freqs, PSD_H2, 'k-', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2}}$');
|
||||
plot(freqs, sqrt(PSD_S1), '-', 'DisplayName', '$\phi_{n_1}$');
|
||||
plot(freqs, sqrt(PSD_S2), '-', 'DisplayName', '$\phi_{n_2}$');
|
||||
plot(freqs, sqrt(PSD_H2), 'k-', 'DisplayName', '$\phi_{n_{\mathcal{H}_2}}$');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Power Spectral Density $\left[ \frac{(m/s)^2}{Hz} \right]$');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD $\left[ \frac{m/s}{\sqrt{Hz}} \right]$');
|
||||
hold off;
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'northeast');
|
||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 2);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/psd_sensors_htwo_synthesis.pdf', 'width', 'wide', 'height', 'normal');
|
||||
exportFig('figs/psd_sensors_htwo_synthesis.pdf', 'width', 'half', 'height', 'short');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:psd_sensors_htwo_synthesis
|
||||
@ -585,12 +591,12 @@ The resulting noises are displayed in Figure [[fig:sensor_noise_H2_time_domain]]
|
||||
plot(t, v, 'k--', 'DisplayName', '$x$');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
legend('location', 'southwest');
|
||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 2);
|
||||
ylim([-0.3, 0.3]);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/super_sensor_time_domain_h2.pdf', 'width', 'wide', 'height', 'normal');
|
||||
exportFig('figs/super_sensor_time_domain_h2.pdf', 'width', 'half', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:super_sensor_time_domain_h2
|
||||
@ -609,12 +615,12 @@ The resulting noises are displayed in Figure [[fig:sensor_noise_H2_time_domain]]
|
||||
plot(t, (lsim(H1, n1, t)+lsim(H2, n2, t)), '-', 'DisplayName', '$n$');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Sensor Noise [m/s]');
|
||||
legend();
|
||||
legend('FontSize', 8);
|
||||
ylim([-0.2, 0.2]);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/sensor_noise_H2_time_domain.pdf', 'width', 'wide', 'height', 'normal');
|
||||
exportFig('figs/sensor_noise_H2_time_domain.pdf', 'width', 'half', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensor_noise_H2_time_domain
|
||||
@ -647,7 +653,7 @@ As a result the super sensor signal can not be used for feedback applications ab
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
ylim([1e-2, 1e1]);
|
||||
legend('location', 'southeast');
|
||||
legend('location', 'southeast', 'FontSize', 8);
|
||||
hold off;
|
||||
|
||||
% Phase
|
||||
@ -667,7 +673,7 @@ As a result the super sensor signal can not be used for feedback applications ab
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/super_sensor_dynamical_uncertainty_H2.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/super_sensor_dynamical_uncertainty_H2.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:super_sensor_dynamical_uncertainty_H2
|
||||
@ -777,7 +783,7 @@ The uncertainty bounds of the two individual sensor as well as the wanted maximu
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
ylim([1e-2, 1e1]);
|
||||
legend('location', 'southeast');
|
||||
legend('location', 'southeast', 'FontSize', 8);
|
||||
hold off;
|
||||
|
||||
% Phase
|
||||
@ -797,7 +803,7 @@ The uncertainty bounds of the two individual sensor as well as the wanted maximu
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/weight_uncertainty_bounds_Wu.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/weight_uncertainty_bounds_Wu.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:weight_uncertainty_bounds_Wu
|
||||
@ -878,16 +884,15 @@ The obtained complementary filters as well as the wanted upper bounds are shown
|
||||
hold on;
|
||||
plot(freqs, 1./abs(squeeze(freqresp(Wu*W1, freqs, 'Hz'))), '--', 'DisplayName', '$1/|W_uW_1|$');
|
||||
plot(freqs, 1./abs(squeeze(freqresp(Wu*W2, freqs, 'Hz'))), '--', 'DisplayName', '$1/|W_uW_2|$');
|
||||
|
||||
set(gca,'ColorOrderIndex',1)
|
||||
plot(freqs, abs(squeeze(freqresp(H1, freqs, 'Hz'))), '-', 'DisplayName', '$H_1$');
|
||||
plot(freqs, abs(squeeze(freqresp(H2, freqs, 'Hz'))), '-', 'DisplayName', '$H_2$');
|
||||
plot(freqs, abs(squeeze(freqresp(H1, freqs, 'Hz'))), '-', 'DisplayName', '$|H_1|$');
|
||||
plot(freqs, abs(squeeze(freqresp(H2, freqs, 'Hz'))), '-', 'DisplayName', '$|H_2|$');
|
||||
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude');
|
||||
set(gca, 'XTickLabel',[]);
|
||||
legend('location', 'northeast');
|
||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 2);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
@ -903,7 +908,7 @@ The obtained complementary filters as well as the wanted upper bounds are shown
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/hinf_comp_filters.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/hinf_comp_filters.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:hinf_comp_filters
|
||||
@ -942,7 +947,7 @@ The $\mathcal{H}_\infty$ synthesis thus allows to design filters such that the s
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
ylim([1e-2, 1e1]);
|
||||
legend('location', 'southeast');
|
||||
legend('location', 'southeast', 'FontSize', 8);
|
||||
hold off;
|
||||
|
||||
% Phase
|
||||
@ -964,7 +969,7 @@ The $\mathcal{H}_\infty$ synthesis thus allows to design filters such that the s
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/super_sensor_dynamical_uncertainty_Hinf.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/super_sensor_dynamical_uncertainty_Hinf.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:super_sensor_dynamical_uncertainty_Hinf
|
||||
@ -973,10 +978,8 @@ The $\mathcal{H}_\infty$ synthesis thus allows to design filters such that the s
|
||||
[[file:figs/super_sensor_dynamical_uncertainty_Hinf.png]]
|
||||
|
||||
** Super sensor noise
|
||||
We now compute the obtain Power Spectral Density of the super sensor's noise (Figure [[fig:psd_sensors_hinf_synthesis]]).
|
||||
|
||||
The obtained RMS of the super sensor noise in the $\mathcal{H}_2$ and $\mathcal{H}_\infty$ case are shown in Table [[tab:rms_noise_comp_H2_Hinf]].
|
||||
As expected, the super sensor obtained from the $\mathcal{H}_\infty$ synthesis is much noisier than the super sensor obtained from the $\mathcal{H}_2$ synthesis.
|
||||
We now compute the obtain Power Spectral Density of the super sensor's noise.
|
||||
The Amplitude Spectral Densities are shown in Figure [[fig:psd_sensors_hinf_synthesis]].
|
||||
|
||||
#+begin_src matlab
|
||||
PSD_S2 = abs(squeeze(freqresp(N2, freqs, 'Hz'))).^2;
|
||||
@ -985,6 +988,9 @@ As expected, the super sensor obtained from the $\mathcal{H}_\infty$ synthesis i
|
||||
abs(squeeze(freqresp(N2*H2, freqs, 'Hz'))).^2;
|
||||
#+end_src
|
||||
|
||||
The obtained RMS of the super sensor noise in the $\mathcal{H}_2$ and $\mathcal{H}_\infty$ case are shown in Table [[tab:rms_noise_comp_H2_Hinf]].
|
||||
As expected, the super sensor obtained from the $\mathcal{H}_\infty$ synthesis is much noisier than the super sensor obtained from the $\mathcal{H}_2$ synthesis.
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
H2_filters = load('./mat/H2_filters.mat', 'H2', 'H1');
|
||||
|
||||
@ -995,19 +1001,19 @@ As expected, the super sensor obtained from the $\mathcal{H}_\infty$ synthesis i
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, PSD_S1, '-', 'DisplayName', '$\Phi_{n_1}$');
|
||||
plot(freqs, PSD_S2, '-', 'DisplayName', '$\Phi_{n_2}$');
|
||||
plot(freqs, PSD_H2, 'k-', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2}}$');
|
||||
plot(freqs, PSD_Hinf, 'k--', 'DisplayName', '$\Phi_{n_{\mathcal{H}_\infty}}$');
|
||||
plot(freqs, sqrt(PSD_S1), '-', 'DisplayName', '$\phi_{n_1}$');
|
||||
plot(freqs, sqrt(PSD_S2), '-', 'DisplayName', '$\phi_{n_2}$');
|
||||
plot(freqs, sqrt(PSD_H2), 'k-', 'DisplayName', '$\phi_{n_{\mathcal{H}_2}}$');
|
||||
plot(freqs, sqrt(PSD_Hinf), 'k--', 'DisplayName', '$\phi_{n_{\mathcal{H}_\infty}}$');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Power Spectral Density $\left[ \frac{(m/s)^2}{Hz} \right]$');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD $\left[ \frac{m/s}{\sqrt{Hz}} \right]$');
|
||||
hold off;
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'northeast');
|
||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 2);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/psd_sensors_hinf_synthesis.pdf', 'width', 'wide', 'height', 'normal');
|
||||
exportFig('figs/psd_sensors_hinf_synthesis.pdf', 'width', 'half', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:psd_sensors_hinf_synthesis
|
||||
@ -1135,7 +1141,7 @@ The obtained complementary filters are shown in Figure [[fig:htwo_hinf_comp_filt
|
||||
ylabel('Magnitude');
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-3, 2]);
|
||||
legend('location', 'southwest');
|
||||
legend('location', 'southeast', 'FontSize', 8);
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
@ -1151,7 +1157,7 @@ The obtained complementary filters are shown in Figure [[fig:htwo_hinf_comp_filt
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/htwo_hinf_comp_filters.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/htwo_hinf_comp_filters.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:htwo_hinf_comp_filters
|
||||
@ -1160,7 +1166,7 @@ The obtained complementary filters are shown in Figure [[fig:htwo_hinf_comp_filt
|
||||
[[file:figs/htwo_hinf_comp_filters.png]]
|
||||
|
||||
** Obtained Super Sensor's noise
|
||||
The Power Spectral Density of the super sensor's noise is shown in Figure [[fig:psd_sensors_htwo_hinf_synthesis]].
|
||||
The Amplitude Spectral Density of the super sensor's noise is shown in Figure [[fig:psd_sensors_htwo_hinf_synthesis]].
|
||||
|
||||
A time domain simulation is shown in Figure [[fig:super_sensor_time_domain_h2_hinf]].
|
||||
|
||||
@ -1190,20 +1196,20 @@ The RMS values of the super sensor noise for the presented three synthesis are l
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, PSD_S1, '-', 'DisplayName', '$\Phi_{n_1}$');
|
||||
plot(freqs, PSD_S2, '-', 'DisplayName', '$\Phi_{n_2}$');
|
||||
plot(freqs, PSD_H2, 'k-', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2}}$');
|
||||
plot(freqs, PSD_Hinf, 'k--', 'DisplayName', '$\Phi_{n_{\mathcal{H}_\infty}}$');
|
||||
plot(freqs, PSD_H2Hinf, 'k-.', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2/\mathcal{H}_\infty}}$');
|
||||
plot(freqs, sqrt(PSD_S1), '-', 'DisplayName', '$\Phi_{n_1}$');
|
||||
plot(freqs, sqrt(PSD_S2), '-', 'DisplayName', '$\Phi_{n_2}$');
|
||||
plot(freqs, sqrt(PSD_H2), 'k-', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2}}$');
|
||||
plot(freqs, sqrt(PSD_Hinf), 'k--', 'DisplayName', '$\Phi_{n_{\mathcal{H}_\infty}}$');
|
||||
plot(freqs, sqrt(PSD_H2Hinf), 'k-.', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2/\mathcal{H}_\infty}}$');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('Power Spectral Density [$(m/s)^2/Hz$]');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD $\left[ \frac{m/s}{\sqrt{Hz}} \right]$');
|
||||
hold off;
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'northeast');
|
||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 3);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/psd_sensors_htwo_hinf_synthesis.pdf', 'width', 'wide', 'height', 'normal');
|
||||
exportFig('figs/psd_sensors_htwo_hinf_synthesis.pdf', 'width', 'half', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:psd_sensors_htwo_hinf_synthesis
|
||||
@ -1236,12 +1242,12 @@ The RMS values of the super sensor noise for the presented three synthesis are l
|
||||
plot(t, v, 'k--', 'DisplayName', '$x$');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
legend('location', 'southwest');
|
||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 3);
|
||||
ylim([-0.3, 0.3]);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/super_sensor_time_domain_h2_hinf.pdf', 'width', 'wide', 'height', 'normal');
|
||||
exportFig('figs/super_sensor_time_domain_h2_hinf.pdf', 'width', 'half', 'height', 'normal');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:super_sensor_time_domain_h2_hinf
|
||||
@ -1294,7 +1300,7 @@ The uncertainty on the super sensor's dynamics is shown in Figure [[fig:super_se
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
ylim([1e-2, 1e1]);
|
||||
legend('location', 'southeast');
|
||||
legend('location', 'southeast', 'FontSize', 8);
|
||||
hold off;
|
||||
|
||||
% Phase
|
||||
@ -1316,7 +1322,7 @@ The uncertainty on the super sensor's dynamics is shown in Figure [[fig:super_se
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :tangle no :exports results :results file replace
|
||||
exportFig('figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.pdf', 'width', 'full', 'height', 'full');
|
||||
exportFig('figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.pdf', 'width', 'half', 'height', 'tall');
|
||||
#+end_src
|
||||
|
||||
#+name: fig:super_sensor_dynamical_uncertainty_Htwo_Hinf
|
||||
|