dehaeze20_virtu_senso_fusio/paper/paper.org

599 lines
30 KiB
Org Mode
Raw Permalink Normal View History

2020-10-08 10:51:50 +02:00
#+TITLE: Feedback Control
:DRAWER:
#+LATEX_CLASS: IEEEtran
#+LATEX_CLASS_OPTIONS: [9pt, technote, a4paper]
#+OPTIONS: toc:nil
#+STARTUP: overview
#+DATE: {{{time(%Y-%m-%d)}}}
#+AUTHOR: @@latex:\IEEEauthorblockN{Dehaeze Thomas\IEEEauthorrefmark{1}, Verma Mohit, Zhao Guoying and Collette Christophe} \\@@
#+AUTHOR: @@latex:\IEEEauthorblockA{Precision Mechatronics Laboratory, ULB\\ Brussels, Belgium\\ Email: \IEEEauthorrefmark{1}dehaeze.thomas@gmail.com}@@
#+LATEX_HEADER: \usepackage{amsmath,amssymb,amsfonts, cases}
#+LATEX_HEADER: \usepackage{algorithmic, graphicx, textcomp}
#+LATEX_HEADER: \usepackage{xcolor, import, hyperref}
#+LATEX_HEADER: \usepackage[USenglish]{babel}
#+LATEX_HEADER: \setcounter{footnote}{1}
#+LATEX_HEADER: \input{config.tex}
\bibliographystyle{IEEEtran}
:END:
* LaTeX Config :noexport:
#+begin_src latex :tangle config.tex
% H Infini
\newcommand{\hinf}{\mathcal{H}_\infty}
% H 2
\newcommand{\htwo}{\mathcal{H}_2}
% Omega
\newcommand{\w}{\omega}
% H-Infinity Norm
\newcommand{\hnorm}[1]{\left\|#1\right\|_{\infty}}
% H-2 Norm
\newcommand{\normtwo}[1]{\left\|#1\right\|_{2}}
% Norm
\newcommand{\norm}[1]{\left\|#1\right\|}
% Absolute value
\newcommand{\abs}[1]{\left\lvert #1 \right\lvert}
% Minimum Subscript
\newcommand{\smin}{_{\text{min}}}
% Maximum Subscript
\newcommand{\smax}{_{\text{max}}}
\newcommand*\colvec[1]{\begin{bmatrix}#1\end{bmatrix}}
#+end_src
* Build :noexport:
#+NAME: startblock
#+BEGIN_SRC emacs-lisp :results none
(add-to-list 'org-latex-classes
'("IEEEtran"
"\\documentclass{IEEEtran}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
)
#+END_SRC
* Abstract :ignore:
#+begin_abstract
Abstract text to be done
#+end_abstract
#+begin_IEEEkeywords
complementary filters, h-infinity, feedback control
#+end_IEEEkeywords
* Introduction
<<sec:introduction>>
*Model based control*
*SISO control design methods*
- frequency domain techniques
- manual loop-shaping - key idea: modification of the controller such that the open-loop is made according to specifications cite:oomen18_advan_motion_contr_precis_mechat.
This works well because the open loop transfer function is linearly dependent of the controller.
However, the specifications are given in terms of the final system performance, i.e. as closed-loop specifications.
*Norm-based control*
$\hinf$ loop-shaping cite:skogestad07_multiv_feedb_contr. Far from standard in industry as it requires lot of efforts.
Problem of robustness to plant uncertainty:
- Trade off performance / robustness. Difficult to obtain high performance in presence of high uncertainty.
- Robust control $\mu\text{-synthesis}$. Takes a lot of effort to model the plant uncertainty.
- Sensor fusion: combines two sensors using complementary filters. The high frequency sensor is collocated with the actuator in order to ensure the stability of the system even in presence of uncertainty. cite:collette15_sensor_fusion_method_high_perfor cite:collette14_vibrat
Complementary filters: cite:hua05_low_ligo.\\
In this paper, we propose a new controller synthesis method
- based on the use of complementary high pass and low pass filters
- inverse based control
- direct translation of requirements such as disturbance rejection and robustness to plant uncertainty
* Theory
<<sec:theory>>
** Control Architecture
<<sec:control_arch>>
Let's consider the control architecture represented in Fig. ref:fig:sf_arch where $G^\prime$ is the physical plant to control, $G$ is a model of the plant, $k$ is a gain, $H_L$ and $H_H$ are complementary filters ($H_L + H_H = 1$ in the complex sense).
The signals are the reference signal $r$, the output perturbation $d_y$, the measurement noise $n$ and the control input $u$.\\
#+name: fig:sf_arch
#+caption: Sensor Fusion Architecture
#+attr_latex: :float t :scale 1
file:./figs/sf_arch.pdf
The dynamics of the closed-loop system is described by the following equations
\begin{alignat}{5}
y &= \frac{1+kGH_H}{1+L} dy &&+ \frac{kG^{\prime}}{1+L} r &&- \frac{kG^{\prime}H_L}{1+L} n \\
u &= -\frac{kH_L}{1+L} dy &&+ \frac{k}{1+L} r &&- \frac{kH_L}{1+L} n
\end{alignat}
with $L = k(G H_H + G^\prime H_L)$.\\
The idea of using such architecture comes from sensor fusion cite:collette14_vibrat,collette15_sensor_fusion_method_high_perfor where we use two sensors.
One is measuring the quantity that is required to control, the other is collocated with the actuator in such a way that stability is guaranteed.
The first one is low pass filtered in order to obtain good performance at low frequencies and the second one is high pass filtered to benefits from its good dynamical properties.
Here, the second sensor is replaced by a model $G$ of the plant which is assumed to be stable and minimum phase.\\
One may think that the control architecture shown in Fig. ref:fig:sf_arch is a multi-loop system, but because no non-linear saturation-type element is present in the inner-loop (containing $k$, $G$ and $H_H$ which are all numerically implemented), the structure is equivalent to the architecture shown in Fig. ref:fig:sf_arch_eq.\\
#+name: fig:sf_arch_eq
#+caption: Equivalent feedback architecture
#+attr_latex: :float t :scale 1
file:./figs/sf_arch_eq.pdf
The dynamics of the system can be rewritten as follow
\begin{alignat}{5}
y &= \frac{1}{1+G^{\prime} K H_L} dy &&+ \frac{G^{\prime} K}{1+G^{\prime} K H_L} r &&- \frac{G^{\prime} K H_L}{1+G^{\prime} K H_L} n \\
u &= \frac{-K H_L}{1+G^{\prime} K H_L} dy &&+ \frac{K}{1+G^{\prime} K H_L} r &&- \frac{K H_L}{1+G^{\prime} K H_L} n
\end{alignat}
with $K = \frac{k}{1 + H_H G k}$
** Asymptotic behavior
<<sec:asymp_behavior>>
We now want to study the asymptotic system obtained when using very high value of $k$
\begin{equation}
\lim_{k\to\infty} K = \lim_{k\to\infty} \frac{k}{1+H_H G k} = \left( H_H G \right)^{-1}
\end{equation}
If the obtained $K$ is improper, a low pass filter can be added to have its causal realization.
Also, we want $K$ to be stable, so $G$ and $H_H$ must be minimum phase transfer functions.\\
For now on, we will consider the resulting control architecture as shown on Fig. ref:fig:sf_arch_class where the only "tuning parameters" are the complementary filters.
#+name: fig:sf_arch_class
#+caption: Equivalent classical feedback control architecture
#+attr_latex: :float t :scale 1
file:./figs/sf_arch_class.pdf
The equations describing the dynamics of the closed-loop system are
\begin{align}
y &= \frac{ H_H dy + G^{\prime} G^{-1} r - G^{\prime} G^{-1} H_L n }{H_H + G^\prime G^{-1} H_L} \label{eq:cl_system_y}\\
u &= \frac{ -G^{-1} H_L dy + G^{-1} r - G^{-1} H_L n }{H_H + G^\prime G^{-1} H_L} \label{eq:cl_system_u}
\end{align}
At frequencies where the model is accurate: $G^{-1} G^{\prime} \approx 1$, $H_H + G^\prime G^{-1} H_L \approx H_H + H_L = 1$ and
\begin{align}
y &= H_H dy + r - H_L n \label{eq:cl_performance_y} \\
u &= -G^{-1} H_L dy + G^{-1} r - G^{-1} H_L n \label{eq:cl_performance_u}
\end{align}
We obtain a sensitivity transfer function equals to the high pass filter $S = \frac{y}{dy} = H_H$ and a transmissibility transfer function equals to the low pass filter $T = \frac{y}{n} = H_L$.
Assuming that we have a good model of the plant, we have then that the closed-loop behavior of the system converges to the designed complementary filters.
** Translating the performance requirements into the shapes of the complementary filters
<<sec:trans_perf>>
The required performance specifications in a feedback system can usually be translated into requirements on the upper bounds of $\abs{S(j\w)}$ and $|T(j\omega)|$ cite:bibel92_guidel_h.
The process of designing a controller $K(s)$ in order to obtain the desired shapes of $\abs{S(j\w)}$ and $\abs{T(j\w)}$ is called loop shaping.
The equations eqref:eq:cl_system_y and eqref:eq:cl_system_u describing the dynamics of the studied feedback architecture are not written in terms of $K$ but in terms of the complementary filters $H_L$ and $H_H$.
In this section, we then translate the typical specifications into the desired shapes of the complementary filters $H_L$ and $H_H$.\\
*** Nominal Stability (NS)
The closed-loop system is stable if all its elements are stable ($K$, $G^\prime$ and $H_L$) and if the sensitivity function ($S = \frac{1}{1 + G^\prime K H_L}$) is stable.
For the nominal system ($G^\prime = G$), we have $S = H_H$.
Nominal stability is then guaranteed if $H_L$, $H_H$ and $G$ are stable and if $G$ and $H_H$ are minimum phase (to have $K$ stable).
Thus we must design stable and minimum phase complementary filters.\\
*** Nominal Performance (NP)
Typical performance specifications can usually be translated into upper bounds on $|S(j\omega)|$ and $|T(j\omega)|$.
Two performance weights $w_H$ and $w_L$ are defined in such a way that performance specifications are satisfied if
\begin{equation}
|w_H(j\omega) S(j\omega)| \le 1,\ |w_L(j\omega) T(j\omega)| \le 1 \quad \forall\omega
\end{equation}
For the nominal system, we have $S = H_H$ and $T = H_L$, and then nominal performance is ensured by requiring
#+NAME: eq:nominal_performance
\begin{subnumcases}{\text{NP} \Leftrightarrow}
|w_H(j\omega) H_H(j\omega)| \le 1 \quad \forall\omega \label{eq:nominal_perf_hh}\\
|w_L(j\omega) H_L(j\omega)| \le 1 \quad \forall\omega \label{eq:nominal_perf_hl}
\end{subnumcases}
The translation of typical performance requirements on the shapes of the complementary filters is discussed below:
- for disturbance rejections, make $|S| = |H_H|$ small
- for noise attenuation, make $|T| = |H_L|$ small
- for control energy reduction, make $|KS| = |G^{-1}|$ small
We may have other requirements in terms of stability margins, maximum or minimum closed-loop bandwidth.\\
**** Closed-Loop Bandwidth
The closed-loop bandwidth $\w_B$ can be defined as the frequency where $\abs{S(j\w)}$ first crosses $\frac{1}{\sqrt{2}}$ from below.
If one wants the closed-loop bandwidth to be at least $\w_B^*$ (e.g. to stabilize an unstable pole), one can required that $|S(j\omega)| \le \frac{1}{\sqrt{2}}$ below $\omega_B^*$ by designing $w_H$ such that $|w_H(j\omega)| \ge \sqrt{2}$ for $\omega \le \omega_B^*$.
Similarly, if one wants the closed-loop bandwidth to be less than $\w_B^*$, one can approximately require that the magnitude of $T$ is less than $\frac{1}{\sqrt{2}}$ at frequencies above $\w_B^*$ by designing $w_L$ such that $|w_L(j\omega)| \ge \sqrt{2}$ for $\omega \ge \omega_B^*$.\\
**** Classical stability margins
Gain margin (GM) and phase margin (PM) are usual specifications on controlled system.
Minimum GM and PM can be guaranteed by limiting the maximum magnitude of the sensibility function $M_S = \max_{\omega} |S(j\omega)|$:
\begin{equation}
\text{GM} \geq \frac{M_S}{M_S-1}; \quad \text{PM} \geq \frac{1}{M_S}
\end{equation}
Thus, having $M_S \le 2$ guarantees a gain margin of at least $2$ and a phase margin of at least $\SI{29}{\degree}$.
For the nominal system $M_S = \max_\omega |S| = \max_\omega |H_H|$, so one can design $w_H$ so that $|w_H(j\omega)| \ge 1/2$ in order to have
\begin{equation}
|H_H(j\omega)| \le 2 \quad \forall\omega
\end{equation}
and thus obtain acceptable stability margins.\\
**** Response time to change of reference signal
For the nominal system, the model is accurate and the transfer function from reference signal $r$ to output $y$ is $1$ eqref:eq:cl_performance_y and does not depends of the complementary filters.
However, one can add a pre-filter as shown in Fig. ref:fig:sf_arch_class_prefilter.
#+name: fig:sf_arch_class_prefilter
#+caption: Prefilter used to limit input usage
#+attr_latex: :float t :scale 1
file:./figs/sf_arch_class_prefilter.pdf
The transfer function from $y$ to $r$ becomes $\frac{y}{r} = K_r$ and $K_r$ can we chosen to obtain acceptable response to change of the reference signal.
Typically, $K_r$ is a low pass filter of the form
\begin{equation}
K_r(s) = \frac{1}{1 + \tau s}
\end{equation}
with $\tau$ corresponding to the desired response time.\\
**** Input usage
Input usage due to disturbances $d_y$ and measurement noise $n$ is determined by $\big|\frac{u}{d_y}\big| = \big|\frac{u}{n}\big| = \big|G^{-1}H_L\big|$.
Thus it can be limited by setting an upper bound on $|H_L|$.
Input usage due to reference signal $r$ is determined by $\big|\frac{u}{r}\big| = \big|G^{-1} K_r\big|$ when using a pre-filter (Fig. ref:fig:sf_arch_class_prefilter) and $\big|\frac{u}{r}\big| = \big|G^{-1}\big|$ otherwise.
Proper choice of $|K_r|$ is then useful to limit input usage due to change of reference signal.\\
*** Robust Stability (RS)
Robustness stability represents the ability of the control system to remain stable even though there are differences between the actual system $G^\prime$ and the model $G$ that was used to design the controller.
These differences can have various origins such as unmodelled dynamics or non-linearities.
To represent the differences between the model and the actual system, one can choose to use the general input multiplicative uncertainty as represented in Fig. ref:fig:input_uncertainty.
#+NAME: fig:input_uncertainty
#+CAPTION: Input multiplicative uncertainty
#+ATTR_LATEX: :float t :scale 1
file:./figs/input_uncertainty.pdf
Then, the set of possible perturbed plant is described by
#+NAME: eq:multiplicative_uncertainty
\begin{equation}
\Pi_i: \quad G_p(s) = G(s)\big(1 + w_I(s)\Delta_I(s)\big); \quad \abs{\Delta_I(j\w)} \le 1 \ \forall\w
\end{equation}
and $w_I$ should be chosen such that all possible plants $G^\prime$ are contained in the set $\Pi_i$.
Using input multiplicative uncertainty, robust stability is equivalent to have cite:skogestad07_multiv_feedb_contr:
\begin{align*}
\text{RS} \Leftrightarrow & |w_I T| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \\
\Leftrightarrow & \left| w_I \frac{G^\prime K H_L}{1 + G^\prime K H_L} \right| \le 1 \quad \forall G^\prime \in \Pi_I ,\ \forall\omega \\
\Leftrightarrow & \left| w_I \frac{G^\prime G^{-1} {H_H}^{-1} H_L}{1 + G^\prime G^{-1} {H_H}^{-1} H_L} \right| \le 1 \quad \forall G^\prime \in \Pi_I ,\ \forall\omega \\
\Leftrightarrow & \left| w_I \frac{(1 + w_I \Delta) {H_H}^{-1} H_L}{1 + (1 + w_I \Delta) {H_H}^{-1} H_L} \right| \le 1 \quad \forall \Delta, \ |\Delta| \le 1 ,\ \forall\omega \\
\Leftrightarrow & \left| w_I \frac{(1 + w_I \Delta) H_L}{1 + w_I \Delta H_L} \right| \le 1 \quad \forall \Delta, \ |\Delta| \le 1 ,\ \forall\omega \\
\Leftrightarrow & \left| H_L w_I \right| \frac{1 + |w_I|}{1 - |w_I H_L|} \le 1, \quad 1 - |w_I H_L| > 0 \quad \forall\omega \\
\Leftrightarrow & \left| H_L w_I \right| (2 + |w_I|) \le 1, \quad 1 - |w_I H_L| > 0 \quad \forall\omega \\
\Leftrightarrow & \left| H_L w_I \right| (2 + |w_I|) \le 1 \quad \forall\omega
\end{align*}
Robust stability is then guaranteed by having the low pass filter $H_L$ satisfying eqref:eq:robust_stability.
#+NAME: eq:robust_stability
\begin{equation}
\text{RS} \Leftrightarrow |H_L| \le \frac{1}{|w_I| (2 + |w_I|)}\quad \forall \omega
\end{equation}
To ensure robust stability condition eqref:eq:nominal_perf_hl can be used if $w_L$ is designed in such a way that $|w_L| \ge |w_I| (2 + |w_I|)$.\\
*** Robust Performance (RP)
Robust performance is a property for a controlled system to have its performance guaranteed even though the dynamics of the plant is changing within specified bounds.
For robust performance, we then require to have the performance condition valid for all possible plants in the defined uncertainty set:
\begin{subnumcases}{\text{RP} \Leftrightarrow}
|w_H S| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \label{eq:robust_perf_S}\\
|w_L T| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \label{eq:robust_perf_T}
\end{subnumcases}
Let's transform condition eqref:eq:robust_perf_S into a condition on the complementary filters
\begin{align*}
& \left| w_H S \right| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \\
\Leftrightarrow & \left| w_H \frac{1}{1 + G^\prime G^{-1} H_H^{-1} H_L} \right| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \\
\Leftrightarrow & \left| \frac{w_H H_H}{1 + \Delta w_I H_L} \right| \le 1 \quad \forall \Delta, \ |\Delta| \le 1, \ \forall\omega \\
\Leftrightarrow & \frac{|w_H H_H|}{1 - |w_I H_L|} \le 1, \ \forall\omega \\
\Leftrightarrow & | w_H H_H | + | w_I H_L | \le 1, \ \forall\omega \\
\end{align*}
The same can be done with condition eqref:eq:robust_perf_T
\begin{align*}
& \left| w_L T \right| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \\
\Leftrightarrow & \left| w_L \frac{G^\prime G^{-1} H_H^{-1} H_L}{1 + G^\prime G^{-1} H_H^{-1} H_L} \right| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega \\
\Leftrightarrow & \left| w_L H_L \frac{1 + w_I \Delta}{1 + w_I \Delta H_L} \right| \le 1 \quad \forall \Delta, \ |\Delta| \le 1, \ \forall\omega \\
\Leftrightarrow & \left| w_L H_L \right| \frac{1 + |w_I|}{1 - |w_I H_L|} \le 1 \quad \forall\omega \\
\Leftrightarrow & \left| H_L \right| \le \frac{1}{|w_L| (1 + |w_I|) + |w_I|} \quad \forall\omega \\
\end{align*}
Robust performance is then guaranteed if eqref:eq:robust_perf_a and eqref:eq:robust_perf_b are satisfied.
#+NAME: eq:robust_performance
\begin{subnumcases}{\text{RP} \Leftrightarrow}
| w_H H_H | + | w_I H_L | \le 1, \ \forall\omega \label{eq:robust_perf_a}\\
\left| H_L \right| \le \frac{1}{|w_L| (1 + |w_I|) + |w_I|} \quad \forall\omega \label{eq:robust_perf_b}
\end{subnumcases}
One should be aware than when looking for a robust performance condition, only the worst case is evaluated and using the robust stability condition may lead to conservative control.
** Procedure
<<sec:procedure>>
In order to apply this control technique, we propose the following procedure:
1. Identify the plant to be controlled in order to obtain $G$
2. Design the weighting function $w_I$ such that all possible plants $G^\prime$ are contained in the set $\Pi_i$
3. Translate the performance requirements into upper bounds on the complementary filters (as explained in Sec. ref:sec:trans_perf)
4. Design the weighting functions $w_H$ and $w_L$ and generate the complementary filters using $\hinf\text{-synthesis}$ (as further explained in Sec. ref:sec:hinf_filters). If the synthesis fails to give filters satisfying the upper bounds previously defined, either the requirements have to be reworked or a better model $G$ that will permits to have a smaller $w_I$ should be obtained. If one does not want to use the $\mathcal{H}_\infty$ synthesis, one can use pre-made complementary filters given in Sec. ref:sec:analytical_complementary_filters
6. If $K = \left( G H_H \right)^{-1}$ is not proper, a low pass filter should be added
7. Design a pre-filter $K_r$ if requirements on input usage or response to reference change are not met
8. Control implementation: Filter the measurement with $H_L$, implement the controller $K$ and the pre-filter $K_r$ as shown on Fig. ref:fig:sf_arch_class_prefilter
This procedure will be applied on a numerical model in Sec. ref:sec:simulations.
* H-Infinity synthesis of complementary filters
<<sec:hinf_filters>>
First order complementary filters are easy to synthesize. For instance, one can use the following filters
\begin{equation}
H_H(s) = \frac{s/\w_0}{1 + s/\w_0}; \quad H_L(s) = \frac{1}{1 + s/\w_0}
\end{equation}
with $\w_0$ is the tuning parameter corresponding to the crossover frequency of the filters.
However, the manual design of higher order complementary filters is far more complex and we have to use an automatic synthesis technique.
As shown in Sec. ref:sec:trans_perf, most of the performance requirements can be expressed as upper bounds on the magnitude of the complementary filters.
Thus, the $\mathcal{H}_\infty$ framework seems adapted and we here propose a technique to synthesis complementary filters while specifying uppers bounds on their magnitudes.
** $\hinf$ problem formulation
<<sec:hinf_conf>>
In this section, we formulate the $\hinf$ problem for the synthesis of complementary filters.
The synthesis objective is to shape an high pass filter $H_H$ and a low pass filter $H_L$ while ensuring their complementary property ($H_H + H_L = 1$).
To do so, we define two weighting functions $w_L$ and $w_H$ that will respectively used to shape $H_L$ and $H_H$.
The synthesis problem is then
\begin{subnumcases}{\text{Find } H_L, H_H \text{ such that}}
H_L \text{ and } H_H \text{ are stable} \label{eq:hinf_cond_stability}\\
H_L + H_H = 1 \label{eq:hinf_cond_complementarity} \\
|w_L H_L| \le 1 \quad \forall\omega \label{eq:hinf_cond_hl} \\
|w_H H_H| \le 1 \quad \forall\omega \label{eq:hinf_cond_hh}
\end{subnumcases}
To express this synthesis problem into an $\hinf$ synthesis problem, we define the following generalized plant $P$ (also shown on Fig. ref:fig:sf_hinf_filters_plant_b):
#+NAME: eq:generalized_plant
\begin{equation}
\colvec{w\\u} = P \colvec{z_H \\ z_L \\ v}; \quad P = \begin{bmatrix} w_H & -w_H \\ 0 & w_L \\ 1 & 0 \end{bmatrix}
\end{equation}
#+name: fig:sf_hinf_filters_plant_b
#+caption: Generalized plant for the synthesis of the complementary filters
#+attr_latex: :float t :scale 1
file:./figs/sf_hinf_filters_plant_b.pdf
The $\hinf$ synthesis objective is then to design a stable filter $H_L$ (Fig. ref:fig:sf_hinf_filters_b) such that the $\mathcal{H}_\infty$ norm of the transfer function from $w$ to $[z_H, \ z_L]$ is less than $1$:
\begin{equation}
\hnorm{\begin{matrix} (1 - H_L) w_H \\ H_L w_L \end{matrix}} \le 1
\end{equation}
Which is equivalent to
#+NAME: eq:hinf_problem
\begin{equation}
\hnorm{\begin{matrix} H_H w_H \\ H_L w_L \end{matrix}} < 1 \text{ by choosing } H_H = 1 - H_L
\end{equation}
#+name: fig:sf_hinf_filters_b
#+caption: $\hinf\text{-synthesis}$ of complementary filters
#+attr_latex: :float t :scale 1
file:./figs/sf_hinf_filters_b.pdf
Performance conditions eqref:eq:hinf_cond_hl and eqref:eq:hinf_cond_hl are satisfied by eqref:eq:hinf_problem.
Complementary condition eqref:eq:hinf_cond_complementarity is satisfied by design: $H_H = 1 - H_L$ and thus $H_L + H_H = 1$.
The stability condition eqref:eq:hinf_cond_stability is guaranteed by the $H_\infty$ synthesis (*reference*).
Using this synthesis method, we are then able to shape at the same time the high pass and low pass filters while ensuring their complementary.
** Control requirements as $\mathcal{H}_\infty$ norm of complementary filters
As presented in Sec. ref:sec:trans_perf, almost all the requirements can be specified with upper bounds on the complementary filters.
However, robust performance condition eqref:eq:robust_perf_a is not.
With the $\mathcal{H}_\infty$ synthesis the condition eqref:eq:hinf_problem only ensure
\begin{align*}
\hnorm{\begin{matrix} H_H w_H \\ H_L w_L \end{matrix}} \le 1 &\Leftrightarrow \max_\omega \sqrt{|w_L H_L|^2 + |w_H H_H|^2} \le 1\\
&\Rightarrow |w_L H_L| + |w_H H_H| \le \sqrt{2} \quad \forall\omega
\end{align*}
2020-10-26 17:52:18 +01:00
And thus we have almost robust performance.
2020-10-08 10:51:50 +02:00
** Choice of the weighting functions
<<sec:hinf_weighting_func>>
We here give some advice on the choice of the weighting functions used for the synthesis of the complementary filters.
The shape should be such that the performance requirements are met as explain in Sec. ref:sec:trans_perf.
However, one should be careful when designing the complementary filters, and should only use stable and minimum phase transfer functions.
The order of the weights should stay reasonably small as this will increase the complexity of the optimization problem.
One should not forget the fundamental limitations of feedback control such that $S + T = 1$.
Similarly, we here have that $H_L + H_H = 1$ which implies that $H_L$ and $H_H$ cannot be made small at the same time.
** Trade-off between performance and robustness
** Analytical formula of complementary filters
<<sec:analytical_complementary_filters>>
To simplify the synthesis, one can use already synthesized filters
\begin{align}
H_L(s) = \frac{1}{1 + \frac{s}{\omega_0}}\\
H_H(s) = \frac{\frac{s}{\omega_0}}{1 + \frac{s}{\omega_0}}
\end{align}
\begin{align}
H_L(s) &= \frac{(1+\alpha) (\frac{s}{\omega_0})+1}{\left((\frac{s}{\omega_0})+1\right) \left((\frac{s}{\omega_0})^2 + \alpha (\frac{s}{\omega_0}) + 1\right)}\\
H_H(s) &= \frac{(\frac{s}{\omega_0})^2 \left((\frac{s}{\omega_0})+1+\alpha\right)}{\left((\frac{s}{\omega_0})+1\right) \left((\frac{s}{\omega_0})^2 + \alpha (\frac{s}{\omega_0}) + 1\right)}
\end{align}
\begin{align}
H_L(s) &= \frac{\left(1+(\alpha+1)(\beta+1)\right) (\frac{s}{\omega_0})^2 + (1+\alpha+\beta)(\frac{s}{\omega_0}) + 1}{\left(\frac{s}{\omega_0} + 1\right) \left( (\frac{s}{\omega_0})^2 + \alpha (\frac{s}{\omega_0}) + 1 \right) \left( (\frac{s}{\omega_0})^2 + \beta (\frac{s}{\omega_0}) + 1 \right)}\\
H_H(s) &= \frac{(\frac{s}{\omega_0})^3 \left( (\frac{s}{\omega_0})^2 + (1+\alpha+\beta) (\frac{s}{\omega_0}) + (1+(\alpha+1)(\beta+1)) \right)}{\left(\frac{s}{\omega_0} + 1\right) \left( (\frac{s}{\omega_0})^2 + \alpha (\frac{s}{\omega_0}) + 1 \right) \left( (\frac{s}{\omega_0})^2 + \beta (\frac{s}{\omega_0}) + 1 \right)}
\end{align}
* Numerical Simulations
<<sec:simulations>>
In this section, the *xxx* method is applied on a simple control problem.
** Plant
Let's consider the problem of controlling an active vibration isolation system that consist of a mass $m$ to be isolated, a piezoelectric actuator and a geophone.
We represent this system by a mass-spring-damper system as shown Fig. ref:fig:mech_sys_alone where $m$ typically represents the mass of the payload to be isolated, $k$ and $c$ represent respectively the stiffness and damping of the mount.
$w$ is the ground motion.
The values for the parameters of the models are
\[ m = \SI{20}{\kg}; \quad k = 10^4\si{\N/\m}; \quad c = 10^2\si{\N\per(\m\per\s)} \]
#+name: fig:mech_sys_alone
#+caption: Model of the positioning system
#+attr_latex: :float t :scale 1
file:./figs/mech_sys_alone.pdf
The model of the plant $G(s)$ from actuator force $F$ to displacement $x$ is then
\begin{equation}
G(s) = \frac{1}{m s^2 + c s + k}
\end{equation}
Its bode plot is shown on Fig. ref:fig:bode_plot_mech_sys.
#+name: fig:bode_plot_mech_sys
#+caption: Bode plot of the transfer function $G(s)$ from $F$ to $x$
#+attr_latex: :float t :scale 1
file:./figs/bode_plot_mech_sys.pdf
** Requirements
The control objective is to isolate the displacement $x$ of the mass from the ground motion $w$.
The disturbance rejection should be at least $10$ at $\SI{2}{\hertz}$ and with a slope of $-2$ below $\SI{2}{\hertz}$ until a rejection of $10^4$.
Closed-loop bandwidth should be less than $\SI{20}{\hertz}$ (because of time delay induced by limited sampling frequency?).
Noise attenuation should be at least $10$ above $\SI{40}{\hertz}$ and $100$ above $\SI{500}{\hertz}$
Robustness to unmodelled dynamics.
We model the uncertainty on the dynamics of the plant by a multiplicative weight
\begin{equation}
w_I(s) = \frac{\tau s + r_0}{(\tau/r_\infty) s + 1}
\end{equation}
where $r_0=0.1$ is the relative uncertainty at steady-state, $1/\tau=\SI{100}{\hertz}$ is the frequency at which the relative uncertainty reaches $\SI{100}{\percent}$, and $r_\infty=10$ is the magnitude of the weight at high frequency.
All the requirements on $H_L$ and $H_H$ are represented on Fig. ref:fig:spec_S_T.
#+name: fig:spec_S_T
#+caption: Specifications
#+attr_latex: :float t :scale 1
file:./figs/spec_S_T.pdf
** Design of the filters
<<sec:hinf_example>>
We then design $w_L$ and $w_H$ such that their magnitude are below the upper bounds shown on Fig. ref:fig:hinf_filters_result_weights.
\begin{subequations}
\begin{align}
w_L &= \frac{(s+22.36)^2}{0.005(s+1000)^2}\\
w_H &= \frac{1}{0.0005(s+0.4472)^2}
\end{align}
\end{subequations}
After the $\hinf\text{-synthesis}$, we obtain $H_L$ and $H_H$, and we plot their magnitude on phase on Fig. ref:fig:hinf_filters_result_weights.
\begin{subequations}
\begin{align}
H_L &= \frac{0.0063957 (s+1016) (s+985.4) (s+26.99)}{(s+57.99) (s^2 + 65.77s + 2981)}\\
H_H &= \frac{0.9936 (s+111.1) (s^2 + 0.3988s + 0.08464)}{(s+57.99) (s^2 + 65.77s + 2981)}
\end{align}
\end{subequations}
#+name: fig:hinf_filters_result_weights
#+caption: Bode plot of the obtained complementary filters
#+attr_latex: :float t :scale 1
file:./figs/hinf_filters_result_weights.pdf
** Controller analysis
The controller is $K = \left( H_H G \right)^{-1}$.
A low pass filter is added to $K$ so that it is proper and implementable.
The obtained controller is shown on Fig. ref:fig:bode_Kfb.
#+name: fig:bode_Kfb
#+caption: Bode plot of the controller $K$
#+attr_latex: :float t :scale 1
file:./figs/bode_Kfb.pdf
It is implemented as shown on Fig. ref:fig:mech_sys_alone_ctrl.
#+name: fig:mech_sys_alone_ctrl
#+caption: Control of a positioning system
#+attr_latex: :float t :scale 1
file:./figs/mech_sys_alone_ctrl.pdf
The loop gain is
#+name: fig:bode_plot_loop_gain_robustness
#+caption: Bode plot of the loop gain $K G H_L$
#+attr_latex: :float t :scale 1
file:./figs/bode_plot_loop_gain_robustness.pdf
** Robustness analysis
The robust stability can be access on the nyquist plot (Fig. ref:fig:nyquist_robustness).
#+name: fig:nyquist_robustness
#+caption: Nyquist plot of the uncertain system
#+attr_latex: :float t :scale 1
file:./figs/nyquist_robustness.pdf
The robust performance is shown on Fig. ref:fig:robust_perf_tikz.
#+name: fig:robust_perf_tikz
#+caption: Robust Performance
#+attr_latex: :float t :scale 1
file:./figs/robust_perf.pdf
* Discussion
** Limitations
<<sec:limitations>>
One should be aware that this control architecture suffers from the same limitations as classical feedback control.
$S + T = 1$ similarly to $H_H + H_L = 1$.
Should I put that at the end of the paper?
- The synthesis of the filters does not take into account the plant. The limitation linked to the filters are fundamental limitations of feedback control: $S + T = 1$.
- The limitations are appearing when inverting the model of the plant (inverse based control) => RHP-zeros are becoming RHP-poles
* Conclusion
<<sec:conclusion>>
In the following work, this will be generalized to MIMO systems
* Acknowledgment
* Bibliography :ignore:
\bibliography{ref}