% Created 2020-07-09 jeu. 09:06
% Intended LaTeX compiler: pdflatex
\documentclass{ISMA_USD2020}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{grffile}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage[most]{tcolorbox}
\usepackage{bm}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{array}
\usepackage{siunitx}
\usepackage{amsmath,amssymb,amsfonts, cases}
\usepackage{algorithmic, graphicx, textcomp}
\usepackage{xcolor, import, hyperref}
\usepackage{subcaption}
\usepackage[USenglish, english]{babel}
\setcounter{footnote}{1}
\input{config.tex}
\author[1,3] {T. Dehaeze}
\author[1,2] {C. Collette}
\affil[1] {Precision Mechatronics Laboratory\NewLineAffil University of Liege, Belgium \NewAffil}
\affil[2] {BEAMS Department\NewLineAffil Free University of Brussels, Belgium \NewAffil}
\affil[3] {European Synchrotron Radiation Facility \NewLineAffil Grenoble, France e-mail: \textbf{thomas.dehaeze@esrf.fr}}
\bibliographystyle{IEEEtran}
\usepackage{tikz}
\usetikzlibrary{shapes.misc,arrows,arrows.meta}
\date{}
\title{Active Damping of Rotating Platforms using Integral Force Feedback}
\hypersetup{
 pdfauthor={},
 pdftitle={Active Damping of Rotating Platforms using Integral Force Feedback},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 27.0.91 (Org mode 9.4)},
 pdflang={English}}
\begin{document}

\maketitle

\abstract{
This paper investigates the use of Integral Force Feedback (IFF) for the active damping of rotating mechanical systems.
Guaranteed stability, typical benefit of IFF, is lost as soon as the system is rotating due to gyroscopic effects.
To overcome this issue, two modifications of the classical IFF control scheme are proposed.
The first consists of slightly modifying the control law while the second consists of adding springs in parallel with the force sensors.
Conditions for stability and optimal parameters are derived.
The results reveal that, despite their different implementations, both modified IFF control scheme have almost identical damping authority on suspension modes.
}

\section{Introduction}
\label{sec:orgf2d9f1e}
\label{sec:introduction}
There is an increasing need to reduce the undesirable vibration of many sensitive equipment.
A common method to reduce vibration is to mount the sensitive equipment on a suspended platform which attenuates the vibrations above the frequency of the suspension modes.
In order to further decrease the residual vibrations, active damping can be used for reducing the magnification of the response in the vicinity of the resonances.

In \cite{preumont92_activ_dampin_by_local_force}, the Integral Force Feedback (IFF) control scheme has been proposed, where a force sensor, a force actuator and an integral controller are used to directly augment the damping of a mechanical system.
When the force sensor is collocated with the actuator, the open-loop transfer function has alternating poles and zeros which facilitate to guarantee the stability of the closed loop system \cite{preumont02_force_feedb_versus_accel_feedb}.

However, when the platform is rotating, gyroscopic effects alter the system dynamics and IFF cannot be applied as is.
The purpose of this paper is to study how the IFF strategy can be adapted to deal with these Gyroscopic effects.

The paper is structured as follows.
Section \ref{sec:dynamics} presents a simple model of a rotating suspended platform that will be used throughout this study.
Section \ref{sec:iff} explains how the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation.
Section \ref{sec:iff_hpf} suggests a simple modification of the control law such that damping can be added to the suspension modes in a robust way.
Section \ref{sec:iff_kp} proposes to add springs in parallel with the force sensors to regain the unconditional stability of IFF.
Section \ref{sec:comparison} compares both proposed modifications to the classical IFF in terms of damping authority and closed-loop system behavior.

\section{Dynamics of Rotating Platforms}
\label{sec:orgf97884c}
\label{sec:dynamics}
In order to study how the rotation does affect the use of IFF, a model of a suspended platform on top of a rotating stage is used.
Figure \ref{fig:system} represents the model schematically which is the simplest in which gyroscopic forces can be studied.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/system.pdf}
\caption{\label{fig:system}Schematic of the studied System}
\end{figure}

The rotating stage is supposed to be ideal, meaning it induces a perfect rotation \(\theta(t) = \Omega t\) where \(\Omega\) is the rotational speed in \(\si{\radian\per\second}\).

The suspended platform consists of two orthogonal actuators represented by three elements in parallel: a spring with a stiffness \(k\) in \(\si{\newton\per\meter}\), a dashpot with a damping coefficient \(c\) in \(\si{\newton\per\meter\second}\) and an ideal force source \(F_u, F_v\).
A payload with a mass \(m\) in \(\si{\kilo\gram}\), representing the sensitive equipment, is mounted on the (rotating) suspended platform.

Two reference frames are used: an inertial frame \((\vec{i}_x, \vec{i}_y, \vec{i}_z)\) and a uniform rotating frame \((\vec{i}_u, \vec{i}_v, \vec{i}_w)\) rigidly fixed on top of the rotating stage with \(\vec{i}_w\) aligned with the rotation axis.
The position of the payload is represented by \((d_u, d_v, 0)\) expressed in the rotating frame.

\par
To obtain the equations of motion for the system represented in Figure \ref{fig:system}, the Lagrangian equations are used:
\begin{equation}
\label{eq:lagrangian_equations}
  \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_i} \right) + \frac{\partial D}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = Q_i
\end{equation}
with \(L = T - V\) the Lagrangian, \(T\) the kinetic coenergy, \(V\) the potential energy, \(D\) the dissipation function, and \(Q_i\) the generalized force associated with the generalized variable \(\begin{bmatrix}q_1 & q_2\end{bmatrix} = \begin{bmatrix}d_u & d_v\end{bmatrix}\).
The equation of motion corresponding to the constant rotation in the \((\vec{i}_x, \vec{i}_y)\) plane is disregarded as the motion is considered to be imposed by the rotation stage.
\begin{equation}
\label{eq:energy_functions_lagrange}
  \begin{aligned}
    T & = \frac{1}{2} m \left( \left( \dot{d}_u - \Omega d_v \right)^2 + \left( \dot{d}_v + \Omega d_u \right)^2 \right), \quad V = \frac{1}{2} k \left( {d_u}^2 + {d_v}^2 \right),\\
    D &= \frac{1}{2} c \left( \dot{d}_u{}^2 + \dot{d}_v{}^2 \right), \quad Q_1 = F_u, \quad Q_2 = F_v
  \end{aligned}
\end{equation}

Substituting equations \eqref{eq:energy_functions_lagrange} into \eqref{eq:lagrangian_equations} for both generalized coordinates gives two coupled differential equations
\begin{subequations}
\label{eq:eom_coupled}
  \begin{align}
    m \ddot{d}_u + c \dot{d}_u + ( k - m \Omega^2 ) d_u &= F_u + 2 m \Omega \dot{d}_v \\
    m \ddot{d}_v + c \dot{d}_v + ( k \underbrace{-\,m \Omega^2}_{\text{Centrif.}} ) d_v &= F_v \underbrace{-\,2 m \Omega \dot{d}_u}_{\text{Coriolis}}
  \end{align}
\end{subequations}

The uniform rotation of the system induces two Gyroscopic effects as shown in \eqref{eq:eom_coupled}:
\begin{itemize}
\item Centrifugal forces: that can been seen as added negative stiffness \(- m \Omega^2\) along \(\vec{i}_u\) and \(\vec{i}_v\)
\item Coriolis Forces: that couples the motion in the two orthogonal directions
\end{itemize}

\par
To study the dynamics of the system, the differential equations of motions \eqref{eq:eom_coupled} are transformed in the Laplace domain and the \(2 \times 2\) transfer function matrix \(\bm{G}_d\) from \(\begin{bmatrix}F_u & F_v\end{bmatrix}\) to \(\begin{bmatrix}d_u & d_v\end{bmatrix}\) is obtained
\begin{align}
  \begin{bmatrix} d_u \\ d_v \end{bmatrix} &= \bm{G}_d \begin{bmatrix} F_u \\ F_v \end{bmatrix} \label{eq:Gd_mimo_tf} \\
  \bm{G}_{d} &=
  \begin{bmatrix}
    \frac{ms^2 + cs + k - m \Omega^2}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2} & \frac{2 m \Omega s}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2} \\
    \frac{-2 m \Omega s}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2} & \frac{ms^2 + cs + k - m \Omega^2}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2}
  \end{bmatrix} \label{eq:Gd_m_k_c}
\end{align}

To simplify the analysis, the undamped natural frequency \(\omega_0\) and the damping ratio \(\xi\) are used
\begin{equation}
  \omega_0 = \sqrt{\frac{k}{m}} \text{ in } \si{\radian\per\second}, \quad \xi = \frac{c}{2 \sqrt{k m}}
\end{equation}

The transfer function matrix \(\bm{G}_d\) becomes equal to
\begin{equation}
\label{eq:Gd_w0_xi_k}
\bm{G}_{d} =
  \frac{1}{k}
  \begin{bmatrix}
    \frac{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2}}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} & \frac{2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0}}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \\
    \frac{- 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0}}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} & \frac{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2}}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}
  \end{bmatrix}
\end{equation}

For all further numerical analysis in this study, we consider \(\omega_0 = \SI{1}{\radian\per\second}\), \(k = \SI{1}{\newton\per\meter}\) and \(\xi = 0.025 = \SI{2.5}{\percent}\).
Even though no system with such parameters will be encountered in practice, conclusions can be drawn relative to these parameters such that they can be generalized to any other set of parameters.

\par
The poles of \(\bm{G}_d\) are the complex solutions \(p\) of
\begin{equation}
  \left( \frac{p^2}{{\omega_0}^2} + 2 \xi \frac{p}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{p}{\omega_0} \right)^2 = 0
\end{equation}

Supposing small damping (\(\xi \ll 1\)), two pairs of complex conjugate poles are obtained:
\begin{subequations}
\label{eq:pole_values}
  \begin{align}
    p_{+} &= - \xi \omega_0 \left( 1 + \frac{\Omega}{\omega_0} \right) \pm j \omega_0 \left( 1 + \frac{\Omega}{\omega_0} \right) \\
    p_{-} &= - \xi \omega_0 \left( 1 - \frac{\Omega}{\omega_0} \right) \pm j \omega_0 \left( 1 - \frac{\Omega}{\omega_0} \right)
  \end{align}
\end{subequations}

The real part and complex part of these two pairs of complex conjugate poles are represented in Figure \ref{fig:campbell_diagram} as a function of the rotational speed \(\Omega\).
As the rotational speed increases, \(p_{+}\) goes to higher frequencies and \(p_{-}\) to lower frequencies.
The system becomes unstable for \(\Omega > \omega_0\) as the real part of \(p_{-}\) is positive.
Physically, the negative stiffness term \(-m\Omega^2\) induced by centrifugal forces exceeds the spring stiffness \(k\).

In the rest of this study, rotational speeds smaller than the undamped natural frequency of the system are assumed (\(\Omega < \omega_0\)).

\begin{figure}[htbp]
\begin{subfigure}[c]{0.45\linewidth}
\includegraphics[width=\linewidth]{figs/campbell_diagram_real.pdf}
\caption{\label{fig:campbell_diagram_real} Real Part}
\end{subfigure}
\hfill
\begin{subfigure}[c]{0.45\linewidth}
\includegraphics[width=\linewidth]{figs/campbell_diagram_imag.pdf}
\caption{\label{fig:campbell_diagram_imag} Imaginary Part}
\end{subfigure}
\hfill
\caption{\label{fig:campbell_diagram}Campbell Diagram : Evolution of the complex and real parts of the system's poles as a function of the rotational speed \(\Omega\)}
\centering
\end{figure}

Looking at the transfer function matrix \(\bm{G}_d\) in Eq. \eqref{eq:Gd_w0_xi_k}, one can see that the two diagonal (direct) terms are equal and the two off-diagonal (coupling) terms are opposite.
The bode plot of these two terms are shown in Figure \ref{fig:plant_compare_rotating_speed} for several rotational speeds \(\Omega\).
These plots confirm the expected behavior: the frequency of the two pairs of complex conjugate poles are further separated as \(\Omega\) increases.
For \(\Omega > \omega_0\), the low frequency pair of complex conjugate poles \(p_{-}\) becomes unstable.

\begin{figure}[htbp]
\begin{subfigure}[c]{0.45\linewidth}
\includegraphics[width=\linewidth]{figs/plant_compare_rotating_speed_direct.pdf}
\caption{\label{fig:plant_compare_rotating_speed_direct} Direct Terms \(d_u/F_u\), \(d_v/F_v\)}
\end{subfigure}
\hfill
\begin{subfigure}[c]{0.45\linewidth}
\includegraphics[width=\linewidth]{figs/plant_compare_rotating_speed_coupling.pdf}
\caption{\label{fig:plant_compare_rotating_speed_coupling} Coupling Terms \(d_v/F_u\), \(-d_u/F_v\)}
\end{subfigure}
\hfill
\caption{\label{fig:plant_compare_rotating_speed}Bode Plots for \(\bm{G}_d\) for several rotational speed \(\Omega\)}
\centering
\end{figure}

\section{Decentralized Integral Force Feedback}
\label{sec:orgf541d3f}
\label{sec:iff}
In order to apply IFF to the system, force sensors are added in series with the two actuators (Figure \ref{fig:system_iff}).
As this study focuses on decentralized control, two identical controllers \(K_F\) are used to feedback each of the sensed force to its associated actuator and no attempt is made to counteract the interactions in the system.
The control diagram is schematically shown in Figure \ref{fig:control_diagram_iff}.

\begin{minipage}[t]{0.50\linewidth}
\begin{center}
\includegraphics[width=\linewidth]{figs/system_iff.pdf}
\captionof{figure}{\label{fig:system_iff}System with added Force Sensor in series with the actuators}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\linewidth}
\begin{center}
\includegraphics[width=\linewidth]{figs/control_diagram_iff.pdf}
\captionof{figure}{\label{fig:control_diagram_iff}Control Diagram for decentralized IFF}
\end{center}
\end{minipage}

\par
The forces \(\begin{bmatrix}f_u & f_v\end{bmatrix}\) measured by the two force sensors represented in Figure \ref{fig:system_iff} are equal to
\begin{equation}
\label{eq:measured_force}
  \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} =
  \begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k)
  \begin{bmatrix} d_u \\ d_v \end{bmatrix}
\end{equation}

Inserting \eqref{eq:Gd_w0_xi_k} into \eqref{eq:measured_force} yields
\begin{align}
  \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} &= \bm{G}_{f} \begin{bmatrix} F_u \\ F_v \end{bmatrix} \label{eq:Gf_mimo_tf} \\
  \bm{G}_{f} &= \begin{bmatrix}
  \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} & \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \\
  \frac{\left( 2 \xi \frac{s}{\omega_0} + 1 \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} & \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}
\end{bmatrix} \label{eq:Gf}
\end{align}

The zeros of the diagonal terms of \(\bm{G}_f\) are equal to (neglecting the damping for simplicity)
\begin{subequations}
  \begin{align}
    z_c &= \pm j \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} + \frac{\Omega^2}{{\omega_0}^2} + \frac{1}{2} } \label{eq:iff_zero_cc} \\
    z_r &= \pm   \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} - \frac{\Omega^2}{{\omega_0}^2} - \frac{1}{2} } \label{eq:iff_zero_real}
  \end{align}
\end{subequations}

The frequency of the pair of complex conjugate zeros \(z_c\) \eqref{eq:iff_zero_cc} always lies between the frequency of the two pairs of complex conjugate poles \(p_{-}\) and \(p_{+}\) \eqref{eq:pole_values}.

For non-null rotational speeds, two real zeros \(z_r\) \eqref{eq:iff_zero_real} appear in the diagonal terms inducing a non-minimum phase behavior.
This can be seen in the Bode plot of the diagonal terms (Figure \ref{fig:plant_iff_compare_rotating_speed}) where the low frequency gain is no longer zero while the phase stays at \(\SI{180}{\degree}\).

The low frequency gain of \(\bm{G}_f\) increases with the rotational speed \(\Omega\)
\begin{equation}
\label{eq:low_freq_gain_iff_plan}
  \lim_{\omega \to 0} \left| \bm{G}_f (j\omega) \right| = \begin{bmatrix}
  \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} & 0 \\
  0  & \frac{\Omega^2}{{\omega_0}^2 - \Omega^2}
\end{bmatrix}
\end{equation}

This can be explained as follows: a constant force \(F_u\) induces a small displacement of the mass \(d_u = \frac{F_u}{k - m\Omega^2}\), which increases the centrifugal force \(m\Omega^2d_u = \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} F_u\) which is then measured by the force sensors.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_iff_compare_rotating_speed.pdf}
\caption{\label{fig:plant_iff_compare_rotating_speed}Bode plot of the dynamics from a force actuator to its collocated force sensor (\(f_u/F_u\), \(f_v/F_v\)) for several rotational speeds \(\Omega\)}
\end{figure}

\par
\label{sec:iff_pure_int}
The two IFF controllers \(K_F\) consist of a pure integrator
\begin{equation}
\label{eq:Kf_pure_int}
  \bm{K}_F(s) = \begin{bmatrix} K_F(s) & 0 \\ 0 & K_F(s) \end{bmatrix}, \quad K_F(s) = g \cdot \frac{1}{s}
\end{equation}
where \(g\) is a scalar representing the gain of the controller.

In order to see how the IFF affects the poles of the closed loop system, a Root Locus plot (Figure \ref{fig:root_locus_pure_iff}) is constructed as follows: the poles of the closed-loop system are drawn in the complex plane as the controller gain \(g\) varies from \(0\) to \(\infty\) for the two controllers \(K_F\) simultaneously.
As explained in \cite{preumont08_trans_zeros_struc_contr_with,skogestad07_multiv_feedb_contr}, the closed-loop poles start at the open-loop poles (shown by \(\tikz[baseline=-0.6ex] \node[cross out, draw=black, minimum size=1ex, line width=2pt, inner sep=0pt, outer sep=0pt] at (0, 0){};\)) for \(g = 0\) and coincide with the transmission zeros (shown by \(\tikz[baseline=-0.6ex] \draw[line width=2pt, inner sep=0pt, outer sep=0pt] (0,0) circle[radius=3pt];\)) as \(g \to \infty\).
The direction of increasing gain is indicated by arrows \(\tikz[baseline=-0.6ex] \draw[-{Stealth[round]},line width=2pt] (0,0) -- (0.3,0);\).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_pure_iff.pdf}
\caption{\label{fig:root_locus_pure_iff}Root Locus: evolution of the closed-loop poles with increasing controller gains \(g\)}
\end{figure}

Whereas collocated IFF is usually associated with unconditional stability \cite{preumont91_activ}, this property is lost as soon as the rotational speed in non-null due to gyroscopic effects.
This can be seen in the Root Locus plot (Figure \ref{fig:root_locus_pure_iff}) where the poles corresponding to the controller are bound to the right half plane implying closed-loop system instability.

Physically, this can be explain like so: at low frequency, the loop gain is very large due to the pure integrators in \(K_F\).
The control system is thus canceling the spring forces which makes the suspended platform no able to hold the payload against centrifugal forces, hence the instability.

In order to apply decentralized IFF on rotating platforms, two solutions are proposed to deal with this instability problem.
The first one consists of slightly modifying the control law (Section \ref{sec:iff_hpf}) while the second one consists of adding springs in parallel with the force sensors (Section \ref{sec:iff_kp}).

\section{Integral Force Feedback with High Pass Filter}
\label{sec:orgf53673d}
\label{sec:iff_hpf}
As was explained in the previous section, the instability comes in part from the high gain at low frequency caused by the pure integrators.

In order to limit this low frequency controller gain, an high pass filter (HPF) can be added to the controller
\begin{equation}
\label{eq:IFF_LHF}
  K_{F}(s) = g \cdot \frac{1}{s} \cdot \underbrace{\frac{s/\omega_i}{1 + s/\omega_i}}_{\text{HPF}} = g \cdot \frac{1}{s + \omega_i}
\end{equation}

This is equivalent to slightly shifting the controller pole to the left along the real axis.

This modification of the IFF controller is typically done to avoid saturation associated with the pure integrator \cite{preumont91_activ}.
This is however not the case in this study as it will become clear in the next section.

\par
The loop gains, \(K_F(s)\) times the direct dynamics \(f_u/F_u\), with and without the added HPF are shown in Figure \ref{fig:loop_gain_modified_iff}.
The effect of the added HPF limits the low frequency gain as expected.

The Root Loci for the decentralized IFF with and without the HPF are displayed in Figure \ref{fig:root_locus_modified_iff}.
With the added HPF, the poles of the closed loop system are shown to be stable up to some value of the gain \(g_\text{max}\)
\begin{equation}
\label{eq:gmax_iff_hpf}
  g_{\text{max}} = \omega_i \left( \frac{{\omega_0}^2}{\Omega^2} - 1 \right)
\end{equation}
It is interesting to note that \(g_{\text{max}}\) also corresponds to the gain where the low frequency loop gain (Figure \ref{fig:loop_gain_modified_iff}) reaches one.

\begin{minipage}[b]{0.45\linewidth}
\begin{center}
\includegraphics[scale=1]{figs/loop_gain_modified_iff.pdf}
\captionof{figure}{\label{fig:loop_gain_modified_iff}Modification of the loop gain with the added HFP, \(g = 2\), \(\omega_i = 0.1 \omega_0\) and \(\Omega = 0.1 \omega_0\)}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[b]{0.5\linewidth}
\begin{center}
\includegraphics[scale=1]{figs/root_locus_modified_iff.pdf}
\captionof{figure}{\label{fig:root_locus_modified_iff}Modification of the Root Locus with the added HPF, \(\omega_i = 0.1 \omega_0\) and \(\Omega = 0.1 \omega_0\)}
\end{center}
\end{minipage}

\par
Two parameters can be tuned for the modified controller \eqref{eq:IFF_LHF}: the gain \(g\) and the pole's location \(\omega_i\).
The optimal values of \(\omega_i\) and \(g\) are here considered as the values for which the damping of all the closed-loop poles are simultaneously maximized.

In order to visualize how \(\omega_i\) does affect the attainable damping, the Root Loci for several \(\omega_i\) are displayed in Figure \ref{fig:root_locus_wi_modified_iff}.
It is shown that even though small \(\omega_i\) seem to allow more damping to be added to the suspension modes, the control gain \(g\) may be limited to small values due to \eqref{eq:gmax_iff_hpf}.

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_wi_modified_iff.pdf}
\caption{\label{fig:root_locus_wi_modified_iff}Root Locus for several HPF cut-off frequencies \(\omega_i\), \(\Omega = 0.1 \omega_0\)}
\end{figure}

In order to study this trade off, the attainable closed-loop damping ratio \(\xi_{\text{cl}}\) is computed as a function of \(\omega_i/\omega_0\).
The gain \(g_{\text{opt}}\) at which this maximum damping is obtained is also displayed and compared with the gain \(g_{\text{max}}\) at which the system becomes unstable (Figure \ref{fig:mod_iff_damping_wi}).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/mod_iff_damping_wi.pdf}
\caption{\label{fig:mod_iff_damping_wi}Attainable damping ratio \(\xi_\text{cl}\) as a function of \(\omega_i/\omega_0\). Corresponding control gain \(g_\text{opt}\) and \(g_\text{max}\) are also shown}
\end{figure}

Three regions can be observed:
\begin{itemize}
\item \(\omega_i/\omega_0 < 0.02\): the added damping is limited by the maximum allowed control gain \(g_{\text{max}}\)
\item \(0.02 < \omega_i/\omega_0 < 0.2\): the attainable damping ratio is maximized and is reached for \(g \approx 2\)
\item \(0.2 < \omega_i/\omega_0\): the added damping decreases as \(\omega_i/\omega_0\) increases
\end{itemize}

\section{Integral Force Feedback with Parallel Springs}
\label{sec:org4c124af}
\label{sec:iff_kp}
In this section additional springs in parallel with the force sensors are added to counteract the negative stiffness induced by the rotation.
Such springs are schematically shown in Figure \ref{fig:system_parallel_springs} where \(k_a\) is the stiffness of the actuator and \(k_p\) the stiffness in parallel with the actuator and force sensor.

Amplified piezoelectric stack actuators can also be used for such purpose where a part of the piezoelectric stack is used as an actuator while the rest is used as a force sensor \cite{souleille18_concep_activ_mount_space_applic}.
The parallel stiffness \(k_p\) then corresponds to the amplification structure.
An example of such system is shown in Figure \ref{fig:cedrat_xy25xs}.

\begin{minipage}[t]{0.48\linewidth}
\begin{center}
\includegraphics[width=\linewidth]{figs/system_parallel_springs.pdf}
\captionof{figure}{\label{fig:system_parallel_springs}Studied system with additional springs in parallel with the actuators and force sensors}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.48\linewidth}
\begin{center}
\includegraphics[width=\linewidth]{figs/cedrat_xy25xs.png}
\captionof{figure}{\label{fig:cedrat_xy25xs}XY Piezoelectric Stage (XY25XS from Cedrat Technology)}
\end{center}
\end{minipage}

\par
The forces \(\begin{bmatrix}f_u & f_v\end{bmatrix}\) measured by the two force sensors represented in Figure \ref{fig:system_parallel_springs} are equal to
\begin{equation}
\label{eq:measured_force_kp}
  \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} =
  \begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k_a)
  \begin{bmatrix} d_u \\ d_v \end{bmatrix}
\end{equation}

In order to keep the overall stiffness \(k = k_a + k_p\) constant, thus not modifying the open-loop poles as \(k_p\) is changed, a scalar parameter \(\alpha\) (\(0 \le \alpha < 1\)) is defined to describe the fraction of the total stiffness in parallel with the actuator and force sensor
\begin{equation}
  k_p = \alpha k, \quad k_a = (1 - \alpha) k
\end{equation}

The equations of motion are derived and transformed in the Laplace domain
\begin{align}
\begin{bmatrix} f_u \\ f_v \end{bmatrix} &=
\bm{G}_k
\begin{bmatrix} F_u \\ F_v \end{bmatrix} \label{eq:Gk_mimo_tf} \\
\bm{G}_k &=
\begin{bmatrix}
  \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} & \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 - \alpha \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \\
  \frac{\left( 2 \xi \frac{s}{\omega_0} + 1 - \alpha \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} & \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}
\end{bmatrix} \label{eq:Gk}
\end{align}

Comparing \(\bm{G}_k\) \eqref{eq:Gk} with \(\bm{G}_f\) \eqref{eq:Gf} shows that while the poles of the system are kept the same, the zeros of the diagonal terms have changed.
The two real zeros \(z_r\) \eqref{eq:iff_zero_real} that were inducing non-minimum phase behavior are transformed into complex conjugate zeros if the following condition hold
\begin{equation}
\label{eq:kp_cond_cc_zeros}
  \alpha > \frac{\Omega^2}{{\omega_0}^2} \quad \Leftrightarrow \quad k_p > m \Omega^2
\end{equation}

Thus, if the added parallel stiffness \(k_p\) is higher than the negative stiffness induced by centrifugal forces \(m \Omega^2\), the direct dynamics from actuator to force sensor will show minimum phase behavior.
This is confirmed by the Bode plot of the direct dynamics in Figure \ref{fig:plant_iff_kp}.

Figure \ref{fig:root_locus_iff_kp} shows Root Loci plots for \(k_p = 0\), \(k_p < m \Omega^2\) and \(k_p > m \Omega^2\) when \(K_F\) is a pure integrator \eqref{eq:Kf_pure_int}.
It is shown that if the added stiffness is higher than the maximum negative stiffness, the poles of the closed-loop system stay in the (stable) right half-plane, and hence the unconditional stability of IFF is recovered.

\begin{minipage}[b]{0.43\linewidth}
\begin{center}
\includegraphics[scale=1]{figs/plant_iff_kp.pdf}
\captionof{figure}{\label{fig:plant_iff_kp}Bode Plot of \(f_u/F_u\) without parallel spring, with parallel springs with stiffness \(k_p < m \Omega^2\) and \(k_p > m \Omega^2\), \(\Omega = 0.1 \omega_0\)}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[b]{0.53\linewidth}
\begin{center}
\includegraphics[scale=1]{figs/root_locus_iff_kp.pdf}
\captionof{figure}{\label{fig:root_locus_iff_kp}Root Locus for IFF without parallel spring, with parallel springs with stiffness \(k_p < m \Omega^2\) and \(k_p > m \Omega^2\), \(\Omega = 0.1 \omega_0\)}
\end{center}
\end{minipage}

\par
Even though the parallel stiffness \(k_p\) has no impact on the open-loop poles (as the overall stiffness \(k\) stays constant), it has a large impact on the transmission zeros.
Moreover, as the attainable damping is generally proportional to the distance between poles and zeros \cite{preumont18_vibrat_contr_activ_struc_fourt_edition}, the parallel stiffness \(k_p\) is foreseen to have a large impact on the attainable damping.

To study this effect, Root Locus plots for several parallel stiffnesses \(k_p > m \Omega^2\) are shown in Figure \ref{fig:root_locus_iff_kps}.
The frequencies of the transmission zeros of the system are increasing with the parallel stiffness \(k_p\) and the associated attainable damping is reduced.
Therefore, even though the parallel stiffness \(k_p\) should be larger than \(m \Omega^2\) for stability reasons, it should not be taken too high as this would limit the attainable bandwidth.

This is confirmed in Figure \ref{fig:mod_iff_damping_kp} where the attainable closed-loop damping ratio \(\xi_{\text{cl}}\) and the associated control gain \(g_\text{opt}\) are computed as a function of \(\alpha\).

\begin{minipage}[t]{0.48\linewidth}
\begin{center}
\includegraphics[width=\linewidth]{figs/root_locus_iff_kps.pdf}
\captionof{figure}{\label{fig:root_locus_iff_kps}Comparison the Root Locus for three parallel stiffnessses \(k_p\)}
\end{center}
\end{minipage}
\hfill
\begin{minipage}[t]{0.48\linewidth}
\begin{center}
\includegraphics[width=\linewidth]{figs/mod_iff_damping_kp.pdf}
\captionof{figure}{\label{fig:mod_iff_damping_kp}Optimal Damping Ratio \(\xi_\text{opt}\) and the corresponding optimal gain \(g_\text{opt}\) as a function of \(\alpha\)}
\end{center}
\end{minipage}

\section{Comparison and Discussion}
\label{sec:org537f1b3}
\label{sec:comparison}
Two modifications to adapt the IFF control strategy to rotating platforms have been proposed in Sections \ref{sec:iff_hpf} and \ref{sec:iff_kp}.
These two methods are now compared in terms of added damping, closed-loop compliance and transmissibility.

For the following comparisons, the cut-off frequency for the HPF is set to \(\omega_i = 0.1 \omega_0\) and the stiffness of the parallel springs is set to \(k_p = 5 m \Omega^2\).

\par
Figure \ref{fig:comp_root_locus} shows the Root Loci for the two proposed IFF modifications.
While the two pairs of complex conjugate open-loop poles are identical for both techniques, the transmission zeros are not.
This means that the closed-loop behavior of both systems will differ when large control gains are used.

One can observe that the closed loop poles of the system with added springs (in red) are bounded to the left half plane implying unconditional stability.
This is not the case for the system where the controller is augmented with an HPF (in blue).

It is interesting to note that the maximum added damping is very similar for both techniques and is reached for the same control gain \(g_\text{opt} \approx 2 \omega_0\).

\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/comp_root_locus.pdf}
\caption{\label{fig:comp_root_locus}Root Locus for the two proposed modifications of decentralized IFF, \(\Omega = 0.1 \omega_0\)}
\end{figure}

\par
The two proposed techniques are now compared in terms of closed-loop transmissibility and compliance.

The transmissibility is defined as the transfer function from the displacement of the rotating stage to the displacement of the payload.
It is used to characterize how much vibration is transmitted through the suspended platform to the payload.

The compliance describes the displacement response of the payload to external forces applied to it.
This is a useful metric when disturbances are directly applied to the payload.

The two techniques are also compared with passive damping (Figure \ref{fig:system}) where the damping coefficient \(c\) is tuned to critically damp the resonance when the rotating speed is null.
\begin{equation}
  c_\text{crit} = 2 \sqrt{k m}
\end{equation}

Very similar results are obtained for the two proposed IFF modifications in terms of transmissibility (Figure \ref{fig:comp_transmissibility}) and compliance (Figure \ref{fig:comp_compliance}).
It is also confirmed that these two techniques can significantly damp the suspension modes.

\begin{figure}[htbp]
\begin{subfigure}[c]{0.49\linewidth}
\includegraphics[width=\linewidth]{figs/comp_transmissibility.pdf}
\caption{\label{fig:comp_transmissibility} Transmissibility}
\end{subfigure}
\hfill
\begin{subfigure}[c]{0.49\linewidth}
\includegraphics[width=\linewidth]{figs/comp_compliance.pdf}
\caption{\label{fig:comp_compliance} Compliance}
\end{subfigure}
\hfill
\caption{\label{fig:comp_active_damping}Comparison of the two proposed Active Damping Techniques, \(\Omega = 0.1 \omega_0\)}
\centering
\end{figure}

On can see in Figure \ref{fig:comp_transmissibility} that the problem of the degradation of the transmissibility at high frequency when using passive damping techniques is overcome by the use of IFF.

The addition of the HPF or the use of the parallel stiffness permit to limit the degradation of the compliance as compared with classical IFF (Figure \ref{fig:comp_compliance}).

\section{Conclusion}
\label{sec:orga805aaa}
\label{sec:conclusion}

Due to gyroscopic effects, decentralized IFF with pure integrators was shown to be unstable when applied to rotating platforms.
Two modifications of the classical IFF control have been proposed to overcome this issue.

The first modification concerns the controller and consists of adding an high pass filter to the pure integrators.
This is equivalent as to moving the controller pole to the left along the real axis.
This renders the closed loop system stable up to some value of the controller gain \(g_\text{max}\).

The second proposed modification concerns the mechanical system.
Additional springs are added in parallel with the actuators and force sensors.
It was shown that if the stiffness \(k_p\) of the additional springs is larger than the negative stiffness \(m \Omega^2\) induced by centrifugal forces, the classical decentralized IFF regains its unconditional stability property.

While having very different implementations, both proposed modifications are very similar when it comes to the attainable damping and the obtained closed loop system behavior.

Future work will focus on the experimental validation of the proposed active damping techniques.

The Matlab code that was used for this study is available under a MIT License and archived in Zenodo \cite{dehaeze20_activ_dampin_rotat_posit_platf}.

\section*{Acknowledgment}
\label{sec:orge39bf3f}
This research benefited from a FRIA grant from the French Community of Belgium.

\bibliography{ref.bib}
\end{document}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% HEADER FOR ARXIV/BIORXIV
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \documentclass{article}
% \usepackage{arxiv}
% \input{_preamble}
% \title{Exploring High-Dimensional Biological Data with Sparse Contrastive
% Principal Component Analysis}

% \author{
%   Philippe Boileau \\
%   Graduate Group in Biostatistics,\\
%   University of California, Berkeley\\
%   \texttt{philippe\_boileau@berkeley.edu} \\
%   \And
%   Nima S.~Hejazi \\
%   Graduate Group in Biostatistics and\\
%   Center for Computational Biology,\\
%   University of California, Berkeley\\
%   \texttt{nhejazi@berkeley.edu} \\
%     \And
%   Sandrine Dudoit\\
%   Department of Statistics, \\
%   Division of Biostatistics, and\\
%   Center for Computational Biology,\\
%   University of California, Berkeley\\
%   \texttt{sandrine@stat.berkeley.edu} \\
% }

% \begin{document}
% \maketitle

% \begin{abstract}
%   \input{abstract.tex}
% \end{abstract}

% \keywords{dimensionality reduction, principal component analysis, high-dimensional inference, sparsity, stability, unwanted variation, single-cell, genomics, computational biology}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% HEADER FOR BIOINFORMATICS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{bioinfo}
\copyrightyear{2020} \pubyear{2020}
\access{Advance Access Publication Date: Day Month Year}
\appnotes{Original Paper}

\input{_preamble}
\externaldocument{appendix}

% editor requested edits be made in red
\newcommand{\edit}[1]{\textcolor{black}{#1}}

\begin{document}
\firstpage{1}
\subtitle{Gene Expression}

\title[Sparse Contrastive Principal Component Analysis]{Exploring
  High-Dimensional Biological Data with Sparse Contrastive Principal Component
  Analysis}

\author[P.~Boileau \textit{et~al}.]{
  Philippe Boileau\,$^{\text{\sfb 1}*}$,
  Nima S.~Hejazi\,$^{\text{\sfb 1,4}}$,
  Sandrine Dudoit\,$^{\text{\sfb 2,3,4}}$}
\address{
  $^{\text{\sf 1}}$ Graduate Group in Biostatistics, University of California,
    Berkeley, 94720, USA\\
  $^{\text{\sf 2}}$ Division of Epidemiology \& Biostatistics, School of
    Public Health, University of California, Berkeley, 94720, USA\\
  $^{\text{\sf 3}}$ Department of Statistics, University of California,
    Berkeley, 94720, USA\\
  $^{\text{\sf 4}}$ Center for Computational Biology, University of California,
    Berkeley, 94720, USA
}

\corresp{$^\ast$Philippe Boileau, Graduate Group in Biostatistics, University
  of California, Berkeley; \texttt{philippe\_boileau@berkeley.edu}.}
\history{Received on XXXXX; revised on XXXXX; accepted on XXXXX}
\editor{Associate Editor: XXXXXXX}

\abstract{
\textbf{Motivation:} Statistical analyses of high-throughput sequencing data have re-shaped the biological sciences. In spite of myriad advances, recovering interpretable biological signal from data corrupted by technical noise remains a prevalent open problem. Several classes of procedures, among them classical dimensionality reduction techniques and others incorporating subject-matter knowledge, have provided effective advances; however, no procedure currently satisfies the dual objectives of recovering stable and relevant features simultaneously.
\textbf{Results:} Inspired by recent proposals for making use of control data in the removal of unwanted variation, we propose a variant of principal component analysis, sparse contrastive principal component analysis, that extracts sparse, stable, interpretable, and relevant biological signal. The new methodology is compared to competing dimensionality reduction approaches through a simulation study as well as via analyses of several publicly available protein expression, microarray gene expression, and single-cell transcriptome sequencing datasets.
\textbf{Availability:} A free and open-source software implementation of the methodology, the \texttt{scPCA} \texttt{R} package, is made available via the \href{https://bioconductor.org/packages/release/bioc/html/scPCA.html}{Bioconductor} Project. Code for all analyses presented in the paper is also available via \href{https://github.com/PhilBoileau/EHDBDscPCA}{GitHub}.
}
\maketitle

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Introduction}\label{intro}
\input{intro.tex}

\section{Methodology}\label{method}
\input{methods.tex}

\section{Results}\label{results}
\input{results.tex}

\section{Discussion}\label{discuss}
\input{discussion.tex}

\section*{Funding}
\input{funding.tex}

\section*{Acknowledgements}
\input{acknowledgement.tex}

\bibliographystyle{natbib}
\bibliography{references}

\end{document}


\section{Blend call center}
\label{sec:Blend}

This example is a simplified version of the model analyzed in
\cite{ccDES03a}, with reduced choice of distributions and dialing
policies.  Although it is a special case of the blend/multi-skill
generic simulator, it demonstrates how to use a dialer as well as
per-period probability distributions.
The simulated day starts at 8AM, ends at 2PM, and is
divided into three two-hours periods.
Calls received by the center are denoted \emph{inbound calls} and
arrive
following a Poisson process with randomized arrival rates
$B\lambda_p$.  To keep the
agents busy, a dialer is used to perform \emph{outbound calls} at some
times during the day.  Only a portion of the agents, denoted
\emph{blend}, are
qualified for handling these calls in addition to inbound ones.

Before 11AM, there is no outbound call, so all agents perform
inbound calls only.  After 11AM, a
portion of the agents becomes blend, and the dialer starts.
Inbound agents still serve inbound calls only while calls that cannot
be served immediately overflow to blend agents.
From 11AM to five minutes before the end of the day,
each time a service ends, the dialer tries to compose some phone
numbers.  The probability of a caller to be reached, or equivalently
of \emph{right party connect}, is specified for
each period.
Reached customers produce outbound calls which can only be served
by blend agents.  Outbound calls
then follow a non-Poisson arrival process which cannot be modeled in
simulation software such as Arena Contact Center Edition.

If no blend agent is
available when an outbound call succeeds,
the call is put in queue and considered as a
\emph{mismatch}.  The mismatched calls are put into a different
waiting queue
than the inbound calls in order to be served with the greatest
priority, because most reached callers will hang up without
even waiting.
Since in this model, there is no delay between the dialing and the
right party connect, mismatches only occur when the dialer tries to
call more customers than the number of free blend agents.

The program, shown in Listing~\ref{lst:Blend}, is very similar to the
other examples, except that a
dialer is used.

\lstinputlisting[
caption={A blend call center model},%
emph={create,main}, label=lst:Blend
]
{Blend.java}

We took most input values from table~2 in \cite{ccDES07a}, at
periods~15, 16, and~17.
From the input data, we get the expected number of arrivals per half hour.
We then divide these rates by 30 to get the arrival rates per minute.
The arrival process is constructed as in previous examples, using the
processed arrival rates.
The exponential patience time is set to
500~seconds, so we divide it by 60 to convert it in minutes.
The probability of balking also comes from the input data and is set
to $0.005$ for the three observed periods.
In the input data,
service times follow a gamma distribution with shape
parameter~$\alpha$ and scale parameter~$\beta=1/\lambda$.  Its mean,
expressed in seconds, is given by $\alpha\beta$.  To get the mean in
minutes, we divide $\beta$ by 60.  When we construct the gamma
generator, we will invert $\beta$ for the parameter to be compatible
with SSJ.
The gamma service times are generated using acceptance-rejection,
because inversion is too slow.

For the outbound type, we need the mean service time to be
$440.2$~seconds to follow the input data.  In contrast with the input
data in \cite{ccDES07a} setting the patience time for outbound calls
to~0, we fixed this patience time
to five
seconds for some outbound calls to get queued.  The probability of
reaching a caller and the staffing vectors were all taken from the
input data in \cite{ccDES07a}.

To take balking into account,
in the \texttt{new\-Instance} method of
\texttt{My\-Contact\-Factory}, a uniform is drawn.  If it
is smaller than the probability of immediate abandonment, the
patience time is 0.  Otherwise, it is exponential.  For the outbound
calls, the patience time is constant and set in the
\texttt{new\-Instance} method too.

The router is a simple queue priority router with fixed tables.
If an
inbound call arrives, it is served by an inbound agent or, if no
inbound agent is available, by a blend agent.  If an outbound call
arrives, it is served by a blend agent.  If an inbound agent becomes
free, it checks the inbound queue only.  If a blend agent is free, it
checks the outbound and the inbound queues, in that order.  When agents
arrive, they check for calls in the queues as when they become free.

The dialer is the newest and most complex part of this model.  To be
constructed, it requires at least a dialing policy, a random stream to
determine if the right party is reached, and a value generator giving
the probability of the right party to be reached.
Reached calls are notified to the router while
reached and failed calls are counted
using a \texttt{Contact\-Counter} which is a custom new-contact
listener.  Failed calls
include wrong party connects (answering machine or wrong person) as
well as busy signals or no answer.  The dialer
is connected to the router in order to be automatically started
(if it is enabled) each time any agent, whether inbound or blend, ends
a service.
It is also registered to be automatically initialized at the beginning
of each replication.

When the dialer starts, if it is enabled, it uses its policy to
determine how many calls to try.  Dialed calls are extracted from a
dialer list which is associated with the dialing policy.  In most
general settings, the list of outbound calls to try can depend on the
state of the system.  In this example, the dialer list is infinite,
i.e., it uses a contact factory to produce a call each time it is
asked to.  Retrials of failed calls are included in the calls extracted
from this infinite list.
For each tried call, a random number is drawn to
determine if it reaches the right party.  If it is successful, it is
sent to the router and the contact counter.  Otherwise, it is sent to
the contact counter only.

The dialer of this example uses a generic threshold-based policy which
works as follows.
It computes $\Ntf(t)$,
the total number of free agents in a \emph{test set} comprised in this
example of both agent groups.
It then checks that this
number is greater than or equal to a certain threshold fixed to~4 in
this example.
If the condition holds, the dialer then computes $\Ndf(t)$, the number
of free agents in a \emph{target set}.  In this example, this set
contains blend agents only.
If $\Ndf(t)$ is greater than or equal to a second threshold fixed to~1
in this example, the
dialer tries to reach $2*\Ndf(t)$ customers.

\texttt{in\-Queue\-Size} and \texttt{out\-Queue\-Size} are queue size
statistical collector being used for computing the time-average queue
size.  Each queue size collector monitors a single waiting queue and
computes the integrals for the queue size and optionally the number
of contacts of each type in the queue.  \texttt{inbound\-Volume} and
\texttt{blend\-Volume} are agent group volume statistical collector
used for the occupancy ratio.

Statistical collecting is performed the same way as in other
examples.  However, we want events to be counted for main periods
only.  As a result, events related to contacts arriving during the
preliminary period are ignored.  For agents' occupancy ratio and
time-average queue size, we need to create a custom period-change
listener.  At the end of the preliminary, the agent group volume and
queue size counters are reset to keep statistics about main periods
only.  At the beginning of the wrap-up period, the necessary integrals
are obtained before they are updated with observations from the
wrap-up period.
In addition, to get the time-average queue size over the opening
hours,
we divide the integral of queue size by the appropriate time
duration.  If we use the \texttt{average} method, the returned average
is on all simulation time, including the complete preliminary period.
Of course, our custom period-change listener needs to be registered
with the period-change event to receive information; this operation is
done in the constructor of \texttt{Blend}.
Note that we could also solve this problem with an agent-group
listener, as we did in section~\ref{sec:occcor}.

Listing~\ref{res:Blend} presents the statistical
results of the call center.

\lstinputlisting[caption={Results of the program \texttt{Blend}},%
label=res:Blend,language={}
]{Blend.res}


\documentclass[Thesis.tex]{subfiles}
\begin{document}
\chapter{Liquid $^4$He}
\label{chp:liquid-helium}

\glsresetall

We turn now to the much more challenging system of liquid helium, presented
in~\cref{sec:liquid-helium-theory}. As before, we will first present the
traditional benchmark result followed by the neural networks.

\section{Benchmark}

We will use one of the simpler benchmark wave functions for this system, known
as the McMillan form wave function~\cite{McMillan-1965}:

\begin{align}
  \label{eq:McMillan-wave-function-def}
  \psi_{M} &= \exp(-\frac{1}{2}\sum_{i<j} \qty(\frac{\beta}{r_{ij}})^5).
\end{align}
where $\beta$ is the only variational parameter and has units of angstrom. An
important observation now is the lack of any single particle wave function
factor. In the case of \glspl{qd} we had a Gaussian localized at the origin
as a result of the potential well. This system, however, is infinite and
periodic without any such influence driving it towards particular points in
space. Furthermore, because of the lack of an external field the single particle
solutions are just free particles, and does not help us understand the many-body
system.

\subsection{Finite Size Dependency}

An important aspect of all the results that we will present is that they are
highly dependent on the number of particles used in the simulation box, as well
as the size of the box it self. We will hold the number density of particles
constant, $\rho = \flatfrac{\num{0.365}}{\sigma^3}$ (where $\sigma =
\SI{2.556}{\angstrom}$ as defined in \cref{eq:Lennard-Jones-def}), and set the
side lengths of the simulation box, $L$, depending on
the number of particles $N$:

\begin{align}
  L = \sqrt[3]{\frac{N}{\rho}}.
\end{align}

\noindent As the assumption of periodicity is a simplifying approximation, we
introduce some erroneous effects because of it. These generally disappear as we
increase the number of particles (and hence the size of box), but the
computation time needed to run the simulations increases significantly with
increasing numbers. The purpose of the following analysis is to test the
\emph{relative} accuracy of different wave functions. With that in mind we have
used a small number of particles in the main results, which introduces a
significant error with respect to reality. The number of particles should nevertheless
be large enough to introduce all the relevant effects and allow for a valid
comparison of methods. With the same motivation, we limit our Hamiltonian to use
only the Lennard-Jones potential (\cref{eq:Lennard-Jones-def}), and leave tests
with HFDHE2 for future research.

\subsection{Optimizing}

We have optimized the parameters of~\cref{eq:McMillan-wave-function-def} using $\num{10000}$
iterations of $\num{5000}$ \gls{mc} cycles each. We used standard Metropolis sampling
along with the ADAM optimizer. \cref{fig:He-benchmark-training} shows the
progression of both the energy and variational parameter during training.
Because of the strong correlations involved, there is significantly more
variance in these results compared to the benchmark used for \glspl{qd}. We
see the value for $\beta$ oscillating without any signs of converging to a
fixed value.

\Cref{tab:He-benchmark-results} shows the energy estimates from the final model.
The same wave function (i.e. same value for $\beta$) has also been used on
different numbers of particles to illustrate how the energy increases for larger
simulation boxes. Based on computations with larger and larger systems, the
value for $N = 256$ is quite close to the apparent convergence for $N\to\infty$.

\begin{figure}[h]
  \centering
  \resizebox{\linewidth}{!}{%
    \input{scripts/He-benchmark.py.tex}
  }
  \caption[Learning progression of McMillan wave function on $^4$He]{\label{fig:He-benchmark-training}Left: Ground state energy produced by~\cref{eq:McMillan-wave-function-def}
    as a function of training steps. Right: Progression of the variational
    parameter $\beta$ of~\cref{eq:McMillan-wave-function-def} as a function of
    training steps. A convergence is clearly visible, although there is more
    variance in the value for $\beta$ compared to the parameters of the
    benchmark used for quantum dots.\citesource{writing/scripts/He-benchmark.py}}
\end{figure}

\begin{table}[h]
  \centering
  \caption[Energy estimates of McMillan wave function on
$^4$He]{\label{tab:He-benchmark-results}Predicted ground state energy of helium
atoms at density $\rho = \flatfrac{0.365}{\sigma^3}$ using $\psi_{M}$ with
$\beta$ as determined after training. The number of particles used in the
simulation box is indicated by the superscript on $\psi_M$. Values obtained
using $2^{23}$ samples. Energies in units of Kelvin per particle
$[\si{\kelvin\per N}]$. The symbols $CI_{-}^{95}$ and $CI_{+}^{95}$ represent
the lower and upper limits of a $\SI{95}{\percent}$ confidence interval, respectively. $\Std$
is the standard deviation of the energy and $\Var$ is the corresponding
variance. See \cref{fig:He-benchmark-training} for source code
reference.}
  \input{scripts/He-benchmark.py.table.tex}
\end{table}
\clearpage

\section{Neural Networks}

We again attempt to apply a neural network to our wave function representation.
Liquid $^4$He is a far more challenging problem compared to the two-particle
quantum dot, and as such it will serve as an important test of the capabilities
of neural networks for general quantum mechanical many-body problems.

As before, we have not simply removed the original wave function, but rather
added the network as another correlation factor:

\begin{align}
  \label{eq:helium-dnn-mcmillan-def}
  \psi_{DNN}(\mat X) &= \psi_M(\mat X)\,f(\mat X),
\end{align}
where once again $f: \mathbb{R}^{N\times D}\to\mathbb{R}$ represents an
arbitrary neural network.

Lastly, we limit our investigation to $N=32$ particles and still with density
$\rho=\flatfrac{0.365}{\sigma^3}$. This is done from a practical standpoint,
considering the substantial computational cost.

\subsection{Network Architecture}

The proposed network structure is one of many that are likely to perform well,
and in all likelihood this is not the optimal form. A more in depth analysis of
which structures perform best, including other types of networks (e.g.\ recurrent,
convolutional, residual etc.) is left for future research.

Based on the experimental results observed for quantum dots, in conjunction with
trail and error, we have used the following network structure:

\begin{center}
  \begin{tabular}{lcc}
    \toprule
    \addlinespace
    Layer & Nodes & Activation\\
    \addlinespace
    \midrule
    \addlinespace
    \addlinespace
    Input & 96 & ---\\
    Hidden 1& 144 & $\tanh$\\
    Hidden 2& 36 & $\tanh$\\
    Output & 1 & $\exp$\\
    \addlinespace
    \addlinespace
    \bottomrule
  \end{tabular}
\end{center}
Once again the number of nodes in the input layer is fixed by the
number of degrees of freedom ($N\times D$ for $N=32$ particles and $D=3$ dimensions). The number of
nodes in the second layer is somewhat arbitrary, and could be changed.
Importantly it is larger than $N\times D$, allowing the network to learn more features
than it has inputs. Still, it does not have enough nodes to fully encode the relative
difference between every pair of coordinates, as would be required to reproduce
$\psi_M$ fully. This number (144) was found to be large enough to allow learning, but
still be reasonably efficient. Lastly, the second hidden layer was set to $36$
nodes. This is also somewhat arbitrary, but importantly it is smaller than
the last layer, allowing the gradual narrowing down to the single output. The activation
functions are the same as those used for quantum dots.

Finally, we train two instances of the network, with and without input sorting
applied to impose symmetry, denoted once again by $\psi_{DNN}$ and
$\psi_{SDNN}$, respectively.

\subsection{Optimization}

We produced the following results by optimizing $\psi_M$, $\psi_{DNN}$ and $\psi_{SDNN}$ with
similar hyperparameters. We initialized $\beta=\num{2.85}$ for all wave functions
for a fair comparison. We used $\num{250000}$ training iterations of
$\num{5000}$ \gls{mc} cycles each. Contrary to the quantum dot system, where a large
set of hyperparameters yielded good results, we have found this problem to be
highly sensitive to good hyperparameters. We had to reduce the learning rate to
$\eta=\num{0.0001}$ to avoid divergence during training. We also found that the
networks performed better with a small degree of L2 regularization,
$\gamma=\num{0.00001}$ (\cref{sec:regularization}). While other choices might still be better, there were
significantly less room for error in this much more challenging problem.

\begin{figure}[h]
  \centering
  \input{scripts/He-mcmillan-dnn.py.tex}
  \caption[Learning progression of a neural network on liquid
  helium]{\label{fig:He-dnn-training}Performance of $\psi_M$, $\psi_{DNN}$ and $\psi_{SDNN}$
    as a function of training steps. The network with input sorting, $\psi_{SDNN}$ shows a clear energy reduction
    compared to the traditional benchmark, albeit not as significant as the
    results of \cref{chp:quantum-dots}. The non-symmetric network, $\psi_{DNN}$, fails
    to learn anything beyond the benchmark.\citesource{writing/scripts/He-mcmillan-dnn.py}}
\end{figure}

\cref{fig:He-dnn-training} shows a graph of the ground state energy during the
course of training for all three wave functions. On this time scale (i.e.\ $\num{25}$
times more training than used for the benchmark alone) we see $\psi_M$ converge
immediately to the same energy level as we saw in
\cref{fig:He-benchmark-training}. For $\psi_{SDNN}$, however, there is an
apparent immediate lowering of energy, followed by a gradual decrease throughout
the remaining training time. It is not clear if $\psi_{SDNN}$ has completely
converged, or if small reductions might still be achieved if we train for even
longer. Nevertheless, such gains are likely small and not necessary to
demonstrate an improvement.

In contrast to the results seen for \glspl{qd}, the network without symmetry
imposed ($\psi_{DNN}$) fails to learn anything beyond the benchmark. It appears
that for this larger system, imposing the symmetry is vitally important in
helping the networks learn the correct correlations. We hypothesize that for only two
particles the network could learn the symmetry, allowing more
flexible learning, where as in this case the inputs are too complex for the
network to learn on its own.

\Cref{tab:He-dnn-results} shows the final energies produced from $\psi_{M}$,
$\psi_{DNN}$ and $\psi_{SDNN}$ after training. As indicated by the plot, we see
a statistically significant lowering of the total energy. Unlike the results for
quantum dots, however, we do not get a lowering of the variance, but rather a
negligible increase. It is hard to say exactly how much of the total error in energy
is corrected for by the inclusion of the networks like we could for \gls{qd}, due to the lack of existing
results using $N=32$ particles with the Lennard-Jones potential with the same
potential corrections that we have included. Nevertheless, the networks continue
to show their ability to improve upon the results of all the benchmark wave
functions we have paired them with. As our main interest in this work is to
demonstrate this general ability, as opposed to producing results closest to
experimental results, we view these results as further positive encouragement to
continue this line of research.

\begin{table}[h]
  \centering
  \caption[Energy estimates using a neural network on $^4$He]{\label{tab:He-dnn-results}Predicted ground state energy of
    $\psi_M$, $\psi_{DNN}$ and $\psi_{SDNN}$ after the same amount of optimization. Results
    obtained from $2^{23}$ samples and with errors estimated using
    blocking. Energies in units of Kelvin per particle $[\si{\kelvin\per N}]$. See \cref{fig:He-dnn-training} for source code reference.}
  \input{scripts/He-mcmillan-dnn.py.table.tex}
\end{table}

\end{document}