Compare commits

..

9 Commits

Author SHA1 Message Date
ccd3dd5c5c Update abstract 2021-08-27 18:45:43 +02:00
31bd9763d5 Update link to talk 2021-08-27 18:45:12 +02:00
80d0a008b6 Remove citation section 2021-08-27 18:44:30 +02:00
69a50c0599 Separate repo for journal paper 2021-08-27 18:39:25 +02:00
301c13d132 Update bibtex 2021-02-20 22:46:30 +01:00
89b994c3ba Add link to matlab pdf and matlab zip 2021-02-20 14:44:58 +01:00
8ceca4c432 Add link to journal paper 2021-02-20 14:33:45 +01:00
1959e2ede7 Final submission 2021-02-19 12:00:05 +01:00
ab71a426df Remove margin of main page 2020-12-07 11:49:47 +01:00
43 changed files with 1708 additions and 7591 deletions

View File

@@ -0,0 +1,8 @@
@inproceedings{dehaeze20_activ_dampin_rotat_platf_integ_force_feedb,
author = {Dehaeze, T. and Collette, C.},
title = {Active Damping of Rotating Platforms using Integral Force
Feedback},
booktitle = {Proceedings of the International Conference on Modal
Analysis Noise and Vibration Engineering (ISMA)},
year = 2020,
}

View File

@@ -3,20 +3,21 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-11-12 jeu. 10:40 -->
<!-- 2021-08-27 ven. 18:45 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Active Damping of Rotating Platforms using Integral Force Feedback</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" />
<meta name="generator" content="Org Mode" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<style> #content {margin: auto;} </style>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
</div><div id="content" class="content">
<h1 class="title">Active Damping of Rotating Platforms using Integral Force Feedback
<br />
<span class="subtitle">Dehaeze Thomas, Collette Christophe</span>
@@ -36,48 +37,11 @@ The results reveal that, despite their different implementations, both modified
</p>
</blockquote>
<div id="outline-container-org8130d6a" class="outline-2">
<h2 id="org8130d6a">Paper (<a href="paper/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb.pdf">link</a>)</h2>
<div class="outline-text-2" id="text-org8130d6a">
<div id="outline-container-orge3e2b75" class="outline-2">
<h2 id="orge3e2b75">Conference Paper (<a href="paper/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb.pdf">pdf</a>)</h2>
<div class="outline-text-2" id="text-orge3e2b75">
<p>
The paper has been created using <a href="https://orgmode.org/">Org Mode</a> (generating <a href="https://www.latex-project.org/">LaTeX</a> code) under <a href="https://www.gnu.org/software/emacs/">Emacs</a>.
</p>
</div>
</div>
<div id="outline-container-orgc3e4c1c" class="outline-2">
<h2 id="orgc3e4c1c">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-orgc3e4c1c">
<p>
The Matlab scripts that permits to obtain all the results presented in the paper are accessible <a href="matlab/index.html">here</a>.
</p>
</div>
</div>
<div id="outline-container-orga5eb09b" class="outline-2">
<h2 id="orga5eb09b">Figures (<a href="tikz/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-orga5eb09b">
<p>
All the figures in the paper are generated using either <a href="https://sourceforge.net/projects/pgf/">TikZ</a> or <a href="https://inkscape.org/">Inkscape</a>. The code snippets that was used to generate the figures are accessible <a href="tikz/index.html">here</a>.
</p>
</div>
</div>
<div id="outline-container-org1bbe3ba" class="outline-2">
<h2 id="org1bbe3ba">Talk (<a href="talk/talk.pdf">link</a>)</h2>
<div class="outline-text-2" id="text-org1bbe3ba">
<iframe width="720"
height="540"
src="https://www.youtube.com/embed/F9j2-ge2FPE"
frameborder="0" allowfullscreen> </iframe>
</div>
</div>
<div id="outline-container-org40a746d" class="outline-2">
<h2 id="org40a746d">Cite this paper</h2>
<div class="outline-text-2" id="text-org40a746d">
<p>
To cite this paper use the following bibtex code.
To cite this conference paper use the following bibtex code.
</p>
<div class="org-src-container">
<pre class="src src-bibtex"><span class="org-function-name">@inproceedings</span>{<span class="org-constant">dehaeze20_activ_dampin_rotat_platf_integ_force_feedb</span>,
@@ -101,6 +65,34 @@ Dehaeze, T., &amp; Collette, C., Active damping of rotating platforms using inte
</blockquote>
</div>
</div>
<div id="outline-container-org4d64c70" class="outline-2">
<h2 id="org4d64c70">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-org4d64c70">
<p>
The Matlab scripts that permits to obtain all the results presented in the paper are accessible <a href="matlab/index.html">here</a>.
</p>
</div>
</div>
<div id="outline-container-org70438d8" class="outline-2">
<h2 id="org70438d8">Figures (<a href="tikz/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-org70438d8">
<p>
All the figures in the paper are generated using either <a href="https://sourceforge.net/projects/pgf/">TikZ</a> or <a href="https://inkscape.org/">Inkscape</a>. The code snippets that was used to generate the figures are accessible <a href="tikz/index.html">here</a>.
</p>
</div>
</div>
<div id="outline-container-org7f2815f" class="outline-2">
<h2 id="org7f2815f">Talk (<a href="talk/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb_talk.pdf">link</a>)</h2>
<div class="outline-text-2" id="text-org7f2815f">
<iframe width="720"
height="540"
src="https://www.youtube.com/embed/F9j2-ge2FPE"
frameborder="0" allowfullscreen> </iframe>
</div>
</div>
</div>
</body>
</html>

View File

@@ -10,6 +10,7 @@
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+HTML_HEAD: <style> #content {margin: auto;} </style>
:END:
#+begin_quote
@@ -23,41 +24,12 @@ 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.
#+end_quote
* Paper ([[file:paper/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb.pdf][link]])
:PROPERTIES:
:UNNUMBERED: t
:END:
The paper has been created using [[https://orgmode.org/][Org Mode]] (generating [[https://www.latex-project.org/][LaTeX]] code) under [[https://www.gnu.org/software/emacs/][Emacs]].
* Matlab Scripts ([[file:matlab/index.org][link]])
:PROPERTIES:
:UNNUMBERED: t
:END:
The Matlab scripts that permits to obtain all the results presented in the paper are accessible [[file:matlab/index.org][here]].
* Figures ([[file:tikz/index.org][link]])
:PROPERTIES:
:UNNUMBERED: t
:END:
All the figures in the paper are generated using either [[https://sourceforge.net/projects/pgf/][TikZ]] or [[https://inkscape.org/][Inkscape]]. The code snippets that was used to generate the figures are accessible [[file:tikz/index.org][here]].
* Talk ([[file:talk/talk.pdf][link]])
* Conference Paper ([[file:paper/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb.pdf][pdf]])
:PROPERTIES:
:UNNUMBERED: t
:END:
#+begin_export html
<iframe width="720"
height="540"
src="https://www.youtube.com/embed/F9j2-ge2FPE"
frameborder="0" allowfullscreen> </iframe>
#+end_export
* Cite this paper
:PROPERTIES:
:UNNUMBERED: t
:END:
To cite this paper use the following bibtex code.
To cite this conference paper use the following bibtex code.
#+begin_src bibtex
@inproceedings{dehaeze20_activ_dampin_rotat_platf_integ_force_feedb,
author = {Dehaeze, T. and Collette, C.},
@@ -73,3 +45,29 @@ You can also use the formatted citation below.
#+begin_quote
Dehaeze, T., & Collette, C., Active damping of rotating platforms using integral force feedback, In , Proceedings of the International Conference on Modal Analysis Noise and Vibration Engineering (ISMA) (pp. ) (2020)
#+end_quote
* Matlab Scripts ([[file:matlab/index.org][link]])
:PROPERTIES:
:UNNUMBERED: t
:END:
The Matlab scripts that permits to obtain all the results presented in the paper are accessible [[file:matlab/index.org][here]].
* Figures ([[file:tikz/index.org][link]])
:PROPERTIES:
:UNNUMBERED: t
:END:
All the figures in the paper are generated using either [[https://sourceforge.net/projects/pgf/][TikZ]] or [[https://inkscape.org/][Inkscape]]. The code snippets that was used to generate the figures are accessible [[file:tikz/index.org][here]].
* Talk ([[file:talk/dehaeze20_activ_dampin_rotat_platf_integ_force_feedb_talk.pdf][link]])
:PROPERTIES:
:UNNUMBERED: t
:END:
#+begin_export html
<iframe width="720"
height="540"
src="https://www.youtube.com/embed/F9j2-ge2FPE"
frameborder="0" allowfullscreen> </iframe>
#+end_export

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +0,0 @@
%%

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
%%

View File

@@ -1 +0,0 @@
%%

View File

@@ -1,588 +0,0 @@
:DRAWER:
#+LATEX_CLASS: iopart
#+LATEX_CLASS_OPTIONS: [10pt]
#+OPTIONS: toc:nil author:nil title:nil date:nil
#+STARTUP: overview
#+LATEX_HEADER: \expandafter\let\csname equation*\endcsname\relax
#+LATEX_HEADER: \expandafter\let\csname endequation*\endcsname\relax
#+LATEX_HEADER: \usepackage{capt-of, subcaption}
#+LATEX_HEADER: \usepackage{hyperref}
#+LATEX_HEADER: \usepackage{amsmath, amssymb, amsfonts, cases, bm}
#+LATEX_HEADER: \usepackage{algorithmic, graphicx, textcomp}
#+LATEX_HEADER: \usepackage{xcolor, import}
#+LATEX_HEADER: \usepackage[USenglish]{babel}
#+LATEX_HEADER: \usepackage{siunitx}
#+LATEX_HEADER: \usepackage{tikz}
#+LATEX_HEADER: \usetikzlibrary{shapes.misc,arrows,arrows.meta}
:END:
* Build :noexport:
#+name: startblock
#+BEGIN_SRC emacs-lisp :results none :tangle no
(add-to-list 'org-latex-classes
'("iopart"
"\\documentclass{iopart}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
)
(setq org-latex-packages-alist nil)
(setq org-latex-default-packages-alist nil)
#+END_SRC
* Title Page :ignore:
#+begin_export latex
\title{Active damping of rotating platforms using integral force feedback}
\author{Thomas Dehaeze$^{1,3}$ and Christophe Collette$^{1,2}$}
\address{$^1$ Precision Mechatronics Laboratory, University of Liege, Belgium}
\address{$^2$ BEAMS Department, Free University of Brussels, Belgium}
\address{$^3$ European Synchrotron Radiation Facility, Grenoble, France}
\ead{dehaeze.thomas@gmail.com}
#+end_export
#+begin_export latex
\begin{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.
\end{abstract}
\vspace{2pc}
\noindent{\it Keywords}: Active Damping, IFF
\submitto{\SMS}
\maketitle
% \ioptwocol
#+end_export
* Introduction
<<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.
* Dynamics of Rotating Platforms
<<sec:dynamics>>
** Model of a Rotating Platform :ignore:
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.
#+name: fig:system
#+caption: Schematic of the studied System
#+attr_latex: :scale 0.9
[[file:figs/fig01.pdf]]
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.
#+latex: \par
** Equations of Motion :ignore:
To obtain the equations of motion for the system represented in Figure ref:fig:system, the Lagrangian equations are used:
#+name: eq:lagrangian_equations
\begin{equation}
\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.
#+name: eq:energy_functions_lagrange
\begin{equation}
\begin{aligned}
T &= \frac{1}{2} m \left( ( \dot{d}_u - \Omega d_v )^2 + ( \dot{d}_v + \Omega d_u )^2 \right), \\
V &= \frac{1}{2} k \big( {d_u}^2 + {d_v}^2 \big), \ Q_1 = F_u, \\
D &= \frac{1}{2} c \big( \dot{d}_u{}^2 + \dot{d}_v{}^2 \big), \ Q_2 = F_v
\end{aligned}
\end{equation}
Substituting eqref:eq:energy_functions_lagrange into eqref:eq:lagrangian_equations for both generalized coordinates gives two coupled differential equations
#+name: eq:eom_coupled
\begin{subequations}
\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:
- Centrifugal forces: that can been seen as added negative stiffness $- m \Omega^2$ along $\vec{i}_u$ and $\vec{i}_v$
- Coriolis Forces: that couples the motion in the two orthogonal directions
One can verify that without rotation ($\Omega = 0$) the system becomes equivalent to two uncoupled one degree of freedom mass-spring-damper systems:
#+name: eq:oem_no_rotation
\begin{subequations}
\begin{align}
m \ddot{d}_u + c \dot{d}_u + k d_u &= F_u \\
m \ddot{d}_v + c \dot{d}_v + k d_v &= F_v
\end{align}
\end{subequations}
#+latex: \par
** Transfer Functions in the Laplace domain :ignore:
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 $\mathbf{G}_d$ from $\begin{bmatrix}F_u & F_v\end{bmatrix}$ to $\begin{bmatrix}d_u & d_v\end{bmatrix}$ is obtained.
#+name: eq:Gd_mimo_tf
\begin{equation}
\begin{bmatrix} d_u \\ d_v \end{bmatrix} = \mathbf{G}_d \begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{subequations}
\begin{align}
\mathbf{G}_{d}(1,1) &= {\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}} \\
&= \mathbf{G}_{d}(2,2) \nonumber \\
\mathbf{G}_{d}(1,2) &= {\frac{2 m \Omega s}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2}} \\
&= -\mathbf{G}_{d}(1,2) \nonumber
\end{align}
\end{subequations}
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 $\mathbf{G}_d$ becomes equal to
#+name: eq:Gd_w0_xi_k
\begin{subequations}
\begin{align}
\mathbf{G}_{d}(1,1) &= {\scriptstyle \frac{\frac{1}{k} \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \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)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} } \\
\mathbf{G}_{d}(1,2) &= {\scriptstyle \frac{\frac{1}{k} \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} }
\end{align}
\end{subequations}
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.
#+latex: \par
** System Dynamics and Campbell Diagram :ignore:
The poles of $\mathbf{G}_d$ are the complex solutions $p$ of eqref:eq:poles.
#+name: eq:poles
\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 eqref:eq:pole_values.
#+name: eq:pole_values
\begin{subequations}
\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$).
#+name: fig:campbell_diagram
#+caption: Campbell Diagram : Evolution of the complex and real parts of the system's poles as a function of the rotational speed $\Omega$
#+attr_latex: :environment subfigure :width 0.48\linewidth :align c
| file:figs/fig02a.pdf | file:figs/fig02b.pdf |
| <<fig:campbell_diagram_real>> Real Part | <<fig:campbell_diagram_imag>> Imaginary Part |
Looking at the transfer function matrix $\mathbf{G}_d$ in 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.
#+name: fig:plant_compare_rotating_speed
#+caption: Bode Plots for $\mathbf{G}_d$ for several rotational speed $\Omega$
#+attr_latex: :environment subfigure :width 0.48\linewidth :align c
| file:figs/fig03a.pdf | file:figs/fig03b.pdf |
| <<fig:plant_compare_rotating_speed_direct>> Direct Terms | <<fig:plant_compare_rotating_speed_coupling>> Coupling Terms |
* Decentralized Integral Force Feedback
<<sec:iff>>
** Force Sensors and Control Architecture :ignore:
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.
#+name: fig:system_iff
#+caption: System with added Force Sensor in series with the actuators
#+attr_latex: :scale 0.9
[[file:figs/fig04.pdf]]
#+name: fig:control_diagram_iff
#+caption: Control Diagram for decentralized IFF
#+attr_latex: :scale 1
[[file:figs/fig05.pdf]]
#+latex: \par
** Plant Dynamics :ignore:
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
#+name: eq:measured_force
\begin{equation}
\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
#+name: eq:Gf_mimo_tf
\begin{equation}
\begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \mathbf{G}_{f} \begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{subequations}
\label{eq:Gf}
\begin{align}
\mathbf{G}_{f}(1,1) &= {\scriptstyle \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} } \\
\mathbf{G}_{f}(1,2) &= {\scriptstyle \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} }
\end{align}
\end{subequations}
The zeros of the diagonal terms of $\mathbf{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 $\mathbf{G}_f$ increases with the rotational speed $\Omega$
#+name: eq:low_freq_gain_iff_plan
\begin{equation}
\lim_{\omega \to 0} \left| \mathbf{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.
#+name: fig:plant_iff_compare_rotating_speed
#+caption: 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$
#+attr_latex: :scale 0.95
[[file:figs/fig06.pdf]]
#+latex: \par
** Decentralized Integral Force Feedback with Pure Integrators :ignore:
<<sec:iff_pure_int>>
The two IFF controllers $K_F$ consist of a pure integrator
#+name: eq:Kf_pure_int
\begin{equation}
\begin{aligned}
\mathbf{K}_F(s) &= \begin{bmatrix} K_F(s) & 0 \\ 0 & K_F(s) \end{bmatrix} \\
K_F(s) &= g \cdot \frac{1}{s}
\end{aligned}
\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);$.
#+name: fig:root_locus_pure_iff
#+caption: Root Locus: evolution of the closed-loop poles with increasing controller gains $g$
#+attr_latex: :scale 1
[[file:figs/fig07.pdf]]
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).
* Integral Force Feedback with High Pass Filter
<<sec:iff_hpf>>
** Modification of the Control Law :ignore:
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
#+name: eq:IFF_LHF
\begin{equation}
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.
#+latex: \par
** Feedback Analysis :ignore:
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}$
#+name: eq:gmax_iff_hpf
\begin{equation}
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.
#+name: fig:loop_gain_modified_iff
#+caption: Modification of the loop gain with the added HFP, $g = 2$, $\omega_i = 0.1 \omega_0$ and $\Omega = 0.1 \omega_0$
#+attr_latex: :scale 0.95
[[file:figs/fig08.pdf]]
#+name: fig:root_locus_modified_iff
#+caption: Modification of the Root Locus with the added HPF, $\omega_i = 0.1 \omega_0$ and $\Omega = 0.1 \omega_0$
#+attr_latex: :scale 1
[[file:figs/fig09.pdf]]
#+latex: \par
** Optimal Control Parameters :ignore:
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.
#+name: fig:root_locus_wi_modified_iff
#+caption: Root Locus for several HPF cut-off frequencies $\omega_i$, $\Omega = 0.1 \omega_0$
#+attr_latex: :scale 0.95
[[file:figs/fig10.pdf]]
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).
#+name: fig:mod_iff_damping_wi
#+caption: 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
#+attr_latex: :scale 0.95
[[file:figs/fig11.pdf]]
Three regions can be observed:
- $\omega_i/\omega_0 < 0.02$: the added damping is limited by the maximum allowed control gain $g_{\text{max}}$
- $0.02 < \omega_i/\omega_0 < 0.2$: the attainable damping ratio is maximized and is reached for $g \approx 2$
- $0.2 < \omega_i/\omega_0$: the added damping decreases as $\omega_i/\omega_0$ increases
* Integral Force Feedback with Parallel Springs
<<sec:iff_kp>>
** Stiffness in Parallel with the Force Sensor :ignore:
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.
#+name: fig:system_parallel_springs
#+caption: Studied system with additional springs in parallel with the actuators and force sensors
#+attr_latex: :scale 0.9
[[file:figs/fig12.pdf]]
#+name: fig:cedrat_xy25xs
#+caption: XY Piezoelectric Stage (XY25XS from Cedrat Technology)
#+attr_latex: :scale 0.17
[[file:figs/fig13.pdf]]
#+latex: \par
** Effect of the Parallel Stiffness on the Plant Dynamics :ignore:
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
#+name: eq:measured_force_kp
\begin{equation}
\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
#+name: eq:Gk_mimo_tf
\begin{equation}
\begin{bmatrix} f_u \\ f_v \end{bmatrix} =
\mathbf{G}_k
\begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
#+name: eq:Gk
\begin{subequations}
\begin{align}
& \mathbf{G}_{k}(1,1) = \dots \nonumber \\
& {\scriptstyle \frac{\big( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \big) \big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big) + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2}{\big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big)^2 + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2} } \\
& \mathbf{G}_{k}(1,2) = {\scriptscriptstyle \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} }
\end{align}
\end{subequations}
Comparing $\mathbf{G}_k$ eqref:eq:Gk with $\mathbf{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
#+name: eq:kp_cond_cc_zeros
\begin{equation}
\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.
#+name: fig:plant_iff_kp
#+caption: 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$
#+attr_latex: :scale 0.95
[[file:figs/fig14.pdf]]
#+name: fig:root_locus_iff_kp
#+caption: 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$
#+attr_latex: :scale 0.95
[[file:figs/fig15.pdf]]
#+latex: \par
** Optimal Parallel Stiffness :ignore:
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:opt_damp_alpha 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$.
#+name: fig:root_locus_iff_kps
#+caption: Comparison the Root Locus for three parallel stiffnessses $k_p$
#+attr_latex: :scale 1
[[file:figs/fig16.pdf]]
#+name: fig:opt_damp_alpha
#+caption: Optimal Damping Ratio $\xi_\text{opt}$ and the corresponding optimal gain $g_\text{opt}$ as a function of $\alpha$
#+attr_latex: :scale 0.95
[[file:figs/fig17.pdf]]
* Comparison and Discussion
<<sec:comparison>>
** Introduction :ignore:
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$.
#+latex: \par
** Comparison of the Attainable Damping :ignore:
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$.
#+name: fig:comp_root_locus
#+caption: Root Locus for the two proposed modifications of decentralized IFF, $\Omega = 0.1 \omega_0$
#+attr_latex: :scale 1
[[file:figs/fig18.pdf]]
#+latex: \par
** Comparison Transmissibility and Compliance :ignore:
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.
#+name: fig:comp_transmissibility
#+caption: Comparison of the two proposed Active Damping Techniques - Transmissibility
#+attr_latex: :scale 1
[[file:figs/fig19.pdf]]
#+name: fig:comp_compliance
#+caption: Comparison of the two proposed Active Damping Techniques - Compliance
#+attr_latex: :scale 1
[[file:figs/fig20.pdf]]
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).
* Conclusion
<<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.
* Acknowledgments
:PROPERTIES:
:UNNUMBERED: t
:END:
This research benefited from a FRIA grant (grant number: FC 31597) from the French Community of Belgium.
* References
:PROPERTIES:
:UNNUMBERED: t
:END:
\bibliographystyle{iopart-num}
\bibliography{ref.bib}

Binary file not shown.

View File

@@ -1,585 +0,0 @@
% Created 2020-11-02 lun. 15:33
% Intended LaTeX compiler: pdflatex
\documentclass[10pt]{iopart}
\expandafter\let\csname equation*\endcsname\relax
\expandafter\let\csname endequation*\endcsname\relax
\usepackage{capt-of, subcaption}
\usepackage{hyperref}
\usepackage{amsmath, amssymb, amsfonts, cases, bm}
\usepackage{algorithmic, graphicx, textcomp}
\usepackage{xcolor, import}
\usepackage[USenglish, english]{babel}
\usepackage{siunitx}
\usepackage{tikz}
\usetikzlibrary{shapes.misc,arrows,arrows.meta}
\hypersetup{
pdfauthor={Thomas Dehaeze},
pdftitle={},
pdfkeywords={},
pdfsubject={},
pdfcreator={Emacs 27.1.50 (Org mode 9.4)},
pdflang={English}}
\begin{document}
\title{Active damping of rotating platforms using integral force feedback}
\author{Thomas Dehaeze$^{1,3}$ and Christophe Collette$^{1,2}$}
\address{$^1$ Precision Mechatronics Laboratory, University of Liege, Belgium}
\address{$^2$ BEAMS Department, Free University of Brussels, Belgium}
\address{$^3$ European Synchrotron Radiation Facility, Grenoble, France}
\ead{dehaeze.thomas@gmail.com}
\begin{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.
\end{abstract}
\vspace{2pc}
\noindent{\it Keywords}: Active Damping, IFF
\submitto{\SMS}
\maketitle
% \ioptwocol
\section{Introduction}
\label{sec:orgdf2365d}
\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:orgb49fb34}
\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=0.9]{figs/fig01.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( ( \dot{d}_u - \Omega d_v )^2 + ( \dot{d}_v + \Omega d_u )^2 \right), \\
V &= \frac{1}{2} k \big( {d_u}^2 + {d_v}^2 \big), \ Q_1 = F_u, \\
D &= \frac{1}{2} c \big( \dot{d}_u{}^2 + \dot{d}_v{}^2 \big), \ Q_2 = F_v
\end{aligned}
\end{equation}
Substituting \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}
One can verify that without rotation (\(\Omega = 0\)) the system becomes equivalent to two uncoupled one degree of freedom mass-spring-damper systems:
\begin{subequations}
\label{eq:oem_no_rotation}
\begin{align}
m \ddot{d}_u + c \dot{d}_u + k d_u &= F_u \\
m \ddot{d}_v + c \dot{d}_v + k d_v &= F_v
\end{align}
\end{subequations}
\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 \(\mathbf{G}_d\) from \(\begin{bmatrix}F_u & F_v\end{bmatrix}\) to \(\begin{bmatrix}d_u & d_v\end{bmatrix}\) is obtained.
\begin{equation}
\label{eq:Gd_mimo_tf}
\begin{bmatrix} d_u \\ d_v \end{bmatrix} = \mathbf{G}_d \begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{subequations}
\begin{align}
\mathbf{G}_{d}(1,1) &= {\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}} \\
&= \mathbf{G}_{d}(2,2) \nonumber \\
\mathbf{G}_{d}(1,2) &= {\frac{2 m \Omega s}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2}} \\
&= -\mathbf{G}_{d}(1,2) \nonumber
\end{align}
\end{subequations}
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 \(\mathbf{G}_d\) becomes equal to
\begin{subequations}
\label{eq:Gd_w0_xi_k}
\begin{align}
\mathbf{G}_{d}(1,1) &= {\scriptstyle \frac{\frac{1}{k} \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \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)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} } \\
\mathbf{G}_{d}(1,2) &= {\scriptstyle \frac{\frac{1}{k} \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} }
\end{align}
\end{subequations}
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 \(\mathbf{G}_d\) are the complex solutions \(p\) of \eqref{eq:poles}.
\begin{equation}
\label{eq:poles}
\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 \eqref{eq:pole_values}.
\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.48\linewidth}
\includegraphics[width=\linewidth]{figs/fig02a.pdf}
\caption{\label{fig:campbell_diagram_real} Real Part}
\end{subfigure}
\hfill
\begin{subfigure}[c]{0.48\linewidth}
\includegraphics[width=\linewidth]{figs/fig02b.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 \(\mathbf{G}_d\) in \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.48\linewidth}
\includegraphics[width=\linewidth]{figs/fig03a.pdf}
\caption{\label{fig:plant_compare_rotating_speed_direct} Direct Terms}
\end{subfigure}
\hfill
\begin{subfigure}[c]{0.48\linewidth}
\includegraphics[width=\linewidth]{figs/fig03b.pdf}
\caption{\label{fig:plant_compare_rotating_speed_coupling} Coupling Terms}
\end{subfigure}
\hfill
\caption{\label{fig:plant_compare_rotating_speed}Bode Plots for \(\mathbf{G}_d\) for several rotational speed \(\Omega\)}
\centering
\end{figure}
\section{Decentralized Integral Force Feedback}
\label{sec:org7b1adf9}
\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{figure}[htbp]
\centering
\includegraphics[scale=0.9]{figs/fig04.pdf}
\caption{\label{fig:system_iff}System with added Force Sensor in series with the actuators}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/fig05.pdf}
\caption{\label{fig:control_diagram_iff}Control Diagram for decentralized IFF}
\end{figure}
\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{equation}
\label{eq:Gf_mimo_tf}
\begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \mathbf{G}_{f} \begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{subequations}
\label{eq:Gf}
\begin{align}
\mathbf{G}_{f}(1,1) &= {\scriptstyle \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} } \\
\mathbf{G}_{f}(1,2) &= {\scriptstyle \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} }
\end{align}
\end{subequations}
The zeros of the diagonal terms of \(\mathbf{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 \(\mathbf{G}_f\) increases with the rotational speed \(\Omega\)
\begin{equation}
\label{eq:low_freq_gain_iff_plan}
\lim_{\omega \to 0} \left| \mathbf{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=0.95]{figs/fig06.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}
\begin{aligned}
\mathbf{K}_F(s) &= \begin{bmatrix} K_F(s) & 0 \\ 0 & K_F(s) \end{bmatrix} \\
K_F(s) &= g \cdot \frac{1}{s}
\end{aligned}
\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/fig07.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:orgb29360e}
\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{figure}[htbp]
\centering
\includegraphics[scale=0.95]{figs/fig08.pdf}
\caption{\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{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/fig09.pdf}
\caption{\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{figure}
\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=0.95]{figs/fig10.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=0.95]{figs/fig11.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:orgaa66b9e}
\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{figure}[htbp]
\centering
\includegraphics[scale=0.9]{figs/fig12.pdf}
\caption{\label{fig:system_parallel_springs}Studied system with additional springs in parallel with the actuators and force sensors}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=0.17]{figs/fig13.pdf}
\caption{\label{fig:cedrat_xy25xs}XY Piezoelectric Stage (XY25XS from Cedrat Technology)}
\end{figure}
\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{equation}
\label{eq:Gk_mimo_tf}
\begin{bmatrix} f_u \\ f_v \end{bmatrix} =
\mathbf{G}_k
\begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{subequations}
\label{eq:Gk}
\begin{align}
& \mathbf{G}_{k}(1,1) = \dots \nonumber \\
& {\scriptstyle \frac{\big( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \big) \big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big) + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2}{\big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big)^2 + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2} } \\
& \mathbf{G}_{k}(1,2) = {\scriptscriptstyle \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} }
\end{align}
\end{subequations}
Comparing \(\mathbf{G}_k\) \eqref{eq:Gk} with \(\mathbf{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{figure}[htbp]
\centering
\includegraphics[scale=0.95]{figs/fig14.pdf}
\caption{\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{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=0.95]{figs/fig15.pdf}
\caption{\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{figure}
\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:opt_damp_alpha} 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{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/fig16.pdf}
\caption{\label{fig:root_locus_iff_kps}Comparison the Root Locus for three parallel stiffnessses \(k_p\)}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=0.95]{figs/fig17.pdf}
\caption{\label{fig:opt_damp_alpha}Optimal Damping Ratio \(\xi_\text{opt}\) and the corresponding optimal gain \(g_\text{opt}\) as a function of \(\alpha\)}
\end{figure}
\section{Comparison and Discussion}
\label{sec:orgd845e3a}
\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/fig18.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]
\centering
\includegraphics[scale=1]{figs/fig19.pdf}
\caption{\label{fig:comp_transmissibility}Comparison of the two proposed Active Damping Techniques - Transmissibility}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/fig20.pdf}
\caption{\label{fig:comp_compliance}Comparison of the two proposed Active Damping Techniques - Compliance}
\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:org68f7028}
\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*{Acknowledgments}
\label{sec:org49166ff}
This research benefited from a FRIA grant (grant number: FC 31597) from the French Community of Belgium.
\section*{References}
\label{sec:org8c97a5c}
\bibliographystyle{iopart-num}
\bibliography{ref.bib}
\end{document}

View File

@@ -1,108 +0,0 @@
@misc{dehaeze20_activ_dampin_rotat_posit_platf,
author = {Thomas Dehaeze},
howpublished = {Source Code on Zonodo},
month = 07,
title = {Active Damping of Rotating Positioning Platforms},
url = {https://doi.org/10.5281/zenodo.3894342},
doi = {10.5281/zenodo.3894342},
year = 2020,
}
@inproceedings{dehaeze18_sampl_stabil_for_tomog_exper,
author = {Thomas Dehaeze and M. Magnin Mattenet and Christophe Collette},
title = {Sample Stabilization For Tomography Experiments In Presence Of Large Plant Uncertainty},
booktitle = {MEDSI'18},
year = {2018},
number = {10},
pages = {153--157},
doi = {10.18429/JACoW-MEDSI2018-WEOAMA02},
url = {https://doi.org/10.18429/JACoW-MEDSI2018-WEOAMA02},
address = {Geneva, Switzerland},
isbn = {978-3-95450-207-3},
language = {english},
month = {Dec},
publisher = {JACoW Publishing},
series = {Mechanical Engineering Design of Synchrotron Radiation Equipment and Instrumentation},
venue = {Paris, France},
tags = {nass},
}
@book{skogestad07_multiv_feedb_contr,
author = {Skogestad, Sigurd and Postlethwaite, Ian},
title = {Multivariable Feedback Control: Analysis and Design},
year = {2007},
publisher = {John Wiley},
isbn = {9780470011683},
}
@book{preumont18_vibrat_contr_activ_struc_fourt_edition,
author = {Andre Preumont},
title = {Vibration Control of Active Structures - Fourth Edition},
year = {2018},
publisher = {Springer International Publishing},
url = {https://doi.org/10.1007/978-3-319-72296-2},
doi = {10.1007/978-3-319-72296-2},
pages = {nil},
series = {Solid Mechanics and Its Applications},
}
@article{souleille18_concep_activ_mount_space_applic,
author = {Souleille, Adrien and Lampert, Thibault and Lafarga, V and Hellegouarch, Sylvain and Rondineau, Alan and Rodrigues, Gon{\c{c}}alo and Collette, Christophe},
title = {A Concept of Active Mount for Space Applications},
journal = {CEAS Space Journal},
volume = {10},
number = {2},
pages = {157--165},
year = {2018},
publisher = {Springer},
}
@inproceedings{preumont91_activ,
author = {Andre Preumont and Jean-Paul Dufour and Christian Malekian},
title = {Active damping by a local force feedback with piezoelectric
actuators},
booktitle = {32nd Structures, Structural Dynamics, and Materials
Conference},
year = 1991,
doi = {10.2514/6.1991-989},
url = {https://doi.org/10.2514/6.1991-989},
month = {apr},
publisher = {American Institute of Aeronautics and Astronautics},
}
@article{preumont08_trans_zeros_struc_contr_with,
author = {Preumont, Andr{\'e} and De Marneffe, Bruno and Krenk, Steen},
title = {Transmission Zeros in Structural Control With Collocated Multi-Input/multi-Output Pairs},
journal = {Journal of guidance, control, and dynamics},
volume = {31},
number = {2},
pages = {428--432},
year = {2008},
}
@article{preumont02_force_feedb_versus_accel_feedb,
author = {A. Preumont and A. Fran{\c{c}}ois and F. Bossens and A.
Abu-Hanieh},
title = {Force Feedback Versus Acceleration Feedback in Active
Vibration Isolation},
journal = {Journal of Sound and Vibration},
volume = 257,
number = 4,
pages = {605-613},
year = 2002,
doi = {10.1006/jsvi.2002.5047},
url = {https://doi.org/10.1006/jsvi.2002.5047},
}
@article{preumont92_activ_dampin_by_local_force,
author = {Preumont, Andre and Dufour, Jean-Paul and Malekian,
Christian},
title = {Active Damping By a Local Force Feedback With Piezoelectric
Actuators},
journal = {Journal of guidance, control, and dynamics},
volume = 15,
number = 2,
pages = {390--395},
year = 1992,
}

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 389 KiB

After

Width:  |  Height:  |  Size: 429 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -6,8 +6,14 @@
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+LATEX_CLASS: cleanreport
#+LATEX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+BIND: org-latex-image-default-option "scale=1"
#+BIND: org-latex-bib-compiler "biber"
#+BIND: org-latex-image-default-width ""
#+LaTeX_CLASS: scrreprt
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full]
#+LaTeX_HEADER_EXTRA: \input{preamble.tex}
#+LATEX_HEADER_EXTRA: \addbibresource{ref.bib}
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
@@ -19,8 +25,14 @@
#+PROPERTY: header-args:matlab+ :output-dir figs
:END:
#+begin_export html
<hr>
<p>This report is also available as a <a href="./index.pdf">pdf</a>.</p>
<hr>
#+end_export
* Introduction :ignore:
This document gathers the Matlab code used to for the paper cite:dehaeze20_activ_dampin_rotat_platf_integ_force_feedb.
This document gathers the Matlab code used to for the conference paper cite:dehaeze20_activ_dampin_rotat_platf_integ_force_feedb and the journal paper cite:dehaeze21_activ_dampin_rotat_platf_using.
It is structured in several sections:
- Section [[sec:system_description]]: presents a simple model of a rotating suspended platform that will be used throughout this study.
@@ -30,7 +42,7 @@ It is structured in several sections:
- Section [[sec:comparison]]: compares both proposed modifications to the classical IFF in terms of damping authority and closed-loop system behavior.
- Section [[sec:notations]]: contains the notations used for both the Matlab code and the paper
The matlab code is accessible on [[https://zenodo.org/record/3894343][Zonodo]] and [[https://github.com/tdehaeze/dehaeze20_contr_stewa_platf][Github]] cite:dehaeze20_activ_dampin_rotat_posit_platf.
The matlab code is accessible on [[https://zenodo.org/record/3894343][Zonodo]] and [[https://github.com/tdehaeze/dehaeze20_contr_stewa_platf][Github]] cite:dehaeze20_activ_dampin_rotat_posit_platf. It can also be download as a =.zip= file [[file:matlab.zip][here]].
To run the Matlab code, go in the =matlab= directory and run the following Matlab files corresponding to each section.
@@ -2131,8 +2143,9 @@ Critical Damping corresponds to to $\xi = 1$, and thus:
| Frequency | $\omega$ | =w= | [rad/s] |
* Bibliography :ignore:
bibliographystyle:unsrt
#+latex: \printbibliography
bibliography:ref.bib
* Functions :noexport:
** Sort Poles for the Root Locus
:PROPERTIES:
@@ -2291,3 +2304,4 @@ This Matlab function is accessible [[file:src/rootLocusPolesSorted.m][here]].
end
end
#+end_src

BIN
matlab/index.pdf Normal file

Binary file not shown.

950
matlab/index.tex Normal file
View File

@@ -0,0 +1,950 @@
% Created 2021-02-20 sam. 14:43
% Intended LaTeX compiler: pdflatex
\documentclass[a4paper, 10pt, DIV=12, parskip=full]{scrreprt}
\input{preamble.tex}
\addbibresource{ref.bib}
\author{Thomas Dehaeze}
\date{\today}
\title{Active Damping of Rotating Platforms using Integral Force Feedback - Matlab Computation}
\hypersetup{
pdfauthor={Thomas Dehaeze},
pdftitle={Active Damping of Rotating Platforms using Integral Force Feedback - Matlab Computation},
pdfkeywords={},
pdfsubject={},
pdfcreator={Emacs 27.1 (Org mode 9.5)},
pdflang={English}}
\begin{document}
\maketitle
\tableofcontents
This document gathers the Matlab code used to for the conference paper \cite{dehaeze20_activ_dampin_rotat_platf_integ_force_feedb} and the journal paper \cite{dehaeze21_activ_dampin_rotat_platf_using}.
It is structured in several sections:
\begin{itemize}
\item Section \ref{sec:system_description}: presents a simple model of a rotating suspended platform that will be used throughout this study.
\item Section \ref{sec:iff_pure_int}: explains how the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation.
\item Section \ref{sec:iff_pseudo_int}: suggests a simple modification of the control law such that damping can be added to the suspension modes in a robust way.
\item Section \ref{sec:iff_parallel_stiffness}: proposes to add springs in parallel with the force sensors to regain the unconditional stability of IFF.
\item Section \ref{sec:comparison}: compares both proposed modifications to the classical IFF in terms of damping authority and closed-loop system behavior.
\item Section \ref{sec:notations}: contains the notations used for both the Matlab code and the paper
\end{itemize}
The matlab code is accessible on \href{https://zenodo.org/record/3894343}{Zonodo} and \href{https://github.com/tdehaeze/dehaeze20\_contr\_stewa\_platf}{Github} \cite{dehaeze20_activ_dampin_rotat_posit_platf}. It can also be download as a \texttt{.zip} file \href{matlab.zip}{here}.
To run the Matlab code, go in the \texttt{matlab} directory and run the following Matlab files corresponding to each section.
\begin{table}[htbp]
\caption{Paper's sections and corresponding Matlab files}
\centering
\begin{tabular}{ll}
Sections & Matlab File\\
\hline
Section \ref{sec:system_description} & \texttt{s1\_system\_description.m}\\
Section \ref{sec:iff_pure_int} & \texttt{s2\_iff\_pure\_int.m}\\
Section \ref{sec:iff_pseudo_int} & \texttt{s3\_iff\_hpf.m}\\
Section \ref{sec:iff_parallel_stiffness} & \texttt{s4\_iff\_kp.m}\\
Section \ref{sec:comparison} & \texttt{s5\_act\_damp\_comparison.m}\\
\end{tabular}
\end{table}
\chapter{System Description and Analysis}
\label{sec:org866deeb}
\label{sec:system_description}
\section{System description}
\label{sec:org597d9d5}
The system consists of one 2 degree of freedom translation stage on top of a spindle (figure \ref{fig:system}).
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs-paper/system.png}
\caption{\label{fig:system}Schematic of the studied system}
\end{figure}
The control inputs are the forces applied by the actuators of the translation stage (\(F_u\) and \(F_v\)).
As the translation stage is rotating around the Z axis due to the spindle, the forces are applied along \(\vec{i}_u\) and \(\vec{i}_v\).
\section{Equations}
\label{sec:orge2ee0c6}
Based on the Figure \ref{fig:system}, the equations of motions are:
\begin{important}
\begin{equation}
\begin{bmatrix} d_u \\ d_v \end{bmatrix} =
\bm{G}_d
\begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
Where \(\bm{G}_d\) is a \(2 \times 2\) transfer function matrix.
\begin{equation}
\bm{G}_d = \frac{1}{k} \frac{1}{G_{dp}}
\begin{bmatrix}
G_{dz} & G_{dc} \\
-G_{dc} & G_{dz}
\end{bmatrix}
\end{equation}
With:
\begin{align}
G_{dp} &= \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 \\
G_{dz} &= \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \\
G_{dc} &= 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0}
\end{align}
\end{important}
\section{Numerical Values}
\label{sec:orgafc7947}
Let's define initial values for the model.
\begin{minted}[]{matlab}
k = 1; % Actuator Stiffness [N/m]
c = 0.05; % Actuator Damping [N/(m/s)]
m = 1; % Payload mass [kg]
\end{minted}
\begin{minted}[]{matlab}
xi = c/(2*sqrt(k*m));
w0 = sqrt(k/m); % [rad/s]
\end{minted}
\section{Campbell Diagram}
\label{sec:org008e1a4}
The Campbell Diagram displays the evolution of the real and imaginary parts of the system as a function of the rotating speed.
It is shown in Figures \ref{fig:campbell_diagram_real} and \ref{fig:campbell_diagram_imag}, and one can see that the system becomes unstable for \(\Omega > \omega_0\) (the real part of one of the poles becomes positive).
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/campbell_diagram_real.png}
\caption{\label{fig:campbell_diagram_real}Campbell Diagram - Real Part}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/campbell_diagram_imag.png}
\caption{\label{fig:campbell_diagram_imag}Campbell Diagram - Imaginary Part}
\end{figure}
\section{Simscape Model}
\label{sec:org50f1e50}
In order to validate all the equations of motion, a Simscape model of the same system has been developed.
The dynamics of the system can be identified from the Simscape model and compare with the analytical model.
The rotating speed for the Simscape Model is defined.
\begin{minted}[]{matlab}
W = 0.1; % Rotation Speed [rad/s]
\end{minted}
\begin{minted}[]{matlab}
open('rotating_frame.slx');
\end{minted}
The transfer function from \([F_u, F_v]\) to \([d_u, d_v]\) is identified from the Simscape model.
\begin{minted}[]{matlab}
%% Name of the Simulink File
mdl = 'rotating_frame';
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/K'], 1, 'openinput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/G'], 2, 'openoutput'); io_i = io_i + 1;
\end{minted}
\begin{minted}[]{matlab}
G = linearize(mdl, io, 0);
%% Input/Output definition
G.InputName = {'Fu', 'Fv'};
G.OutputName = {'du', 'dv'};
\end{minted}
The same transfer function from \([F_u, F_v]\) to \([d_u, d_v]\) is written down from the analytical model.
\begin{minted}[]{matlab}
Gth = (1/k)/(((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))^2 + (2*W*s/(w0^2))^2) * ...
[(s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2), 2*W*s/(w0^2) ; ...
-2*W*s/(w0^2), (s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)];
\end{minted}
Both transfer functions are compared in Figure \ref{fig:plant_simscape_analytical} and are found to perfectly match.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_simscape_analytical.png}
\caption{\label{fig:plant_simscape_analytical}Bode plot of the transfer function from \([F_u, F_v]\) to \([d_u, d_v]\) as identified from the Simscape model and from an analytical model}
\end{figure}
\section{Effect of the rotation speed}
\label{sec:org6d643e3}
The transfer functions from \([F_u, F_v]\) to \([d_u, d_v]\) are identified for the following rotating speeds.
\begin{minted}[]{matlab}
Ws = [0, 0.2, 0.7, 1.1]*w0; % Rotating Speeds [rad/s]
\end{minted}
\begin{minted}[]{matlab}
Gs = {zeros(2, 2, length(Ws))};
for W_i = 1:length(Ws)
W = Ws(W_i);
Gs(:, :, W_i) = {(1/k)/(((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))^2 + (2*W*s/(w0^2))^2) * ...
[(s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2), 2*W*s/(w0^2) ; ...
-2*W*s/(w0^2), (s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)]};
end
\end{minted}
They are compared in Figures \ref{fig:plant_compare_rotating_speed_direct} and \ref{fig:plant_compare_rotating_speed_coupling}.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_compare_rotating_speed_direct.png}
\caption{\label{fig:plant_compare_rotating_speed_direct}Comparison of the transfer functions from \([F_u, F_v]\) to \([d_u, d_v]\) for several rotating speed - Direct Terms}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_compare_rotating_speed_coupling.png}
\caption{\label{fig:plant_compare_rotating_speed_coupling}Comparison of the transfer functions from \([F_u, F_v]\) to \([d_u, d_v]\) for several rotating speed - Coupling Terms}
\end{figure}
\chapter{Problem with pure Integral Force Feedback}
\label{sec:org02f3cde}
\label{sec:iff_pure_int}
Force sensors are added in series with the two actuators (Figure \ref{fig:system_iff}).
Two identical controllers \(K_F\) are used to feedback each of the sensed force to its associated actuator.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs-paper/system_iff.png}
\caption{\label{fig:system_iff}System with added Force Sensor in series with the actuators}
\end{figure}
\section{Plant Parameters}
\label{sec:orgd2d5c32}
Let's define initial values for the model.
\begin{minted}[]{matlab}
k = 1; % Actuator Stiffness [N/m]
c = 0.05; % Actuator Damping [N/(m/s)]
m = 1; % Payload mass [kg]
\end{minted}
\begin{minted}[]{matlab}
xi = c/(2*sqrt(k*m));
w0 = sqrt(k/m); % [rad/s]
\end{minted}
\section{Equations}
\label{sec:orgad8546b}
The sensed forces are equal to:
\begin{equation}
\begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} =
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k)
\begin{bmatrix} d_u \\ d_v \end{bmatrix}
\end{equation}
Which then gives:
\begin{important}
\begin{equation}
\begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} =
\bm{G}_{f}
\begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{equation}
\begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} =
\frac{1}{G_{fp}}
\begin{bmatrix}
G_{fz} & -G_{fc} \\
G_{fc} & G_{fz}
\end{bmatrix}
\begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{align}
G_{fp} &= \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 \\
G_{fz} &= \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 \\
G_{fc} &= \left( 2 \xi \frac{s}{\omega_0} + 1 \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)
\end{align}
\end{important}
\section{Comparison of the Analytical Model and the Simscape Model}
\label{sec:org5d37f2f}
The rotation speed is set to \(\Omega = 0.1 \omega_0\).
\begin{minted}[]{matlab}
W = 0.1*w0; % [rad/s]
\end{minted}
\begin{minted}[]{matlab}
open('rotating_frame.slx');
\end{minted}
And the transfer function from \([F_u, F_v]\) to \([f_u, f_v]\) is identified using the Simscape model.
\begin{minted}[]{matlab}
%% Name of the Simulink File
mdl = 'rotating_frame';
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/K'], 1, 'openinput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/G'], 1, 'openoutput'); io_i = io_i + 1;
\end{minted}
\begin{minted}[]{matlab}
Giff = linearize(mdl, io, 0);
%% Input/Output definition
Giff.InputName = {'Fu', 'Fv'};
Giff.OutputName = {'fu', 'fv'};
\end{minted}
The same transfer function from \([F_u, F_v]\) to \([f_u, f_v]\) is written down from the analytical model.
\begin{minted}[]{matlab}
Giff_th = 1/(((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))^2 + (2*W*s/(w0^2))^2) * ...
[(s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)) + (2*W*s/(w0^2))^2, - (2*xi*s/w0 + 1)*2*W*s/(w0^2) ; ...
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2];
\end{minted}
The two are compared in Figure \ref{fig:plant_iff_comp_simscape_analytical} and found to perfectly match.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_iff_comp_simscape_analytical.png}
\caption{\label{fig:plant_iff_comp_simscape_analytical}Comparison of the transfer functions from \([F_u, F_v]\) to \([f_u, f_v]\) between the Simscape model and the analytical one}
\end{figure}
\section{Effect of the rotation speed}
\label{sec:org17fee48}
The transfer functions from \([F_u, F_v]\) to \([f_u, f_v]\) are identified for the following rotating speeds.
\begin{minted}[]{matlab}
Ws = [0, 0.2, 0.7]*w0; % Rotating Speeds [rad/s]
\end{minted}
\begin{minted}[]{matlab}
Gsiff = {zeros(2, 2, length(Ws))};
for W_i = 1:length(Ws)
W = Ws(W_i);
Gsiff(:, :, W_i) = {1/(((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))^2 + (2*W*s/(w0^2))^2) * ...
[(s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)) + (2*W*s/(w0^2))^2, - (2*xi*s/w0 + 1)*2*W*s/(w0^2) ; ...
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2]};
end
\end{minted}
The obtained transfer functions are shown in Figure \ref{fig:plant_iff_compare_rotating_speed}.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_iff_compare_rotating_speed.png}
\caption{\label{fig:plant_iff_compare_rotating_speed}Comparison of the transfer functions from \([F_u, F_v]\) to \([f_u, f_v]\) for several rotating speed}
\end{figure}
\section{Decentralized Integral Force Feedback}
\label{sec:org2d5427a}
The decentralized IFF controller consists of pure integrators:
\begin{equation}
\bm{K}_{\text{IFF}}(s) = \frac{g}{s} \begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\end{equation}
The Root Locus (evolution of the poles of the closed loop system in the complex plane as a function of \(g\)) is shown in Figure \ref{fig:root_locus_pure_iff}.
It is shown that for non-null rotating speed, one pole is bound to the right-half plane, and thus the closed loop system is unstable.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_pure_iff.png}
\caption{\label{fig:root_locus_pure_iff}Root Locus for the Decentralized Integral Force Feedback controller. Several rotating speed are shown.}
\end{figure}
\chapter{Integral Force Feedback with an High Pass Filter}
\label{sec:orgf9854e9}
\label{sec:iff_pseudo_int}
\section{Plant Parameters}
\label{sec:org11b9a15}
Let's define initial values for the model.
\begin{minted}[]{matlab}
k = 1; % Actuator Stiffness [N/m]
c = 0.05; % Actuator Damping [N/(m/s)]
m = 1; % Payload mass [kg]
\end{minted}
\begin{minted}[]{matlab}
xi = c/(2*sqrt(k*m));
w0 = sqrt(k/m); % [rad/s]
\end{minted}
\section{Modified Integral Force Feedback Controller}
\label{sec:orgf920a8a}
Let's modify the initial Integral Force Feedback Controller ; instead of using pure integrators, pseudo integrators (i.e. low pass filters) are used:
\begin{equation}
K_{\text{IFF}}(s) = g\frac{1}{\omega_i + s} \begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\end{equation}
where \(\omega_i\) characterize down to which frequency the signal is integrated.
Let's arbitrary choose the following control parameters:
\begin{minted}[]{matlab}
g = 2;
wi = 0.1*w0;
\end{minted}
And the following rotating speed.
\begin{minted}[]{matlab}
Giff = 1/(((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))^2 + (2*W*s/(w0^2))^2) * ...
[(s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)) + (2*W*s/(w0^2))^2, - (2*xi*s/w0 + 1)*2*W*s/(w0^2) ; ...
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2];
\end{minted}
The obtained Loop Gain is shown in Figure \ref{fig:loop_gain_modified_iff}.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/loop_gain_modified_iff.png}
\caption{\label{fig:loop_gain_modified_iff}Loop Gain for the modified IFF controller}
\end{figure}
\section{Root Locus}
\label{sec:org911f45b}
As shown in the Root Locus plot (Figure \ref{fig:root_locus_modified_iff}), for some value of the gain, the system remains stable.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_modified_iff.png}
\caption{\label{fig:root_locus_modified_iff}Root Locus for the modified IFF controller}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_modified_iff_zoom.png}
\caption{\label{fig:root_locus_modified_iff_zoom}Root Locus for the modified IFF controller - Zoom}
\end{figure}
\section{What is the optimal \(\omega_i\) and \(g\)?}
\label{sec:org028e747}
In order to visualize the effect of \(\omega_i\) on the attainable damping, the Root Locus is displayed in Figure \ref{fig:root_locus_wi_modified_iff} for the following \(\omega_i\):
\begin{minted}[]{matlab}
wis = [0.01, 0.1, 0.5, 1]*w0; % [rad/s]
\end{minted}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_wi_modified_iff.png}
\caption{\label{fig:root_locus_wi_modified_iff}Root Locus for the modified IFF controller (zoomed plot on the left)}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_wi_modified_iff_zoom.png}
\caption{\label{fig:root_locus_wi_modified_iff_zoom}Root Locus for the modified IFF controller (zoomed plot on the left)}
\end{figure}
For the controller
\begin{equation}
K_{\text{IFF}}(s) = g\frac{1}{\omega_i + s} \begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\end{equation}
The gain at which the system becomes unstable is
\begin{equation}
g_\text{max} = \omega_i \left( \frac{{\omega_0}^2}{\Omega^2} - 1 \right) \label{eq:iff_gmax}
\end{equation}
While it seems that small \(\omega_i\) do allow more damping to be added to the system (Figure \ref{fig:root_locus_wi_modified_iff}), the control gains may be limited to small values due to \eqref{eq:iff_gmax} thus reducing the attainable damping.
There must be an optimum for \(\omega_i\).
To find the optimum, the gain that maximize the simultaneous damping of the mode is identified for a wide range of \(\omega_i\) (Figure \ref{fig:mod_iff_damping_wi}).
\begin{minted}[]{matlab}
wis = logspace(-2, 1, 100)*w0; % [rad/s]
opt_xi = zeros(1, length(wis)); % Optimal simultaneous damping
opt_gain = zeros(1, length(wis)); % Corresponding optimal gain
for wi_i = 1:length(wis)
wi = wis(wi_i);
Kiff = 1/(s + wi)*eye(2);
fun = @(g)computeSimultaneousDamping(g, Giff, Kiff);
[g_opt, xi_opt] = fminsearch(fun, 0.5*wi*((w0/W)^2 - 1));
opt_xi(wi_i) = 1/xi_opt;
opt_gain(wi_i) = g_opt;
end
\end{minted}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/mod_iff_damping_wi.png}
\caption{\label{fig:mod_iff_damping_wi}Simultaneous attainable damping of the closed loop poles as a function of \(\omega_i\)}
\end{figure}
\chapter{IFF with a stiffness in parallel with the force sensor}
\label{sec:orgc5ba04a}
\label{sec:iff_parallel_stiffness}
\section{Schematic}
\label{sec:orgc647af5}
In this section additional springs in parallel with the force sensors are added to counteract the negative stiffness induced by the rotation.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs-paper/system_parallel_springs.png}
\caption{\label{fig:system_parallel_springs}Studied system with additional springs in parallel with the actuators and force sensors}
\end{figure}
In order to keep the overall stiffness \(k = k_a + k_p\) constant, 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}
\section{Equations}
\label{sec:org0de17db}
\begin{important}
\begin{equation}
\begin{bmatrix} f_u \\ f_v \end{bmatrix} =
\bm{G}_k
\begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
\begin{equation}
\begin{bmatrix} f_u \\ f_v \end{bmatrix} =
\frac{1}{G_{kp}}
\begin{bmatrix}
G_{kz} & -G_{kc} \\
G_{kc} & G_{kz}
\end{bmatrix}
\begin{bmatrix} F_u \\ F_v \end{bmatrix}
\end{equation}
With:
\begin{align}
G_{kp} &= \left( \frac{s^2}{{\omega_0}^2} + 2\xi \frac{s}{{\omega_0}^2} + 1 - \frac{\Omega^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0}\frac{s}{\omega_0} \right)^2 \\
G_{kz} &= \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}^2} + 1 - \frac{\Omega^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0}\frac{s}{\omega_0} \right)^2 \\
G_{kc} &= \left( 2 \xi \frac{s}{\omega_0} + 1 - \alpha \right) \left( 2 \frac{\Omega}{\omega_0}\frac{s}{\omega_0} \right)
\end{align}
\end{important}
If we compare \(G_{kz}\) and \(G_{fz}\), we see that the spring in parallel adds a term \(\alpha\).
In order to have two complex conjugate zeros (instead of real zeros):
\begin{equation}
\alpha > \frac{\Omega^2}{{\omega_0}^2} \quad \Leftrightarrow \quad k_p > m \Omega^2
\end{equation}
\section{Plant Parameters}
\label{sec:orga1e1958}
Let's define initial values for the model.
\begin{minted}[]{matlab}
k = 1; % Actuator Stiffness [N/m]
c = 0.05; % Actuator Damping [N/(m/s)]
m = 1; % Payload mass [kg]
\end{minted}
\begin{minted}[]{matlab}
xi = c/(2*sqrt(k*m));
w0 = sqrt(k/m); % [rad/s]
\end{minted}
\section{Comparison of the Analytical Model and the Simscape Model}
\label{sec:orgbea84d1}
The same transfer function from \([F_u, F_v]\) to \([f_u, f_v]\) is written down from the analytical model.
\begin{minted}[]{matlab}
W = 0.1*w0; % [rad/s]
kp = 1.5*m*W^2;
cp = 0;
\end{minted}
\begin{minted}[]{matlab}
open('rotating_frame.slx');
\end{minted}
\begin{minted}[]{matlab}
%% Name of the Simulink File
mdl = 'rotating_frame';
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/K'], 1, 'openinput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/G'], 1, 'openoutput'); io_i = io_i + 1;
Giff = linearize(mdl, io, 0);
%% Input/Output definition
Giff.InputName = {'Fu', 'Fv'};
Giff.OutputName = {'fu', 'fv'};
\end{minted}
\begin{minted}[]{matlab}
w0p = sqrt((k + kp)/m);
xip = c/(2*sqrt((k+kp)*m));
Giff_th = 1/( (s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2)^2 + (2*(s/w0p)*(W/w0p))^2 ) * [ ...
(s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2, -(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p));
(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p)), (s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2 ];
Giff_th.InputName = {'Fu', 'Fv'};
Giff_th.OutputName = {'fu', 'fv'};
\end{minted}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_iff_kp_comp_simscape_analytical.png}
\caption{\label{fig:plant_iff_kp_comp_simscape_analytical}Comparison of the transfer functions from \([F_u, F_v]\) to \([f_u, f_v]\) between the Simscape model and the analytical one}
\end{figure}
\section{Effect of the parallel stiffness on the IFF plant}
\label{sec:orge9068cb}
The rotation speed is set to \(\Omega = 0.1 \omega_0\).
\begin{minted}[]{matlab}
W = 0.1*w0; % [rad/s]
\end{minted}
And the IFF plant (transfer function from \([F_u, F_v]\) to \([f_u, f_v]\)) is identified in three different cases:
\begin{itemize}
\item without parallel stiffness
\item with a small parallel stiffness \(k_p < m \Omega^2\)
\item with a large parallel stiffness \(k_p > m \Omega^2\)
\end{itemize}
The results are shown in Figure \ref{fig:plant_iff_kp}.
One can see that for \(k_p > m \Omega^2\), the systems shows alternating complex conjugate poles and zeros.
\begin{minted}[]{matlab}
kp = 0;
w0p = sqrt((k + kp)/m);
xip = c/(2*sqrt((k+kp)*m));
Giff = 1/( (s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2)^2 + (2*(s/w0p)*(W/w0p))^2 ) * [ ...
(s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2, -(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p));
(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p)), (s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2];
\end{minted}
\begin{minted}[]{matlab}
kp = 0.5*m*W^2;
k = 1 - kp;
w0p = sqrt((k + kp)/m);
xip = c/(2*sqrt((k+kp)*m));
Giff_s = 1/( (s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2)^2 + (2*(s/w0p)*(W/w0p))^2 ) * [ ...
(s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2, -(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p));
(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p)), (s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2];
\end{minted}
\begin{minted}[]{matlab}
kp = 1.5*m*W^2;
k = 1 - kp;
w0p = sqrt((k + kp)/m);
xip = c/(2*sqrt((k+kp)*m));
Giff_l = 1/( (s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2)^2 + (2*(s/w0p)*(W/w0p))^2 ) * [ ...
(s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2, -(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p));
(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p)), (s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2];
\end{minted}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/plant_iff_kp.png}
\caption{\label{fig:plant_iff_kp}Transfer function from \([F_u, F_v]\) to \([f_u, f_v]\) for \(k_p = 0\), \(k_p < m \Omega^2\) and \(k_p > m \Omega^2\)}
\end{figure}
\section{IFF when adding a spring in parallel}
\label{sec:org9f1e3df}
In Figure \ref{fig:root_locus_iff_kp} is displayed the Root Locus in the three considered cases with
\begin{equation}
K_{\text{IFF}} = \frac{g}{s} \begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
\end{equation}
One can see that for \(k_p > m \Omega^2\), the root locus stays in the left half of the complex plane and thus the control system is unconditionally stable.
Thus, decentralized IFF controller with pure integrators can be used if:
\begin{equation}
k_{p} > m \Omega^2
\end{equation}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_iff_kp.png}
\caption{\label{fig:root_locus_iff_kp}Root Locus}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_iff_kp_zoom.png}
\caption{\label{fig:root_locus_iff_kp_zoom}Root Locus}
\end{figure}
\section{Effect of \(k_p\) on the attainable damping}
\label{sec:orgcb7905c}
However, having large values of \(k_p\) may decrease the attainable damping.
To study the second point, Root Locus plots for the following values of \(k_p\) are shown in Figure \ref{fig:root_locus_iff_kps}.
\begin{minted}[]{matlab}
kps = [2, 20, 40]*m*W^2;
\end{minted}
It is shown that large values of \(k_p\) decreases the attainable damping.
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/root_locus_iff_kps.png}
\caption{\label{fig:root_locus_iff_kps}Root Locus plot}
\end{figure}
\begin{minted}[]{matlab}
alphas = logspace(-2, 0, 100);
opt_xi = zeros(1, length(alphas)); % Optimal simultaneous damping
opt_gain = zeros(1, length(alphas)); % Corresponding optimal gain
Kiff = 1/s*eye(2);
for alpha_i = 1:length(alphas)
kp = alphas(alpha_i);
k = 1 - alphas(alpha_i);
w0p = sqrt((k + kp)/m);
xip = c/(2*sqrt((k+kp)*m));
Giff = 1/( (s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2)^2 + (2*(s/w0p)*(W/w0p))^2 ) * [ ...
(s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2, -(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p));
(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p)), (s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2];
fun = @(g)computeSimultaneousDamping(g, Giff, Kiff);
[g_opt, xi_opt] = fminsearch(fun, 2);
opt_xi(alpha_i) = 1/xi_opt;
opt_gain(alpha_i) = g_opt;
end
\end{minted}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/opt_damp_alpha.png}
\caption{\label{fig:opt_damp_alpha}Attainable damping ratio and corresponding controller gain for different parameter \(\alpha\)}
\end{figure}
\chapter{Comparison}
\label{sec:org4714bd6}
\label{sec:comparison}
Two modifications to adapt the IFF control strategy to rotating platforms have been proposed.
These two methods are now compared in terms of added damping, closed-loop compliance and transmissibility.
\section{Plant Parameters}
\label{sec:org90a54af}
Let's define initial values for the model.
\begin{minted}[]{matlab}
k = 1; % Actuator Stiffness [N/m]
c = 0.05; % Actuator Damping [N/(m/s)]
m = 1; % Payload mass [kg]
\end{minted}
\begin{minted}[]{matlab}
xi = c/(2*sqrt(k*m));
w0 = sqrt(k/m); % [rad/s]
\end{minted}
The rotating speed is set to \(\Omega = 0.1 \omega_0\).
\begin{minted}[]{matlab}
W = 0.1*w0;
\end{minted}
\section{Root Locus}
\label{sec:orgf922463}
IFF with High Pass Filter
\begin{minted}[]{matlab}
wi = 0.1*w0; % [rad/s]
Giff = 1/(((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))^2 + (2*W*s/(w0^2))^2) * ...
[(s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2)) + (2*W*s/(w0^2))^2, - (2*xi*s/w0 + 1)*2*W*s/(w0^2) ; ...
(2*xi*s/w0 + 1)*2*W*s/(w0^2), (s^2/w0^2 - W^2/w0^2)*((s^2)/(w0^2) + 2*xi*s/w0 + 1 - (W^2)/(w0^2))+ (2*W*s/(w0^2))^2];
\end{minted}
IFF With parallel Stiffness
\begin{minted}[]{matlab}
kp = 5*m*W^2;
k = k - kp;
w0p = sqrt((k + kp)/m);
xip = c/(2*sqrt((k+kp)*m));
Giff_kp = 1/( (s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2)^2 + (2*(s/w0p)*(W/w0p))^2 ) * [ ...
(s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2, -(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p));
(2*xip*s/w0p + k/(k + kp))*(2*(s/w0p)*(W/w0p)), (s^2/w0p^2 + kp/(k + kp) - W^2/w0p^2)*(s^2/w0p^2 + 2*xip*s/w0p + 1 - W^2/w0p^2) + (2*(s/w0p)*(W/w0p))^2 ];
k = k + kp;
\end{minted}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/comp_root_locus.png}
\caption{\label{fig:comp_root_locus}Root Locus plot - Comparison of IFF with additional high pass filter, IFF with additional parallel stiffness}
\end{figure}
\section{Controllers - Optimal Gains}
\label{sec:org1889cfc}
In order to compare to three considered Active Damping techniques, gains that yield maximum damping of all the modes are computed for each case.
The obtained damping ratio and control are shown below.
\begin{center}
\begin{tabular}{lrr}
& Obtained \(\xi\) & Control Gain\\
\hline
Modified IFF & 0.83 & 1.99\\
IFF with \(k_p\) & 0.83 & 2.02\\
\end{tabular}
\end{center}
\section{Passive Damping - Critical Damping}
\label{sec:org81b0306}
\begin{equation}
\xi = \frac{c}{2 \sqrt{km}}
\end{equation}
Critical Damping corresponds to to \(\xi = 1\), and thus:
\begin{equation}
c_{\text{crit}} = 2 \sqrt{km}
\end{equation}
\begin{minted}[]{matlab}
c_opt = 2*sqrt(k*m);
\end{minted}
\section{Transmissibility And Compliance}
\label{sec:orge56633c}
\label{sec:comp_transmissibilty}
\begin{minted}[]{matlab}
open('rotating_frame.slx');
\end{minted}
\begin{minted}[]{matlab}
%% Name of the Simulink File
mdl = 'rotating_frame';
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/dw'], 1, 'input'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/fd'], 1, 'input'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/Meas'], 1, 'output'); io_i = io_i + 1;
\end{minted}
\begin{minted}[]{matlab}
G_ol = linearize(mdl, io, 0);
%% Input/Output definition
G_ol.InputName = {'Dwx', 'Dwy', 'Fdx', 'Fdy'};
G_ol.OutputName = {'Dx', 'Dy'};
\end{minted}
\subsection{Passive Damping}
\label{sec:orgc0de759}
\begin{minted}[]{matlab}
kp = 0;
cp = 0;
\end{minted}
\begin{minted}[]{matlab}
c_old = c;
c = c_opt;
\end{minted}
\begin{minted}[]{matlab}
G_pas = linearize(mdl, io, 0);
%% Input/Output definition
G_pas.InputName = {'Dwx', 'Dwy', 'Fdx', 'Fdy'};
G_pas.OutputName = {'Dx', 'Dy'};
\end{minted}
\begin{minted}[]{matlab}
c = c_old;
\end{minted}
\begin{minted}[]{matlab}
Kiff = opt_gain_iff/(wi + s)*tf(eye(2));
\end{minted}
\begin{minted}[]{matlab}
G_iff = linearize(mdl, io, 0);
%% Input/Output definition
G_iff.InputName = {'Dwx', 'Dwy', 'Fdx', 'Fdy'};
G_iff.OutputName = {'Dx', 'Dy'};
\end{minted}
\begin{minted}[]{matlab}
kp = 5*m*W^2;
cp = 0.01;
\end{minted}
\begin{minted}[]{matlab}
Kiff = opt_gain_kp/s*tf(eye(2));
\end{minted}
\begin{minted}[]{matlab}
G_kp = linearize(mdl, io, 0);
%% Input/Output definition
G_kp.InputName = {'Dwx', 'Dwy', 'Fdx', 'Fdy'};
G_kp.OutputName = {'Dx', 'Dy'};
\end{minted}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/comp_transmissibility.png}
\caption{\label{fig:comp_transmissibility}Comparison of the transmissibility}
\end{figure}
\begin{figure}[htbp]
\centering
\includegraphics[scale=1]{figs/comp_compliance.png}
\caption{\label{fig:comp_compliance}Comparison of the obtained Compliance}
\end{figure}
\chapter{Notations}
\label{sec:org61801fb}
\label{sec:notations}
\begin{center}
\begin{tabular}{llll}
& Mathematical Notation & Matlab & Unit\\
\hline
Actuator Stiffness & \(k\) & \texttt{k} & N/m\\
Actuator Damping & \(c\) & \texttt{c} & N/(m/s)\\
Payload Mass & \(m\) & \texttt{m} & kg\\
Damping Ratio & \(\xi = \frac{c}{2\sqrt{km}}\) & \texttt{xi} & \\
Actuator Force & \(\bm{F}, F_u, F_v\) & \texttt{F} \texttt{Fu} \texttt{Fv} & N\\
Force Sensor signal & \(\bm{f}, f_u, f_v\) & \texttt{f} \texttt{fu} \texttt{fv} & N\\
Relative Displacement & \(\bm{d}, d_u, d_v\) & \texttt{d} \texttt{du} \texttt{dv} & m\\
Resonance freq. when \(\Omega = 0\) & \(\omega_0\) & \texttt{w0} & rad/s\\
Rotation Speed & \(\Omega = \dot{\theta}\) & \texttt{W} & rad/s\\
Low Pass Filter corner frequency & \(\omega_i\) & \texttt{wi} & rad/s\\
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{llll}
& Mathematical Notation & Matlab & Unit\\
\hline
Laplace variable & \(s\) & \texttt{s} & \\
Complex number & \(j\) & \texttt{j} & \\
Frequency & \(\omega\) & \texttt{w} & [rad/s]\\
\end{tabular}
\end{center}
\printbibliography
\bibliography{ref}
\end{document}

BIN
matlab/matlab.zip Normal file

Binary file not shown.

114
matlab/preamble.tex Normal file
View File

@@ -0,0 +1,114 @@
\usepackage{float}
\usepackage{caption,tabularx,booktabs}
\usepackage{biblatex}
\usepackage{fontawesome}
\usepackage{caption}
\usepackage{subcaption}
\captionsetup[figure]{labelfont=bf}
\captionsetup[subfigure]{labelfont=bf}
\captionsetup[listing]{labelfont=bf}
\captionsetup[table]{labelfont=bf}
\usepackage{xcolor}
\definecolor{my-blue}{HTML}{6b7adb}
\definecolor{my-pale-blue}{HTML}{e6e9f9}
\definecolor{my-red}{HTML}{db6b6b}
\definecolor{my-pale-red}{HTML}{f9e6e6}
\definecolor{my-green}{HTML}{6bdbb6}
\definecolor{my-pale-green}{HTML}{e6f9f3}
\definecolor{my-yellow}{HTML}{dbd26b}
\definecolor{my-pale-yellow}{HTML}{f9f7e6}
\definecolor{my-orange}{HTML}{dba76b}
\definecolor{my-pale-orange}{HTML}{f9f0e6}
\definecolor{my-grey}{HTML}{a3a3a3}
\definecolor{my-pale-grey}{HTML}{f0f0f0}
\definecolor{my-turq}{HTML}{6bc7db}
\definecolor{my-pale-turq}{HTML}{e6f6f9}
\usepackage{inconsolata}
\usepackage[newfloat=true, chapter]{minted}
\usemintedstyle{autumn}
\setminted{frame=lines,breaklines=true,tabsize=4,fontsize=\scriptsize,autogobble=true,labelposition=topline,bgcolor=my-pale-grey}
\setminted[matlab]{label=Matlab}
\setminted[latex]{label=LaTeX}
\setminted[bash]{label=Bash}
\setminted[python]{label=Python}
\setminted[text]{label=Results}
\setminted[md]{label=Org Mode}
\setmintedinline{fontsize=\normalsize,bgcolor=my-pale-grey}
\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}
\newtcolorbox{seealso}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=See Also}
\newtcolorbox{hint}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=Hint}
\newtcolorbox{definition}{enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Definition}
\newtcolorbox{important}{ enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Important}
\newtcolorbox{exampl}[1][]{ enhanced,breakable,colback=my-pale-green,colframe=my-green,fonttitle=\bfseries,title=Example,#1}
\newtcolorbox{exercice}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Exercice}
\newtcolorbox{question}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Question}
\newtcolorbox{answer}{ enhanced,breakable,colback=my-pale-turq,colframe=my-turq,fonttitle=\bfseries,title=Answer}
\newtcolorbox{summary}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Summary}
\newtcolorbox{note}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Note}
\newtcolorbox{caution}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Caution}
\newtcolorbox{warning}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Warning}
\newtcolorbox{my-quote}[1]{%
colback=my-pale-grey,
grow to right by=-10mm,
grow to left by=-10mm,
boxrule=0pt,
boxsep=0pt,
breakable,
enhanced jigsaw,
borderline west={4pt}{0pt}{my-grey}}
\renewenvironment{quote}{\begin{my-quote}}{\end{my-quote}}
\newtcolorbox{my-verse}[1]{%
colback=my-pale-grey,
grow to right by=-10mm,
grow to left by=-10mm,
boxrule=0pt,
boxsep=0pt,
breakable,
enhanced jigsaw,
borderline west={4pt}{0pt}{my-grey}}
\renewenvironment{verse}{\begin{my-verse}}{\end{my-verse}}
\usepackage{environ}% http://ctan.org/pkg/environ
\NewEnviron{aside}{%
\marginpar{\BODY}
}
\renewenvironment{verbatim}{\VerbatimEnvironment\begin{minted}[]{text}}{\end{minted}}
\usepackage{soul}
\sethlcolor{my-pale-grey}
\let\OldTexttt\texttt
\renewcommand{\texttt}[1]{{\ttfamily\hl{\mbox{\,#1\,}}}}
\makeatletter
\preto\Gin@extensions{png,}
\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
\makeatother
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
allcolors = my-blue
}
\usepackage{hypcap}

View File

@@ -84,3 +84,11 @@
doi = {10.5281/zenodo.3894342},
year = 2020,
}
@article{dehaeze21_activ_dampin_rotat_platf_using,
author = {Thomas Dehaeze and Christophe Collette},
title = {Active Damping of Rotating Platforms Using Integral Force Feedback},
journal = {Engineering Research Express},
year = {2021},
url = {http://iopscience.iop.org/article/10.1088/2631-8695/abe803},
}