532 lines
35 KiB
Org Mode
532 lines
35 KiB
Org Mode
#+TITLE: Closed-Loop Shaping using Complementary Filters
|
|
:DRAWER:
|
|
#+BIND: org-latex-image-default-option "scale=1"
|
|
#+BIND: org-latex-image-default-width ""
|
|
|
|
#+OPTIONS: toc:nil date:nil
|
|
#+AUTHOR:
|
|
|
|
#+AUTHOR: @@latex:\IEEEauthorblockN{Dehaeze Thomas}@@
|
|
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{European Synchrotron Radiation Facility} \\@@
|
|
#+AUTHOR: @@latex:Grenoble, France\\@@
|
|
#+AUTHOR: @@latex:\textit{Precision Mechatronics Laboratory} \\@@
|
|
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
|
#+AUTHOR: @@latex:thomas.dehaeze@esrf.fr@@
|
|
#+AUTHOR: @@latex:}\and@@
|
|
#+AUTHOR: @@latex:\IEEEauthorblockN{Verma Mohit}@@
|
|
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
|
|
#+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@
|
|
#+AUTHOR: @@latex:\textit{Precision Mechatronics Laboratory} \\@@
|
|
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
|
#+AUTHOR: @@latex:mohit.verma@ulb.ac.be@@
|
|
#+AUTHOR: @@latex:}\and@@
|
|
#+AUTHOR: @@latex:\IEEEauthorblockN{Collette Christophe}@@
|
|
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
|
|
#+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@
|
|
#+AUTHOR: @@latex:\textit{Precision Mechatronics Laboratory} \\@@
|
|
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
|
#+AUTHOR: @@latex:ccollett@ulb.ac.be@@
|
|
#+AUTHOR: @@latex:}@@
|
|
|
|
#+LaTeX_CLASS: IEEEtran
|
|
#+LaTeX_CLASS_OPTIONS: [lettersize,journal]
|
|
#+LATEX_HEADER: \input{preamble.tex}
|
|
#+LATEX_HEADER_EXTRA: \input{preamble_extra.tex}
|
|
# #+LaTeX_HEADER: \addbibresource{dehaeze26_control.bib}
|
|
|
|
\bibliographystyle{IEEEtran}
|
|
|
|
#+BIND: org-latex-bib-compiler "biber"
|
|
:END:
|
|
|
|
* Build :noexport:
|
|
#+NAME: startblock
|
|
#+BEGIN_SRC emacs-lisp :results none :tangle no
|
|
(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}")
|
|
))
|
|
|
|
;; Remove automatic org heading labels
|
|
(defun my-latex-filter-removeOrgAutoLabels (text backend info)
|
|
"Org-mode automatically generates labels for headings despite explicit use of `#+LABEL`. This filter forcibly removes all automatically generated org-labels in headings."
|
|
(when (org-export-derived-backend-p backend 'latex)
|
|
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
|
|
(add-to-list 'org-export-filter-headline-functions
|
|
'my-latex-filter-removeOrgAutoLabels)
|
|
|
|
;; Remove all org comments in the output LaTeX file
|
|
(defun delete-org-comments (backend)
|
|
(loop for comment in (reverse (org-element-map (org-element-parse-buffer)
|
|
'comment 'identity))
|
|
do
|
|
(setf (buffer-substring (org-element-property :begin comment)
|
|
(org-element-property :end comment))
|
|
"")))
|
|
(add-hook 'org-export-before-processing-hook 'delete-org-comments)
|
|
|
|
;; Use no package by default
|
|
(setq org-latex-packages-alist nil)
|
|
(setq org-latex-default-packages-alist nil)
|
|
|
|
;; Do not include the subtitle inside the title
|
|
(setq org-latex-subtitle-separate t)
|
|
(setq org-latex-subtitle-format "\\subtitle{%s}")
|
|
|
|
(setq org-export-before-parsing-hook '(org-ref-glossary-before-parsing
|
|
org-ref-acronyms-before-parsing))
|
|
#+END_SRC
|
|
|
|
* Notes :noexport:
|
|
** Journal
|
|
|
|
Mechanical Systems and Signal Processing: https://www.sciencedirect.com/journal/mechanical-systems-and-signal-processing
|
|
But:
|
|
#+begin_quote
|
|
The following subject areas are currently outside the MSSP scope:
|
|
- *Theoretical control* - papers better suited to a specialist controls journal
|
|
#+end_quote
|
|
|
|
Other option: http://www.ieee-asme-mechatronics.info/
|
|
|
|
** TODO [#A] Choose between IEEE and MSSP
|
|
|
|
Then, make sure the file well compiles to a PDF
|
|
|
|
* Title Page :ignore:
|
|
#+begin_export latex
|
|
\begin{abstract}
|
|
This document describes the most common article elements and how to use the IEEEtran class with \LaTeX \ to produce files that are suitable for submission to the IEEE. IEEEtran can produce conference, journal, and technical note (correspondence) papers with a suitable choice of class options.
|
|
\end{abstract}
|
|
|
|
\begin{IEEEkeywords}
|
|
Article submission, IEEE, IEEEtran, journal, \LaTeX, paper, template, typesetting.
|
|
\end{IEEEkeywords}
|
|
#+end_export
|
|
|
|
* Introduction :ignore:
|
|
|
|
Once the system is properly decoupled using one of the approaches described in Section ref:sec:detail_control_decoupling, SISO controllers can be individually tuned for each decoupled "directions".
|
|
Several ways to design a controller to obtain a given performance while ensuring good robustness properties can be implemented.
|
|
|
|
In some cases "fixed" controller structures are utilized, such as PI and PID controllers, whose parameters are manually tuned [[cite:&furutani04_nanom_cuttin_machin_using_stewar;&du14_piezo_actuat_high_precis_flexib;&yang19_dynam_model_decoup_contr_flexib]].
|
|
|
|
Another popular method is Open-Loop shaping, which was used during the conceptual phase.
|
|
Open-loop shaping involves tuning the controller through a series of "standard" filters (leads, lags, notches, low-pass filters, ...) to shape the open-loop transfer function $G(s)K(s)$ according to desired specifications, including bandwidth, gain and phase margins [[cite:&schmidt20_desig_high_perfor_mechat_third_revis_edition, chapt. 4.4.7]].
|
|
Open-Loop shaping is very popular because the open-loop transfer function is a linear function of the controller, making it relatively straightforward to tune the controller to achieve desired open-loop characteristics.
|
|
Another key advantage is that controllers can be tuned directly from measured frequency response functions of the plant without requiring an explicit model.
|
|
|
|
However, the behavior (i.e. performance) of a feedback system is a function of closed-loop transfer functions.
|
|
Specifications can therefore be expressed in terms of the magnitude of closed-loop transfer functions, such as the sensitivity, plant sensitivity, and complementary sensitivity transfer functions [[cite:&skogestad07_multiv_feedb_contr, chapt. 3]].
|
|
With open-loop shaping, closed-loop transfer functions are changed only indirectly, which may make it difficult to directly address the specifications that are in terms of the closed-loop transfer functions.
|
|
|
|
In order to synthesize a controller that directly shapes the closed-loop transfer functions (and therefore the performance metric), $\mathcal{H}_\infty\text{-synthesis}$ may be used [[cite:&skogestad07_multiv_feedb_contr]].
|
|
This approach requires a good model of the plant and expertise in selecting weighting functions that will define the wanted shape of different closed-loop transfer functions [[cite:&bibel92_guidel_h]].
|
|
$\mathcal{H}_{\infty}\text{-synthesis}$ has been applied for the Stewart platform [[cite:&jiao18_dynam_model_exper_analy_stewar]], yet when benchmarked against more basic decentralized controllers, the performance gains proved small [[cite:&thayer02_six_axis_vibrat_isolat_system;&hauge04_sensor_contr_space_based_six]].
|
|
|
|
In this section, an alternative controller synthesis scheme is proposed in which complementary filters are used for directly shaping the closed-loop transfer functions (i.e., directly addressing the closed-loop performances).
|
|
In Section ref:ssec:detail_control_cf_control_arch, the proposed control architecture is presented.
|
|
In Section ref:ssec:detail_control_cf_trans_perf, typical performance requirements are translated into the shape of the complementary filters.
|
|
The design of the complementary filters is briefly discussed in Section ref:ssec:detail_control_cf_analytical_complementary_filters, and analytical formulas are proposed such that it is possible to change the closed-loop behavior of the system in real time.
|
|
Finally, in Section ref:ssec:detail_control_cf_simulations, a numerical example is used to show how the proposed control architecture can be implemented in practice.
|
|
|
|
* Control Architecture
|
|
<<ssec:detail_control_cf_control_arch>>
|
|
*** Virtual Sensor Fusion
|
|
|
|
The idea of using complementary filters in the control architecture originates from sensor fusion techniques [[cite:&collette15_sensor_fusion_method_high_perfor]], where two sensors are combined using complementary filters.
|
|
Building upon this concept, "virtual sensor fusion" [[cite:&verma20_virtual_sensor_fusion_high_precis_contr]] replaces one physical sensor with a model $G$ of the plant.
|
|
The corresponding control architecture is illustrated in Figure ref:fig:detail_control_cf_arch, where $G^\prime$ represents the physical plant to be controlled, $G$ is a model of the plant, $k$ is the controller, and $H_L$ and $H_H$ are complementary filters satisfying $H_L(s) + H_H(s) = 1$.
|
|
In this arrangement, the physical plant is controlled at low frequencies, while the plant model is utilized at high frequencies to enhance robustness.
|
|
|
|
#+name: fig:detail_control_cf_arch_and_eq
|
|
#+caption: Control architecture for virtual sensor fusion (\subref{fig:detail_control_cf_arch}). An equivalent architecture is shown in (\subref{fig:detail_control_cf_arch_eq}). The signals are the reference signal $r$, the output perturbation $d_y$, the measurement noise $n$ and the control input $u$.
|
|
#+attr_latex: :options [htbp]
|
|
#+begin_figure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_arch}Virtual Sensor Fusion}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 0.9
|
|
[[file:figs/detail_control_cf_arch.png]]
|
|
#+end_subfigure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_arch_eq}Equivalent Architecture}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 0.9
|
|
[[file:figs/detail_control_cf_arch_eq.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
Although the control architecture shown in Figure ref:fig:detail_control_cf_arch appears to be a multi-loop system, it should be noted that no non-linear saturation-type elements are present in the inner loop (containing $k$, $G$, and $H_H$, all numerically implemented).
|
|
Consequently, this structure is mathematically equivalent to the single-loop architecture illustrated in Figure ref:fig:detail_control_cf_arch_eq.
|
|
|
|
*** Asymptotic behavior
|
|
|
|
When considering the extreme case of very high values for $k$, the effective controller $K(s)$ converges to the inverse of the plant model multiplied by the inverse of the high-pass filter, as expressed in eqref:eq:detail_control_cf_high_k.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_high_k}
|
|
\lim_{k\to\infty} K(s) = \lim_{k\to\infty} \frac{k}{1+H_H(s) G(s) k} = \big( H_H(s) G(s) \big)^{-1}
|
|
\end{equation}
|
|
|
|
If the resulting $K$ is improper, a low-pass filter with sufficiently high corner frequency can be added to ensure its causal realization.
|
|
Furthermore, for $K$ to be stable, both $G$ and $H_H$ must be minimum phase transfer functions.
|
|
|
|
With these assumptions, the resulting control architecture is illustrated in Figure ref:fig:detail_control_cf_arch_class, where the complementary filters $H_L$ and $H_H$ remain the only tuning parameters.
|
|
The dynamics of this closed-loop system are described by equations eqref:eq:detail_control_cf_cl_system_y and eqref:eq:detail_control_cf_cl_system_y.
|
|
|
|
#+name: fig:detail_control_cf_arch_class
|
|
#+caption: Equivalent classical feedback control architecture
|
|
#+RESULTS:
|
|
[[file:figs/detail_control_cf_arch_class.png]]
|
|
|
|
\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf}
|
|
\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:detail_control_cf_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:detail_control_cf_cl_system_u}
|
|
\end{align}
|
|
\end{subequations}
|
|
|
|
At frequencies where the model accurately represents the physical plant ($G^{-1} G^{\prime} \approx 1$), the denominator simplifies to $H_H + G^\prime G^{-1} H_L \approx H_H + H_L = 1$, and the closed-loop transfer functions are then described by equations eqref:eq:detail_control_cf_cl_performance_y and eqref:eq:detail_control_cf_cl_performance_u.
|
|
|
|
\begin{subequations}\label{eq:detail_control_cf_sf_cl_tf_K_inf_perfect}
|
|
\begin{alignat}{5}
|
|
y &= H_H dy &&+ r &&- H_L n \label{eq:detail_control_cf_cl_performance_y} \\
|
|
u &= -G^{-1} H_L dy &&+ G^{-1} r &&- G^{-1} H_L n \label{eq:detail_control_cf_cl_performance_u}
|
|
\end{alignat}
|
|
\end{subequations}
|
|
|
|
The sensitivity transfer function equals the high-pass filter $S = \frac{y}{dy} = H_H$, and the complementary sensitivity transfer function equals the low-pass filter $T = \frac{y}{n} = H_L$.
|
|
Hence, when the plant model closely approximates the actual dynamics, the closed-loop transfer functions converge to the designed complementary filters, allowing direct translation of performance requirements into the design of the complementary.
|
|
|
|
* Translating the performance requirements into the shape of the complementary filters
|
|
<<ssec:detail_control_cf_trans_perf>>
|
|
*** Introduction :ignore:
|
|
Performance specifications in a feedback system can usually be expressed as upper bounds on the magnitudes of closed-loop transfer functions such as the sensitivity and complementary sensitivity transfer functions [[cite:&bibel92_guidel_h]].
|
|
The design of a controller $K(s)$ to obtain the desired shape of these closed-loop transfer functions is known as closed-loop shaping.
|
|
|
|
In the proposed control architecture, the closed-loop transfer functions eqref:eq:detail_control_cf_sf_cl_tf_K_inf are expressed in terms of the complementary filters $H_L(s)$ and $H_H(s)$ rather than directly through the controller $K(s)$.
|
|
Therefore, performance requirements must be translated into constraints on the shape of these complementary filters.
|
|
|
|
*** Nominal Stability (NS)
|
|
A closed-loop system is stable when all its elements (here $K$, $G^\prime$, and $H_L$) are stable and the sensitivity function $S = \frac{1}{1 + G^\prime K H_L}$ is stable.
|
|
For the nominal system ($G^\prime = G$), the sensitivity transfer function equals the high-pass filter: $S(s) = H_H(s)$.
|
|
|
|
Nominal stability is therefore guaranteed when $H_L$, $H_H$, and $G$ are stable, and both $G$ and $H_H$ are minimum phase (ensuring $K$ is stable).
|
|
Consequently, stable and minimum phase complementary filters must be employed.
|
|
|
|
*** Nominal Performance (NP)
|
|
|
|
Performance specifications can be formalized using weighting functions $w_H$ and $w_L$, where performance is achieved when eqref:eq:detail_control_cf_weights is satisfied.
|
|
The weighting functions define the maximum magnitude of the closed-loop transfer functions as a function of frequency, effectively determining their "shape".
|
|
|
|
\begin{subequations}\label{eq:detail_control_cf_weights}
|
|
\begin{align}
|
|
|w_H(j\omega) S(j\omega)| &\le 1 \quad \forall\omega\\
|
|
|w_L(j\omega) T(j\omega)| &\le 1 \quad \forall\omega
|
|
\end{align}
|
|
\end{subequations}
|
|
|
|
For the nominal system, $S = H_H$ and $T = H_L$, hence the performance specifications can be converted on the shape of the complementary filters eqref:eq:detail_control_cf_nominal_performance.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_nominal_performance}
|
|
\Aboxed{\text{NP} \Longleftrightarrow {\begin{cases*}
|
|
|w_H(j\omega) H_H(j\omega)| \le 1 & \forall\omega \\
|
|
|w_L(j\omega) H_L(j\omega)| \le 1 & \forall\omega
|
|
\end{cases*}}}
|
|
\end{equation}
|
|
|
|
For disturbance rejection, the magnitude of the sensitivity function $|S(j\omega)| = |H_H(j\omega)|$ should be minimized, particularly at low frequencies where disturbances are usually most prominent.
|
|
Similarly, for noise attenuation, the magnitude of the complementary sensitivity function $|T(j\omega)| = |H_L(j\omega)|$ should be minimized, especially at high frequencies where measurement noise typically dominates.
|
|
Classical stability margins (gain and phase margins) are also related to the maximum amplitude of the sensitivity transfer function.
|
|
Typically, maintaining $|S|_{\infty} \le 2$ ensures a gain margin of at least 2 and a phase margin of at least $\SI{29}{\degree}$.
|
|
|
|
Therefore, by carefully selecting the shape of the complementary filters, nominal performance specifications can be directly addressed in an intuitive manner.
|
|
|
|
*** Robust Stability (RS)
|
|
|
|
Robust stability refers to a control system's ability to maintain stability despite discrepancies between the actual system $G^\prime$ and the model $G$ used for controller design.
|
|
These discrepancies may arise from unmodeled dynamics or nonlinearities.
|
|
|
|
To represent these model-plant differences, input multiplicative uncertainty as illustrated in Figure ref:fig:detail_control_cf_input_uncertainty is employed.
|
|
The set of possible plants $\Pi_i$ is described by eqref:eq:detail_control_cf_multiplicative_uncertainty, with the weighting function $w_I$ selected such that all possible plants $G^\prime$ are contained within the set $\Pi_i$.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_multiplicative_uncertainty}
|
|
\Pi_i: \quad G^\prime(s) = G(s)\big(1 + w_I(s)\Delta_I(s)\big); \quad |\Delta_I(j\omega)| \le 1 \ \forall\omega
|
|
\end{equation}
|
|
|
|
#+name: fig:detail_control_cf_input_uncertainty_nyquist
|
|
#+caption: Input multiplicative uncertainty to model the differences between the model and the physical plant (\subref{fig:detail_control_cf_input_uncertainty}). Effect of this uncertainty is displayed on the Nyquist plot (\subref{fig:detail_control_cf_nyquist_uncertainty})
|
|
#+attr_latex: :options [htbp]
|
|
#+begin_figure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_input_uncertainty}Input multiplicative uncertainty}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 1
|
|
[[file:figs/detail_control_cf_input_uncertainty.png]]
|
|
#+end_subfigure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_nyquist_uncertainty}Nyquist plot - Effect of multiplicative uncertainty}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 1
|
|
[[file:figs/detail_control_cf_nyquist_uncertainty.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
When considering input multiplicative uncertainty, robust stability can be derived graphically from the Nyquist plot (illustrated in Figure ref:fig:detail_control_cf_nyquist_uncertainty), yielding to eqref:eq:detail_control_cf_robust_stability_graphically, as demonstrated in [[cite:&skogestad07_multiv_feedb_contr, chapt. 7.5.1]].
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_robust_stability_graphically}
|
|
\text{RS} \Longleftrightarrow \left|w_I(j\omega) L(j\omega) \right| \le \left| 1 + L(j\omega) \right| \quad \forall\omega
|
|
\end{equation}
|
|
|
|
After algebraic manipulation, robust stability is guaranteed when the low-pass complementary filter $H_L$ satisfies eqref:eq:detail_control_cf_condition_robust_stability.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_condition_robust_stability}
|
|
\boxed{\text{RS} \Longleftrightarrow |w_I(j\omega) H_L(j\omega)| \le 1 \quad \forall \omega}
|
|
\end{equation}
|
|
|
|
*** Robust Performance (RP)
|
|
|
|
Robust performance ensures that performance specifications eqref:eq:detail_control_cf_weights are met even when the plant dynamics fluctuates within specified bounds eqref:eq:detail_control_cf_robust_perf_S.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_robust_perf_S}
|
|
\text{RP} \Longleftrightarrow |w_H(j\omega) S(j\omega)| \le 1 \quad \forall G^\prime \in \Pi_I, \ \forall\omega
|
|
\end{equation}
|
|
|
|
Transforming this condition into constraints on the complementary filters yields:
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_robust_performance}
|
|
\boxed{\text{RP} \Longleftrightarrow | w_H(j\omega) H_H(j\omega) | + | w_I(j\omega) H_L(j\omega) | \le 1, \ \forall\omega}
|
|
\end{equation}
|
|
|
|
The robust performance condition effectively combines both nominal performance eqref:eq:detail_control_cf_nominal_performance and robust stability conditions eqref:eq:detail_control_cf_condition_robust_stability.
|
|
If both NP and RS conditions are satisfied, robust performance will be achieved within a factor of 2 [[cite:&skogestad07_multiv_feedb_contr, chapt. 7.6]].
|
|
Therefore, for SISO systems, ensuring robust stability and nominal performance is typically sufficient.
|
|
|
|
* Complementary filter design
|
|
<<ssec:detail_control_cf_analytical_complementary_filters>>
|
|
|
|
As proposed in Section ref:sec:detail_control_sensor, complementary filters can be shaped using standard $\mathcal{H}_{\infty}\text{-synthesis}$ techniques.
|
|
This approach is particularly well-suited since performance requirements were expressed as upper bounds on the magnitude of the complementary filters.
|
|
|
|
Alternatively, analytical formulas for complementary filters may be employed.
|
|
For some applications, first-order complementary filters as shown in Equation eqref:eq:detail_control_cf_1st_order are sufficient.
|
|
|
|
\begin{subequations}\label{eq:detail_control_cf_1st_order}
|
|
\begin{align}
|
|
H_L(s) &= \frac{1}{1 + s/\omega_0} \\
|
|
H_H(s) &= \frac{s/\omega_0}{1 + s/\omega_0}
|
|
\end{align}
|
|
\end{subequations}
|
|
|
|
These filters can be transformed into the digital domain using the Bilinear transformation, resulting in the digital filter representations shown in Equation eqref:eq:detail_control_cf_1st_order_z.
|
|
|
|
\begin{subequations}\label{eq:detail_control_cf_1st_order_z}
|
|
\begin{align}
|
|
H_L(z^{-1}) &= \frac{T_s \omega_0 + T_s \omega_0 z^{-1}}{T_s \omega_0 + 2 + (T_s \omega_0 - 2) z^{-1}} \\
|
|
H_H(z^{-1}) &= \frac{2 - 2 z^{-1}}{T_s \omega_0 + 2 + (T_s \omega_0 - 2) z^{-1}}
|
|
\end{align}
|
|
\end{subequations}
|
|
|
|
A significant advantage of using analytical formulas for complementary filters is that key parameters such as $\omega_0$ can be tuned in real-time, as illustrated in Figure ref:fig:detail_control_cf_arch_tunable_params.
|
|
This real-time tunability allows rapid testing of different control bandwidths to evaluate performance and robustness characteristics.
|
|
|
|
#+name: fig:detail_control_cf_arch_tunable_params
|
|
#+caption: Implemented digital complementary filters with parameter $\omega_0$ that can be changed in real time
|
|
[[file:figs/detail_control_cf_arch_tunable_params.png]]
|
|
|
|
For many practical applications, first order complementary filters are not sufficient.
|
|
Specifically, a slope of $+2$ at low frequencies for the sensitivity transfer function (enabling accurate tracking of ramp inputs) and a slope of $-2$ for the complementary sensitivity transfer function are often desired.
|
|
For these cases, the complementary filters analytical formula in Equation eqref:eq:detail_control_cf_2nd_order is proposed.
|
|
|
|
\begin{subequations}\label{eq:detail_control_cf_2nd_order}
|
|
\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}
|
|
\end{subequations}
|
|
|
|
The influence of parameters $\alpha$ and $\omega_0$ on the frequency response of these complementary filters is illustrated in Figure ref:fig:detail_control_cf_analytical_effect.
|
|
The parameter $\alpha$ primarily affects the damping characteristics near the crossover frequency as well as high and low frequency magnitudes, while $\omega_0$ determines the frequency at which the transition between high-pass and low-pass behavior occurs.
|
|
These filters can also be implemented in the digital domain with analytical formulas, preserving the ability to adjust $\alpha$ and $\omega_0$ in real-time.
|
|
|
|
#+name: fig:detail_control_cf_analytical_effect
|
|
#+caption: Shape of proposed analytical complementary filters. Effect of $\alpha$ (\subref{fig:detail_control_cf_analytical_effect_alpha}) and $\omega_0$ (\subref{fig:detail_control_cf_analytical_effect_w0}) are shown.
|
|
#+attr_latex: :options [htbp]
|
|
#+begin_figure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_analytical_effect_alpha}Effect of $\alpha$}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.95\linewidth
|
|
[[file:figs/detail_control_cf_analytical_effect_alpha.png]]
|
|
#+end_subfigure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_analytical_effect_w0}Effect of $\omega_0$}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.95\linewidth
|
|
[[file:figs/detail_control_cf_analytical_effect_w0.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
* Numerical Example
|
|
<<ssec:detail_control_cf_simulations>>
|
|
*** Procedure :ignore:
|
|
|
|
To implement the proposed control architecture in practice, the following procedure is proposed:
|
|
|
|
1. Identify the plant to be controlled to obtain the plant model $G$.
|
|
2. Design the weighting function $w_I$ such that all possible plants $G^\prime$ are contained within the uncertainty set $\Pi_i$.
|
|
3. Translate performance requirements into upper bounds on the complementary filters as explained in Section ref:ssec:detail_control_cf_trans_perf.
|
|
4. Design the weighting functions $w_H$ and $w_L$ and generate the complementary filters using $\mathcal{H}_{\infty}\text{-synthesis}$ as described in Section ref:ssec:detail_control_sensor_hinf_method.
|
|
If the synthesis fails to produce filters satisfying the defined upper bounds, either revise the requirements or develop a more accurate model $G$ that will allow for a smaller $w_I$.
|
|
For simpler cases, the analytical formulas for complementary filters presented in Section ref:ssec:detail_control_cf_analytical_complementary_filters can be employed.
|
|
5. If $K(s) = H_H^{-1}(s) G^{-1}(s)$ is not proper, add low-pass filters with sufficiently high corner frequencies to ensure realizability.
|
|
|
|
*** Plant :ignore:
|
|
|
|
To evaluate this control architecture, a simple test model representative of many synchrotron positioning stages is utilized (Figure ref:fig:detail_control_cf_test_model).
|
|
In this model, a payload with mass $m$ is positioned on top of a stage.
|
|
The objective is to accurately position the sample relative to the X-ray beam.
|
|
|
|
The relative position $y$ between the payload and the X-ray is measured, which typically involves measuring the relative position between the focusing optics and the sample.
|
|
Various disturbance forces affect positioning stability, including stage vibrations $d_w$ and direct forces applied to the sample $d_F$ (such as cable forces).
|
|
The positioning stage itself is characterized by stiffness $k$, internal damping $c$, and a controllable force $F$.
|
|
|
|
The model of the plant $G(s)$ from actuator force $F$ to displacement $y$ is described by Equation eqref:eq:detail_control_cf_test_plant_tf.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_test_plant_tf}
|
|
G(s) = \frac{1}{m s^2 + c s + k}, \quad m = \SI{20}{\kg},\ k = 1\si{\N/\mu\m},\ c = 10^2\si{\N\per(\m\per\s)}
|
|
\end{equation}
|
|
|
|
The plant dynamics include uncertainties related to limited support compliance, unmodeled flexible dynamics and payload dynamics.
|
|
These uncertainties are represented using a multiplicative input uncertainty weight eqref:eq:detail_control_cf_test_plant_uncertainty, which specifies the magnitude of uncertainty as a function of frequency.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_test_plant_uncertainty}
|
|
w_I(s) = 10 \cdot \frac{(s+100)^2}{(s+1000)^2}
|
|
\end{equation}
|
|
|
|
Figure ref:fig:detail_control_cf_bode_plot_mech_sys illustrates both the nominal plant dynamics and the complete set of possible plants $\Pi_i$ encompassed by the uncertainty model.
|
|
|
|
#+name: fig:detail_control_cf_test_model_plant
|
|
#+caption: Schematic of the test system (\subref{fig:detail_control_cf_test_model}). Bode plot of the transfer function $G(s)$ from $F$ to $y$ and the associated uncertainty set (\subref{fig:detail_control_cf_bode_plot_mech_sys}).
|
|
#+attr_latex: :options [htbp]
|
|
#+begin_figure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_test_model}Test model}
|
|
#+attr_latex: :options {0.3\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 1
|
|
[[file:figs/detail_control_cf_test_model.png]]
|
|
#+end_subfigure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_bode_plot_mech_sys}Bode plot of $G(s)$ and associated uncertainty set}
|
|
#+attr_latex: :options {0.66\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 1
|
|
[[file:figs/detail_control_cf_bode_plot_mech_sys.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
*** Requirements and choice of complementary filters
|
|
|
|
As discussed in Section ref:ssec:detail_control_cf_trans_perf, nominal performance requirements can be expressed as upper bounds on the shape of the complementary filters.
|
|
For this example, the requirements are:
|
|
- track ramp inputs (i.e. constant velocity scans) with zero steady-state error: a $+2$ slope at low frequencies for the magnitude of the sensitivity function $|S(j\omega)|$ is required
|
|
- filtering of measurement noise above $\SI{300}{Hz}$, where sensor noise is significant (requiring a filtering factor of approximately 100 above this frequency)
|
|
- maximizing disturbance rejection
|
|
|
|
Additionally, robust stability must be ensured, requiring the closed-loop system to remain stable despite the dynamic uncertainties modeled by $w_I$.
|
|
This condition is satisfied when the magnitude of the low-pass complementary filter $|H_L(j\omega)|$ remains below the inverse of the uncertainty weight magnitude $|w_I(j\omega)|$, as expressed in Equation eqref:eq:detail_control_cf_condition_robust_stability.
|
|
|
|
Robust performance is achieved when both nominal performance and robust stability conditions are simultaneously satisfied.
|
|
|
|
All requirements imposed on $H_L$ and $H_H$ are visualized in Figure ref:fig:detail_control_cf_specs_S_T.
|
|
While $\mathcal{H}_\infty\text{-synthesis}$ could be employed to design the complementary filters, analytical formulas were used for this relatively simple example.
|
|
The second-order complementary filters from Equation eqref:eq:detail_control_cf_2nd_order were selected with parameters $\alpha = 1$ and $\omega_0 = 2\pi \cdot 20\,\text{Hz}$.
|
|
There magnitudes are displayed in Figure ref:fig:detail_control_cf_specs_S_T, confirming that these complementary filters are fulfilling the specifications.
|
|
|
|
#+name: fig:detail_control_cf_specs_S_T_obtained_filters
|
|
#+caption: Performance requirement and complementary filters used (\subref{fig:detail_control_cf_specs_S_T}). Obtained controller from the complementary filters and the plant inverse is shown in (\subref{fig:detail_control_cf_bode_Kfb}).
|
|
#+attr_latex: :options [htbp]
|
|
#+begin_figure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_specs_S_T}Specifications and complementary filters}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.95\linewidth
|
|
[[file:figs/detail_control_cf_specs_S_T.png]]
|
|
#+end_subfigure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_bode_Kfb}Bode plot of $K(s) \cdot H_L(s)$}
|
|
#+attr_latex: :options {0.48\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :width 0.95\linewidth
|
|
[[file:figs/detail_control_cf_bode_Kfb.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
*** Controller analysis
|
|
|
|
The controller to be implemented takes the form $K(s) = \tilde{G}^{-1}(s) H_H^{-1}(s)$, where $\tilde{G}^{-1}(s)$ represents the plant inverse, which must be both stable and proper.
|
|
To ensure properness, low-pass filters with high corner frequencies are added as shown in Equation eqref:eq:detail_control_cf_test_plant_inverse.
|
|
|
|
\begin{equation}\label{eq:detail_control_cf_test_plant_inverse}
|
|
\tilde{G}^{-1}(s) = \frac{m s^2 + c s + k}{1 + \frac{s}{2\pi \cdot 1000} + \left( \frac{s}{2\pi \cdot 1000} \right)^2}
|
|
\end{equation}
|
|
|
|
The Bode plot of the controller multiplied by the complementary low-pass filter, $K(s) \cdot H_L(s)$, is presented in Figure ref:fig:detail_control_cf_bode_Kfb.
|
|
The frequency response reveals several important characteristics:
|
|
- The presence of two integrators at low frequencies, enabling accurate tracking of ramp inputs
|
|
- A notch at the plant resonance frequency (arising from the plant inverse)
|
|
- A lead component near the control bandwidth of approximately 20 Hz, enhancing stability margins
|
|
|
|
*** Robustness and Performance analysis
|
|
|
|
Robust stability is assessed using the Nyquist plot shown in Figure ref:fig:detail_control_cf_nyquist_robustness.
|
|
Even when considering all possible plants within the uncertainty set, the Nyquist plot remains sufficiently distant from the critical point $(-1,0)$, indicating robust stability with adequate margins.
|
|
|
|
Performance is evaluated by examining the closed-loop sensitivity and complementary sensitivity transfer functions, as illustrated in Figure ref:fig:detail_control_cf_robust_perf.
|
|
It is shown that the sensitivity transfer function achieves the desired $+2$ slope at low frequencies and that the complementary sensitivity transfer function nominally provides the wanted noise filtering.
|
|
|
|
#+name: fig:detail_control_cf_simulation_results
|
|
#+caption: Validation of Robust stability with the Nyquist plot (\subref{fig:detail_control_cf_nyquist_robustness}) and validation of the nominal and robust performance with the magnitude of the closed-loop transfer functions (\subref{fig:detail_control_cf_robust_perf})
|
|
#+attr_latex: :options [htbp]
|
|
#+begin_figure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_nyquist_robustness}Robust Stability}
|
|
#+attr_latex: :options {0.49\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 0.8
|
|
[[file:figs/detail_control_cf_nyquist_robustness.png]]
|
|
#+end_subfigure
|
|
#+attr_latex: :caption \subcaption{\label{fig:detail_control_cf_robust_perf}Nominal and Robust performance}
|
|
#+attr_latex: :options {0.49\textwidth}
|
|
#+begin_subfigure
|
|
#+attr_latex: :scale 0.8
|
|
[[file:figs/detail_control_cf_robust_perf.png]]
|
|
#+end_subfigure
|
|
#+end_figure
|
|
|
|
* Conclusion
|
|
:PROPERTIES:
|
|
:UNNUMBERED: t
|
|
:END:
|
|
|
|
In this section, a control architecture in which complementary filters are used for closed-loop shaping has been presented.
|
|
This approach differs from traditional open-loop shaping in that no controller is manually designed; rather, appropriate complementary filters are selected to achieve the desired closed-loop behavior.
|
|
The method shares conceptual similarities with mixed-sensitivity $\mathcal{H}_{\infty}\text{-synthesis}$, as both approaches aim to shape closed-loop transfer functions, but with notable distinctions in implementation and complexity.
|
|
|
|
While $\mathcal{H}_{\infty}\text{-synthesis}$ offers greater flexibility and can be readily generalized to MIMO plants, the presented approach provides a simpler alternative that requires minimal design effort.
|
|
Implementation only necessitates extracting a model of the plant and selecting appropriate analytical complementary filters, making it particularly interesting for applications where simplicity and intuitive parameter tuning are valued.
|
|
|
|
Due to time constraints, an extensive literature review comparing this approach with similar existing architectures, such as Internal Model Control [[cite:&saxena12_advan_inter_model_contr_techn]], was not conducted.
|
|
Consequently, it remains unclear whether the proposed architecture offers significant advantages over existing methods in the literature.
|
|
|
|
The control architecture has been presented for SISO systems, but can be applied to MIMO systems when sufficient decoupling is achieved.
|
|
It will be experimentally validated with the NASS during the experimental phase.
|
|
|
|
* Bibliography :ignore:
|
|
\bibliography{dehaeze26_control}
|
|
|
|
* Footnotes
|
|
|
|
[fn:1]$n$ corresponds to the number of degrees of freedom, here $n = 3$
|