Rename figure/sec/equations for sensor fusion section

This commit is contained in:
Thomas Dehaeze 2025-04-05 22:32:18 +02:00
parent 58cd58291a
commit 836fedc307
36 changed files with 210 additions and 210 deletions

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -839,11 +839,11 @@ Explain why multiple sensors are sometimes beneficial:
- Noise optimization - Noise optimization
Several architectures (Figure ref:fig:detail_control_control_multiple_sensors): Several architectures (Figure ref:fig:detail_control_control_multiple_sensors):
- HAC-LAC (Figure ref:fig:detail_control_architecture_hac_lac) - HAC-LAC (Figure ref:fig:detail_control_sensor_arch_hac_lac)
[[cite:&geng95_intel_contr_system_multip_degree;&preumont18_vibrat_contr_activ_struc_fourt_edition;&wang16_inves_activ_vibrat_isolat_stewar;&li01_simul_vibrat_isolat_point_contr;&pu11_six_degree_of_freed_activ;&xie17_model_contr_hybrid_passiv_activ]] [[cite:&geng95_intel_contr_system_multip_degree;&preumont18_vibrat_contr_activ_struc_fourt_edition;&wang16_inves_activ_vibrat_isolat_stewar;&li01_simul_vibrat_isolat_point_contr;&pu11_six_degree_of_freed_activ;&xie17_model_contr_hybrid_passiv_activ]]
- Sensor Fusion (Figure ref:fig:detail_control_architecture_sensor_fusion) - Sensor Fusion (Figure ref:fig:detail_control_sensor_arch_sensor_fusion)
[[cite:&tjepkema12_activ_ph;&tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip;&hauge04_sensor_contr_space_based_six]] [[cite:&tjepkema12_activ_ph;&tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip;&hauge04_sensor_contr_space_based_six]]
- Two Sensor control (Figure ref:fig:detail_control_architecture_two_sensor_control) - Two Sensor control (Figure ref:fig:detail_control_sensor_arch_two_sensor_control)
[[cite:&hauge04_sensor_contr_space_based_six;&tjepkema12_activ_ph;&beijen14_two_sensor_contr_activ_vibrat;&yong16_high_speed_vertic_posit_stage]] [[cite:&hauge04_sensor_contr_space_based_six;&tjepkema12_activ_ph;&beijen14_two_sensor_contr_activ_vibrat;&yong16_high_speed_vertic_posit_stage]]
- [ ] Explain basic idea for three strategies: - [ ] Explain basic idea for three strategies:
@ -854,7 +854,7 @@ Several architectures (Figure ref:fig:detail_control_control_multiple_sensors):
Comparison between "two sensor control" and "sensor fusion" is given in [[cite:&beijen14_two_sensor_contr_activ_vibrat]]. Comparison between "two sensor control" and "sensor fusion" is given in [[cite:&beijen14_two_sensor_contr_activ_vibrat]].
#+begin_src latex :file detail_control_architecture_hac_lac.pdf #+begin_src latex :file detail_control_sensor_arch_hac_lac.pdf
\begin{tikzpicture} \begin{tikzpicture}
% Blocs % Blocs
\node[block={2.0cm}{2.0cm}] (P) {Plant}; \node[block={2.0cm}{2.0cm}] (P) {Plant};
@ -888,7 +888,7 @@ Comparison between "two sensor control" and "sensor fusion" is given in [[cite:&
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+begin_src latex :file detail_control_architecture_sensor_fusion.pdf #+begin_src latex :file detail_control_sensor_arch_sensor_fusion.pdf
\begin{tikzpicture} \begin{tikzpicture}
% Blocs % Blocs
\node[block={2.0cm}{2.0cm}] (P) {Plant}; \node[block={2.0cm}{2.0cm}] (P) {Plant};
@ -920,7 +920,7 @@ Comparison between "two sensor control" and "sensor fusion" is given in [[cite:&
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+begin_src latex :file detail_control_architecture_two_sensor_control.pdf #+begin_src latex :file detail_control_sensor_arch_two_sensor_control.pdf
\begin{tikzpicture} \begin{tikzpicture}
% Blocs % Blocs
\node[block={2.0cm}{2.0cm}] (P) {Plant}; \node[block={2.0cm}{2.0cm}] (P) {Plant};
@ -951,35 +951,35 @@ Comparison between "two sensor control" and "sensor fusion" is given in [[cite:&
#+end_src #+end_src
#+name: fig:detail_control_control_multiple_sensors #+name: fig:detail_control_control_multiple_sensors
#+caption: Different control strategies when using multiple sensors. High Authority Control / Low Authority Control (\subref{fig:detail_control_architecture_hac_lac}). Sensor Fusion (\subref{fig:detail_control_architecture_sensor_fusion}). Two-Sensor Control (\subref{fig:detail_control_architecture_two_sensor_control}) #+caption: Different control strategies when using multiple sensors. High Authority Control / Low Authority Control (\subref{fig:detail_control_sensor_arch_hac_lac}). Sensor Fusion (\subref{fig:detail_control_sensor_arch_sensor_fusion}). Two-Sensor Control (\subref{fig:detail_control_sensor_arch_two_sensor_control})
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_architecture_hac_lac} HAC-LAC} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_arch_hac_lac} HAC-LAC}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.48\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :scale 1
[[file:figs/detail_control_architecture_hac_lac.png]] [[file:figs/detail_control_sensor_arch_hac_lac.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_architecture_two_sensor_control} Two Sensor Control} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_arch_two_sensor_control} Two Sensor Control}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.48\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :scale 1
[[file:figs/detail_control_architecture_two_sensor_control.png]] [[file:figs/detail_control_sensor_arch_two_sensor_control.png]]
#+end_subfigure #+end_subfigure
\bigskip \bigskip
#+attr_latex: :caption \subcaption{\label{fig:detail_control_architecture_sensor_fusion} Sensor Fusion} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_arch_sensor_fusion} Sensor Fusion}
#+attr_latex: :options {0.95\textwidth} #+attr_latex: :options {0.95\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :scale 1
[[file:figs/detail_control_architecture_sensor_fusion.png]] [[file:figs/detail_control_sensor_arch_sensor_fusion.png]]
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
The use of multiple sensors have already been used for the Stewart platform. The use of multiple sensors have already been used for the Stewart platform.
Table ref:tab:detail_control_multiple_sensor_review Table ref:tab:detail_control_sensor_review
#+name: tab:detail_control_multiple_sensor_review #+name: tab:detail_control_sensor_review
#+caption: Review of Stewart platforms integrating multiple sensors #+caption: Review of Stewart platforms integrating multiple sensors
#+attr_latex: :environment tabularx :width 0.9\linewidth :align Xcccc #+attr_latex: :environment tabularx :width 0.9\linewidth :align Xcccc
#+attr_latex: :center t :booktabs t :font \scriptsize #+attr_latex: :center t :booktabs t :font \scriptsize
@ -1139,10 +1139,10 @@ This means that the super sensor provides an estimate $\hat{x}$ of $x$ which can
#+RESULTS: #+RESULTS:
[[file:figs/detail_control_sensor_fusion_overview.png]] [[file:figs/detail_control_sensor_fusion_overview.png]]
The complementary property of filters $H_1(s)$ and $H_2(s)$ implies that the sum of their transfer functions is equal to one eqref:eq:detail_control_comp_filter. The complementary property of filters $H_1(s)$ and $H_2(s)$ implies that the sum of their transfer functions is equal to one eqref:eq:detail_control_sensor_comp_filter.
That is, unity magnitude and zero phase at all frequencies. That is, unity magnitude and zero phase at all frequencies.
\begin{equation}\label{eq:detail_control_comp_filter} \begin{equation}\label{eq:detail_control_sensor_comp_filter}
H_1(s) + H_2(s) = 1 H_1(s) + H_2(s) = 1
\end{equation} \end{equation}
@ -1221,16 +1221,16 @@ The sensor dynamics estimate $\hat{G}_i(s)$ can be a simple gain or a more compl
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
Two normalized sensors are then combined to form a super sensor as shown in Figure ref:fig:detail_control_fusion_super_sensor. Two normalized sensors are then combined to form a super sensor as shown in Figure ref:fig:detail_control_sensor_fusion_super_sensor.
The two sensors are measuring the same physical quantity $x$ with dynamics $G_1(s)$ and $G_2(s)$, and with /uncorrelated/ noises $n_1$ and $n_2$. The two sensors are measuring the same physical quantity $x$ with dynamics $G_1(s)$ and $G_2(s)$, and with /uncorrelated/ noises $n_1$ and $n_2$.
The signals from both normalized sensors are fed into two complementary filters $H_1(s)$ and $H_2(s)$ and then combined to yield an estimate $\hat{x}$ of $x$. The signals from both normalized sensors are fed into two complementary filters $H_1(s)$ and $H_2(s)$ and then combined to yield an estimate $\hat{x}$ of $x$.
The super sensor output $\hat{x}$ is therefore described by eqref:eq:detail_control_comp_filter_estimate. The super sensor output $\hat{x}$ is therefore described by eqref:eq:detail_control_sensor_comp_filter_estimate.
\begin{equation}\label{eq:detail_control_comp_filter_estimate} \begin{equation}\label{eq:detail_control_sensor_comp_filter_estimate}
\hat{x} = \Big( H_1(s) \hat{G}_1^{-1}(s) G_1(s) + H_2(s) \hat{G}_2^{-1}(s) G_2(s) \Big) x + H_1(s) \hat{G}_1^{-1}(s) G_1(s) n_1 + H_2(s) \hat{G}_2^{-1}(s) G_2(s) n_2 \hat{x} = \Big( H_1(s) \hat{G}_1^{-1}(s) G_1(s) + H_2(s) \hat{G}_2^{-1}(s) G_2(s) \Big) x + H_1(s) \hat{G}_1^{-1}(s) G_1(s) n_1 + H_2(s) \hat{G}_2^{-1}(s) G_2(s) n_2
\end{equation} \end{equation}
#+begin_src latex :file detail_control_fusion_super_sensor.pdf #+begin_src latex :file detail_control_sensor_fusion_super_sensor.pdf
\tikzset{block/.default={0.8cm}{0.8cm}} \tikzset{block/.default={0.8cm}{0.8cm}}
\tikzset{addb/.append style={scale=0.7}} \tikzset{addb/.append style={scale=0.7}}
\tikzset{node distance=0.6} \tikzset{node distance=0.6}
@ -1278,38 +1278,38 @@ The super sensor output $\hat{x}$ is therefore described by eqref:eq:detail_cont
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+name: fig:detail_control_fusion_super_sensor #+name: fig:detail_control_sensor_fusion_super_sensor
#+caption: Sensor fusion architecture with two normalized sensors. #+caption: Sensor fusion architecture with two normalized sensors.
#+RESULTS: #+RESULTS:
[[file:figs/detail_control_fusion_super_sensor.png]] [[file:figs/detail_control_sensor_fusion_super_sensor.png]]
**** Noise Sensor Filtering **** Noise Sensor Filtering
First, suppose that all the sensors are perfectly normalized eqref:eq:detail_control_perfect_dynamics. First, suppose that all the sensors are perfectly normalized eqref:eq:detail_control_sensor_perfect_dynamics.
The effect of a non-perfect normalization will be discussed afterwards. The effect of a non-perfect normalization will be discussed afterwards.
\begin{equation}\label{eq:detail_control_perfect_dynamics} \begin{equation}\label{eq:detail_control_sensor_perfect_dynamics}
\frac{\hat{x}_i}{x} = \hat{G}_i(s) G_i(s) = 1 \frac{\hat{x}_i}{x} = \hat{G}_i(s) G_i(s) = 1
\end{equation} \end{equation}
Provided eqref:eq:detail_control_perfect_dynamics is verified, the super sensor output $\hat{x}$ is then equal to $x$ plus the filtered noise of both sensors eqref:eq:detail_control_estimate_perfect_dyn. Provided eqref:eq:detail_control_sensor_perfect_dynamics is verified, the super sensor output $\hat{x}$ is then equal to $x$ plus the filtered noise of both sensors eqref:eq:detail_control_sensor_estimate_perfect_dyn.
From eqref:eq:detail_control_estimate_perfect_dyn, the complementary filters $H_1(s)$ and $H_2(s)$ are shown to only operate on the noise of the sensors. From eqref:eq:detail_control_sensor_estimate_perfect_dyn, the complementary filters $H_1(s)$ and $H_2(s)$ are shown to only operate on the noise of the sensors.
Thus, this sensor fusion architecture permits to filter the noise of both sensors without introducing any distortion in the physical quantity to be measured. Thus, this sensor fusion architecture permits to filter the noise of both sensors without introducing any distortion in the physical quantity to be measured.
This is why the two filters must be complementary. This is why the two filters must be complementary.
\begin{equation}\label{eq:detail_control_estimate_perfect_dyn} \begin{equation}\label{eq:detail_control_sensor_estimate_perfect_dyn}
\hat{x} = x + H_1(s) n_1 + H_2(s) n_2 \hat{x} = x + H_1(s) n_1 + H_2(s) n_2
\end{equation} \end{equation}
The estimation error $\delta x$, defined as the difference between the sensor output $\hat{x}$ and the measured quantity $x$, is computed for the super sensor eqref:eq:detail_control_estimate_error. The estimation error $\delta x$, defined as the difference between the sensor output $\hat{x}$ and the measured quantity $x$, is computed for the super sensor eqref:eq:detail_control_sensor_estimate_error.
\begin{equation}\label{eq:detail_control_estimate_error} \begin{equation}\label{eq:detail_control_sensor_estimate_error}
\delta x \triangleq \hat{x} - x = H_1(s) n_1 + H_2(s) n_2 \delta x \triangleq \hat{x} - x = H_1(s) n_1 + H_2(s) n_2
\end{equation} \end{equation}
As shown in eqref:eq:detail_control_noise_filtering_psd, the Power Spectral Density (PSD) of the estimation error $\Phi_{\delta x}$ depends both on the norm of the two complementary filters and on the PSD of the noise sources $\Phi_{n_1}$ and $\Phi_{n_2}$. As shown in eqref:eq:detail_control_sensor_noise_filtering_psd, the Power Spectral Density (PSD) of the estimation error $\Phi_{\delta x}$ depends both on the norm of the two complementary filters and on the PSD of the noise sources $\Phi_{n_1}$ and $\Phi_{n_2}$.
\begin{equation}\label{eq:detail_control_noise_filtering_psd} \begin{equation}\label{eq:detail_control_sensor_noise_filtering_psd}
\Phi_{\delta x}(\omega) = \left|H_1(j\omega)\right|^2 \Phi_{n_1}(\omega) + \left|H_2(j\omega)\right|^2 \Phi_{n_2}(\omega) \Phi_{\delta x}(\omega) = \left|H_1(j\omega)\right|^2 \Phi_{n_1}(\omega) + \left|H_2(j\omega)\right|^2 \Phi_{n_2}(\omega)
\end{equation} \end{equation}
@ -1322,7 +1322,7 @@ Hence, by properly shaping the norm of the complementary filters, it is possible
**** Sensor Fusion Robustness **** Sensor Fusion Robustness
In practical systems the sensor normalization is not perfect and condition eqref:eq:detail_control_perfect_dynamics is not verified. In practical systems the sensor normalization is not perfect and condition eqref:eq:detail_control_sensor_perfect_dynamics is not verified.
In order to study such imperfection, a multiplicative input uncertainty is added to the sensor dynamics (Figure ref:fig:detail_control_sensor_model_uncertainty). In order to study such imperfection, a multiplicative input uncertainty is added to the sensor dynamics (Figure ref:fig:detail_control_sensor_model_uncertainty).
The nominal model is the estimated model used for the normalization $\hat{G}_i(s)$, $\Delta_i(s)$ is any stable transfer function satisfying $|\Delta_i(j\omega)| \le 1,\ \forall\omega$, and $w_i(s)$ is a weighting transfer function representing the magnitude of the uncertainty. The nominal model is the estimated model used for the normalization $\hat{G}_i(s)$, $\Delta_i(s)$ is any stable transfer function satisfying $|\Delta_i(j\omega)| \le 1,\ \forall\omega$, and $w_i(s)$ is a weighting transfer function representing the magnitude of the uncertainty.
@ -1408,10 +1408,10 @@ As the nominal sensor dynamics is taken as the normalized filter, the normalized
#+end_figure #+end_figure
The sensor fusion architecture with the sensor models including dynamical uncertainty is shown in Figure ref:fig:detail_control_sensor_fusion_dynamic_uncertainty. The sensor fusion architecture with the sensor models including dynamical uncertainty is shown in Figure ref:fig:detail_control_sensor_fusion_dynamic_uncertainty.
The super sensor dynamics eqref:eq:detail_control_super_sensor_dyn_uncertainty is no longer equal to $1$ and now depends on the sensor dynamical uncertainty weights $w_i(s)$ as well as on the complementary filters $H_i(s)$. The super sensor dynamics eqref:eq:detail_control_sensor_super_sensor_dyn_uncertainty is no longer equal to $1$ and now depends on the sensor dynamical uncertainty weights $w_i(s)$ as well as on the complementary filters $H_i(s)$.
The dynamical uncertainty of the super sensor can be graphically represented in the complex plane by a circle centered on $1$ with a radius equal to $|w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)|$ (Figure ref:fig:detail_control_uncertainty_set_super_sensor). The dynamical uncertainty of the super sensor can be graphically represented in the complex plane by a circle centered on $1$ with a radius equal to $|w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)|$ (Figure ref:fig:detail_control_sensor_uncertainty_set_super_sensor).
\begin{equation}\label{eq:detail_control_super_sensor_dyn_uncertainty} \begin{equation}\label{eq:detail_control_sensor_super_sensor_dyn_uncertainty}
\frac{\hat{x}}{x} = 1 + w_1(s) H_1(s) \Delta_1(s) + w_2(s) H_2(s) \Delta_2(s) \frac{\hat{x}}{x} = 1 + w_1(s) H_1(s) \Delta_1(s) + w_2(s) H_2(s) \Delta_2(s)
\end{equation} \end{equation}
@ -1471,7 +1471,7 @@ The dynamical uncertainty of the super sensor can be graphically represented in
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+begin_src latex :file detail_control_uncertainty_set_super_sensor.pdf #+begin_src latex :file detail_control_sensor_uncertainty_set_super_sensor.pdf
\tikzset{block/.default={0.8cm}{0.8cm}} \tikzset{block/.default={0.8cm}{0.8cm}}
\tikzset{addb/.append style={scale=0.7}} \tikzset{addb/.append style={scale=0.7}}
\tikzset{node distance=0.6} \tikzset{node distance=0.6}
@ -1511,7 +1511,7 @@ The dynamical uncertainty of the super sensor can be graphically represented in
#+end_src #+end_src
#+name: fig:detail_control_sensor_uncertainty #+name: fig:detail_control_sensor_uncertainty
#+caption: Sensor fusion architecture with sensor dynamics uncertainty (\subref{fig:detail_control_sensor_fusion_dynamic_uncertainty}). Uncertainty region (\subref{fig:detail_control_uncertainty_set_super_sensor}) of the super sensor dynamics in the complex plane (grey circle). The contribution of both sensors 1 and 2 to the total uncertainty are represented respectively by a blue circle and a red circle. The frequency dependency $\omega$ is here omitted. #+caption: Sensor fusion architecture with sensor dynamics uncertainty (\subref{fig:detail_control_sensor_fusion_dynamic_uncertainty}). Uncertainty region (\subref{fig:detail_control_sensor_uncertainty_set_super_sensor}) of the super sensor dynamics in the complex plane (grey circle). The contribution of both sensors 1 and 2 to the total uncertainty are represented respectively by a blue circle and a red circle. The frequency dependency $\omega$ is here omitted.
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_fusion_dynamic_uncertainty}Sensor Fusion Architecture} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_fusion_dynamic_uncertainty}Sensor Fusion Architecture}
@ -1520,18 +1520,18 @@ The dynamical uncertainty of the super sensor can be graphically represented in
#+attr_latex: :width 0.95\linewidth #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_control_sensor_fusion_dynamic_uncertainty.png]] [[file:figs/detail_control_sensor_fusion_dynamic_uncertainty.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_uncertainty_set_super_sensor}Uncertainty regions} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_uncertainty_set_super_sensor}Uncertainty regions}
#+attr_latex: :options {0.49\textwidth} #+attr_latex: :options {0.49\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :width 0.95\linewidth #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_control_uncertainty_set_super_sensor.png]] [[file:figs/detail_control_sensor_uncertainty_set_super_sensor.png]]
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
The super sensor dynamical uncertainty, and hence the robustness of the fusion, clearly depends on the complementary filters' norm. The super sensor dynamical uncertainty, and hence the robustness of the fusion, clearly depends on the complementary filters' norm.
For instance, the phase $\Delta\phi(\omega)$ added by the super sensor dynamics at frequency $\omega$ is bounded by $\Delta\phi_{\text{max}}(\omega)$ which can be found by drawing a tangent from the origin to the uncertainty circle of the super sensor (Figure ref:fig:detail_control_uncertainty_set_super_sensor) and that is mathematically described by eqref:eq:detail_control_max_phase_uncertainty. For instance, the phase $\Delta\phi(\omega)$ added by the super sensor dynamics at frequency $\omega$ is bounded by $\Delta\phi_{\text{max}}(\omega)$ which can be found by drawing a tangent from the origin to the uncertainty circle of the super sensor (Figure ref:fig:detail_control_sensor_uncertainty_set_super_sensor) and that is mathematically described by eqref:eq:detail_control_sensor_max_phase_uncertainty.
\begin{equation}\label{eq:detail_control_max_phase_uncertainty} \begin{equation}\label{eq:detail_control_sensor_max_phase_uncertainty}
\Delta\phi_\text{max}(\omega) = \arcsin\big( |w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)| \big) \Delta\phi_\text{max}(\omega) = \arcsin\big( |w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)| \big)
\end{equation} \end{equation}
@ -1539,7 +1539,7 @@ As it is generally desired to limit the maximum phase added by the super sensor,
Typically, the norm of the complementary filter $|H_i(j\omega)|$ should be made small when $|w_i(j\omega)|$ is large, i.e., at frequencies where the sensor dynamics is uncertain. Typically, the norm of the complementary filter $|H_i(j\omega)|$ should be made small when $|w_i(j\omega)|$ is large, i.e., at frequencies where the sensor dynamics is uncertain.
** Complementary Filters Shaping ** Complementary Filters Shaping
<<ssec:detail_control_hinf_method>> <<ssec:detail_control_sensor_hinf_method>>
**** Introduction :ignore: **** Introduction :ignore:
As shown in Section ref:ssec:detail_control_sensor_fusion_requirements, the noise and robustness of the super sensor are a function of the complementary filters' norm. As shown in Section ref:ssec:detail_control_sensor_fusion_requirements, the noise and robustness of the super sensor are a function of the complementary filters' norm.
@ -1550,28 +1550,28 @@ Finally, the synthesis method is validated on an simple example.
**** Synthesis Objective **** Synthesis Objective
The synthesis objective is to shape the norm of two filters $H_1(s)$ and $H_2(s)$ while ensuring their complementary property eqref:eq:detail_control_comp_filter. The synthesis objective is to shape the norm of two filters $H_1(s)$ and $H_2(s)$ while ensuring their complementary property eqref:eq:detail_control_sensor_comp_filter.
This is equivalent as to finding proper and stable transfer functions $H_1(s)$ and $H_2(s)$ such that conditions eqref:eq:detail_control_hinf_cond_complementarity, eqref:eq:detail_control_hinf_cond_h1 and eqref:eq:detail_control_hinf_cond_h2 are satisfied. This is equivalent as to finding proper and stable transfer functions $H_1(s)$ and $H_2(s)$ such that conditions eqref:eq:detail_control_sensor_hinf_cond_complementarity, eqref:eq:detail_control_sensor_hinf_cond_h1 and eqref:eq:detail_control_sensor_hinf_cond_h2 are satisfied.
$W_1(s)$ and $W_2(s)$ are two weighting transfer functions that are carefully chosen to specify the maximum wanted norm of the complementary filters during the synthesis. $W_1(s)$ and $W_2(s)$ are two weighting transfer functions that are carefully chosen to specify the maximum wanted norm of the complementary filters during the synthesis.
\begin{subequations}\label{eq:detail_control_comp_filter_problem_form} \begin{subequations}\label{eq:detail_control_sensor_comp_filter_problem_form}
\begin{align} \begin{align}
& H_1(s) + H_2(s) = 1 \label{eq:detail_control_hinf_cond_complementarity} \\ & H_1(s) + H_2(s) = 1 \label{eq:detail_control_sensor_hinf_cond_complementarity} \\
& |H_1(j\omega)| \le \frac{1}{|W_1(j\omega)|} \quad \forall\omega \label{eq:detail_control_hinf_cond_h1} \\ & |H_1(j\omega)| \le \frac{1}{|W_1(j\omega)|} \quad \forall\omega \label{eq:detail_control_sensor_hinf_cond_h1} \\
& |H_2(j\omega)| \le \frac{1}{|W_2(j\omega)|} \quad \forall\omega \label{eq:detail_control_hinf_cond_h2} & |H_2(j\omega)| \le \frac{1}{|W_2(j\omega)|} \quad \forall\omega \label{eq:detail_control_sensor_hinf_cond_h2}
\end{align} \end{align}
\end{subequations} \end{subequations}
**** Shaping of Complementary Filters using $\mathcal{H}_\infty$ synthesis **** Shaping of Complementary Filters using $\mathcal{H}_\infty$ synthesis
The synthesis objective can be easily expressed as a standard $\mathcal{H}_\infty$ optimization problem and therefore solved using convenient tools readily available. The synthesis objective can be easily expressed as a standard $\mathcal{H}_\infty$ optimization problem and therefore solved using convenient tools readily available.
Consider the generalized plant $P(s)$ shown in Figure ref:fig:detail_control_h_infinity_robust_fusion_plant and mathematically described by eqref:eq:detail_control_generalized_plant. Consider the generalized plant $P(s)$ shown in Figure ref:fig:detail_control_sensor_h_infinity_robust_fusion_plant and mathematically described by eqref:eq:detail_control_sensor_generalized_plant.
\begin{equation}\label{eq:detail_control_generalized_plant} \begin{equation}\label{eq:detail_control_sensor_generalized_plant}
\begin{bmatrix} z_1 \\ z_2 \\ v \end{bmatrix} = P(s) \begin{bmatrix} w\\u \end{bmatrix}; \quad P(s) = \begin{bmatrix}W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) \\ 1 & 0 \end{bmatrix} \begin{bmatrix} z_1 \\ z_2 \\ v \end{bmatrix} = P(s) \begin{bmatrix} w\\u \end{bmatrix}; \quad P(s) = \begin{bmatrix}W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) \\ 1 & 0 \end{bmatrix}
\end{equation} \end{equation}
#+begin_src latex :file detail_control_h_infinity_robust_fusion_plant.pdf #+begin_src latex :file detail_control_sensor_h_infinity_robust_fusion_plant.pdf
\tikzset{block/.default={0.8cm}{0.8cm}} \tikzset{block/.default={0.8cm}{0.8cm}}
\tikzset{addb/.append style={scale=0.7}} \tikzset{addb/.append style={scale=0.7}}
\tikzset{node distance=0.6} \tikzset{node distance=0.6}
@ -1602,7 +1602,7 @@ Consider the generalized plant $P(s)$ shown in Figure ref:fig:detail_control_h_i
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+begin_src latex :file detail_control_h_infinity_robust_fusion_fb.pdf #+begin_src latex :file detail_control_sensor_h_infinity_robust_fusion_fb.pdf
\tikzset{block/.default={0.8cm}{0.8cm}} \tikzset{block/.default={0.8cm}{0.8cm}}
\tikzset{addb/.append style={scale=0.7}} \tikzset{addb/.append style={scale=0.7}}
\tikzset{node distance=0.6} \tikzset{node distance=0.6}
@ -1633,43 +1633,43 @@ Consider the generalized plant $P(s)$ shown in Figure ref:fig:detail_control_h_i
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+name: fig:detail_control_h_infinity_robust_fusion #+name: fig:detail_control_sensor_h_infinity_robust_fusion
#+caption: Architecture for the $\mathcal{H}_\infty$ synthesis of complementary filters #+caption: Architecture for the $\mathcal{H}_\infty$ synthesis of complementary filters
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_h_infinity_robust_fusion_plant}Generalized plant} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_h_infinity_robust_fusion_plant}Generalized plant}
#+attr_latex: :options {0.49\textwidth} #+attr_latex: :options {0.49\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :scale 1
[[file:figs/detail_control_h_infinity_robust_fusion_plant.png]] [[file:figs/detail_control_sensor_h_infinity_robust_fusion_plant.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_h_infinity_robust_fusion_fb}Generalized plant with the synthesized filter} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_h_infinity_robust_fusion_fb}Generalized plant with the synthesized filter}
#+attr_latex: :options {0.49\textwidth} #+attr_latex: :options {0.49\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :scale 1 #+attr_latex: :scale 1
[[file:figs/detail_control_h_infinity_robust_fusion_fb.png]] [[file:figs/detail_control_sensor_h_infinity_robust_fusion_fb.png]]
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
Applying the standard $\mathcal{H}_\infty$ synthesis to the generalized plant $P(s)$ is then equivalent as finding a stable filter $H_2(s)$ which based on $v$, generates a signal $u$ such that the $\mathcal{H}_\infty$ norm of the system in Figure ref:fig:detail_control_h_infinity_robust_fusion_fb from $w$ to $[z_1, \ z_2]$ is less than one eqref:eq:detail_control_hinf_syn_obj. Applying the standard $\mathcal{H}_\infty$ synthesis to the generalized plant $P(s)$ is then equivalent as finding a stable filter $H_2(s)$ which based on $v$, generates a signal $u$ such that the $\mathcal{H}_\infty$ norm of the system in Figure ref:fig:detail_control_sensor_h_infinity_robust_fusion_fb from $w$ to $[z_1, \ z_2]$ is less than one eqref:eq:detail_control_sensor_hinf_syn_obj.
\begin{equation}\label{eq:detail_control_hinf_syn_obj} \begin{equation}\label{eq:detail_control_sensor_hinf_syn_obj}
\left\|\begin{matrix} \left(1 - H_2(s)\right) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1 \left\|\begin{matrix} \left(1 - H_2(s)\right) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1
\end{equation} \end{equation}
By then defining $H_1(s)$ to be the complementary of $H_2(s)$ eqref:eq:detail_control_definition_H1, the $\mathcal{H}_\infty$ synthesis objective becomes equivalent to eqref:eq:detail_control_hinf_problem which ensures that eqref:eq:detail_control_hinf_cond_h1 and eqref:eq:detail_control_hinf_cond_h2 are satisfied. By then defining $H_1(s)$ to be the complementary of $H_2(s)$ eqref:eq:detail_control_sensor_definition_H1, the $\mathcal{H}_\infty$ synthesis objective becomes equivalent to eqref:eq:detail_control_sensor_hinf_problem which ensures that eqref:eq:detail_control_sensor_hinf_cond_h1 and eqref:eq:detail_control_sensor_hinf_cond_h2 are satisfied.
\begin{equation}\label{eq:detail_control_definition_H1} \begin{equation}\label{eq:detail_control_sensor_definition_H1}
H_1(s) \triangleq 1 - H_2(s) H_1(s) \triangleq 1 - H_2(s)
\end{equation} \end{equation}
\begin{equation}\label{eq:detail_control_hinf_problem} \begin{equation}\label{eq:detail_control_sensor_hinf_problem}
\left\|\begin{matrix} H_1(s) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1 \left\|\begin{matrix} H_1(s) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1
\end{equation} \end{equation}
Therefore, applying the $\mathcal{H}_\infty$ synthesis to the standard plant $P(s)$ eqref:eq:detail_control_generalized_plant will generate two filters $H_2(s)$ and $H_1(s) \triangleq 1 - H_2(s)$ that are complementary eqref:eq:detail_control_comp_filter_problem_form and such that there norms are bellow specified bounds [[eqref:eq:detail_control_hinf_cond_h1]], eqref:eq:detail_control_hinf_cond_h2. Therefore, applying the $\mathcal{H}_\infty$ synthesis to the standard plant $P(s)$ eqref:eq:detail_control_sensor_generalized_plant will generate two filters $H_2(s)$ and $H_1(s) \triangleq 1 - H_2(s)$ that are complementary eqref:eq:detail_control_sensor_comp_filter_problem_form and such that there norms are bellow specified bounds eqref:eq:detail_control_sensor_hinf_cond_h1, eqref:eq:detail_control_sensor_hinf_cond_h2.
Note that there is only an implication between the $\mathcal{H}_\infty$ norm condition eqref:eq:detail_control_hinf_problem and the initial synthesis objectives eqref:eq:detail_control_hinf_cond_h1 and eqref:eq:detail_control_hinf_cond_h2 and not an equivalence. Note that there is only an implication between the $\mathcal{H}_\infty$ norm condition eqref:eq:detail_control_sensor_hinf_problem and the initial synthesis objectives eqref:eq:detail_control_sensor_hinf_cond_h1 and eqref:eq:detail_control_sensor_hinf_cond_h2 and not an equivalence.
Hence, the optimization may be a little bit conservative with respect to the set of filters on which it is performed, see [[cite:&skogestad07_multiv_feedb_contr,Chap. 2.8.3]]. Hence, the optimization may be a little bit conservative with respect to the set of filters on which it is performed, see [[cite:&skogestad07_multiv_feedb_contr,Chap. 2.8.3]].
**** Weighting Functions Design **** Weighting Functions Design
@ -1679,13 +1679,13 @@ The proper design of these weighting functions is of primary importance for the
First, only proper and stable transfer functions should be used. First, only proper and stable transfer functions should be used.
Second, the order of the weighting functions should stay reasonably small in order to reduce the computational costs associated with the solving of the optimization problem and for the physical implementation of the filters (the synthesized filters' order being equal to the sum of the weighting functions' order). Second, the order of the weighting functions should stay reasonably small in order to reduce the computational costs associated with the solving of the optimization problem and for the physical implementation of the filters (the synthesized filters' order being equal to the sum of the weighting functions' order).
Third, one should not forget the fundamental limitations imposed by the complementary property eqref:eq:detail_control_comp_filter. Third, one should not forget the fundamental limitations imposed by the complementary property eqref:eq:detail_control_sensor_comp_filter.
This implies for instance that $|H_1(j\omega)|$ and $|H_2(j\omega)|$ cannot be made small at the same frequency. This implies for instance that $|H_1(j\omega)|$ and $|H_2(j\omega)|$ cannot be made small at the same frequency.
When designing complementary filters, it is usually desired to specify their slopes, their "blending" frequency and their maximum gains at low and high frequency. When designing complementary filters, it is usually desired to specify their slopes, their "blending" frequency and their maximum gains at low and high frequency.
To easily express these specifications, formula eqref:eq:detail_control_weight_formula is proposed to help with the design of weighting functions. To easily express these specifications, formula eqref:eq:detail_control_sensor_weight_formula is proposed to help with the design of weighting functions.
The parameters in formula eqref:eq:detail_control_weight_formula are $G_0 = \lim_{\omega \to 0} |W(j\omega)|$ the low frequency gain, $G_\infty = \lim_{\omega \to \infty} |W(j\omega)|$ the high frequency gain, $G_c = |W(j\omega_c)|$ the gain at a specific frequency $\omega_c$ in $\si{rad/s}$ and $n$ the slope between high and low frequency, which also corresponds to the order of the weighting function. The parameters in formula eqref:eq:detail_control_sensor_weight_formula are $G_0 = \lim_{\omega \to 0} |W(j\omega)|$ the low frequency gain, $G_\infty = \lim_{\omega \to \infty} |W(j\omega)|$ the high frequency gain, $G_c = |W(j\omega_c)|$ the gain at a specific frequency $\omega_c$ in $\si{rad/s}$ and $n$ the slope between high and low frequency, which also corresponds to the order of the weighting function.
The typical magnitude of a weighting function generated using eqref:eq:detail_control_weight_formula is shown in Figure ref:fig:detail_control_weight_formula. The typical magnitude of a weighting function generated using eqref:eq:detail_control_sensor_weight_formula is shown in Figure ref:fig:detail_control_sensor_weight_formula.
#+begin_src matlab :exports none #+begin_src matlab :exports none
%% Weighting Function Design %% Weighting Function Design
@ -1729,20 +1729,20 @@ yticks([1e-4, 1e-3, 1e-2, 1e-1, 1, 1e1]);
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file replace #+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/detail_control_weight_formula.pdf', 'width', 'half', 'height', 'normal'); exportFig('figs/detail_control_sensor_weight_formula.pdf', 'width', 'half', 'height', 'normal');
#+end_src #+end_src
#+attr_latex: :options []{0.49\linewidth} #+attr_latex: :options []{0.49\linewidth}
#+begin_minipage #+begin_minipage
#+name: fig:detail_control_weight_formula #+name: fig:detail_control_sensor_weight_formula
#+caption: Magnitude of a weighting function generated using eqref:eq:detail_control_weight_formula, $G_0 = 10^{-3}$, $G_\infty = 10$, $\omega_c = \SI{10}{Hz}$, $G_c = 2$, $n = 3$. #+caption: Magnitude of a weighting function generated using eqref:eq:detail_control_sensor_weight_formula, $G_0 = 10^{-3}$, $G_\infty = 10$, $\omega_c = \SI{10}{Hz}$, $G_c = 2$, $n = 3$.
#+attr_latex: :width 0.95\linewidth :float nil #+attr_latex: :width 0.95\linewidth :float nil
[[file:figs/detail_control_weight_formula.png]] [[file:figs/detail_control_sensor_weight_formula.png]]
#+end_minipage #+end_minipage
\hfill \hfill
#+attr_latex: :options []{0.49\linewidth} #+attr_latex: :options []{0.49\linewidth}
#+begin_minipage #+begin_minipage
\begin{equation}\label{eq:detail_control_weight_formula} \begin{equation}\label{eq:detail_control_sensor_weight_formula}
W(s) = \left( \frac{ W(s) = \left( \frac{
\hfill{} \frac{1}{\omega_c} \sqrt{\frac{1 - \left(\frac{G_0}{G_c}\right)^{\frac{2}{n}}}{1 - \left(\frac{G_c}{G_\infty}\right)^{\frac{2}{n}}}} s + \left(\frac{G_0}{G_c}\right)^{\frac{1}{n}} \hfill{} \frac{1}{\omega_c} \sqrt{\frac{1 - \left(\frac{G_0}{G_c}\right)^{\frac{2}{n}}}{1 - \left(\frac{G_c}{G_\infty}\right)^{\frac{2}{n}}}} s + \left(\frac{G_0}{G_c}\right)^{\frac{1}{n}}
}{ }{
@ -1762,9 +1762,9 @@ Let's suppose two complementary filters $H_1(s)$ and $H_2(s)$ have to be designe
Its high frequency gain is $10^{-3}$. Its high frequency gain is $10^{-3}$.
The first step is to translate the above requirements by properly designing the weighting functions. The first step is to translate the above requirements by properly designing the weighting functions.
The proposed formula eqref:eq:detail_control_weight_formula is here used for such purpose. The proposed formula eqref:eq:detail_control_sensor_weight_formula is here used for such purpose.
Parameters used are summarized in Table ref:tab:detail_control_weights_params. Parameters used are summarized in Table ref:tab:detail_control_sensor_weights_params.
The inverse magnitudes of the designed weighting functions, which are representing the maximum allowed norms of the complementary filters, are shown by the dashed lines in Figure ref:fig:detail_control_hinf_filters_results. The inverse magnitudes of the designed weighting functions, which are representing the maximum allowed norms of the complementary filters, are shown by the dashed lines in Figure ref:fig:detail_control_sensor_hinf_filters_results.
#+begin_src matlab #+begin_src matlab
%% Synthesis of Complementary Filters using H-infinity synthesis %% Synthesis of Complementary Filters using H-infinity synthesis
@ -1805,7 +1805,7 @@ leg.ItemTokenSize(1) = 18;
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file replace #+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/detail_control_hinf_filters_results.pdf', 'width', 'half', 'height', 400); exportFig('figs/detail_control_sensor_hinf_filters_results.pdf', 'width', 'half', 'height', 400);
#+end_src #+end_src
#+attr_latex: :options [b]{0.44\linewidth} #+attr_latex: :options [b]{0.44\linewidth}
@ -1819,25 +1819,25 @@ exportFig('figs/detail_control_hinf_filters_results.pdf', 'width', 'half', 'heig
| $\omega_c$ | $2 \pi \cdot 10$ | $2 \pi \cdot 10$ | | $\omega_c$ | $2 \pi \cdot 10$ | $2 \pi \cdot 10$ |
| $G_c$ | $0.45$ | $0.45$ | | $G_c$ | $0.45$ | $0.45$ |
| $n$ | $2$ | $3$ | | $n$ | $2$ | $3$ |
#+latex: \captionof{table}{\label{tab:detail_control_weights_params}Parameters for \(W_1(s)\) and \(W_2(s)\)} #+latex: \captionof{table}{\label{tab:detail_control_sensor_weights_params}Parameters for \(W_1(s)\) and \(W_2(s)\)}
#+end_minipage #+end_minipage
\hfill \hfill
#+attr_latex: :options [b]{0.52\linewidth} #+attr_latex: :options [b]{0.52\linewidth}
#+begin_minipage #+begin_minipage
#+name: fig:detail_control_hinf_filters_results #+name: fig:detail_control_sensor_hinf_filters_results
#+attr_latex: :scale 1 :float nil #+attr_latex: :scale 1 :float nil
#+caption: Weights and obtained filters #+caption: Weights and obtained filters
[[file:figs/detail_control_hinf_filters_results.png]] [[file:figs/detail_control_sensor_hinf_filters_results.png]]
#+end_minipage #+end_minipage
The standard $\mathcal{H}_\infty$ synthesis is then applied to the generalized plant of Figure ref:fig:detail_control_h_infinity_robust_fusion_plant. The standard $\mathcal{H}_\infty$ synthesis is then applied to the generalized plant of Figure ref:fig:detail_control_sensor_h_infinity_robust_fusion_plant.
The filter $H_2(s)$ that minimizes the $\mathcal{H}_\infty$ norm between $w$ and $[z_1,\ z_2]^T$ is obtained. The filter $H_2(s)$ that minimizes the $\mathcal{H}_\infty$ norm between $w$ and $[z_1,\ z_2]^T$ is obtained.
The $\mathcal{H}_\infty$ norm is here found to be close to one which indicates that the synthesis is successful: the complementary filters norms are below the maximum specified upper bounds. The $\mathcal{H}_\infty$ norm is here found to be close to one which indicates that the synthesis is successful: the complementary filters norms are below the maximum specified upper bounds.
This is confirmed by the bode plots of the obtained complementary filters in Figure ref:fig:detail_control_hinf_filters_results. This is confirmed by the bode plots of the obtained complementary filters in Figure ref:fig:detail_control_sensor_hinf_filters_results.
This simple example illustrates the fact that the proposed methodology for complementary filters shaping is easy to use and effective. This simple example illustrates the fact that the proposed methodology for complementary filters shaping is easy to use and effective.
** Synthesis of a set of three complementary filters ** Synthesis of a set of three complementary filters
<<sec:detail_control_hinf_three_comp_filters>> <<sec:detail_control_sensor_hinf_three_comp_filters>>
Some applications may require to merge more than two sensors [[cite:&stoten01_fusion_kinet_data_using_compos_filter;&fonseca15_compl]]. Some applications may require to merge more than two sensors [[cite:&stoten01_fusion_kinet_data_using_compos_filter;&fonseca15_compl]].
For instance at the LIGO, three sensors (an LVDT, a seismometer and a geophone) are merged to form a super sensor [[cite:&matichard15_seism_isolat_advan_ligo]]. For instance at the LIGO, three sensors (an LVDT, a seismometer and a geophone) are merged to form a super sensor [[cite:&matichard15_seism_isolat_advan_ligo]].
@ -1944,21 +1944,21 @@ A generalization of the proposed synthesis method of complementary filters is pr
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
The synthesis objective is to compute a set of $n$ stable transfer functions $[H_1(s),\ H_2(s),\ \dots,\ H_n(s)]$ such that conditions eqref:eq:detail_control_hinf_cond_compl_gen and eqref:eq:detail_control_hinf_cond_perf_gen are satisfied. The synthesis objective is to compute a set of $n$ stable transfer functions $[H_1(s),\ H_2(s),\ \dots,\ H_n(s)]$ such that conditions eqref:eq:detail_control_sensor_hinf_cond_compl_gen and eqref:eq:detail_control_sensor_hinf_cond_perf_gen are satisfied.
\begin{subequations}\label{eq:detail_control_hinf_problem_gen} \begin{subequations}\label{eq:detail_control_sensor_hinf_problem_gen}
\begin{align} \begin{align}
& \sum_{i=1}^n H_i(s) = 1 \label{eq:detail_control_hinf_cond_compl_gen} \\ & \sum_{i=1}^n H_i(s) = 1 \label{eq:detail_control_sensor_hinf_cond_compl_gen} \\
& \left| H_i(j\omega) \right| < \frac{1}{\left| W_i(j\omega) \right|}, \quad \forall \omega,\ i = 1 \dots n \label{eq:detail_control_hinf_cond_perf_gen} & \left| H_i(j\omega) \right| < \frac{1}{\left| W_i(j\omega) \right|}, \quad \forall \omega,\ i = 1 \dots n \label{eq:detail_control_sensor_hinf_cond_perf_gen}
\end{align} \end{align}
\end{subequations} \end{subequations}
$[W_1(s),\ W_2(s),\ \dots,\ W_n(s)]$ are weighting transfer functions that are chosen to specify the maximum complementary filters' norm during the synthesis. $[W_1(s),\ W_2(s),\ \dots,\ W_n(s)]$ are weighting transfer functions that are chosen to specify the maximum complementary filters' norm during the synthesis.
Such synthesis objective is closely related to the one described in Section ref:ssec:detail_control_hinf_method, and indeed the proposed synthesis method is a generalization of the one previously presented. Such synthesis objective is closely related to the one described in Section ref:ssec:detail_control_sensor_hinf_method, and indeed the proposed synthesis method is a generalization of the one previously presented.
A set of $n$ complementary filters can be shaped by applying the standard $\mathcal{H}_\infty$ synthesis to the generalized plant $P_n(s)$ described by eqref:eq:detail_control_generalized_plant_n_filters. A set of $n$ complementary filters can be shaped by applying the standard $\mathcal{H}_\infty$ synthesis to the generalized plant $P_n(s)$ described by eqref:eq:detail_control_sensor_generalized_plant_n_filters.
\begin{equation}\label{eq:detail_control_generalized_plant_n_filters} \begin{equation}\label{eq:detail_control_sensor_generalized_plant_n_filters}
\begin{bmatrix} z_1 \\ \vdots \\ z_n \\ v \end{bmatrix} = P_n(s) \begin{bmatrix} w \\ u_1 \\ \vdots \\ u_{n-1} \end{bmatrix}; \quad \begin{bmatrix} z_1 \\ \vdots \\ z_n \\ v \end{bmatrix} = P_n(s) \begin{bmatrix} w \\ u_1 \\ \vdots \\ u_{n-1} \end{bmatrix}; \quad
P_n(s) = \begin{bmatrix} P_n(s) = \begin{bmatrix}
W_1 & -W_1 & \dots & \dots & -W_1 \\ W_1 & -W_1 & \dots & \dots & -W_1 \\
@ -1970,30 +1970,30 @@ A set of $n$ complementary filters can be shaped by applying the standard $\math
\end{bmatrix} \end{bmatrix}
\end{equation} \end{equation}
If the synthesis if successful, a set of $n-1$ filters $[H_2(s),\ H_3(s),\ \dots,\ H_n(s)]$ are obtained such that eqref:eq:detail_control_hinf_syn_obj_gen is verified. If the synthesis if successful, a set of $n-1$ filters $[H_2(s),\ H_3(s),\ \dots,\ H_n(s)]$ are obtained such that eqref:eq:detail_control_sensor_hinf_syn_obj_gen is verified.
\begin{equation}\label{eq:detail_control_hinf_syn_obj_gen} \begin{equation}\label{eq:detail_control_sensor_hinf_syn_obj_gen}
\left\|\begin{matrix} \left(1 - \left[ H_2(s) + H_3(s) + \dots + H_n(s) \right]\right) W_1(s) \\ H_2(s) W_2(s) \\ \vdots \\ H_n(s) W_n(s) \end{matrix}\right\|_\infty \le 1 \left\|\begin{matrix} \left(1 - \left[ H_2(s) + H_3(s) + \dots + H_n(s) \right]\right) W_1(s) \\ H_2(s) W_2(s) \\ \vdots \\ H_n(s) W_n(s) \end{matrix}\right\|_\infty \le 1
\end{equation} \end{equation}
$H_1(s)$ is then defined using eqref:eq:detail_control_h1_comp_h2_hn which is ensuring the complementary property for the set of $n$ filters eqref:eq:detail_control_hinf_cond_compl_gen. $H_1(s)$ is then defined using eqref:eq:detail_control_sensor_h1_comp_h2_hn which is ensuring the complementary property for the set of $n$ filters eqref:eq:detail_control_sensor_hinf_cond_compl_gen.
Condition eqref:eq:detail_control_hinf_cond_perf_gen is satisfied thanks to eqref:eq:detail_control_hinf_syn_obj_gen. Condition eqref:eq:detail_control_sensor_hinf_cond_perf_gen is satisfied thanks to eqref:eq:detail_control_sensor_hinf_syn_obj_gen.
\begin{equation}\label{eq:detail_control_h1_comp_h2_hn} \begin{equation}\label{eq:detail_control_sensor_h1_comp_h2_hn}
H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) + \dots + H_n(s) \big] H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) + \dots + H_n(s) \big]
\end{equation} \end{equation}
An example is given to validate the proposed method for the synthesis of a set of three complementary filters. An example is given to validate the proposed method for the synthesis of a set of three complementary filters.
The sensors to be merged are a displacement sensor from DC up to $\SI{1}{Hz}$, a geophone from $1$ to $\SI{10}{Hz}$ and an accelerometer above $\SI{10}{Hz}$. The sensors to be merged are a displacement sensor from DC up to $\SI{1}{Hz}$, a geophone from $1$ to $\SI{10}{Hz}$ and an accelerometer above $\SI{10}{Hz}$.
Three weighting functions are designed using formula eqref:eq:detail_control_weight_formula and their inverse magnitude are shown in Figure ref:fig:detail_control_three_complementary_filters_results (dashed curves). Three weighting functions are designed using formula eqref:eq:detail_control_sensor_weight_formula and their inverse magnitude are shown in Figure ref:fig:detail_control_sensor_three_complementary_filters_results (dashed curves).
Consider the generalized plant $P_3(s)$ shown in Figure ref:fig:detail_control_comp_filter_three_hinf_fb which is also described by eqref:eq:detail_control_generalized_plant_three_filters. Consider the generalized plant $P_3(s)$ shown in Figure ref:fig:detail_control_sensor_comp_filter_three_hinf_fb which is also described by eqref:eq:detail_control_sensor_generalized_plant_three_filters.
\begin{equation}\label{eq:detail_control_generalized_plant_three_filters} \begin{equation}\label{eq:detail_control_sensor_generalized_plant_three_filters}
\begin{bmatrix} z_1 \\ z_2 \\ z_3 \\ v \end{bmatrix} = P_3(s) \begin{bmatrix} w \\ u_1 \\ u_2 \end{bmatrix}; \quad P_3(s) = \begin{bmatrix}W_1(s) & -W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) & 0 \\ 0 & 0 & \phantom{+}W_3(s) \\ 1 & 0 & 0 \end{bmatrix} \begin{bmatrix} z_1 \\ z_2 \\ z_3 \\ v \end{bmatrix} = P_3(s) \begin{bmatrix} w \\ u_1 \\ u_2 \end{bmatrix}; \quad P_3(s) = \begin{bmatrix}W_1(s) & -W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) & 0 \\ 0 & 0 & \phantom{+}W_3(s) \\ 1 & 0 & 0 \end{bmatrix}
\end{equation} \end{equation}
#+begin_src latex :file detail_control_comp_filter_three_hinf_gen_plant.pdf #+begin_src latex :file detail_control_sensor_comp_filter_three_hinf_gen_plant.pdf
\tikzset{block/.default={0.8cm}{0.8cm}} \tikzset{block/.default={0.8cm}{0.8cm}}
\tikzset{addb/.append style={scale=0.7}} \tikzset{addb/.append style={scale=0.7}}
\tikzset{node distance=0.6} \tikzset{node distance=0.6}
@ -2035,7 +2035,7 @@ Consider the generalized plant $P_3(s)$ shown in Figure ref:fig:detail_control_c
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+begin_src latex :file detail_control_comp_filter_three_hinf_fb.pdf #+begin_src latex :file detail_control_sensor_comp_filter_three_hinf_fb.pdf
\tikzset{block/.default={0.8cm}{0.8cm}} \tikzset{block/.default={0.8cm}{0.8cm}}
\tikzset{addb/.append style={scale=0.7}} \tikzset{addb/.append style={scale=0.7}}
\tikzset{node distance=0.6} \tikzset{node distance=0.6}
@ -2078,33 +2078,33 @@ Consider the generalized plant $P_3(s)$ shown in Figure ref:fig:detail_control_c
#+end_src #+end_src
#+name: fig:detail_control_comp_filter_three_hinf #+name: fig:detail_control_sensor_comp_filter_three_hinf
#+caption: Architecture for the $\mathcal{H}_\infty$ synthesis of three complementary filters (\subref{fig:detail_control_comp_filter_three_hinf_fb}). Bode plot of the inverse weighting functions and of the three obtained complementary filters (\subref{fig:detail_control_three_complementary_filters_results}) #+caption: Architecture for the $\mathcal{H}_\infty$ synthesis of three complementary filters (\subref{fig:detail_control_sensor_comp_filter_three_hinf_fb}). Bode plot of the inverse weighting functions and of the three obtained complementary filters (\subref{fig:detail_control_sensor_three_complementary_filters_results})
#+attr_latex: :options [htbp] #+attr_latex: :options [htbp]
#+begin_figure #+begin_figure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_comp_filter_three_hinf_fb}Generalized plant with the synthesized filter} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_comp_filter_three_hinf_fb}Generalized plant with the synthesized filter}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.48\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :width 0.95\linewidth #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_control_comp_filter_three_hinf_fb.png]] [[file:figs/detail_control_sensor_comp_filter_three_hinf_fb.png]]
#+end_subfigure #+end_subfigure
#+attr_latex: :caption \subcaption{\label{fig:detail_control_three_complementary_filters_results}Weights and obtained filters} #+attr_latex: :caption \subcaption{\label{fig:detail_control_sensor_three_complementary_filters_results}Weights and obtained filters}
#+attr_latex: :options {0.48\textwidth} #+attr_latex: :options {0.48\textwidth}
#+begin_subfigure #+begin_subfigure
#+attr_latex: :width 0.95\linewidth #+attr_latex: :width 0.95\linewidth
[[file:figs/detail_control_three_complementary_filters_results.png]] [[file:figs/detail_control_sensor_three_complementary_filters_results.png]]
#+end_subfigure #+end_subfigure
#+end_figure #+end_figure
The standard $\mathcal{H}_\infty$ synthesis is performed on the generalized plant $P_3(s)$. The standard $\mathcal{H}_\infty$ synthesis is performed on the generalized plant $P_3(s)$.
Two filters $H_2(s)$ and $H_3(s)$ are obtained such that the $\mathcal{H}_\infty$ norm of the closed-loop transfer from $w$ to $[z_1,\ z_2,\ z_3]$ of the system in Figure ref:fig:detail_control_comp_filter_three_hinf_fb is less than one. Two filters $H_2(s)$ and $H_3(s)$ are obtained such that the $\mathcal{H}_\infty$ norm of the closed-loop transfer from $w$ to $[z_1,\ z_2,\ z_3]$ of the system in Figure ref:fig:detail_control_sensor_comp_filter_three_hinf_fb is less than one.
Filter $H_1(s)$ is defined using eqref:eq:detail_control_h1_compl_h2_h3 thus ensuring the complementary property of the obtained set of filters. Filter $H_1(s)$ is defined using eqref:eq:detail_control_sensor_h1_compl_h2_h3 thus ensuring the complementary property of the obtained set of filters.
\begin{equation}\label{eq:detail_control_h1_compl_h2_h3} \begin{equation}\label{eq:detail_control_sensor_h1_compl_h2_h3}
H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) \big] H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) \big]
\end{equation} \end{equation}
Figure ref:fig:detail_control_three_complementary_filters_results displays the three synthesized complementary filters (solid lines) which confirms that the synthesis is successful. Figure ref:fig:detail_control_sensor_three_complementary_filters_results displays the three synthesized complementary filters (solid lines) which confirms that the synthesis is successful.
#+begin_src matlab #+begin_src matlab
%% Synthesis of a set of three complementary filters %% Synthesis of a set of three complementary filters
@ -2149,7 +2149,7 @@ leg.ItemTokenSize(1) = 18;
#+end_src #+end_src
#+begin_src matlab :tangle no :exports results :results file replace #+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/detail_control_three_complementary_filters_results.pdf', 'width', 'half', 'height', 'normal'); exportFig('figs/detail_control_sensor_three_complementary_filters_results.pdf', 'width', 'half', 'height', 'normal');
#+end_src #+end_src
** TODO Conclusion ** TODO Conclusion

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2025-04-05 Sat 22:14 % Created 2025-04-05 Sat 22:29
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt}
@ -52,11 +52,11 @@ Explain why multiple sensors are sometimes beneficial:
Several architectures (Figure \ref{fig:detail_control_control_multiple_sensors}): Several architectures (Figure \ref{fig:detail_control_control_multiple_sensors}):
\begin{itemize} \begin{itemize}
\item HAC-LAC (Figure \ref{fig:detail_control_architecture_hac_lac}) \item HAC-LAC (Figure \ref{fig:detail_control_sensor_arch_hac_lac})
\cite{geng95_intel_contr_system_multip_degree,preumont18_vibrat_contr_activ_struc_fourt_edition,wang16_inves_activ_vibrat_isolat_stewar,li01_simul_vibrat_isolat_point_contr,pu11_six_degree_of_freed_activ,xie17_model_contr_hybrid_passiv_activ} \cite{geng95_intel_contr_system_multip_degree,preumont18_vibrat_contr_activ_struc_fourt_edition,wang16_inves_activ_vibrat_isolat_stewar,li01_simul_vibrat_isolat_point_contr,pu11_six_degree_of_freed_activ,xie17_model_contr_hybrid_passiv_activ}
\item Sensor Fusion (Figure \ref{fig:detail_control_architecture_sensor_fusion}) \item Sensor Fusion (Figure \ref{fig:detail_control_sensor_arch_sensor_fusion})
\cite{tjepkema12_activ_ph,tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip,hauge04_sensor_contr_space_based_six} \cite{tjepkema12_activ_ph,tjepkema12_sensor_fusion_activ_vibrat_isolat_precis_equip,hauge04_sensor_contr_space_based_six}
\item Two Sensor control (Figure \ref{fig:detail_control_architecture_two_sensor_control}) \item Two Sensor control (Figure \ref{fig:detail_control_sensor_arch_two_sensor_control})
\cite{hauge04_sensor_contr_space_based_six,tjepkema12_activ_ph,beijen14_two_sensor_contr_activ_vibrat,yong16_high_speed_vertic_posit_stage} \cite{hauge04_sensor_contr_space_based_six,tjepkema12_activ_ph,beijen14_two_sensor_contr_activ_vibrat,yong16_high_speed_vertic_posit_stage}
\item[{$\square$}] Explain basic idea for three strategies: \item[{$\square$}] Explain basic idea for three strategies:
@ -73,32 +73,32 @@ Comparison between ``two sensor control'' and ``sensor fusion'' is given in \cit
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.48\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_control_architecture_hac_lac.png} \includegraphics[scale=1,scale=1]{figs/detail_control_sensor_arch_hac_lac.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_architecture_hac_lac} HAC-LAC} \subcaption{\label{fig:detail_control_sensor_arch_hac_lac} HAC-LAC}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.48\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_control_architecture_two_sensor_control.png} \includegraphics[scale=1,scale=1]{figs/detail_control_sensor_arch_two_sensor_control.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_architecture_two_sensor_control} Two Sensor Control} \subcaption{\label{fig:detail_control_sensor_arch_two_sensor_control} Two Sensor Control}
\end{subfigure} \end{subfigure}
\bigskip \bigskip
\begin{subfigure}{0.95\textwidth} \begin{subfigure}{0.95\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_control_architecture_sensor_fusion.png} \includegraphics[scale=1,scale=1]{figs/detail_control_sensor_arch_sensor_fusion.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_architecture_sensor_fusion} Sensor Fusion} \subcaption{\label{fig:detail_control_sensor_arch_sensor_fusion} Sensor Fusion}
\end{subfigure} \end{subfigure}
\caption{\label{fig:detail_control_control_multiple_sensors}Different control strategies when using multiple sensors. High Authority Control / Low Authority Control (\subref{fig:detail_control_architecture_hac_lac}). Sensor Fusion (\subref{fig:detail_control_architecture_sensor_fusion}). Two-Sensor Control (\subref{fig:detail_control_architecture_two_sensor_control})} \caption{\label{fig:detail_control_control_multiple_sensors}Different control strategies when using multiple sensors. High Authority Control / Low Authority Control (\subref{fig:detail_control_sensor_arch_hac_lac}). Sensor Fusion (\subref{fig:detail_control_sensor_arch_sensor_fusion}). Two-Sensor Control (\subref{fig:detail_control_sensor_arch_two_sensor_control})}
\end{figure} \end{figure}
The use of multiple sensors have already been used for the Stewart platform. The use of multiple sensors have already been used for the Stewart platform.
Table \ref{tab:detail_control_multiple_sensor_review} Table \ref{tab:detail_control_sensor_review}
\begin{table}[htbp] \begin{table}[htbp]
\caption{\label{tab:detail_control_multiple_sensor_review}Review of Stewart platforms integrating multiple sensors} \caption{\label{tab:detail_control_sensor_review}Review of Stewart platforms integrating multiple sensors}
\centering \centering
\scriptsize \scriptsize
\begin{tabularx}{0.9\linewidth}{Xcccc} \begin{tabularx}{0.9\linewidth}{Xcccc}
@ -200,10 +200,10 @@ This means that the super sensor provides an estimate \(\hat{x}\) of \(x\) which
\caption{\label{fig:detail_control_sensor_fusion_overview}Schematic of a sensor fusion architecture using complementary filters.} \caption{\label{fig:detail_control_sensor_fusion_overview}Schematic of a sensor fusion architecture using complementary filters.}
\end{figure} \end{figure}
The complementary property of filters \(H_1(s)\) and \(H_2(s)\) implies that the sum of their transfer functions is equal to one \eqref{eq:detail_control_comp_filter}. The complementary property of filters \(H_1(s)\) and \(H_2(s)\) implies that the sum of their transfer functions is equal to one \eqref{eq:detail_control_sensor_comp_filter}.
That is, unity magnitude and zero phase at all frequencies. That is, unity magnitude and zero phase at all frequencies.
\begin{equation}\label{eq:detail_control_comp_filter} \begin{equation}\label{eq:detail_control_sensor_comp_filter}
H_1(s) + H_2(s) = 1 H_1(s) + H_2(s) = 1
\end{equation} \end{equation}
\paragraph{Sensor Models and Sensor Normalization} \paragraph{Sensor Models and Sensor Normalization}
@ -234,47 +234,47 @@ The sensor dynamics estimate \(\hat{G}_i(s)\) can be a simple gain or a more com
\caption{\label{fig:detail_control_sensor_models}Sensor models with and without normalization.} \caption{\label{fig:detail_control_sensor_models}Sensor models with and without normalization.}
\end{figure} \end{figure}
Two normalized sensors are then combined to form a super sensor as shown in Figure \ref{fig:detail_control_fusion_super_sensor}. Two normalized sensors are then combined to form a super sensor as shown in Figure \ref{fig:detail_control_sensor_fusion_super_sensor}.
The two sensors are measuring the same physical quantity \(x\) with dynamics \(G_1(s)\) and \(G_2(s)\), and with \emph{uncorrelated} noises \(n_1\) and \(n_2\). The two sensors are measuring the same physical quantity \(x\) with dynamics \(G_1(s)\) and \(G_2(s)\), and with \emph{uncorrelated} noises \(n_1\) and \(n_2\).
The signals from both normalized sensors are fed into two complementary filters \(H_1(s)\) and \(H_2(s)\) and then combined to yield an estimate \(\hat{x}\) of \(x\). The signals from both normalized sensors are fed into two complementary filters \(H_1(s)\) and \(H_2(s)\) and then combined to yield an estimate \(\hat{x}\) of \(x\).
The super sensor output \(\hat{x}\) is therefore described by \eqref{eq:detail_control_comp_filter_estimate}. The super sensor output \(\hat{x}\) is therefore described by \eqref{eq:detail_control_sensor_comp_filter_estimate}.
\begin{equation}\label{eq:detail_control_comp_filter_estimate} \begin{equation}\label{eq:detail_control_sensor_comp_filter_estimate}
\hat{x} = \Big( H_1(s) \hat{G}_1^{-1}(s) G_1(s) + H_2(s) \hat{G}_2^{-1}(s) G_2(s) \Big) x + H_1(s) \hat{G}_1^{-1}(s) G_1(s) n_1 + H_2(s) \hat{G}_2^{-1}(s) G_2(s) n_2 \hat{x} = \Big( H_1(s) \hat{G}_1^{-1}(s) G_1(s) + H_2(s) \hat{G}_2^{-1}(s) G_2(s) \Big) x + H_1(s) \hat{G}_1^{-1}(s) G_1(s) n_1 + H_2(s) \hat{G}_2^{-1}(s) G_2(s) n_2
\end{equation} \end{equation}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1]{figs/detail_control_fusion_super_sensor.png} \includegraphics[scale=1]{figs/detail_control_sensor_fusion_super_sensor.png}
\caption{\label{fig:detail_control_fusion_super_sensor}Sensor fusion architecture with two normalized sensors.} \caption{\label{fig:detail_control_sensor_fusion_super_sensor}Sensor fusion architecture with two normalized sensors.}
\end{figure} \end{figure}
\paragraph{Noise Sensor Filtering} \paragraph{Noise Sensor Filtering}
First, suppose that all the sensors are perfectly normalized \eqref{eq:detail_control_perfect_dynamics}. First, suppose that all the sensors are perfectly normalized \eqref{eq:detail_control_sensor_perfect_dynamics}.
The effect of a non-perfect normalization will be discussed afterwards. The effect of a non-perfect normalization will be discussed afterwards.
\begin{equation}\label{eq:detail_control_perfect_dynamics} \begin{equation}\label{eq:detail_control_sensor_perfect_dynamics}
\frac{\hat{x}_i}{x} = \hat{G}_i(s) G_i(s) = 1 \frac{\hat{x}_i}{x} = \hat{G}_i(s) G_i(s) = 1
\end{equation} \end{equation}
Provided \eqref{eq:detail_control_perfect_dynamics} is verified, the super sensor output \(\hat{x}\) is then equal to \(x\) plus the filtered noise of both sensors \eqref{eq:detail_control_estimate_perfect_dyn}. Provided \eqref{eq:detail_control_sensor_perfect_dynamics} is verified, the super sensor output \(\hat{x}\) is then equal to \(x\) plus the filtered noise of both sensors \eqref{eq:detail_control_sensor_estimate_perfect_dyn}.
From \eqref{eq:detail_control_estimate_perfect_dyn}, the complementary filters \(H_1(s)\) and \(H_2(s)\) are shown to only operate on the noise of the sensors. From \eqref{eq:detail_control_sensor_estimate_perfect_dyn}, the complementary filters \(H_1(s)\) and \(H_2(s)\) are shown to only operate on the noise of the sensors.
Thus, this sensor fusion architecture permits to filter the noise of both sensors without introducing any distortion in the physical quantity to be measured. Thus, this sensor fusion architecture permits to filter the noise of both sensors without introducing any distortion in the physical quantity to be measured.
This is why the two filters must be complementary. This is why the two filters must be complementary.
\begin{equation}\label{eq:detail_control_estimate_perfect_dyn} \begin{equation}\label{eq:detail_control_sensor_estimate_perfect_dyn}
\hat{x} = x + H_1(s) n_1 + H_2(s) n_2 \hat{x} = x + H_1(s) n_1 + H_2(s) n_2
\end{equation} \end{equation}
The estimation error \(\delta x\), defined as the difference between the sensor output \(\hat{x}\) and the measured quantity \(x\), is computed for the super sensor \eqref{eq:detail_control_estimate_error}. The estimation error \(\delta x\), defined as the difference between the sensor output \(\hat{x}\) and the measured quantity \(x\), is computed for the super sensor \eqref{eq:detail_control_sensor_estimate_error}.
\begin{equation}\label{eq:detail_control_estimate_error} \begin{equation}\label{eq:detail_control_sensor_estimate_error}
\delta x \triangleq \hat{x} - x = H_1(s) n_1 + H_2(s) n_2 \delta x \triangleq \hat{x} - x = H_1(s) n_1 + H_2(s) n_2
\end{equation} \end{equation}
As shown in \eqref{eq:detail_control_noise_filtering_psd}, the Power Spectral Density (PSD) of the estimation error \(\Phi_{\delta x}\) depends both on the norm of the two complementary filters and on the PSD of the noise sources \(\Phi_{n_1}\) and \(\Phi_{n_2}\). As shown in \eqref{eq:detail_control_sensor_noise_filtering_psd}, the Power Spectral Density (PSD) of the estimation error \(\Phi_{\delta x}\) depends both on the norm of the two complementary filters and on the PSD of the noise sources \(\Phi_{n_1}\) and \(\Phi_{n_2}\).
\begin{equation}\label{eq:detail_control_noise_filtering_psd} \begin{equation}\label{eq:detail_control_sensor_noise_filtering_psd}
\Phi_{\delta x}(\omega) = \left|H_1(j\omega)\right|^2 \Phi_{n_1}(\omega) + \left|H_2(j\omega)\right|^2 \Phi_{n_2}(\omega) \Phi_{\delta x}(\omega) = \left|H_1(j\omega)\right|^2 \Phi_{n_1}(\omega) + \left|H_2(j\omega)\right|^2 \Phi_{n_2}(\omega)
\end{equation} \end{equation}
@ -286,7 +286,7 @@ In such case, to lower the noise of the super sensor, the norm \(|H_1(j\omega)|\
Hence, by properly shaping the norm of the complementary filters, it is possible to minimize the noise of the super sensor. Hence, by properly shaping the norm of the complementary filters, it is possible to minimize the noise of the super sensor.
\paragraph{Sensor Fusion Robustness} \paragraph{Sensor Fusion Robustness}
In practical systems the sensor normalization is not perfect and condition \eqref{eq:detail_control_perfect_dynamics} is not verified. In practical systems the sensor normalization is not perfect and condition \eqref{eq:detail_control_sensor_perfect_dynamics} is not verified.
In order to study such imperfection, a multiplicative input uncertainty is added to the sensor dynamics (Figure \ref{fig:detail_control_sensor_model_uncertainty}). In order to study such imperfection, a multiplicative input uncertainty is added to the sensor dynamics (Figure \ref{fig:detail_control_sensor_model_uncertainty}).
The nominal model is the estimated model used for the normalization \(\hat{G}_i(s)\), \(\Delta_i(s)\) is any stable transfer function satisfying \(|\Delta_i(j\omega)| \le 1,\ \forall\omega\), and \(w_i(s)\) is a weighting transfer function representing the magnitude of the uncertainty. The nominal model is the estimated model used for the normalization \(\hat{G}_i(s)\), \(\Delta_i(s)\) is any stable transfer function satisfying \(|\Delta_i(j\omega)| \le 1,\ \forall\omega\), and \(w_i(s)\) is a weighting transfer function representing the magnitude of the uncertainty.
@ -311,8 +311,8 @@ As the nominal sensor dynamics is taken as the normalized filter, the normalized
\end{figure} \end{figure}
The sensor fusion architecture with the sensor models including dynamical uncertainty is shown in Figure \ref{fig:detail_control_sensor_fusion_dynamic_uncertainty}. The sensor fusion architecture with the sensor models including dynamical uncertainty is shown in Figure \ref{fig:detail_control_sensor_fusion_dynamic_uncertainty}.
The super sensor dynamics \eqref{eq:detail_control_super_sensor_dyn_uncertainty} is no longer equal to \(1\) and now depends on the sensor dynamical uncertainty weights \(w_i(s)\) as well as on the complementary filters \(H_i(s)\). The super sensor dynamics \eqref{eq:detail_control_sensor_super_sensor_dyn_uncertainty} is no longer equal to \(1\) and now depends on the sensor dynamical uncertainty weights \(w_i(s)\) as well as on the complementary filters \(H_i(s)\).
The dynamical uncertainty of the super sensor can be graphically represented in the complex plane by a circle centered on \(1\) with a radius equal to \(|w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)|\) (Figure \ref{fig:detail_control_uncertainty_set_super_sensor}). The dynamical uncertainty of the super sensor can be graphically represented in the complex plane by a circle centered on \(1\) with a radius equal to \(|w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)|\) (Figure \ref{fig:detail_control_sensor_uncertainty_set_super_sensor}).
\begin{equation}\label{eq:detail_control_super_sensor_dyn_uncertainty} \begin{equation}\label{eq:detail_control_super_sensor_dyn_uncertainty}
\frac{\hat{x}}{x} = 1 + w_1(s) H_1(s) \Delta_1(s) + w_2(s) H_2(s) \Delta_2(s) \frac{\hat{x}}{x} = 1 + w_1(s) H_1(s) \Delta_1(s) + w_2(s) H_2(s) \Delta_2(s)
@ -327,24 +327,24 @@ The dynamical uncertainty of the super sensor can be graphically represented in
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.49\textwidth} \begin{subfigure}{0.49\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_uncertainty_set_super_sensor.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_sensor_uncertainty_set_super_sensor.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_uncertainty_set_super_sensor}Uncertainty regions} \subcaption{\label{fig:detail_control_sensor_uncertainty_set_super_sensor}Uncertainty regions}
\end{subfigure} \end{subfigure}
\caption{\label{fig:detail_control_sensor_uncertainty}Sensor fusion architecture with sensor dynamics uncertainty (\subref{fig:detail_control_sensor_fusion_dynamic_uncertainty}). Uncertainty region (\subref{fig:detail_control_uncertainty_set_super_sensor}) of the super sensor dynamics in the complex plane (grey circle). The contribution of both sensors 1 and 2 to the total uncertainty are represented respectively by a blue circle and a red circle. The frequency dependency \(\omega\) is here omitted.} \caption{\label{fig:detail_control_sensor_uncertainty}Sensor fusion architecture with sensor dynamics uncertainty (\subref{fig:detail_control_sensor_fusion_dynamic_uncertainty}). Uncertainty region (\subref{fig:detail_control_sensor_uncertainty_set_super_sensor}) of the super sensor dynamics in the complex plane (grey circle). The contribution of both sensors 1 and 2 to the total uncertainty are represented respectively by a blue circle and a red circle. The frequency dependency \(\omega\) is here omitted.}
\end{figure} \end{figure}
The super sensor dynamical uncertainty, and hence the robustness of the fusion, clearly depends on the complementary filters' norm. The super sensor dynamical uncertainty, and hence the robustness of the fusion, clearly depends on the complementary filters' norm.
For instance, the phase \(\Delta\phi(\omega)\) added by the super sensor dynamics at frequency \(\omega\) is bounded by \(\Delta\phi_{\text{max}}(\omega)\) which can be found by drawing a tangent from the origin to the uncertainty circle of the super sensor (Figure \ref{fig:detail_control_uncertainty_set_super_sensor}) and that is mathematically described by \eqref{eq:detail_control_max_phase_uncertainty}. For instance, the phase \(\Delta\phi(\omega)\) added by the super sensor dynamics at frequency \(\omega\) is bounded by \(\Delta\phi_{\text{max}}(\omega)\) which can be found by drawing a tangent from the origin to the uncertainty circle of the super sensor (Figure \ref{fig:detail_control_sensor_uncertainty_set_super_sensor}) and that is mathematically described by \eqref{eq:detail_control_sensor_max_phase_uncertainty}.
\begin{equation}\label{eq:detail_control_max_phase_uncertainty} \begin{equation}\label{eq:detail_control_sensor_max_phase_uncertainty}
\Delta\phi_\text{max}(\omega) = \arcsin\big( |w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)| \big) \Delta\phi_\text{max}(\omega) = \arcsin\big( |w_1(j\omega) H_1(j\omega)| + |w_2(j\omega) H_2(j\omega)| \big)
\end{equation} \end{equation}
As it is generally desired to limit the maximum phase added by the super sensor, \(H_1(s)\) and \(H_2(s)\) should be designed such that \(\Delta \phi\) is bounded to acceptable values. As it is generally desired to limit the maximum phase added by the super sensor, \(H_1(s)\) and \(H_2(s)\) should be designed such that \(\Delta \phi\) is bounded to acceptable values.
Typically, the norm of the complementary filter \(|H_i(j\omega)|\) should be made small when \(|w_i(j\omega)|\) is large, i.e., at frequencies where the sensor dynamics is uncertain. Typically, the norm of the complementary filter \(|H_i(j\omega)|\) should be made small when \(|w_i(j\omega)|\) is large, i.e., at frequencies where the sensor dynamics is uncertain.
\section{Complementary Filters Shaping} \section{Complementary Filters Shaping}
\label{ssec:detail_control_hinf_method} \label{ssec:detail_control_sensor_hinf_method}
As shown in Section \ref{ssec:detail_control_sensor_fusion_requirements}, the noise and robustness of the super sensor are a function of the complementary filters' norm. As shown in Section \ref{ssec:detail_control_sensor_fusion_requirements}, the noise and robustness of the super sensor are a function of the complementary filters' norm.
Therefore, a synthesis method of complementary filters that allows to shape their norm would be of great use. Therefore, a synthesis method of complementary filters that allows to shape their norm would be of great use.
In this section, such synthesis is proposed by writing the synthesis objective as a standard \(\mathcal{H}_\infty\) optimization problem. In this section, such synthesis is proposed by writing the synthesis objective as a standard \(\mathcal{H}_\infty\) optimization problem.
@ -352,61 +352,61 @@ As weighting functions are used to represent the wanted complementary filters' s
Finally, the synthesis method is validated on an simple example. Finally, the synthesis method is validated on an simple example.
\paragraph{Synthesis Objective} \paragraph{Synthesis Objective}
The synthesis objective is to shape the norm of two filters \(H_1(s)\) and \(H_2(s)\) while ensuring their complementary property \eqref{eq:detail_control_comp_filter}. The synthesis objective is to shape the norm of two filters \(H_1(s)\) and \(H_2(s)\) while ensuring their complementary property \eqref{eq:detail_control_sensor_comp_filter}.
This is equivalent as to finding proper and stable transfer functions \(H_1(s)\) and \(H_2(s)\) such that conditions \eqref{eq:detail_control_hinf_cond_complementarity}, \eqref{eq:detail_control_hinf_cond_h1} and \eqref{eq:detail_control_hinf_cond_h2} are satisfied. This is equivalent as to finding proper and stable transfer functions \(H_1(s)\) and \(H_2(s)\) such that conditions \eqref{eq:detail_control_sensor_hinf_cond_complementarity}, \eqref{eq:detail_control_sensor_hinf_cond_h1} and \eqref{eq:detail_control_sensor_hinf_cond_h2} are satisfied.
\(W_1(s)\) and \(W_2(s)\) are two weighting transfer functions that are carefully chosen to specify the maximum wanted norm of the complementary filters during the synthesis. \(W_1(s)\) and \(W_2(s)\) are two weighting transfer functions that are carefully chosen to specify the maximum wanted norm of the complementary filters during the synthesis.
\begin{subequations}\label{eq:detail_control_comp_filter_problem_form} \begin{subequations}\label{eq:detail_control_sensor_comp_filter_problem_form}
\begin{align} \begin{align}
& H_1(s) + H_2(s) = 1 \label{eq:detail_control_hinf_cond_complementarity} \\ & H_1(s) + H_2(s) = 1 \label{eq:detail_control_sensor_hinf_cond_complementarity} \\
& |H_1(j\omega)| \le \frac{1}{|W_1(j\omega)|} \quad \forall\omega \label{eq:detail_control_hinf_cond_h1} \\ & |H_1(j\omega)| \le \frac{1}{|W_1(j\omega)|} \quad \forall\omega \label{eq:detail_control_sensor_hinf_cond_h1} \\
& |H_2(j\omega)| \le \frac{1}{|W_2(j\omega)|} \quad \forall\omega \label{eq:detail_control_hinf_cond_h2} & |H_2(j\omega)| \le \frac{1}{|W_2(j\omega)|} \quad \forall\omega \label{eq:detail_control_sensor_hinf_cond_h2}
\end{align} \end{align}
\end{subequations} \end{subequations}
\paragraph{Shaping of Complementary Filters using \(\mathcal{H}_\infty\) synthesis} \paragraph{Shaping of Complementary Filters using \(\mathcal{H}_\infty\) synthesis}
The synthesis objective can be easily expressed as a standard \(\mathcal{H}_\infty\) optimization problem and therefore solved using convenient tools readily available. The synthesis objective can be easily expressed as a standard \(\mathcal{H}_\infty\) optimization problem and therefore solved using convenient tools readily available.
Consider the generalized plant \(P(s)\) shown in Figure \ref{fig:detail_control_h_infinity_robust_fusion_plant} and mathematically described by \eqref{eq:detail_control_generalized_plant}. Consider the generalized plant \(P(s)\) shown in Figure \ref{fig:detail_control_sensor_h_infinity_robust_fusion_plant} and mathematically described by \eqref{eq:detail_control_sensor_generalized_plant}.
\begin{equation}\label{eq:detail_control_generalized_plant} \begin{equation}\label{eq:detail_control_sensor_generalized_plant}
\begin{bmatrix} z_1 \\ z_2 \\ v \end{bmatrix} = P(s) \begin{bmatrix} w\\u \end{bmatrix}; \quad P(s) = \begin{bmatrix}W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) \\ 1 & 0 \end{bmatrix} \begin{bmatrix} z_1 \\ z_2 \\ v \end{bmatrix} = P(s) \begin{bmatrix} w\\u \end{bmatrix}; \quad P(s) = \begin{bmatrix}W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) \\ 1 & 0 \end{bmatrix}
\end{equation} \end{equation}
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.49\textwidth} \begin{subfigure}{0.49\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_control_h_infinity_robust_fusion_plant.png} \includegraphics[scale=1,scale=1]{figs/detail_control_sensor_h_infinity_robust_fusion_plant.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_h_infinity_robust_fusion_plant}Generalized plant} \subcaption{\label{fig:detail_control_sensor_h_infinity_robust_fusion_plant}Generalized plant}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.49\textwidth} \begin{subfigure}{0.49\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_control_h_infinity_robust_fusion_fb.png} \includegraphics[scale=1,scale=1]{figs/detail_control_sensor_h_infinity_robust_fusion_fb.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_h_infinity_robust_fusion_fb}Generalized plant with the synthesized filter} \subcaption{\label{fig:detail_control_sensor_h_infinity_robust_fusion_fb}Generalized plant with the synthesized filter}
\end{subfigure} \end{subfigure}
\caption{\label{fig:detail_control_h_infinity_robust_fusion}Architecture for the \(\mathcal{H}_\infty\) synthesis of complementary filters} \caption{\label{fig:detail_control_sensor_h_infinity_robust_fusion}Architecture for the \(\mathcal{H}_\infty\) synthesis of complementary filters}
\end{figure} \end{figure}
Applying the standard \(\mathcal{H}_\infty\) synthesis to the generalized plant \(P(s)\) is then equivalent as finding a stable filter \(H_2(s)\) which based on \(v\), generates a signal \(u\) such that the \(\mathcal{H}_\infty\) norm of the system in Figure \ref{fig:detail_control_h_infinity_robust_fusion_fb} from \(w\) to \([z_1, \ z_2]\) is less than one \eqref{eq:detail_control_hinf_syn_obj}. Applying the standard \(\mathcal{H}_\infty\) synthesis to the generalized plant \(P(s)\) is then equivalent as finding a stable filter \(H_2(s)\) which based on \(v\), generates a signal \(u\) such that the \(\mathcal{H}_\infty\) norm of the system in Figure \ref{fig:detail_control_sensor_h_infinity_robust_fusion_fb} from \(w\) to \([z_1, \ z_2]\) is less than one \eqref{eq:detail_control_sensor_hinf_syn_obj}.
\begin{equation}\label{eq:detail_control_hinf_syn_obj} \begin{equation}\label{eq:detail_control_sensor_hinf_syn_obj}
\left\|\begin{matrix} \left(1 - H_2(s)\right) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1 \left\|\begin{matrix} \left(1 - H_2(s)\right) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1
\end{equation} \end{equation}
By then defining \(H_1(s)\) to be the complementary of \(H_2(s)\) \eqref{eq:detail_control_definition_H1}, the \(\mathcal{H}_\infty\) synthesis objective becomes equivalent to \eqref{eq:detail_control_hinf_problem} which ensures that \eqref{eq:detail_control_hinf_cond_h1} and \eqref{eq:detail_control_hinf_cond_h2} are satisfied. By then defining \(H_1(s)\) to be the complementary of \(H_2(s)\) \eqref{eq:detail_control_sensor_definition_H1}, the \(\mathcal{H}_\infty\) synthesis objective becomes equivalent to \eqref{eq:detail_control_sensor_hinf_problem} which ensures that \eqref{eq:detail_control_sensor_hinf_cond_h1} and \eqref{eq:detail_control_sensor_hinf_cond_h2} are satisfied.
\begin{equation}\label{eq:detail_control_definition_H1} \begin{equation}\label{eq:detail_control_sensor_definition_H1}
H_1(s) \triangleq 1 - H_2(s) H_1(s) \triangleq 1 - H_2(s)
\end{equation} \end{equation}
\begin{equation}\label{eq:detail_control_hinf_problem} \begin{equation}\label{eq:detail_control_sensor_hinf_problem}
\left\|\begin{matrix} H_1(s) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1 \left\|\begin{matrix} H_1(s) W_1(s) \\ H_2(s) W_2(s) \end{matrix}\right\|_\infty \le 1
\end{equation} \end{equation}
Therefore, applying the \(\mathcal{H}_\infty\) synthesis to the standard plant \(P(s)\) \eqref{eq:detail_control_generalized_plant} will generate two filters \(H_2(s)\) and \(H_1(s) \triangleq 1 - H_2(s)\) that are complementary \eqref{eq:detail_control_comp_filter_problem_form} and such that there norms are bellow specified bounds \eqref{eq:detail_control_hinf_cond_h1}, \eqref{eq:detail_control_hinf_cond_h2}. Therefore, applying the \(\mathcal{H}_\infty\) synthesis to the standard plant \(P(s)\) \eqref{eq:detail_control_sensor_generalized_plant} will generate two filters \(H_2(s)\) and \(H_1(s) \triangleq 1 - H_2(s)\) that are complementary \eqref{eq:detail_control_sensor_comp_filter_problem_form} and such that there norms are bellow specified bounds \eqref{eq:detail_control_sensor_hinf_cond_h1}, \eqref{eq:detail_control_sensor_hinf_cond_h2}.
Note that there is only an implication between the \(\mathcal{H}_\infty\) norm condition \eqref{eq:detail_control_hinf_problem} and the initial synthesis objectives \eqref{eq:detail_control_hinf_cond_h1} and \eqref{eq:detail_control_hinf_cond_h2} and not an equivalence. Note that there is only an implication between the \(\mathcal{H}_\infty\) norm condition \eqref{eq:detail_control_sensor_hinf_problem} and the initial synthesis objectives \eqref{eq:detail_control_sensor_hinf_cond_h1} and \eqref{eq:detail_control_sensor_hinf_cond_h2} and not an equivalence.
Hence, the optimization may be a little bit conservative with respect to the set of filters on which it is performed, see \cite[,Chap. 2.8.3]{skogestad07_multiv_feedb_contr}. Hence, the optimization may be a little bit conservative with respect to the set of filters on which it is performed, see \cite[,Chap. 2.8.3]{skogestad07_multiv_feedb_contr}.
\paragraph{Weighting Functions Design} \paragraph{Weighting Functions Design}
@ -415,23 +415,23 @@ The proper design of these weighting functions is of primary importance for the
First, only proper and stable transfer functions should be used. First, only proper and stable transfer functions should be used.
Second, the order of the weighting functions should stay reasonably small in order to reduce the computational costs associated with the solving of the optimization problem and for the physical implementation of the filters (the synthesized filters' order being equal to the sum of the weighting functions' order). Second, the order of the weighting functions should stay reasonably small in order to reduce the computational costs associated with the solving of the optimization problem and for the physical implementation of the filters (the synthesized filters' order being equal to the sum of the weighting functions' order).
Third, one should not forget the fundamental limitations imposed by the complementary property \eqref{eq:detail_control_comp_filter}. Third, one should not forget the fundamental limitations imposed by the complementary property \eqref{eq:detail_control_sensor_comp_filter}.
This implies for instance that \(|H_1(j\omega)|\) and \(|H_2(j\omega)|\) cannot be made small at the same frequency. This implies for instance that \(|H_1(j\omega)|\) and \(|H_2(j\omega)|\) cannot be made small at the same frequency.
When designing complementary filters, it is usually desired to specify their slopes, their ``blending'' frequency and their maximum gains at low and high frequency. When designing complementary filters, it is usually desired to specify their slopes, their ``blending'' frequency and their maximum gains at low and high frequency.
To easily express these specifications, formula \eqref{eq:detail_control_weight_formula} is proposed to help with the design of weighting functions. To easily express these specifications, formula \eqref{eq:detail_control_sensor_weight_formula} is proposed to help with the design of weighting functions.
The parameters in formula \eqref{eq:detail_control_weight_formula} are \(G_0 = \lim_{\omega \to 0} |W(j\omega)|\) the low frequency gain, \(G_\infty = \lim_{\omega \to \infty} |W(j\omega)|\) the high frequency gain, \(G_c = |W(j\omega_c)|\) the gain at a specific frequency \(\omega_c\) in \(\si{rad/s}\) and \(n\) the slope between high and low frequency, which also corresponds to the order of the weighting function. The parameters in formula \eqref{eq:detail_control_sensor_weight_formula} are \(G_0 = \lim_{\omega \to 0} |W(j\omega)|\) the low frequency gain, \(G_\infty = \lim_{\omega \to \infty} |W(j\omega)|\) the high frequency gain, \(G_c = |W(j\omega_c)|\) the gain at a specific frequency \(\omega_c\) in \(\si{rad/s}\) and \(n\) the slope between high and low frequency, which also corresponds to the order of the weighting function.
The typical magnitude of a weighting function generated using \eqref{eq:detail_control_weight_formula} is shown in Figure \ref{fig:detail_control_weight_formula}. The typical magnitude of a weighting function generated using \eqref{eq:detail_control_sensor_weight_formula} is shown in Figure \ref{fig:detail_control_sensor_weight_formula}.
\begin{minipage}[]{0.49\linewidth} \begin{minipage}[]{0.49\linewidth}
\begin{center} \begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_weight_formula.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_sensor_weight_formula.png}
\captionof{figure}{\label{fig:detail_control_weight_formula}Magnitude of a weighting function generated using \eqref{eq:detail_control_weight_formula}, \(G_0 = 10^{-3}\), \(G_\infty = 10\), \(\omega_c = \SI{10}{Hz}\), \(G_c = 2\), \(n = 3\).} \captionof{figure}{\label{fig:detail_control_sensor_weight_formula}Magnitude of a weighting function generated using \eqref{eq:detail_control_sensor_weight_formula}, \(G_0 = 10^{-3}\), \(G_\infty = 10\), \(\omega_c = \SI{10}{Hz}\), \(G_c = 2\), \(n = 3\).}
\end{center} \end{center}
\end{minipage} \end{minipage}
\hfill \hfill
\begin{minipage}[]{0.49\linewidth} \begin{minipage}[]{0.49\linewidth}
\begin{equation}\label{eq:detail_control_weight_formula} \begin{equation}\label{eq:detail_control_sensor_weight_formula}
W(s) = \left( \frac{ W(s) = \left( \frac{
\hfill{} \frac{1}{\omega_c} \sqrt{\frac{1 - \left(\frac{G_0}{G_c}\right)^{\frac{2}{n}}}{1 - \left(\frac{G_c}{G_\infty}\right)^{\frac{2}{n}}}} s + \left(\frac{G_0}{G_c}\right)^{\frac{1}{n}} \hfill{} \frac{1}{\omega_c} \sqrt{\frac{1 - \left(\frac{G_0}{G_c}\right)^{\frac{2}{n}}}{1 - \left(\frac{G_c}{G_\infty}\right)^{\frac{2}{n}}}} s + \left(\frac{G_0}{G_c}\right)^{\frac{1}{n}}
}{ }{
@ -452,9 +452,9 @@ Its high frequency gain is \(10^{-3}\).
\end{itemize} \end{itemize}
The first step is to translate the above requirements by properly designing the weighting functions. The first step is to translate the above requirements by properly designing the weighting functions.
The proposed formula \eqref{eq:detail_control_weight_formula} is here used for such purpose. The proposed formula \eqref{eq:detail_control_sensor_weight_formula} is here used for such purpose.
Parameters used are summarized in Table \ref{tab:detail_control_weights_params}. Parameters used are summarized in Table \ref{tab:detail_control_sensor_weights_params}.
The inverse magnitudes of the designed weighting functions, which are representing the maximum allowed norms of the complementary filters, are shown by the dashed lines in Figure \ref{fig:detail_control_hinf_filters_results}. The inverse magnitudes of the designed weighting functions, which are representing the maximum allowed norms of the complementary filters, are shown by the dashed lines in Figure \ref{fig:detail_control_sensor_hinf_filters_results}.
\begin{minipage}[b]{0.44\linewidth} \begin{minipage}[b]{0.44\linewidth}
\begin{center} \begin{center}
@ -470,23 +470,23 @@ Parameter & \(W_1(s)\) & \(W_2(s)\)\\
\bottomrule \bottomrule
\end{tabularx} \end{tabularx}
\end{center} \end{center}
\captionof{table}{\label{tab:detail_control_weights_params}Parameters for \(W_1(s)\) and \(W_2(s)\)} \captionof{table}{\label{tab:detail_control_sensor_weights_params}Parameters for \(W_1(s)\) and \(W_2(s)\)}
\end{minipage} \end{minipage}
\hfill \hfill
\begin{minipage}[b]{0.52\linewidth} \begin{minipage}[b]{0.52\linewidth}
\begin{center} \begin{center}
\includegraphics[scale=1,scale=1]{figs/detail_control_hinf_filters_results.png} \includegraphics[scale=1,scale=1]{figs/detail_control_sensor_hinf_filters_results.png}
\captionof{figure}{\label{fig:detail_control_hinf_filters_results}Weights and obtained filters} \captionof{figure}{\label{fig:detail_control_sensor_hinf_filters_results}Weights and obtained filters}
\end{center} \end{center}
\end{minipage} \end{minipage}
The standard \(\mathcal{H}_\infty\) synthesis is then applied to the generalized plant of Figure \ref{fig:detail_control_h_infinity_robust_fusion_plant}. The standard \(\mathcal{H}_\infty\) synthesis is then applied to the generalized plant of Figure \ref{fig:detail_control_sensor_h_infinity_robust_fusion_plant}.
The filter \(H_2(s)\) that minimizes the \(\mathcal{H}_\infty\) norm between \(w\) and \([z_1,\ z_2]^T\) is obtained. The filter \(H_2(s)\) that minimizes the \(\mathcal{H}_\infty\) norm between \(w\) and \([z_1,\ z_2]^T\) is obtained.
The \(\mathcal{H}_\infty\) norm is here found to be close to one which indicates that the synthesis is successful: the complementary filters norms are below the maximum specified upper bounds. The \(\mathcal{H}_\infty\) norm is here found to be close to one which indicates that the synthesis is successful: the complementary filters norms are below the maximum specified upper bounds.
This is confirmed by the bode plots of the obtained complementary filters in Figure \ref{fig:detail_control_hinf_filters_results}. This is confirmed by the bode plots of the obtained complementary filters in Figure \ref{fig:detail_control_sensor_hinf_filters_results}.
This simple example illustrates the fact that the proposed methodology for complementary filters shaping is easy to use and effective. This simple example illustrates the fact that the proposed methodology for complementary filters shaping is easy to use and effective.
\section{Synthesis of a set of three complementary filters} \section{Synthesis of a set of three complementary filters}
\label{sec:detail_control_hinf_three_comp_filters} \label{sec:detail_control_sensor_hinf_three_comp_filters}
Some applications may require to merge more than two sensors \cite{stoten01_fusion_kinet_data_using_compos_filter,fonseca15_compl}. Some applications may require to merge more than two sensors \cite{stoten01_fusion_kinet_data_using_compos_filter,fonseca15_compl}.
For instance at the LIGO, three sensors (an LVDT, a seismometer and a geophone) are merged to form a super sensor \cite{matichard15_seism_isolat_advan_ligo}. For instance at the LIGO, three sensors (an LVDT, a seismometer and a geophone) are merged to form a super sensor \cite{matichard15_seism_isolat_advan_ligo}.
@ -514,21 +514,21 @@ A generalization of the proposed synthesis method of complementary filters is pr
\caption{\label{fig:detail_control_sensor_fusion_three}Possible sensor fusion architecture when more than two sensors are to be merged} \caption{\label{fig:detail_control_sensor_fusion_three}Possible sensor fusion architecture when more than two sensors are to be merged}
\end{figure} \end{figure}
The synthesis objective is to compute a set of \(n\) stable transfer functions \([H_1(s),\ H_2(s),\ \dots,\ H_n(s)]\) such that conditions \eqref{eq:detail_control_hinf_cond_compl_gen} and \eqref{eq:detail_control_hinf_cond_perf_gen} are satisfied. The synthesis objective is to compute a set of \(n\) stable transfer functions \([H_1(s),\ H_2(s),\ \dots,\ H_n(s)]\) such that conditions \eqref{eq:detail_control_sensor_hinf_cond_compl_gen} and \eqref{eq:detail_control_sensor_hinf_cond_perf_gen} are satisfied.
\begin{subequations}\label{eq:detail_control_hinf_problem_gen} \begin{subequations}\label{eq:detail_control_sensor_hinf_problem_gen}
\begin{align} \begin{align}
& \sum_{i=1}^n H_i(s) = 1 \label{eq:detail_control_hinf_cond_compl_gen} \\ & \sum_{i=1}^n H_i(s) = 1 \label{eq:detail_control_sensor_hinf_cond_compl_gen} \\
& \left| H_i(j\omega) \right| < \frac{1}{\left| W_i(j\omega) \right|}, \quad \forall \omega,\ i = 1 \dots n \label{eq:detail_control_hinf_cond_perf_gen} & \left| H_i(j\omega) \right| < \frac{1}{\left| W_i(j\omega) \right|}, \quad \forall \omega,\ i = 1 \dots n \label{eq:detail_control_sensor_hinf_cond_perf_gen}
\end{align} \end{align}
\end{subequations} \end{subequations}
\([W_1(s),\ W_2(s),\ \dots,\ W_n(s)]\) are weighting transfer functions that are chosen to specify the maximum complementary filters' norm during the synthesis. \([W_1(s),\ W_2(s),\ \dots,\ W_n(s)]\) are weighting transfer functions that are chosen to specify the maximum complementary filters' norm during the synthesis.
Such synthesis objective is closely related to the one described in Section \ref{ssec:detail_control_hinf_method}, and indeed the proposed synthesis method is a generalization of the one previously presented. Such synthesis objective is closely related to the one described in Section \ref{ssec:detail_control_sensor_hinf_method}, and indeed the proposed synthesis method is a generalization of the one previously presented.
A set of \(n\) complementary filters can be shaped by applying the standard \(\mathcal{H}_\infty\) synthesis to the generalized plant \(P_n(s)\) described by \eqref{eq:detail_control_generalized_plant_n_filters}. A set of \(n\) complementary filters can be shaped by applying the standard \(\mathcal{H}_\infty\) synthesis to the generalized plant \(P_n(s)\) described by \eqref{eq:detail_control_sensor_generalized_plant_n_filters}.
\begin{equation}\label{eq:detail_control_generalized_plant_n_filters} \begin{equation}\label{eq:detail_control_sensor_generalized_plant_n_filters}
\begin{bmatrix} z_1 \\ \vdots \\ z_n \\ v \end{bmatrix} = P_n(s) \begin{bmatrix} w \\ u_1 \\ \vdots \\ u_{n-1} \end{bmatrix}; \quad \begin{bmatrix} z_1 \\ \vdots \\ z_n \\ v \end{bmatrix} = P_n(s) \begin{bmatrix} w \\ u_1 \\ \vdots \\ u_{n-1} \end{bmatrix}; \quad
P_n(s) = \begin{bmatrix} P_n(s) = \begin{bmatrix}
W_1 & -W_1 & \dots & \dots & -W_1 \\ W_1 & -W_1 & \dots & \dots & -W_1 \\
@ -540,54 +540,54 @@ A set of \(n\) complementary filters can be shaped by applying the standard \(\m
\end{bmatrix} \end{bmatrix}
\end{equation} \end{equation}
If the synthesis if successful, a set of \(n-1\) filters \([H_2(s),\ H_3(s),\ \dots,\ H_n(s)]\) are obtained such that \eqref{eq:detail_control_hinf_syn_obj_gen} is verified. If the synthesis if successful, a set of \(n-1\) filters \([H_2(s),\ H_3(s),\ \dots,\ H_n(s)]\) are obtained such that \eqref{eq:detail_control_sensor_hinf_syn_obj_gen} is verified.
\begin{equation}\label{eq:detail_control_hinf_syn_obj_gen} \begin{equation}\label{eq:detail_control_sensor_hinf_syn_obj_gen}
\left\|\begin{matrix} \left(1 - \left[ H_2(s) + H_3(s) + \dots + H_n(s) \right]\right) W_1(s) \\ H_2(s) W_2(s) \\ \vdots \\ H_n(s) W_n(s) \end{matrix}\right\|_\infty \le 1 \left\|\begin{matrix} \left(1 - \left[ H_2(s) + H_3(s) + \dots + H_n(s) \right]\right) W_1(s) \\ H_2(s) W_2(s) \\ \vdots \\ H_n(s) W_n(s) \end{matrix}\right\|_\infty \le 1
\end{equation} \end{equation}
\(H_1(s)\) is then defined using \eqref{eq:detail_control_h1_comp_h2_hn} which is ensuring the complementary property for the set of \(n\) filters \eqref{eq:detail_control_hinf_cond_compl_gen}. \(H_1(s)\) is then defined using \eqref{eq:detail_control_sensor_h1_comp_h2_hn} which is ensuring the complementary property for the set of \(n\) filters \eqref{eq:detail_control_sensor_hinf_cond_compl_gen}.
Condition \eqref{eq:detail_control_hinf_cond_perf_gen} is satisfied thanks to \eqref{eq:detail_control_hinf_syn_obj_gen}. Condition \eqref{eq:detail_control_sensor_hinf_cond_perf_gen} is satisfied thanks to \eqref{eq:detail_control_sensor_hinf_syn_obj_gen}.
\begin{equation}\label{eq:detail_control_h1_comp_h2_hn} \begin{equation}\label{eq:detail_control_sensor_h1_comp_h2_hn}
H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) + \dots + H_n(s) \big] H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) + \dots + H_n(s) \big]
\end{equation} \end{equation}
An example is given to validate the proposed method for the synthesis of a set of three complementary filters. An example is given to validate the proposed method for the synthesis of a set of three complementary filters.
The sensors to be merged are a displacement sensor from DC up to \(\SI{1}{Hz}\), a geophone from \(1\) to \(\SI{10}{Hz}\) and an accelerometer above \(\SI{10}{Hz}\). The sensors to be merged are a displacement sensor from DC up to \(\SI{1}{Hz}\), a geophone from \(1\) to \(\SI{10}{Hz}\) and an accelerometer above \(\SI{10}{Hz}\).
Three weighting functions are designed using formula \eqref{eq:detail_control_weight_formula} and their inverse magnitude are shown in Figure \ref{fig:detail_control_three_complementary_filters_results} (dashed curves). Three weighting functions are designed using formula \eqref{eq:detail_control_sensor_weight_formula} and their inverse magnitude are shown in Figure \ref{fig:detail_control_sensor_three_complementary_filters_results} (dashed curves).
Consider the generalized plant \(P_3(s)\) shown in Figure \ref{fig:detail_control_comp_filter_three_hinf_fb} which is also described by \eqref{eq:detail_control_generalized_plant_three_filters}. Consider the generalized plant \(P_3(s)\) shown in Figure \ref{fig:detail_control_sensor_comp_filter_three_hinf_fb} which is also described by \eqref{eq:detail_control_sensor_generalized_plant_three_filters}.
\begin{equation}\label{eq:detail_control_generalized_plant_three_filters} \begin{equation}\label{eq:detail_control_sensor_generalized_plant_three_filters}
\begin{bmatrix} z_1 \\ z_2 \\ z_3 \\ v \end{bmatrix} = P_3(s) \begin{bmatrix} w \\ u_1 \\ u_2 \end{bmatrix}; \quad P_3(s) = \begin{bmatrix}W_1(s) & -W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) & 0 \\ 0 & 0 & \phantom{+}W_3(s) \\ 1 & 0 & 0 \end{bmatrix} \begin{bmatrix} z_1 \\ z_2 \\ z_3 \\ v \end{bmatrix} = P_3(s) \begin{bmatrix} w \\ u_1 \\ u_2 \end{bmatrix}; \quad P_3(s) = \begin{bmatrix}W_1(s) & -W_1(s) & -W_1(s) \\ 0 & \phantom{+}W_2(s) & 0 \\ 0 & 0 & \phantom{+}W_3(s) \\ 1 & 0 & 0 \end{bmatrix}
\end{equation} \end{equation}
\begin{figure}[htbp] \begin{figure}[htbp]
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.48\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_comp_filter_three_hinf_fb.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_sensor_comp_filter_three_hinf_fb.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_comp_filter_three_hinf_fb}Generalized plant with the synthesized filter} \subcaption{\label{fig:detail_control_sensor_comp_filter_three_hinf_fb}Generalized plant with the synthesized filter}
\end{subfigure} \end{subfigure}
\begin{subfigure}{0.48\textwidth} \begin{subfigure}{0.48\textwidth}
\begin{center} \begin{center}
\includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_three_complementary_filters_results.png} \includegraphics[scale=1,width=0.95\linewidth]{figs/detail_control_sensor_three_complementary_filters_results.png}
\end{center} \end{center}
\subcaption{\label{fig:detail_control_three_complementary_filters_results}Weights and obtained filters} \subcaption{\label{fig:detail_control_sensor_three_complementary_filters_results}Weights and obtained filters}
\end{subfigure} \end{subfigure}
\caption{\label{fig:detail_control_comp_filter_three_hinf}Architecture for the \(\mathcal{H}_\infty\) synthesis of three complementary filters (\subref{fig:detail_control_comp_filter_three_hinf_fb}). Bode plot of the inverse weighting functions and of the three obtained complementary filters (\subref{fig:detail_control_three_complementary_filters_results})} \caption{\label{fig:detail_control_sensor_comp_filter_three_hinf}Architecture for the \(\mathcal{H}_\infty\) synthesis of three complementary filters (\subref{fig:detail_control_sensor_comp_filter_three_hinf_fb}). Bode plot of the inverse weighting functions and of the three obtained complementary filters (\subref{fig:detail_control_sensor_three_complementary_filters_results})}
\end{figure} \end{figure}
The standard \(\mathcal{H}_\infty\) synthesis is performed on the generalized plant \(P_3(s)\). The standard \(\mathcal{H}_\infty\) synthesis is performed on the generalized plant \(P_3(s)\).
Two filters \(H_2(s)\) and \(H_3(s)\) are obtained such that the \(\mathcal{H}_\infty\) norm of the closed-loop transfer from \(w\) to \([z_1,\ z_2,\ z_3]\) of the system in Figure \ref{fig:detail_control_comp_filter_three_hinf_fb} is less than one. Two filters \(H_2(s)\) and \(H_3(s)\) are obtained such that the \(\mathcal{H}_\infty\) norm of the closed-loop transfer from \(w\) to \([z_1,\ z_2,\ z_3]\) of the system in Figure \ref{fig:detail_control_sensor_comp_filter_three_hinf_fb} is less than one.
Filter \(H_1(s)\) is defined using \eqref{eq:detail_control_h1_compl_h2_h3} thus ensuring the complementary property of the obtained set of filters. Filter \(H_1(s)\) is defined using \eqref{eq:detail_control_sensor_h1_compl_h2_h3} thus ensuring the complementary property of the obtained set of filters.
\begin{equation}\label{eq:detail_control_h1_compl_h2_h3} \begin{equation}\label{eq:detail_control_sensor_h1_compl_h2_h3}
H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) \big] H_1(s) \triangleq 1 - \big[ H_2(s) + H_3(s) \big]
\end{equation} \end{equation}
Figure \ref{fig:detail_control_three_complementary_filters_results} displays the three synthesized complementary filters (solid lines) which confirms that the synthesis is successful. Figure \ref{fig:detail_control_sensor_three_complementary_filters_results} displays the three synthesized complementary filters (solid lines) which confirms that the synthesis is successful.
\section*{Conclusion} \section*{Conclusion}
A new method for designing complementary filters using the \(\mathcal{H}_\infty\) synthesis has been proposed. A new method for designing complementary filters using the \(\mathcal{H}_\infty\) synthesis has been proposed.
It allows to shape the magnitude of the filters by the use of weighting functions during the synthesis. It allows to shape the magnitude of the filters by the use of weighting functions during the synthesis.