Open Access
Issue
A&A
Volume 624, April 2019
Article Number A99
Number of page(s) 18
Section Astronomical instrumentation
DOI https://doi.org/10.1051/0004-6361/201834981
Published online 18 April 2019

© S. Lacour et al. 2019

Licence Creative CommonsOpen Access article, published by EDP Sciences, under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

1. Introduction

GRAVITY (Gravity Collaboration 2017) is an instrument used on the Very Large Telescope Interferometer (VLTI) situated at the Cerro Paranal Observatory. It can combine the light from four telescopes. These telescopes can either be the four Auxiliary Telescopes (ATs, with a primary mirror diameter of 1.8 m) or the four Unit Telescopes (UTs, with a diameter of 8 m). The specifications of the instrument were derived from the most demanding science case, which was to observe microarcsecond displacements of the light source causing the flares of the supermassive black hole Sgr A* (Genzel et al. 2010, and references herein). Such astrometric measurements are possible with 100 m baselines (Shao & Colavita 1992; Lacour et al. 2014) and were recently demonstrated on-sky by Gravity Collaboration (2018a,b,c).

In its quiescent state, Sgr A* can become fainter than K = 18 mag. Therefore, measuring its position reliably requires an integration time on the order of minutes. To enable such long integration times, it is important to correct the atmosphere effects in real time. The higher-order atmospheric wavefront distortions are compensated for by an adaptive optics (AO) system. However, the AO systems do not sense, and therefore cannot correct, the differential phase between the telescopes. This is the role of the fringe tracker: a phase-referencing target (IRS 16C in the case of Sgr A*) is used as a guide star. In real time, the optical path differences (OPD) between each pair of telescopes are computed, and are used to control the displacement of mirrors on piezoelectric systems. This is the counterpart of the AO system, but at interferometric scale.

To push the comparison a little farther: without fringe tracking, interferometry requires short integration times and deconvolution techniques. This was the time of speckle imaging (Labeyrie 1970; Weigelt 1977), when using bispectrum and closure phases was a good but not really sensitive technique. With fringe tracking, optical interferometry enters a new age: long detector integration times (DIT up to 300 s) give access to faint sources (Kmag of 19) and to the possibility of combining spectral resolution (up to 4000) with milliarcsecond spatial resolution. This is the historical equivalent to the emergence of adaptive optics: it enables a new level of science.

Fringe tracking is not new, however. Small observatories demonstrated the concept, with PTI and CHARA (Berger & Monnier 2006). On the Keck Interferometer (Colavita et al. 2013), comparable astrophysical objectives (Woillez et al. 2012) pushed a similar development for phase referencing (Colavita et al. 2010). Previous projects also existed at the VLTI: at first, the FINITO fringe tracker (Le Bouquin et al. 2008) was used in combination with the AMBER instrument (Petrov et al. 2007). More recently, ESO developed the PRIMA fringe tracker (Delplancke et al. 2006).

However, unlike AO, fringe tracking was not yet mature, and many complex problems had to be investigated for GRAVITY. A first problem was how to deal with limited degrees of freedom (the piston actuators) while many more optical path differences are measured (Menu et al. 2012). A second problem, which does not exist in AO, is that the phase signals are known only modulo 2π. A third problem, partially addressed by the AO community (Petit et al. 2008; Poyneer & Véran 2010), is how to set a correct state space control system that optimally uses a Kalman filter to cancel the vibrations (Choquet et al. 2014). A fourth difficulty is that both group-delay (GD) and phase-delay (PD) tracking need to be used in a control system to keep the best of both. The last hurdle of the project consisted of dealing with multiple closing baselines, some of them resolved. The GRAVITY fringe tracker is now the best and most modern instrument in the field of fringe tracking for optical interferometry. Below we describe the algorithms and mechanisms.

This paper builds upon earlier works from Cassaing et al. (2008), Houairi et al. (2008), Lozi et al. (2011), Menu et al. (2012), and Choquet et al. (2014) 1. The Menu et al. (2012) paper theoretically describes modal control of the phase delay. The Choquet et al. (2014) paper simulates the expected performance of the Kalman controller. The present paper wraps up the series by presenting the final implementation on the VLTI. Section 2 is an overview of the technical implementation of the fringe tracker and is followed by Sect. 3, where the basis of the fringe sensing is defined by the observables. The control algorithm is presented in three sections: Sect. 4 defines the operational modes, Sect. 5 presents the group-delay controller, and Sect. 6 presents the phase-delay controller. Section 7 gives examples and statistics of on-sky observations. Last, Sect. 8 concludes the paper by a discussion of possible improvements to increase the sensitivity and accuracy of the fringe tracker.

2. Overview of the fringe-tracking system

2.1. Hardware

GRAVITY is equipped with two beam combiners (Perraut et al. 2018) that perform fringe tracking and scientific observations in the K band. GRAVITY has two main operational modes. In the on-axis mode, the light of one star is split 50:50, that is, equal portions of the flux go to the fringe tracking and to the scientific channel. In off-axis mode, the field is split into two with the help of a roof mirror: one of the two objects serves as fringe-tracking reference, while the scientific channel carries out longer integrations on the typically fainter science target (Pfuhl et al. 2010, 2012, 2014).

The two beam combiners are based on silica-on-silicium integrated optics (Malbet et al. 1999), optimized for 2 μm observations (Jocou et al. 2010). The beam combination scheme is pair-wise. Each telescope pair is combined using a static ABCD phase modulation. This means that for each of the six baselines, there are four outputs corresponding to a phase shift between the two beams of 0, π/2, π, and 3π/2 radians. The total 24 outputs of the beam combiner can be seen on the real time display (RTD) of the instrument. The relevant pixels are delimited by the green rectangles in Fig. 1. Within each rectangle, the flux is dispersed in six spectral channels. The 24 lines of rectangles correspond to the 24 outputs, while the two columns of rectangles correspond to the two linear polarizations.

thumbnail Fig. 1.

RTD of the SAPHIRA detector. The pixels in the green boxes are read by the fringe tracker and are used for tracking. They correspond to the six baselines, four ABCD outputs, two polarizations, and six wavelength channels. The names GV1 to GV4 correspond to the input beams. The values in yellow to the right correspond to the phase shift in degrees between the different ABCD outputs.

The detector is a HgCdTe avalanche photodiode array called SAPHIRA (Finger et al. 2016). It is running at 909 Hz, 303 Hz, or 97 Hz. It can also run at either low or high gain. The high gain corresponds to a gain of γ = 7 ADU per photodetection with a typical readout noise below σRON = 5 ADU (≈0.7 e) per pixel. The low gain does not amplify the photodetections (γ = 0.5 ADU/e) and is only used for very bright targets (K magnitudes below 5 on the UTs).

The flux is processed by a first local control unit (LCU) that yields values of the observables. The LCU is an Artesyn MVME6100 using an MPC7457 PowerPC®processor (Kiekebusch et al. 2010). The data are then transmitted to a second LCU by means of a distributed memory system called reflective memory network (RMN). This second LCU processes the observables to control four tip-tilt piston mirrors on piezoelectric actuators from Physik Instrument. Each actuator has its own position sensor, driven in closed loop. The cutoff frequency of the piezoelectric delay lines is then higher than 300 Hz, with a maximum optical path delay of 60 μm (Pfuhl et al. 2014).

Real-time monitoring of the fringe tracking, including live display, is done on a separate Linux workstation connected to the LCUs through the RMN. This workstation processes the data, computes the best-fit control parameters (including the Kalman parameters), and updates the control parameters of the second LCU (Abuter et al. 2016).

2.2. Software

The two LCUs use the VxWorks operating systems. The computation is done using the so-called tools for advanced control (TAC) framework, which uses the standard C language environment. The TAC processing is triggered synchronously with the SAPHIRA, following the predefined frequency of the detector.

The first LCU computes the necessary estimators for the controller:

  • Four flux values (Fi); see Sect. 3.2.

  • Six phase delays (Φi, j); see Sect. 3.3.

  • Six phase-delay variance (Var(Φi, j)); see Sect. 3.4.

  • Six group delays (Ψi, j); see Sect. 3.5.

  • Four closure phases (Θi, j, k); see Sect. 3.6.

Inside this LCU, only a few parameters can be changed: the number of DITs over which each of these quantities can be averaged. The default values are presented in Sect. 3.

The second LCU is in charge of controlling the piezo-mirrors for adequate fringe tracking. Figure 2 is a block diagram of the controller algorithm:

  • The group-delay control loop, based on an integrator controller, with a direct command to the piezo-actuator (in blue).

  • A feed-forward predictor, based on the action to the actuators, to increase the gain of the closed-loop system (in green).

  • The phase-delay Kalman controller (in red).

  • Two peripheral blocks for searching the fringes and adding a π modulation to the phase delay.

thumbnail Fig. 2.

Block diagram of the GRAVITY fringe-tracking controller. The gray area corresponds to the GRAVITY open-loop transfer function, and the rest corresponds to the two controllers. The group-delay integrator controller is shown in blue, the phase-delay state controller in red, and the actuators predictive model is plotted in green. The group-delay controller is the main controller: it continues to track the fringes even if the instantaneous S/N is too low for phase-delay tracking. The phase-delay state controller is a closed-loop system that determines the atmospheric perturbations X ̂ V $ \hat{\boldsymbol{X}}_V $. A proportional controller (K) corrects for the effect of the atmosphere. The last block of the group-delay controller, the quantization step, ensures that the group-delay control signal is always a multiple of 2π: the change in OPD caused by the group-delay controller is not seen by the phase-delay controller.

The dual architecture of the controllers is made to obtain both sensitivity and accuracy. In case of high signal-to-noise ratio (S/N), the Kalman filter can determine and predict the state of both atmospheric and vibrational perturbation for the best possible correction. In case of low S/N, the Kalman filter relies on its predictive model, which in the worst case, can be as simple as a constant value. In this case, the group-delay controller is still working efficiently and provides coherence instead of fringe tracking.

The third and last software element is on the Linux workstation. It is a python script that runs every 5 s on the last 40 s of data calculated on the first LCU. It computes the parameters that are then used by the second LCU, which does the real time control. It includes the parameters for the predictive control and the best gain for the Kalman filter.

3. Estimators of observables

3.1. Visibility extraction

The real-time processing load consists mostly of matrix multiplications. The pixel-to-visibility (P2VM) principle was first used for data reduction (Tatulli et al. 2007) on AMBER. AMBER used spatial modulation for fringe coding, but the formalism was subsequently adapted to work with ABCD beam combiners (Lacour et al. 2008). Using a similar notation, the relation between the incoming electric field Ei and the outgoing electric field Sk can be expressed as

S k = i T k , i E i , $$ \begin{aligned} S_k=\sum _i T_{k,i} E_i, \end{aligned} $$(1)

where Tk, i is the complex transfer function from the input i of the beam combiner to its output k. In the case of GRAVITY, imax = 4 and kmax = 24. Averaged over the DIT, the flux is then equal to the average of its instantaneous intensity:

| S k | 2 DIT = | n T k , i E i | 2 DIT , $$ \begin{aligned} \langle |S_k|^2 \rangle _{\rm DIT}= \langle \left|\sum _n T_{k,i} E_i\right|^2 \rangle _{\rm DIT}, \end{aligned} $$(2)

or alternatively, after decomposition:

| S k | 2 = R [ n | T k , i | 2 | E i | 2 + 2 i j > i T k , i T k , j E i E j ] . $$ \begin{aligned} \langle |S_k|^2 \rangle =\mathfrak{R} \left[ \sum _n |T_{k,i}|^2 \langle |E_i|^2 \rangle + 2 \sum _i\sum _{j>i} \langle T_{k,i} T_{k,j}^*E_i E_j^* \rangle \right]. \end{aligned} $$(3)

The temporal average of the electric field leads to two types of coherence losses. One depends on the optical path inside the beam combiner, the other on the spatial brightness distribution of the astrophysical object. The first, Ck, i, j, is intrinsic to the device and has to be calibrated. The second, Vi, j, is the reason why we built the interferometer. The relation with the mean electric field intensity is then approximated by the following equation:

T k , i T k , j E i E j = | T k , i T k , j | C k , i , j | E i | 2 | E j | 2 V i , j . $$ \begin{aligned} \langle T_{k,i} T_{k,j}^*E_i E_j^* \rangle = |T_{k,i} T_{k,j}^*| \ C_{k,i,j} \ \sqrt{\langle |E_i|^2 \rangle \langle |E_j|^2 \rangle } \, V_{i,j}. \end{aligned} $$(4)

Hence, Eq. (3) can be written as a matrix product:

( | S 1 | 2 | S 24 | 2 ) = R [ V2PM · ( | E 1 | 2 | E 2 | 2 | E 3 | 2 | E 4 | 2 | E 1 | 2 | E 2 | 2 V 1 , 2 | E 1 | 2 | E 3 | 2 V 1 , 3 | E 1 | 2 | E 4 | 2 V 1 , 4 | E 2 | 2 | E 3 | 2 V 2 , 3 | E 2 | 2 | E 4 | 2 V 2 , 4 | E 3 | 2 | E 4 | 2 V 3 , 4 ) ] , $$ \begin{aligned} \left( \begin{array}{c} \langle |S_1|^2 \rangle \\ \vdots \\ \langle |S_{24}|^2 \rangle \end{array} \right) = \mathfrak{R} \left[ \mathsf {V2PM} \cdot \left( \begin{array}{c} \langle |E_1|^2\rangle \\ \langle |E_2|^2\rangle \\ \langle |E_3|^2\rangle \\ \langle |E_4|^2\rangle \\ \sqrt{\langle |E_1|^2 \rangle \langle |E_2|^2 \rangle } V_{1,2}\\ \sqrt{\langle |E_1|^2 \rangle \langle |E_3|^2 \rangle } V_{1,3}\\ \sqrt{\langle |E_1|^2 \rangle \langle |E_4|^2 \rangle } V_{1,4}\\ \sqrt{\langle |E_2|^2 \rangle \langle |E_3|^2 \rangle } V_{2,3}\\ \sqrt{\langle |E_2|^2 \rangle \langle |E_4|^2 \rangle } V_{2,4}\\ \sqrt{\langle |E_3|^2 \rangle \langle |E_4|^2 \rangle } V_{3,4} \end{array} \right) \right] , \end{aligned} $$(5)

where, using as the transpose operator:

V2PM = ( | T 1 , 1 | 2 | T 24 , 1 | 2 | T 1 , 4 | 2 | T 24 , 4 | 2 | T 1 , 1 T 1 , 2 | C 1 , 1 , 2 | T 24 , 1 T 24 , 2 | C 24 , 1 , 2 | T 1 , 3 T 1 , 4 | C 1 , 3 , 4 | T 24 , 3 T 24 , 4 | C 24 , 3 , 4 ) . $$ \begin{aligned} \mathsf {V2PM} ^\top = \left( \begin{array}{ccc} |T_{1,1}|^2&\cdots&|T_{24,1}|^2 \\ \vdots&\ddots&\vdots \\ |T_{1,4}|^2&\cdots&|T_{24,4}|^2 \\ |T_{1,1}T_{1,2}^*| C_{1,1,2}&\cdots&|T_{24,1}T_{24,2}^*| C_{24,1,2}\\ \vdots&\ddots&\vdots \\ |T_{1,3}T_{1,4}^*| C_{1,3,4}&\cdots&|T_{24,3}T_{24,4}^*| C_{24,3,4} \\ \end{array} \right)\,. \end{aligned} $$(6)

Everything related to the transfer function of the instrument is inside the 10 columns and 24 rows of the 𝖵2𝖯𝖬 matrix. The 𝖵2𝖯𝖬 is calibrated during daytime on the internal source of the instrument. It is regularly computed for verification, but has been proven to be very stable over several months. It is part of the calibration files that are needed by the first LCU (Sect. 2.2).

The 𝖯2𝖵𝖬 is the pseudo-inverse matrix of V2PM. It can be obtained by splitting the 𝖵2𝖯𝖬 into real and imaginary parts, and taking the inverse using a singular-value decomposition (SVD). The 𝖯2𝖵𝖬 is used to retrieve the astrophysical information from the flux observed on the pixels. This information consists of the flux F and the coherent flux Γ. Both are computed from the pixel flux qk, λ and 𝖯2𝖵𝖬 according to Eq. (7):

( F 1 , λ F 4 , λ R [ Γ 1 , 2 , λ ] R [ Γ 3 , 4 , λ ] I [ Γ 1 , 2 , λ ] I [ Γ 3 , 4 , λ ] ) = P2VM λ · ( q 1 , λ q 24 , λ ) . $$ \begin{aligned} \left( \begin{array}{c} F_{1,\lambda }\\ \vdots \\ F_{4,\lambda }\\ \mathfrak{R} [ \Gamma _{1,2,\lambda } ]\\ \vdots \\ \mathfrak{R} [ \Gamma _{3,4,\lambda } ]\\ \mathfrak{I} [ \Gamma _{1,2,\lambda } ]\\ \vdots \\ \mathfrak{I} [ \Gamma _{3,4,\lambda } ] \end{array} \right) = \mathsf{P2VM} _\lambda \cdot \left( \begin{array}{c} q_{1,\lambda }\\ \vdots \\ q_{24,\lambda } \end{array} \right). \end{aligned} $$(7)

In the above equation, we used a slightly different nomenclature, which is used hereafter. qk, λ =< |Sk, λ|2 > is the number of photons observed over one DIT of the fringe tracker on a given pixel. Fi, λ =< |Ei, λ|2 > is the energy per DIT of the incoming beam i at wavelength λ. Last, the complex coherent flux Γi, j, λ corresponds to the visibility before normalization by the flux. It is obtained from the flux Fi, λ and the visibilities Vi, j, λ:

Γ i , j , λ = F i , λ F j , λ R [ V i , j , λ ] + i F i , λ F j , λ I [ V i , j , λ ] , $$ \begin{aligned} \Gamma _{i,j,\lambda }= \sqrt{F_{i,\lambda } F_{j,\lambda }} \ \mathfrak{R} [ V_{i,j,\lambda }] + i \sqrt{F_{i,\lambda } F_{j,\lambda }} \ \mathfrak{I} [ V_{i,j,\lambda }], \end{aligned} $$(8)

using F i , λ F j , λ = | E i | 2 | E j | 2 $ \sqrt{F_{i,\lambda} F_{j,\lambda}} = \sqrt{\langle |E_i|^2 \rangle \langle |E_j|^2 \rangle} $. All these values are computed in real time for each of the six wavelengths in the K band. In case of split polarization (when the Wollaston is inserted), the calculation is also done independently for both polarizations.

3.2. Flux estimator

The flux Fi is the value extracted after each DIT from Eq. (7), summed over the Nλ = 6 spectral channels:

F i = λ = 1 N λ F i , λ , $$ \begin{aligned} F_i = \sum _{\lambda =1}^{N_\lambda } F_{i,\lambda }, \end{aligned} $$(9)

where i corresponds to the input beam number.

3.3. Phase delay estimator

The phase delay Φi, j is derived from the complex coherent flux, but after a first step to correct for the phase curvature caused by the dispersion:

Γ i , j , λ = Γ i , j , λ exp ( i D [ 1 2.2 μ m λ ] 2 ) , $$ \begin{aligned} \Gamma _{i,j,\lambda }^{\prime }= \Gamma _{i,j,\lambda } \exp \left(iD\left[1-\frac{2.2\,\mu \mathrm{m}}{\lambda }\right]^2\right), \end{aligned} $$(10)

which is only a first-order approximation of the dispersion. It is caused both by the atmosphere and by the fibered differential delay lines (FDDL)2. Therefore, the corrective term D is a time-variable parameter that depends on the position of the star and the position of the FDDLs. The phase delay is then extracted by coherent addition of the six spectral channels:

Φ i , j = arg ( λ = 1 N λ Γ i , j , λ ) . $$ \begin{aligned} \Phi _{i,j} = \arg \left(\sum _{\lambda =1}^{N_\lambda } \Gamma _{i,j,\lambda }^{\prime }\right). \end{aligned} $$(11)

It is worth noting that the phase delay Φi, j is wrapped: it lies between −π and π. No unwrapping effort is made at this stage.

3.4. Phase variance estimator

Computing the S/N of the fringes is essential for the fringe tracker. It ensures that the controller does not track on noise. It is also needed for the state machine to know if it has the fringes locked or if it must start looking for the fringes elsewhere. The S/N is calculated from the variance of the phase delay: S / N i , j = 1 / Var ( Φ i , j ) $ S/N_{i,j}= 1/\sqrt{\mathrm{Var}(\Phi_{i,j})} $. For each DIT, from the photon and background noise, the variance on each pixel is estimated by the relation:

Var ( q i , λ ) = σ sky 2 + γ ( q i , λ q i , λ , sky ) , $$ \begin{aligned} \mathrm{Var}(q_{i,\lambda })=\sigma _{\rm sky}^2+\gamma ( q_{i,\lambda }- q_{i,\lambda , \mathrm{sky}} ), \end{aligned} $$(12)

where σsky and qi, λ, sky are the noise and flux, respectively, observed during sky observations. The term γ is the detector gain in ADU per detected photon. The covariance matrix of the real and imaginary part of the Γ terms can be obtained from the 𝖯2𝖵𝖬:

Σ Γ = P2VM λ · ( Var ( q 1 , λ ) Var ( q 24 , λ ) ) · P2VM λ , $$ \begin{aligned} \mathsf \Sigma _\Gamma = \mathsf {P2VM} _\lambda \cdot \left( \begin{array}{c} \mathrm{Var}(q_{1,\lambda })\\ \vdots \\ \mathrm{Var}(q_{24,\lambda }) \end{array} \right) \cdot \mathsf {P2VM} _\lambda ^\top , \end{aligned} $$(13)

where is the transpose operator. To save processing time, only the diagonal values of the variance matrix are calculated. They correspond to the variance of the real and imaginary parts of Γi, j, λ. This assumes that the covariance between the real and imaginary parts is negligible (a good assumption for an ABCD with phase shift of 0, π/2, π,  and 3π/2). In the end, for simplicity, we estimated the variance of the phase by the following equation:

Var ( Φ i , j ) = λ Var ( R Γ i , j , λ ) + Var ( I Γ i , j , λ ) 5 DIT 2 | λ Γ i , j , λ 5 DIT | 2 , $$ \begin{aligned} \mathrm{Var}(\Phi _{i,j})=\frac{\displaystyle { \sum _\lambda \langle \mathrm{Var}(\mathfrak{R} \Gamma _{i,j,\lambda } ) + \mathrm{Var}(\mathfrak{I} \Gamma _{i,j,\lambda } ) \rangle _{\rm 5 DIT} } }{ \displaystyle 2 \left| \sum _\lambda \langle \Gamma _{i,j,\lambda }^{\prime }\rangle _{\rm 5 DIT} \right|^2} , \end{aligned} $$(14)

which is the variance of the amplitude of the coherent flux averaged over five DIT. The five-DIT average is a way to increase the precision of the calculation. However, this is done at the expense of accuracy: the coherent averaging of the complex coherent flux can add a negative bias to the phase variance estimator.

3.5. Group delay estimator

The group delay, Ψi, j, is also obtained from the complex coherent flux. Because it consists of a differential measure of the phase as a function of wavelength, this estimator is more noisy than the phase delay (Lawson et al. 2000). To increase its S/N, for each one of the Nλ = 6 spectral channels, the Γi, j, λ is first corrected for dispersion, cophased, and averaged over 40 DITs. The result is then used to derive the group delay by multiplying the phasor of consecutive spectral channels:

Γ i , j , λ = Γ i , j , λ exp ( i Φ i , j ) 40 DIT $$ \begin{aligned} \Gamma _{i,j,\lambda }^{\prime \prime }&= \langle \Gamma _{i,j,\lambda }^{\prime }\exp (-i\Phi _{i,j}) \rangle _{\rm 40 DIT} \end{aligned} $$(15)

Ψ i , j = arg ( λ = 1 N λ 1 Γ i , j , λ + 1 Γ i , j , λ ) . $$ \begin{aligned} \Psi _{i,j}&= \arg \left( \sum _{\lambda =1}^{N_\lambda -1} \Gamma _{i,j,\lambda +1}^{\prime \prime }\Gamma _{i,j,\lambda }^{\prime \prime *} \right). \end{aligned} $$(16)

As for the phase delay, the group delay is estimated modulo 2π. In terms of optical path, however, Ψi, j corresponds to a value R times smaller than Φi, j, with R = 23, the spectral resolution of the GRAVITY fringe tracker. This is explicit in open-loop operation where the phase delay and group delay are compared for a response to top-hat piezo commands. Because both estimators wrap at 2π, this means that the estimator is valid over a long range equal to 23 times the wavelength. This is the main advantage of the group-delay estimator: to be able to find fringes far away from the central white-light fringe (the fringe of highest contrast). However, because it uses individual spectral channels, the group delay calculated on a single DIT would be extremely noisy. Thus the 40 DIT summation is a way to increase the S/N of the group delay, at the cost of losing response time. In the end, the group-delay estimator is a reliable, but slow, estimator of the optical path difference.

3.6. Closure-phase estimator

The closure phases, Θi, j, k, are calculated on all four triangles from the coherent flux. Before taking the argument, the bispectra are averaged over 300 DIT (corresponding to 330 ms at the fastest 909 Hz sampling rate). Closure phases are estimated from the phase delay:

Θ i , j , k PD = arg ( λ = 1 N λ Γ i , j , λ λ = 1 N λ Γ j , k , λ λ = 1 N λ Γ i , k , λ 300 DIT ) , $$ \begin{aligned} \Theta _{i,j,k}^\mathrm{PD}=\arg \left( \langle \sum _{\lambda =1}^{N_\lambda } \Gamma _{i,j,\lambda }^{\prime }\sum _{\lambda =1}^{N_\lambda } \Gamma _{j,k,\lambda }^{\prime }\sum _{\lambda =1}^{N_\lambda } \Gamma _{i,k,\lambda }^{\prime *} \rangle _{\rm 300 DIT} \right)\,, \end{aligned} $$(17)

but also from the group delay:

Θ i , j , k GD = arg ( λ = 1 N λ Γ i , j , λ λ = 1 N λ Γ j , k , λ λ = 1 N λ Γ i , k , λ 300 DIT ) . $$ \begin{aligned} \Theta _{i,j,k}^\mathrm{GD}=\arg \left( \langle \sum _{\lambda =1}^{N_\lambda } \Gamma _{i,j,\lambda }^{\prime \prime }\sum _{\lambda =1}^{N_\lambda } \Gamma _{j,k,\lambda }^{\prime \prime }\sum _{\lambda =1}^{N_\lambda } \Gamma _{i,k,\lambda }^{\prime \prime *} \rangle _{\rm 300 DIT} \right)\,. \end{aligned} $$(18)

They are observables modulo 2π, no unwrapping is intended.

4. State spaces, projections, and state machine

4.1. OPD-state space

A main difficulty for the fringe tracker consists of dealing with the different dimensions of the vectors involved. The number of phase observables is six. The number of delay lines is four. Last, the number of degrees of freedom is three. In Menu et al. (2012), we proposed an ℝ3 modal-state space orthogonal to the piston space. However, as also mentioned in Menu et al. (2012), this modal control has an important drawback: it cannot work in a degraded mode where one or more telescopes are missing. Instead, the GRAVITY controller uses the OPD-state space. In some sense, the implemented fringe tracker is a downgraded version of the state controller proposed in Menu et al. (2012). However, it facilitates managing flux drop-out as well as working with a reduced number of baselines.

4.2. Reference vectors

For the system to work properly, the OPD-state space must be colinear to the piston space. However, because the astronomical object is not necessarily a point source, the closure phases are not necessarily zero. Therefore, the OPD component orthogonal to the piston space must be removed from the measurement. This is done by subtracting a reference position, or set point, which is computed from the closure-phase estimators Θ i , j , k PD $ \Theta_{i,j,k}^{\mathrm{PD}} $ and Θ i , j , k GD $ \Theta_{i,j,k}^{\mathrm{GD}} $. Then, the error terms, that is, the differences between the measured OPD and the set points, are colinear to the piston space.

However, the devil is in the details. There are four closure phases, and only three can be used. The noisiest closure phase is therefore discarded. The three other closure phases are applied on the three edges of the triangle forming the noisiest closure phase. The reference vector is therefore defined as:

Ref Φ = ( Θ 1 , 2 , 4 PD Θ 1 , 3 , 4 PD 0 Θ 2 , 3 , 4 PD 0 0 ) or ( Θ 1 , 2 , 3 PD 0 Θ 1 , 3 , 4 PD 0 Θ 2 , 3 , 4 PD 0 ) or ( 0 Θ 1 , 2 , 3 PD Θ 1 , 2 , 4 PD 0 0 Θ 2 , 3 , 4 PD ) or ( 0 0 0 Θ 1 , 2 , 3 PD Θ 1 , 2 , 4 PD Θ 1 , 3 , 4 PD ) , $$ \begin{aligned} \mathbf{Ref_\Phi }= \left( \begin{array}{c} \Theta _{1,2,4}^\mathrm{PD}\\ \Theta _{1,3,4}^\mathrm{PD}\\ 0\\ \Theta _{2,3,4}^\mathrm{PD}\\ 0\\ 0 \end{array}\right)\mathrm{or} \left( \begin{array}{c} \Theta _{1,2,3}^\mathrm{PD}\\ 0\\ -\Theta _{1,3,4}^\mathrm{PD}\\ 0\\ -\Theta _{2,3,4}^\mathrm{PD}\\ 0 \end{array}\right)\mathrm{or}\left( \begin{array}{c} 0\\ -\Theta _{1,2,3}^\mathrm{PD}\\ -\Theta _{1,2,4}^\mathrm{PD}\\ 0\\ 0\\ \Theta _{2,3,4}^\mathrm{PD} \end{array}\right) \mathrm{or} \left( \begin{array}{c} 0\\ 0\\ 0\\ \Theta _{1,2,3}^\mathrm{PD}\\ \Theta _{1,2,4}^\mathrm{PD}\\ \Theta _{1,3,4}^\mathrm{PD} \end{array}\right), \end{aligned} $$(19)

depending on which triangle has the lowest S/N, from left to right, the 123, 124, 134, or 234 triangle. The reference values for the group delay are calculated similarly:

Ref Ψ = ( Θ 1 , 2 , 4 GD Θ 1 , 3 , 4 GD 0 Θ 2 , 3 , 4 GD 0 0 ) or ( Θ 1 , 2 , 3 GD 0 Θ 1 , 3 , 4 GD 0 Θ 2 , 3 , 4 GD 0 ) or ( 0 Θ 1 , 2 , 3 GD Θ 1 , 2 , 4 GD 0 0 Θ 2 , 3 , 4 GD ) or ( 0 0 0 Θ 1 , 2 , 3 GD Θ 1 , 2 , 4 GD Θ 1 , 3 , 4 GD ) . $$ \begin{aligned} \mathbf {Ref_\Psi} = \left( \begin{array}{c} \Theta _{1,2,4}^\mathrm{GD}\\ \Theta _{1,3,4}^\mathrm{GD}\\ 0\\ \Theta _{2,3,4}^\mathrm{GD}\\ 0\\ 0 \end{array}\right) \mathrm{or} \left( \begin{array}{c} \Theta _{1,2,3}^\mathrm{GD}\\ 0\\ -\Theta _{1,3,4}^\mathrm{GD}\\ 0\\ -\Theta _{2,3,4}^\mathrm{GD}\\ 0 \end{array}\right) \mathrm{or} \left( \begin{array}{c} 0\\ -\Theta _{1,2,3}^\mathrm{GD}\\ -\Theta _{1,2,4}^\mathrm{GD}\\ 0\\ 0\\ \Theta _{2,3,4}^\mathrm{GD} \end{array}\right) \mathrm{or} \left( \begin{array}{c} 0\\ 0\\ 0\\ \Theta _{1,2,3}^\mathrm{GD}\\ \Theta _{1,2,4}^\mathrm{GD}\\ \Theta _{1,3,4}^\mathrm{GD} \end{array}\right). \end{aligned} $$(20)

The closure-phase changes as a function of time, causing the reference position to adapt to any change in the phase closures. The closure phase is smoothed over a long enough time (300 DIT) to avoid adding additional noise. However, the choice of which triangle is the noisiest is made only once between each scientific frame to avoid sharp jumps in the reference vector over the integration time of the science detector.

This reference scheme works most of the time. However, problems arise in two specific instances. First, when the object is so highly resolved that the used closure phases contain a baseline with zero visibility. If that happens, an undefined reference value is applied to a perfectly sane baseline and the system can diverge. Second, if the fringe tracker is tracking on two unconnected baselines (e.g., between telescopes 1–2 and 3–4), the closure phases are undefined, and using their values would mean losing one of the two locked baselines. To resolve these two problems, the closure phases are modified as follows: if one of the baselines of any of ij, jk, or ik have an S/N below the value S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $, then Θ i , j , k PD $ \Theta_{i,j,k}^{\mathrm{PD}} $ used in Eq. (19) is a fixed value, and Θ i , j , k GD = 0 $ \Theta_{i,j,k}^{\mathrm{GD}}=0 $ is used in Eq. (20). The difference in treatment between the group and phase delay arises because the default group-delay tracking shall be zero, while the default phase-delay tracking can be any constant value.

4.3. Transfer matrices

After the reference values are subtracted from the OPD, we can freely project the data in piston-state space as well as back to the OPD-state space. Hereafter, we use the same nomenclature as in Menu et al. (2012). P corresponds to the four-dimension piston-state vector, while OPD corresponds to the six-dimension OPD-state vectors. The matrix M corresponds to the conversion between piston and optical path difference:

OPD = M P , $$ \begin{aligned} \mathbf {OPD} =\mathsf M \,\mathbf P , \end{aligned} $$(21)

where

M = ( 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 ) . $$ \begin{aligned} \mathsf M = \begin{pmatrix} -1&-1&-1&0&0&0\\ 1&0&0&-1&-1&0\\ 0&1&0&1&0&-1\\ 0&0&1&0&1&1 \end{pmatrix}^\top . \end{aligned} $$(22)

The conversion OPD → P is ill-constrained, however: the rank of matrix 𝖬 is 3, not 4. This is because the global piston cannot be obtained from the differences in the optical path. Nevertheless, we can define a pseudo-inverse matrix:

M = 1 4 ( 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 ) . $$ \begin{aligned} \mathsf M ^\dag =\frac{1}{4} \begin{pmatrix} -1&-1&-1&0&0&0\\ 1&0&0&-1&-1&0\\ 0&1&0&1&0&-1\\ 0&0&1&0&1&1 \end{pmatrix}. \end{aligned} $$(23)

where denotes the pseudo-inverse operator.

4.4. Thresholds and S/N management

The system uses two distinct thresholds. A first threshold, S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $, disables the baselines where the S/N is too low to make the baseline useful. This is the case when the fringes are not yet found, when the fringes are suddenly lost, or when the astronomical target is so highly resolved that the spatial coherence is close to zero. To detect these events, the S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $ is compared to a moving average of the phase-delay variance estimator: ⟨Var(Φi, j)⟩40 DIT. This group-delay threshold must be adapted to the target: it mustbe high enough to ensure that the fringe tracker does not track on side-lobes, but low enough to detect the fringes.

A second threshold, S / N threshold PD $ S/N_{\mathrm{threshold}}^{\mathrm{PD}} $, is used solely for the phase-tracking controller. It disables the tracking on a given telescope in case of rapid S/N drop-off. The main target of this threshold is to be able to catch a drop in flux injection (caused by external tip-tilt), with the expectation that the S/N will increase soon hereafter. Typically, S / N threshold PD = 1.5 $ S/N_{\mathrm{threshold}}^{\mathrm{PD}}=1.5 $ and S / N threshold PD < S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{PD}} < S/N_{\mathrm{threshold}}^{\mathrm{GD}} $.

Hence, we defined two matrices 𝕀 that convert OPD space error into a space of the same dimension colinear to the OPD space. They read

I GD 6 = M ( M W M ) GD M W $$ \begin{aligned} \mathbb{I} _{\rm GD}^6&=\mathsf M (\mathsf M ^\top \mathsf W \,\mathsf M )^{\dag _{\rm GD}}\,\mathsf M ^\top \mathsf W \end{aligned} $$(24)

I PD 6 = M ( M W M ) PD M W , $$ \begin{aligned} \mathbb{I} _{\rm PD}^6&=\mathsf M (\mathsf M ^\top \mathsf W \,\mathsf M )^{\dag _{\rm PD}}\,\mathsf M ^\top \mathsf W , \end{aligned} $$(25)

where the only difference is on the pseudo-inverse operator . In both equations, the 6 × 6 weighting matrix 𝖶 distributes the weights among the different OPDs:

W = diag ( w 1 , 2 w 1 , 3 w 1 , 4 w 2 , 3 w 2 , 4 w 3 , 4 ) , $$ \begin{aligned} \mathsf W =\mathrm{diag} \left(\!\!\!\begin{array}{cccccc} { w}_{1,2}&{ w}_{1,3}&{ w}_{1,4}&{ w}_{2,3}&{ w}_{2,4}&{ w}_{3,4} \\ \end{array}\!\!\!\right), \end{aligned} $$(26)

where

w i , j = { 0 if 1 / Var ( Φ i , j ) 40 DIT < | S / N threshold GD | 2 1 / Var ( Φ i , j ) otherwise . $$ \begin{aligned} { w}_{i,j}= {\left\{ \begin{array}{ll} 0&\mathrm{if}\,1/{\langle \mathrm{Var}(\Phi _{i,j}) \rangle _{\rm 40 DIT}} < |S/N_{\rm threshold}^\mathrm{GD}|^2 \\ 1/\mathrm{Var}(\Phi _{i,j})&\mathrm{otherwise} \end{array}\right.}. \end{aligned} $$(27)

This step is important to remove the risk of tracking on noise: if the variance of the phase reaches this threshold, the pseudo-inverse discards that baseline in its calculation. The pseudo-inversion is done using a SVD:

M W M = U S V . $$ \begin{aligned} \mathsf M ^\top \mathsf W \,\mathsf M = \mathsf U \mathsf S \mathsf V . \end{aligned} $$(28)

The idea behind this decomposition is that 𝖴 and 𝖵 are two invertible orthonormal matrices (the left-singular and right-singular eigenvectors, respectively): 𝖨 = 𝖴𝖴 and I = 𝖵𝖵 , where 𝖨 is the identity matrix. 𝖲 is a square diagonal matrix where the values on the diagonal correspond to the square root of the eigenvalues: 𝖲 = diag(s1, s2, s3, 0). For a four-telescope operation, three eigenvalues are non-zero. The number of non-zero eigenvalues decreases when the system cannot track all telescopes.

The pseudo-inverse of matrix S is calculated differently for the group-delay and phase-delay control loop. For the group-delay control loop, we have S GD =diag( s 1 GD , s 2 GD , s 3 GD ,0) $ \mathsf{S}^{\dag_{\rm GD}} = \mathrm{diag} ( s_1^{\dag_{\rm GD}} , s_2^{\dag_{\rm GD}} , s_3^{\dag_{\rm GD}} , 0) $, where

s i GD = { 1 / s i if s i > 0 0 otherwise . $$ \begin{aligned} s_i^{\dag _{\rm GD}} = {\left\{ \begin{array}{ll} 1/s_i&\mathrm{if}\,s_i > 0 \\ 0&\mathrm{otherwise} \end{array}\right.}. \end{aligned} $$(29)

For the phase-delay control loop, we have S PD =diag ( s 1 PD , s 2 PD , s 3 PD ,0) $ \mathsf{S}^{\dag_{\rm PD}} = \mathrm{diag}\,( s_1^{\dag_{\rm PD}}, s_2^{\dag_{\rm PD}}, s_3^{\dag_{\rm PD}}, 0) $, where

s i PD = { 1 / s i if s i > | S / N threshold PD | 2 s i / | S / N threshold PD | 4 otherwise . $$ \begin{aligned} s_i^{\dag _{\rm PD}} = {\left\{ \begin{array}{ll} 1/s_i&\mathrm{if}\,s_i > |S/N_{\rm threshold}^\mathrm{PD}|^2 \\ s_i / |S/N_{\rm threshold}^\mathrm{PD}|^4&\mathrm{otherwise} \end{array}\right.}. \end{aligned} $$(30)

As a result, the two matrices 𝕀 are calculated for each DIT from a new SVD and the equations

I GD 6 = M V S GD U M W $$ \begin{aligned} \mathbb{I} _{\rm GD}^6&=\mathsf M \mathsf V ^\top \mathsf S ^{\dag _{\rm GD}} \mathsf U ^\top \mathsf M ^\top \mathsf W \end{aligned} $$(31)

I PD 6 = M V S PD U M W , $$ \begin{aligned} \mathbb{I} _{\rm PD}^6&=\mathsf M \mathsf V ^\top \mathsf S ^{\dag _{\rm PD}} \mathsf U ^\top \mathsf M ^\top \mathsf W , \end{aligned} $$(32)

where the difference between the two is that the eigenvalues in I PD 6 $ \mathbb I_{\mathrm{PD}}^6 $ are weighted down when they are below a value equal to | S / N threshold PD | 2 $ |S/N_{\mathrm{threshold}}^{\mathrm{PD}}|^2 $.

4.5. State machine

The rank of matrix I GD 6 $ \mathbb I_{\mathrm{GD}}^6 $ (the number of non-zero eigenvalues) drives the decision-making of the state machine. For a four-telescope operation, a rank of 3 means that the position of the delay lines on all the telescopes is constrained. When only three telescopes are tracked, the rank is 2. The rank is 1 for two linked telescopes.

The state machine (Fig. 3) therefore has only three states: IDLE, SEARCHING, and TRACKING. When the operator starts the fringe tracker, it switches to the state SEARCHING. As soon as the rank of the I GD 6 $ \mathbb I_{\mathrm{GD}}^6 $ matrix is 3, the fringe tracker transitions to state TRACKING. When the rank of the matrix decreases and remains low for a period of 1 s or more, then the system automatically switches back to SEARCHING mode. In both states, the group-delay and phase-delay controllers are running. This means that whether in SEARCHING or TRACKING state, the system still tracks the fringes on the baselines with sufficient S/N.

thumbnail Fig. 3.

State machine of the fringe tracker. There are only three states: IDLE, SEARCHING, and TRACKING. The blue transitions are commands from the operator. The gray transitions are automatic decisions. Switching from searching to tracking only depends on the rank of the I GD 4 $ \mathbb I_{\mathrm{GD}}^4 $ matrix. If GRAVITY is running in a degraded mode, the TRACKING transition can happen for a rank of 2 or even 1.

5. Group delay tracking

5.1. Group-delay block diagram

Figure 2 represents the block diagram of the full control architecture. Within this design, the prevalent control loop is the group-delay loop (in blue). It has to be very reliable: the signal on the feedback signal Ψ is therefore enhanced by averaging over 40 DITs in Eq. (15). The control algorithm of the group delay is presented in Fig. 4. It generates a control signal uGD whose unit is the radian of the phase delay. It is made of seven distinct blocks that are described below.

thumbnail Fig. 4.

Block diagram of the group-delay controller. The controller is centered on an integrator (block 5), but also includes several features to work in conjunction with the phase-delay controller.

The measured group delay is a vector defined as

Ψ n = ( Ψ 1 , 2 Ψ 1 , 3 Ψ 1 , 4 Ψ 2 , 3 Ψ 2 , 4 Ψ 3 , 4 ) n . $$ \begin{aligned} {\boldsymbol{\Psi }}_n=\left(\!\! \begin{array}{cccccc} \Psi _{1,2}&\Psi _{1,3}&\Psi _{1,4}&\Psi _{2,3}&\Psi _{2,4}&\Psi _{3,4} \\ \end{array}\!\! \right)_n\,. \end{aligned} $$(33)

The first block is a comparator that extracts the error between a reference vector (RefΨ) and the measured group delay. The logic would be to have all six setpoints equal to zero to track on the white-light fringes. However, as explained in Sect. 4.2, this is not possible in the presence of non-zero group-delay closure phase ΘGD. The use of a setpoint vector as defined by Eq. (20) therefore ensures that all baselines track the fringes with the highest contrast that do not contradict each other:

ε Ψ , n = Ref Ψ Ψ n . $$ \begin{aligned} \boldsymbol{\varepsilon }_{{\boldsymbol{\Psi }},n} = \mathbf {Ref} _{\boldsymbol{\Psi }} - {\boldsymbol{\Psi }}_{n}. \end{aligned} $$(34)

The second block is there because the phase measurement is only known modulo 2π. Because εΨ, n can have any value, this block adds or subtracts an integer number of 2π to ensure that the error is between −π and π.

The third block uses the I GD 6 $ \mathbb I_{\mathrm{GD}}^6 $ matrix to weight the errors between the different baselines. Following that matrix, the OPD error vector is now strictly, in a mathematical sense, colinear to the piston space. Moreover, the error on any baseline with no fringes is either estimated from other baselines or set to zero. After the third block, the error group-delay vector is now

ε Ψ , n = I GD 6 ( [ Ref Ψ Ψ n ] % 2 π ) , $$ \begin{aligned} \boldsymbol{\varepsilon {^{\prime }_{\Psi }}}_{,n} = \mathbb{I} _{\rm GD}^6 ([ \mathbf {Ref_\Psi} - {\boldsymbol{\Psi }}_{n} ]\% 2\pi ), \end{aligned} $$(35)

where the percent sign corresponds to the modulo function.

The fourth block is a threshold function that quenches the gain of the control loop if the absolute value of εΨ,n is lower than 2π/R. This value corresponds to an OPD of one wavelength, meaning the group-delay controller cannot converge on an accuracy better than 2.2 μm. This is necessary to let the phase-delay controller track within a fringe:

ε Ψ , n = { ε Ψ , n π / R if ε Ψ , n > π / R ε Ψ , n + π / R if ε Ψ , n < π / R 0 otherwise . $$ \begin{aligned} \boldsymbol{\varepsilon {^{\prime \prime }_{\Psi }}}_{,n} = {\left\{ \begin{array}{ll} \boldsymbol{\varepsilon {^{\prime }_{\Psi }}}_{,n} - \pi /R&\mathrm{if} \ \boldsymbol{\varepsilon {^{\prime }_{\Psi }}}_{,n} > \pi /R \\ \boldsymbol{\varepsilon {^{\prime }_{\Psi }}}_{,n} + \pi /R&\mathrm{if} \ \boldsymbol{\varepsilon {^{\prime }_{\Psi }}}_{,n} < -\pi /R \\ 0&\mathrm{otherwise.} \end{array}\right.} \end{aligned} $$(36)

The fifth block is the integrator. In the time domain, it writes

u GD , n = u GD , n 1 + G GD ε Ψ , n . $$ \begin{aligned} {\boldsymbol{u^{\prime }\!}}_{\mathrm{GD} ,n}={\boldsymbol{u^{\prime }\!}}_{\mathrm{GD} ,n-1}+\mathsf G _{\rm GD}\,\boldsymbol{\varepsilon {^{\prime \prime }_{\Psi }}}_{,n}. \end{aligned} $$(37)

The same controller gain 𝖦GD is applied to all baselines. It minimizes the closed-loop response time and maximizes robustness. The open-loop transfer function is the same for each baseline. It is mostly a pure delay caused by the moving average of 40 DITs, as stated by Eq. (15) in Sect. 3.5. The −3 dB cutoff frequency therefore depends on the sampling rate of the fringe tracker. It is 13, 4.5, and 1.5 Hz for sampling rates of 909, 303, and 97 Hz, respectively.

The sixth block is the matrix M to transpose the control signal from OPD space to piston space.

The last block is a quantization function. Practically, it means that the group-delay controller, when it detected a group-delay error larger than a fringe, only makes 2π phase-delay jumps until it comes to the reference fringe, without disturbing the long-term phase measurement. The command issued from the group-delay controller is therefore for each piezo-actuator the closest value that is a multiple of 2π. Hence

u GD , n = round { 2 π } ( M u GD , n ) . $$ \begin{aligned} {\boldsymbol{u}}_{\mathrm{GD} ,n}= \mathrm{round} _{ \{ 2\pi \} } \left( \mathsf M ^\dag \, {\boldsymbol{u^{\prime }\!}}_{\mathrm{GD} ,n} \right)\,. \end{aligned} $$(38)

When MuGD, n is between −π and π, the control signal of the group-delay controller is constant, and the phase delay can work without interferences caused by the group-delay loop.

We note that the final control signal (as shown in Fig. 2) also includes the modulation function, the fringe-search function, and the phase-delay control signal:

u = u GD , n + u modulation + u search , n + u PD , n . $$ \begin{aligned} {\boldsymbol{u}} = {\boldsymbol{u}}_{\mathrm{GD} ,n} + {\boldsymbol{u}}_{\mathrm{modulation} } + {\boldsymbol{u}}_{\mathrm{search} ,n} +{\boldsymbol{u}}_{\mathrm{PD} ,n}. \end{aligned} $$(39)

5.2. Modulation function and 2π phase jumps

The rounding of the group-delay command ensures that the same phase is always tracked even though jumps between fringes are required when the white-light fringe is searched for. However, this means that the science detector always records the fringes at the same phase delay, and when the sky is not well subtracted, for example, this can bias the visibility. This can be explained in the case of a perfect ABCD beam combiner. Assuming the recorded flux on each one of the four pixels is qA, qB, qC, and qD, the 𝖯2𝖵𝖬 matrix calculates the raw complex visibility in this way:

V = q A q C + i ( q B q D ) . $$ \begin{aligned} V=q_A-q_C + i (q_B- q_D ). \end{aligned} $$(40)

When the sky removal on qA is not perfect, we have an additional flux that biases the measurement: A = qA + εA. To remove this error term, the solution is to record the fringes with π offsets:

V ̂ = q A + ε A q C + i ( q B q D ) $$ \begin{aligned} \hat{V}&=q_A+\varepsilon _A-q_C + i (q_B- q_D )\end{aligned} $$(41)

V ̂ π = q C + ε A q A + i ( q D q B ) , $$ \begin{aligned} \hat{V}_\pi&=q_C+\varepsilon _A-q_A + i (q_D- q_B), \end{aligned} $$(42)

giving

V ̂ V ̂ π 2 = 2 q A 2 q C + i ( 2 q B 2 q D ) 2 = V . $$ \begin{aligned} \frac{\hat{V}-\hat{V}_\pi }{2} = \frac{2q_A-2q_C+ i (2q_B- 2q_D)}{2}=V. \end{aligned} $$(43)

This temporal π modulation is added to the group-delay command (Fig. 5). It is not seen by the group-delay control loop because of the quenching block (block 4 in Fig. 4). This command is synchronized with the reset of the science detector, and it is sequentially:

u modulation = ( 0 0 0 0 ) or ( π / 2 π / 2 π / 2 π / 2 ) or ( π / 2 π / 2 π / 2 π / 2 ) or ( π / 2 π / 2 π / 2 π / 2 ) . $$ \begin{aligned} {\boldsymbol{u}}_{\mathrm{modulation} } = \left( \begin{array}{c} 0 \\ 0 \\ 0 \\ 0 \end{array}\right) \mathrm{or} \left( \begin{array}{c} \pi /2 \\ \pi /2 \\ - \pi /2 \\ - \pi /2 \end{array}\right) \mathrm{or} \left( \begin{array}{c} \pi /2 \\ - \pi /2 \\ \pi /2 \\ - \pi /2 \end{array}\right) \mathrm{or} \left( \begin{array}{c} \pi /2 \\ - \pi /2 \\ - \pi /2 \\ \pi /2 \end{array}\right). \end{aligned} $$(44)

thumbnail Fig. 5.

Upper panel: signal from the modulation block, in radians (the Volts-to-radians gain is not accounted for here). At each science exposure (here 5 s), the umodulation values change to make π offsets between the baselines. The signal repeats every four science exposures so that each baseline is observed with as many +π/2 as −π/2 offsets. Lower panel: modified sawtooth signal to search for fringes when the fringe tracker is in SEARCHING state. Here the research is made on all telescopes, meaning that the rank of matrix I GD 6 $ \mathbb I_{\mathrm{GD}}^6 $ is 0.

Only with a minimum of 4 DIT with each of the umodulation above can we have, on each baseline, as many exposures with 0 and π offsets. Therefore the number of science DITs within a GRAVITY exposure is recommended to be a multiple of 4.

5.3. Fringe search

The search is made through a modified sawtooth function of increasing amplitude (usaw). This function is started when the fringe tracker enters SEARCHING state. It is disabled when the system transition to TRACKING state. This is the only difference between the two modes. The same sawtooth function is generated for each piezo-actuator, but with different scaling factors: −2.75, −1.75, 1.25, and 3.25 for the first, second, third, and fourth beam, respectively. The four commands are then multiplied by the kernel of the I GD 4 $ \mathbb I_{\mathrm{GD}}^4 $ matrix. This matrix is computed as

I GD 4 = M I GD 6 M $$ \begin{aligned} \mathbb{I} _{\rm GD}^4 = \mathsf M \mathbb{I} _{\rm GD}^6 \mathsf M ^\dag \end{aligned} $$(45)

giving the following signal:

u search , n = ( I 4 I GD 4 ) ( 2.75 1.75 1.25 3.25 ) u saw , $$ \begin{aligned} {\boldsymbol{u}}_{\mathrm{search} ,n} = (\mathsf I ^4-\mathbb{I} _{\rm GD}^4) \left(\!\! \begin{array}{cccc} -2.75&-1.75&1.25&3.25 \end{array}\!\!\right)^\top u_\mathrm{saw} , \end{aligned} $$(46)

where 𝖨4 is the 4 × 4 identity matrix. This ensures that the baselines with sufficient fringe signal are tracking and are not modulated by the sawtooth function. When no more fringes are found, the kernel is the identity, and each baseline is modulated. This gives the trajectory shown in Fig. 5.

An example of fringe research and acquisition is presented in Fig. 6. In this example, at t = 0, the fringes are found and tracked on two baselines: the baseline between telescopes 1 and 3, and the baseline between telescopes 2 and 4. The group delay for the two fringes is zero, and the rank of the I GD 4 $ \mathbb I_{\mathrm{GD}}^4 $ matrix is 2. The fringe tracker is therefore in SEARCHING state. At t = 0.8 s, the fringes are found on baseline 34. The rank of the I GD 4 $ \mathbb I_{\mathrm{GD}}^4 $ matrix increases, and the system switches to TRACKING state. The group delays of baselines 12, 14, 23, and 34 are brought to zero. Signals are later found on all six baselines and the system reaches a nominal tracking state at t = 0 s.

thumbnail Fig. 6.

Phase Φi, j (upper panel) and group Ψi, j (lower panel) delays. All values are phases modulo 2π. The dashed lines correspond to the piezo command. From bottom to top, the phases correspond to baselines i, j equal to 12, 13, 14, 23, 24, and 34. At the beginning of this recording, the system only has fringes on two baselines (green and purple). At t = 0.8 s, the system found fringes on the yellow baseline, and later on all the other baselines. Gray areas correspond to the baselines whose S/N is below the value S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $, meaning that no tracking is performed. After t = 1.4 s, the system nominally tracks on all baselines.

6. Phase-delay tracking

6.1. Principle

The GRAVITY phase control loop uses both piston-space and OPD-space state vectors. This is the easiest way to properly handle both piezo-actuators and the atmosphere dynamics (Correia et al. 2008). The vibrations and atmospheric perturbations are represented by six OPD-space state vectors labeled together xV. Each vector corresponds to a baseline. The piezo-actuators are characterized by four piston-space state vectors xP, one for each delay line. The phase delay, Φn, is a vector of measured phases:

Φ n = ( Φ 1 , 2 Φ 1 , 3 Φ 1 , 4 Φ 2 , 3 Φ 2 , 4 Φ 3 , 4 ) n , $$ \begin{aligned} {\boldsymbol{\Phi }}_n=\left(\!\! \begin{array}{cccccc} \Phi _{1,2}&\Phi _{1,3}&\Phi _{1,4}&\Phi _{2,3}&\Phi _{2,4}&\Phi _{3,4} \\ \end{array}\!\! \right)_n, \end{aligned} $$(47)

which results from a linear combination of the state vectors xV, n and xP, n at a time n.

The real-time algorithm of the fringe tracker follows a sequence:

  1. It predicts the future state of the system from previous state using the equation of state (Sect. 6.2),

  2. It uses Kalman filtering to update the state vectors (Sect. 6.5), and

  3. It uses the system state to command the piezo-actuators to correct for vibrations and atmospheric effects. (Sect. 6.6).

The phase-delay controller is summarized by the block diagram presented in Fig. 7.

thumbnail Fig. 7.

Block diagram of the phase-delay controller. The two control signals uGD and uPD are summed before they are applied to the actuators. In this control scheme, the state vectors X ̂ V $ \hat{{\boldsymbol{X}}}_V $ are regulated. The control signal uPD is then issued from a matrix multiplication of the state vectors: u PD = K X ̂ V $ {\boldsymbol{u}}_{\mathrm{PD}}=\mathsf K \hat{{\boldsymbol{X}}}_V $.

6.2. Equations of state

The equations of state are

x V , n + 1 = A V · x V , n + B V · v n $$ \begin{aligned} {\boldsymbol{x}}_{V,n+1}&=\mathsf{A _V} \cdot {\boldsymbol{x}}_{V,n} + \mathsf{B _V} \cdot {\boldsymbol{v}}_n \end{aligned} $$(48)

x P , n + 1 = A P · x P , n + B P · u n , $$ \begin{aligned} {\boldsymbol{x}}_{P,n+1}&=\mathsf{A _P} \cdot {\boldsymbol{x}}_{P,n} + \mathsf{B _P} \cdot {\boldsymbol{u}}_n,\end{aligned} $$(49)

where each matrix is three-dimensional. Because we assumed uncorrelated baselines, only the diagonals are populated:

A V = diag ( A V 1 , 2 A V 1 , 3 A V 1 , 4 A V 2 , 3 A V 2 , 4 A V 3 , 4 ) $$ \begin{aligned} \mathsf A _V&=\mathrm{diag} \left(\!\! \begin{array}{cccccc} \mathsf A _V^{1,2}&\mathsf A _V^{1,3}&\mathsf A _V^{1,4}&\mathsf A _V^{2,3}&\mathsf A _V^{2,4}&\mathsf A _V^{3,4} \end{array}\!\!\right)\end{aligned} $$(50)

B V = diag ( B V 1 , 2 B V 1 , 3 B V 1 , 4 B V 2 , 3 B V 2 , 4 B V 3 , 4 ) $$ \begin{aligned} \mathsf B _V&=\mathrm{diag} \left(\!\! \begin{array}{cccccc} \mathsf B _V^{1,2}&\mathsf B _V^{1,3}&\mathsf B _V^{1,4}&\mathsf B _V^{2,3}&\mathsf B _V^{2,4}&\mathsf B _V^{3,4} \end{array}\!\!\right)\end{aligned} $$(51)

A P = diag ( A P 1 A P 2 A P 3 A P 4 ) $$ \begin{aligned} \mathsf A _P&=\mathrm{diag} \left(\!\! \begin{array}{cccc} \mathsf A _P^{1}&\mathsf A _P^{2}&\mathsf A _P^{3}&\mathsf A _P^{4} \end{array}\!\!\right)\end{aligned} $$(52)

B P = diag ( B P 1 B P 2 B P 3 B P 4 ) . $$ \begin{aligned} \mathsf B _P&=\mathrm{diag} \left(\!\! \begin{array}{cccc} \mathsf B _P^{1}&\mathsf B _P^{2}&\mathsf B _P^{3}&\mathsf B _P^{4} \end{array}\!\!\right). \end{aligned} $$(53)

Here the upper index corresponds to the telescope or baseline numbers. In the block diagram of Fig. 2, the equations of state are written in the frequency domain, but the transfer function writes

Z { x V , n } = B V z 1 1 A V z 1 Z { v n } $$ \begin{aligned} \mathcal{Z} \{{\boldsymbol{x}}_{V,n}\}&=\frac{\mathsf{B _V} \, z^{-1}}{1-\mathsf{A _V} \, z^{-1} } \mathcal{Z} \{{\boldsymbol{v}}_{n}\} \end{aligned} $$(54)

Z { x P , n } = B P z 1 1 A P z 1 Z { u n } . $$ \begin{aligned} \mathcal{Z} \{{\boldsymbol{x}}_{P,n}\}&=\frac{\mathsf{B _P} \, z^{-1}}{1-\mathsf{A _P} \, z^{-1} } \mathcal{Z} \{{\boldsymbol{u}}_{n}\}. \end{aligned} $$(55)

The evolution of the system is driven on one hand by white noise vn, and on the other hand by a user-controlled voltage applied to the piezo-actuators vn. When vn is white noise, xV, n has a colored noise, as highlighted by Eq. (54). The problem is similar for AO systems, where it has already been mentioned and corrected for (Poyneer & Véran 2010).

In Menu et al. (2012) and Choquet et al. (2014), we have shown that using several autoregressive (AR) models of order 2 in parallel was effective to correct for both vibration frequencies and atmospheric turbulence. However, practically, two issues made that implementation difficult: i) the determination of the vibration peaks for low S/N data, and ii) the need to change the space model when vibrations appear or disappear. Both problems can be technically resolved, but to ensure maximum robustness, we preferred a fixed well-defined space model. The idea is that the state xV do change with time, but the space-state model does not. We therefore used an autoregressive model of order 30. This means that the state-space model corresponds to the 30 last values of the phase delay:

A V i , j = ( v 1 i , j v 2 i , j v 3 i , j v 29 i , j v 30 i , j 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 ) $$ \begin{aligned} \mathsf A _V^{i,j} = \left(\!\! \begin{array}{cccccc} { v}_1^{i,j}&{ v}_2^{i,j}&{ v}_3^{i,j}&\cdots&{ v}_{29}^{i,j}&{ v}_{30}^{i,j} \\ 1&0&0&\cdots&0&0\\ 0&1&0&\cdots&0&0\\ 0&0&1&\cdots&0&0\\ \cdots&\cdots&\cdots&\cdots&\cdots&\cdots \\ 0&0&0&\cdots&1&0 \end{array}\!\!\right) \end{aligned} $$(56)

and

B V i , j = ( 1 0 0 0 0 ) . $$ \begin{aligned} \mathsf B _V^{i,j} =\left(\!\! \begin{array}{cccccc} 1&0&0&\cdots&0&0 \\ \end{array}\!\! \right)^\top . \end{aligned} $$(57)

The value 30 allows for complexity in the vibrational pattern while characterizing the perturbations with a sufficiently low degree of freedom. It was chosen in light of Kulcsár et al. (2012): they showed that it is a good compromise with respect to other state-space models to correct atmosphere and vibration for the tip-tilt of AO systems. The transfer matrix A V i,j $ A_V^{i,j} $ is determined every 5 s on a workstation that is connected on the reflective memory network.

The transmission matrix A P i $ A_P^i $ is also an autoregressive model, but of order 5. It includes the response function of the full system (image integration time, processing time, inertia of the piezo mirror, etc.), from setting a control voltage un to measuring a phase delay Φn. It is measured monthly by injecting a top-hat signal into the system. The matrix for the AR5 model verifies

A P i = ( a 1 i a 2 i a 3 i a 4 i a 5 i 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 ) $$ \begin{aligned} \mathsf A _P^{i} = \left(\!\! \begin{array}{ccccc} a_1^i&a_2^i&a_3^i&a_4^i&a_5^i \\ 1&0&0&0&0\\ 0&1&0&0&0\\ 0&0&1&0&0\\ 0&0&0&1&0 \end{array}\!\!\right) \end{aligned} $$(58)

and

B P i = ( 1 0 0 0 0 ) , $$ \begin{aligned} \mathsf B _P^i =\left(\!\! \begin{array}{ccccc} 1&0&0&0&0 \\ \end{array}\!\! \right)^\top , \end{aligned} $$(59)

where the a 0 i $ a_0^i $, a 1 i $ a_1^i $, a 2 i $ a_2^i $, a 3 i $ a_3^i $, and a 4 i $ a_4^i $ values, obtained experimentally on the fringe tracker are presented without normalization in Table 1. The same values can be represented in a Bode plot, see Fig. 8. The cutoff frequencies, calculated at a phase of −90°, are around 60 Hz. This is considerably below the bandwidth of the piezo-actuator measured by Pfuhl et al. (2010), who showed a cutoff frequency above 220 Hz. This is caused by the pure delays inside the system: detector integration time, processing time, and data transfer between the different units (LCUs). The static gain of the piezo G piezo i = k = 1 5 a k i $ G_{\mathrm{piezo}}^i=\sum_{k=1}^5 a_k^i $ is also an important property of the piezo-actuators because they are used both in the group- and phase-delay controllers. Practically, to remove the static gain of the control loop, and because u is in unit of OPD radians instead of Volts, the a k i $ a_k^i $ values are normalized by the static gain of the G piezo i $ G_{\rm piezo}^i $.

Table 1.

Open-loop transfer function parameters of the fringe tracker running at 909 Hz.

thumbnail Fig. 8.

Bode plot of the frequency response of the four pistons in open loop (including pure delay caused by integration and computation). The −90° cutoff frequencies are 61 Hz, 56 Hz, 54 Hz, and 59 Hz. The cutoff frequency is dominated by the pure delay caused by the control loop system.

6.3. Observation equation

The observable, Φn, depends on the state vectors of the piezo-actuators xP and on the state vectors of the atmosphere and vibrations xV. Both contribute to the phase delay. The equation for the measurement process of the phase delay is a linear combination of the two:

Φ n = M · C P x P , n C V x V , n + w n + Ref Φ , $$ \begin{aligned} {\boldsymbol{\Phi }}_{n}= \mathsf M \cdot \mathsf C _{P} {\boldsymbol{x}}_{\mathrm{P},n} - \mathsf C _{V} {\boldsymbol{x}}_{V,n} +{\boldsymbol{w}}_n + \mathbf {Ref} _{{\boldsymbol{\Phi }}} , \end{aligned} $$(60)

where wn is a white measurement noise and 𝖢V and 𝖢P are three-dimensional measurement matrices with two-dimensional matrices on the diagonal for the vibrations and the piezo-actuator, respectively:

C V i , j = ( 1 0 0 0 0 ) $$ \begin{aligned} \mathsf C _V^{i,j}=\left(\!\! \begin{array}{cccccc} 1&0&0&\cdots&0&0 \\ \end{array}\!\! \right) \end{aligned} $$(61)

C P i = ( 1 0 0 0 0 ) . $$ \begin{aligned} \mathsf C _P^i=\left(\!\! \begin{array}{ccccc} 1&0&0&0&0 \\ \end{array} \!\!\right). \end{aligned} $$(62)

In the case of a resolved astronomical target, the phase-delay vector Φn also includes a term that corresponds to the spatial signature of the target on the phase. It appears in the form of a non-zero closure phase (ΘPD ≠ 0) and is included in the phase delay by the term RefΦ, as defined in Eq. (19).

6.4. Parameter identification

The a1≤k≤5 predictive terms for each of the piezo-actuators are determined offline during dedicated calibration laboratory measurements. This is not the case for the identification of the v1≤k≤30 AR values. They are calculated on a distinct Linux workstation. The workstation senses in real time the phase delay that passes by the reflective network. Every 5 s, it collects the last 40 s of data (36 000 sample at 909 Hz) and computes the pseudo-open-loop phase delay ΦATM, n by removing the influence of the piezo command and closure phases. This phase delay corresponds to the phase delay produced by the atmosphere and the vibrations only:

Φ ATM , n = Φ n M · C P x P , n Ref Φ , $$ \begin{aligned} {\boldsymbol{\Phi }}_{\mathrm{ATM},n}= {\boldsymbol{\Phi }}_n - \mathsf M \cdot \mathsf C _{P} {\boldsymbol{x}}_{P,n} - \mathbf {Ref} _{{\boldsymbol{\Phi }}}, \end{aligned} $$(63)

from which it calculates the differences between consecutive values:

Δ Φ ATM , n = Φ ATM , n Φ ATM , n 1 . $$ \begin{aligned} {\boldsymbol{\Delta }} {\boldsymbol{\Phi }}_{\mathrm{ATM},n}= {\boldsymbol{\Phi }}_{\mathrm{ATM},n}- {\boldsymbol{\Phi }}_{\mathrm{ATM},n-1}. \end{aligned} $$(64)

The ΔΦATM, n differential phase values are then processed baseline after baseline to derive 29 p1≤i≤29 AR parameters that best represent the data. This uses the Python toolbox “Time Series Analysis”. The generated parameters ensure stationarity (Jones 1980) and thus provide stability to the closed-loop algorithm. Last, the v1≤i≤30 values are determined through

v i = p i p i 1 , $$ \begin{aligned} { v}_i=p_i-p_{i-1}, \end{aligned} $$(65)

after which the matrices 𝖠V and 𝖠P are sent by the RMN to the real-time LCU to adjust the parameters of the phase-delay controller.

6.5. Asymptotic Kalman filter

The vectors x ̂ V , n | n 1 $ \hat{\boldsymbol{x}}_{V,n|n-1} $ correspond to our best estimate of the state of the vibrations at a moment n from all the measurements available up to a time n − 1. It can be estimated from x ̂ V , n 1 $ \hat{\boldsymbol{x}}_{V,n-1} $ according to the equation of state in Eq. (48):

x ̂ V , n | n 1 = A V · x ̂ V , n 1 . $$ \begin{aligned} \hat{\boldsymbol{x}}_{V,n|n-1} = \mathsf A _V \cdot \hat{\boldsymbol{x}}_{V,n-1}. \end{aligned} $$(66)

However, the goal of the Kalman filter is to update this estimate from the error between the new observable and this new estimate. This error can be derived from the measurement process in Eq. (60) and writes

ε Φ , n = Ref Φ Φ n + M · C P x P , n C V · x ̂ V , n | n 1 , $$ \begin{aligned} \boldsymbol{\varepsilon {_{\Phi }}}_{,n}= \mathbf {Ref} _{\boldsymbol{\Phi }} - {\boldsymbol{\Phi }}_{n} + \mathsf M \cdot \mathsf C _{\rm P} {\boldsymbol{x}}_{\mathrm{P},n} - \mathsf C _{V} \cdot \hat{\boldsymbol{x}}_{V,n|n-1}, \end{aligned} $$(67)

which becomes, after wrapping around 0 (between −π and π) and baseline weighting,

ε Φ , n = I PD 6 . ( [ ε Φ , n ] % 2 π ) , $$ \begin{aligned} \boldsymbol{\varepsilon {^{\prime }_{\Phi }}}_{,n}= \mathbb{I} _{\rm PD}^6. ( \left[ {\boldsymbol{\varepsilon }}_{{\boldsymbol{\Phi }},n} \right] \% 2 \pi ), \end{aligned} $$(68)

where %2π corresponds to modulo 2π. The I PD 6 $ \mathbb I_{\mathrm{PD}}^6 $ matrix is here for two purposes. The first is to derive the errors on low S/N baselines through the baselines with higher S/N. The second purpose is to ensure that the low S/N data are either weighted down or discarded through the weighted pseudo-inversion in Eq. (32). The state estimator x ̂ V , n $ \hat{\boldsymbol{x}}_{V,n} $ is finally updated through an integrator:

x ̂ V , n = A V x ̂ V , n 1 + G PD · ε Φ , n . $$ \begin{aligned} \hat{\boldsymbol{x}}_{V,n} = \mathsf A _V \hat{\boldsymbol{x}}_{V,n-1} + \mathsf G _{\rm PD} \cdot \boldsymbol{\varepsilon {^{\prime }_{\Phi }}}_{,n}. \end{aligned} $$(69)

The gain 𝖦PD is not a scalar but a three-dimensional matrix. The correct estimate of 𝖠PD is the basis of Kalman filtering. In GRAVITY, it is not identified at each DIT, but every 5 s on the sensing Kalman workstation. Therefore, it is obtained from the asymptotic Kalman equations. It is calculated from the two covariance matrices of the measurement noise Σw and the steady-state error Σ (Poyneer & Véran 2010; Menu et al. 2012):

G PD = Σ C V ( C V Σ C V + Σ w ) 1 . $$ \begin{aligned} \mathsf G _{\rm PD}= \Sigma _\infty \mathsf C _V^\dag ( \mathsf C _V \Sigma _\infty \mathsf C _V^\dag + \Sigma _{ w})^{-1}. \end{aligned} $$(70)

The steady-state covariance matrix can be obtained from the algebraic Riccati equation, the vibrations input noise, and the vibration and atmospheric noise Σv:

Σ = A V Σ A V A V Σ C V ( C V Σ C V + Σ w ) 1 C V Σ A V + Σ v . $$ \begin{aligned} \Sigma _\infty = \mathsf A _V \Sigma _\infty \mathsf A _V^\dag - \mathsf A _V \Sigma _\infty \mathsf C _V^\dag ( \mathsf C _V \Sigma _\infty \mathsf C _V^\dag + \Sigma _{ w})^{-1} \mathsf C _V \Sigma _\infty \mathsf A _V^\dag +\Sigma _{ v}. \end{aligned} $$(71)

The noise characteristic (Σv, Σw) makes the Kalman filter optimally adapted to the average noise on the system, but not to instantaneous noise variations. Adaptability is the role of the I PD 6 $ \mathbb I_{\mathrm{PD}}^6 $ matrix in Eq. (68).

6.6. Determination of the control signal

To use the Kalman filter as a controller, an optimal command is needed. The purpose of this section is to determine the control signal uPD, n from the atmospheric state vectors: u PD , n = K x ̂ V $ {\boldsymbol{u}}_{ \mathrm{PD}, n} = \mathsf K \hat{\boldsymbol{x}}_{V} $. The task of this signal is twofold. First, it must cancel the atmospheric perturbations on the measured phase delay (ΦATM, n). Second, it must ensure that the phase delay converges to the group-delay control signal uGD, n + umodulation + usearch, n.

The first task uses the predictive power of the equation of state:

u PD , n = M C V A V n DIT x ̂ V , $$ \begin{aligned} {\boldsymbol{u}}_{ \text{ PD}, n} = \mathsf M ^\dag \mathsf C _V \mathsf A _V^{n_{\rm DIT}} \hat{\boldsymbol{x}}_{V}, \end{aligned} $$(72)

where A V n DIT $ \mathsf A_V^{n_{\mathrm{DIT}}} $ is the power of matrix 𝖠V over nDIT samples. The integer nDIT is there to account for the delay between control signal and its effect on the phase delay. Ideally, nDIT = 1, but because of the pure delay in the open-loop transfer function, it must be higher. This pure delay depends on the frequency of the fringe tracker. We currently use nDIT = 3 for the 909 Hz frequency and nDIT = 2 for the lowest frequencies.

The second task is achieved through the integrator in Eq. (69). This integrator updates the state vector of the atmospheric perturbations to minimize the error between estimation and observation. It causes the quantity εΦ, n to converge to zero: εΦ, n → ∞ = 0. From Eq. (67), we can derive

Φ n = Ref Φ + M · C P x P , n C V · x ̂ V , n . $$ \begin{aligned} {\boldsymbol{\Phi }}_{n \rightarrow \infty } = \mathbf {Ref} _{\boldsymbol{\Phi }} + \mathsf M \cdot \mathsf C _{P} {\boldsymbol{x}}_{P,n \rightarrow \infty } - \mathsf C _{V} \cdot \hat{\boldsymbol{x}}_{V,n \rightarrow \infty }. \end{aligned} $$(73)

Under a steady-state assumption, 𝖢PxP,n→∞ = un→∞ because the piezo-gains are normalized. From Eq. (72) we also have, under the same assumption, C V · x ̂ V , n = M · u PD , n $ \mathsf C_{V} \cdot \hat{\boldsymbol{x}}_{V,n \rightarrow \infty} = \mathsf M \cdot{\boldsymbol{u}}_{\mathrm{PD},n \rightarrow \infty} $ because the first row of 𝖠V is normalized. Hence, we have what we desire, i.e.,

Φ n = Ref Φ + M · ( u u PD , n ) $$ \begin{aligned} {\boldsymbol{\Phi }}_{n \rightarrow \infty }&= \mathbf {Ref} _{\boldsymbol{\Phi }} + \mathsf M \cdot ( {\boldsymbol{u}}_\infty - {\boldsymbol{u}}_{\mathrm{PD} ,n \rightarrow \infty } ) \end{aligned} $$(74)

= Ref Φ + M · ( u GD , n + u modulation + u search , n ) . $$ \begin{aligned}&= \mathbf {Ref} _{\boldsymbol{\Phi }} + \mathsf M \cdot ({\boldsymbol{u}}_{\mathrm{GD} ,n \rightarrow \infty } + {\boldsymbol{u}}_{\mathrm{modulation} } + {\boldsymbol{u}}_{\mathrm{search} ,n \rightarrow \infty }). \end{aligned} $$(75)

6.7. Why not a simpler state controller?

The block diagram presented in Fig. 2 shows the complexity of the fringe tracker. A simpler version was used during the first commissioning in 2016. The phase and group-delay controllers were both different. First, the group-delay control signal was not used to directly command the piezo-actuators, but instead, it was used as a setpoint for the phase-delay controller. Second, the phase-delay controller was a proportional-integral controller. It was efficient and robust and a good commissioning tool. However, at low S/N, its performance was not adequate. The reasons were that

  • the phase-delay estimator is noisy. The proportional controller (or worse, a derivative) directly injected the noise back into the control signal. This was especially problematic during flux dropouts when the S/N can be close to zero; and that

  • the phase delay is modulo 2π. It needs to be unwrapped with respect to a prediction. Using the setpoint as the prediction resulted in many fringe jumps during poor atmospheric conditions.

We therefore decided to have the group delay directly command the piezo, skipping the phase-delay controller. In parallel to the group-delay controller, we included a Kalman filter on the phase-delay feedback and used the predictive model to unwrap the phase (the vector εΦ,n). This gave the block diagram in Fig. 7.

7. On-sky observations

7.1. Operation

The simplicity of operating the fringe tracker lies in the simplicity of the state machine. With only three states, the operator interactions are limited to the transition between IDLE, SEARCH, and back to IDLE. When the fringes are detected, the system automatically switches to TRACKING and the instrument then starts recording data. However, there are two free parameters that could ask for the intervention of the operator: the S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $ and S / N threshold PD $ S/N_{\mathrm{threshold}}^{\mathrm{PD}} $ thresholds. An operational error could be, for example, to set a S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $ too low and risk having the fringe-tracker tracking on the second lobe of a fringe packet.

When the thresholds are correctly set, the system is made to be fully autonomous, and able to deal with any glitch of the VLTI. For example, Fig. 9 shows the fringe tracker losing telescope AT2 and how it recovered. The figures are the same plots as those available to the support astronomers during real-time GRAVITY operation. The data were captured and plotted at t = 0 s. At t = −6.39 s, the AT2 looses its pointing target, and the injected flux in the fiber drops. Immediately, the S/N level drops below the purple line, and the FT discontinues tracking on all the three baselines that include AT2. At this point, the system is still in TRACKING state. At t = −5.39 s, after a time delay of 1 s, the system switches to SEARCHING state, and the VLTI delay lines start following the sawtooth function. At t = −3.26 s, the system recovers the fringes on the AT2-AT1 baseline and starts centering them. At this point, the rank of the I GD 4 $ \mathbb I_{\mathrm{GD}}^4 $ matrix is back to 3 and the fringe tracker switches back to TRACKING state. At t = −3.12 s, the fringes are detected on all six baselines, and the system again tracks nominally.

In summary, the complexity of dealing with multiple baselines is hidden behind the I GD 6 $ \mathbb I_{\mathrm{GD}}^6 $ and I PD 6 $ \mathbb I_{\mathrm{PD}}^6 $ matrices presented in Sect. 4.4. From the user’s point of view, the fringe tracker transitions from SEARCHING to TRACKING state, but the engine behind the scene does not change the way it operates.

thumbnail Fig. 9.

Observation of star GJ 65 A on 21 November 2018. This example shows the case of a glitch on the AT2 adaptive optics system that resulted in the loss followed by the recovery of the fringe by the fringe tracker. Upper two panels: fringe tracker phase Φi, j and group delay Ψi, j estimators. The color lines correspond to each of the six baselines. The π/2 phase jumps at −7 and −1.5 s are normal and correspond to the modulation synchronized with the 5 s DIT science camera (the high spectral resolution detector). The gray areas correspond to detection of low S/N fringes by the controller. Lower left panels: S/N for each of the baselines calculated as the inverse of the square root of the phase variance ( 1 / Var ( Φ i , j ) $ 1/\sqrt{\mathrm{Var}(\Phi_{i,j})} $). The horizontal red lines correspond to the group-delay threshold ( S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $). If the black line dips below the red line, the FT stops tracking on that baseline. The horizontal purple lines correspond to the phase-delay threshold ( S / N threshold PD $ S/N_{\mathrm{threshold}}^{\mathrm{PD}} $). Lower center panel: flux Fi. Similarly, the red line is a threshold made by a moving average of all flux, which is used to detect the loss of a telescope. Lower right panels: commands to the piezo-actuators and VLTI delay line actuators. The piezo-actuators take care of the fast control signal, while the VLTI delay lines are used to offload and to search for fringes over large distances.

7.2. Sensitivity

The sensitivity is mostly a question of having enough photons on the detector to generate a feedback signal for the fringe tracker. In Fig. 10 we plot the flux versus magnitude of calibrators observed with GRAVITY during a period covering June 2017 to November 2018. The selection of the files with a tracking ratio above 80% leads to a total of 1117 exposures on 473 distinct calibrators. The orange dots correspond to the 814 AT observations. The others correspond to the MACAO (visible AO) and CIAO (infrared AO) UTs observations. The solid lines correspond to a total transmission of 1% from telescope to the fringe-tracker detector. The dashed lines correspond to the theoretical detector noise, scaled by N p $ \sqrt{N_p} $, with Np the total number of pixels divided by the number of telescopes.

thumbnail Fig. 10.

Transmission plot, i.e., photons detected on the GRAVITY FT receiver, per telescope and per second, as a function of the K-band magnitude (tracking ratio > 80%). The magnitudes of the targets are obtained from SIMBAD. Most of the observations are made on-axis, meaning that 50% of the flux is lost because of the beam splitter. However, the many K = 9.7 mag CIAO observations are taken off-axis, hence the higher flux. Targets observed with ATs can be as faint as 10 mag. Based on this plot, it is clear that because the flux observed with the UTs is more than 10 times higher, observations will be possible up to K = 13 mag.

On the ATs, the faintest target observed so far was TYC 5058-927-1, a star with K = 9.4 mag. It was observed in the night of 5 April 2017, when the atmospheric conditions were excellent: seeing down to 0.4″ and coherence time up to 12 ms. The observations were made in single-field mode, where only half the flux is sent to the fringe tracker. The fringe tracker efficiently tracked the fringes throughout the entire exposure time, at a frequency rate of 97 Hz, with OPD residuals between 250 and 350 nm.

Technically, if we were to extrapolate to the UTs the sensitivity observed on the ATs, we should be able to track stars of K magnitudes up to 12.5. However, the faintest star observed with the fringe tracker on the UTs so far is TYC 7504-160-1, a star with K = 11.1 mag. It was observed in the night of 2 July 2017 during good atmospheric condition: seeing between 0.4″ and 0.6″, coherence time between 4 and 7 ms. The frequency rate was 303 Hz, with OPD residuals between 350 and 400 nm. The relatively low UT sensitivity is still not understood. One explanation could be that the 97 Hz integration time cannot be used: the fringe contrast is attenuated by the vibrations of the UT structure. Another explanation could come from moderate AO performances. With a low Strehl ratio, difficulties in injecting the light in the fibers decrease the number of available photons, but also create flux drops that decrease the visibility and complicate the fringe tracking. One last possibility is a selection effect caused by the lower availability of the UTs.

7.3. Signal-to-noise ratio

The limit for fringe tracking could in theory be an S/N of 1 per coherence time. Below that number, the phase varies faster than our ability of measuring it: our knowledge of the phase decrease with time, hindering the convergence of the fringe tracker. However, practically, we observed that an S/N of 1.5 per DIT is required to keep the fringes in the coherence envelope. The signal is proportional to the number of coherent photons received. The noise is created by quantum noise on one hand and the background noise on the other hand. At 909, 303, and 97 Hz, we measured during sky observations a standard deviation of σsky = 4, 5, and 8 ADU per pixel, respectively. These values come from the quadratic sum of the noises caused by the scattered metrology light (7 ADU at 97 Hz), the sky and environmental background (6 ADU at 97 Hz), and the read-out noise (4 ADU).

The detector variance observed during sky observations is used to compute the real-time S/N shown in the lower left panel of Fig. 9. In Fig. 11, for a dataset covering the seven months between April and November, we have plotted this S/N as a function of the measured flux. The three solid lines correspond to the theoretical S/N calculated from σsky and photon noise. These values lie below these theoretical lines because of a loss of visibility contrast. This can be caused either by non-equilibrium of the flux between the different telescopes, or by OPD variations within a DIT of the fringe tracker detector.

thumbnail Fig. 11.

Signal-to-noise ratio as a function of detected photon per telescope per DIT. The S/N is the computed by the real-time computer, defined by 1 / Var ( Φ i , j ) $ 1/\sqrt{\mathrm{Var}(\Phi_{i,j})} $ , as stated in Eq. (14). The three colors correspond to the three different frame rates of the fringe tracker. The solid lines correspond to theoretical values assuming 100% fringe contrast. The vertical lines are theoretical flux assuming observations on UTs with 1% throughput. The horizontal line corresponds to an S/N of 1.5.

The vertical lines correspond to the flux of a star of K magnitude of 8, 12, and 16 observed with the UTs under the assumption of 1% throughput. The drop at low flux of the theoretical S/N curves correspond to the effect of the observed sky noise. This noise is mostly detector noise at high frequency, and a combination of background and metrology noise at low frequency. The dotted lines are theoretical computations of the noise assuming only photon noise. Under this assumption, 1% throughput, and 100% visibilities, the UT sensitivity could technically reach magnitudes up to K = 16 mag.

7.4. OPD residuals and S/N

The fringe tracker performance degrades when the limiting sensitivity is approached. This is partly because the phase-delay control-loop gain decreases at low S/N because of the weighted inversion of matrix 𝖲PD in Eq. (32). This is also partly caused by the difficulty of estimating the correct fringe-tracking state from a noisy measurement. This decrease in performance is shown in Fig. 12 for the same dataset as presented in Fig. 11. Concretely, below a S/N of 4, the residuals are above 300 nm. These residual include the variance caused by the measurement noise, which is equal to λ/(2πS/N): ≈90 nm for a S/N of 4. The fringe tracker residual does not correct the phase to that level, however: the residual remains a factor 2 or 3 above that value. At an even lower S/N (<3), the Kalman filter has problems to identify the state of the atmosphere and sometimes cannot update them fast enough. Fringe tracking is then only possible when the atmosphere varies slowly, when the atmospheric conditions are best.

thumbnail Fig. 12.

OPD residuals as a function of the fringe tracker S/N. Above an S/N of 10, the best fringe-tracking residuals are limited to a constant value around 80 nm, caused by the intrinsic bandpass of the fringe tracker hardware (dashed line). At lower S/N, the fringe tracker performance decreases because it is difficult to predict and track the evolution of the perturbations. The phase error caused by a readout noise on the phase goes as λ/(2π S/N) (lower dotted line). The actual performances of the fringe tracker shows that the degradation is more likely a factor 2 or 3 above that limit.

7.5. OPD residuals and τ0

At high S/N (≤10), the accuracy of the fringe tracking depends on several environmental parameters: vibrations, wind speed, seeing conditions and coherence time (τ0). Between wind seeing and coherence time, Lacour et al. (2018) showed that the strongest correlation is observed with τ0. Using the same dataset as in Fig. 10 and using only the calibrators observed at 909 Hz, we plot in Fig. 13 the OPD residuals as a function of the coherence time as observed by the ESO site monitor at 500 nm. On average, the ATs perform better, with a median residual of 150 nm. Under the best conditions, the OPD residuals can be as low as 75 nm. The UTs residuals are higher, with a median value of 250 nm, and a minimum at 180 nm.

thumbnail Fig. 13.

OPD residuals as a function of coherence time (at 500 nm) for all calibrators and GC data taken between July 2017 and November 2018 in the 909 Hz mode. The dashed vertical lines correspond to the first quintile (3 ms) and last quintile (7 ms) of the coherence time distribution as observed by the ESO astronomical site monitor (ASM) at visible wavelength. The thick lines correspond to the first and last quintile of the OPD residual distribution (purple for UTs and red for ATs). The median fringe-tracking residuals are 150 nm on the ATs and 250 nm on the UTs.

Depending on the seeing conditions, the fringe tracker shows different limitations. In the worst atmospheric conditions, which make up 20%, (τ0 <  3 ms), the UT and AT performances are limited by the coherence time of the atmosphere. Under these conditions, 20% of all observations have OPD residuals above 380 nm. The consequence is then that the jitter of the phase significantly affects the visibility in the science channel with long integration times. We can show that this contrast loss can be directly estimated from the variance of the phase according to the relation

V residuals = exp ( i Φ ) = exp ( σ Φ 2 / 2 ) . $$ \begin{aligned} V_{\rm residuals}= \langle \exp \, ( i \Phi ) \rangle = \exp \, (-\sigma ^2_\Phi /2) \,. \end{aligned} $$(76)

With 380 nm rms jitters (σΦ ≈ 1.1 rad), the contrast of the fringes of the science detector will only be at Vresiduals ≈ 55% of its maximum.

During the best 20% of atmospheric conditions (τ0 >  7 ms), however, the fringe tracker can reach very low residuals. On the ATs, 80% of all observations are below 140 nm (Vresiduals >  93%). However, on the UTs, the environmental vibrations cause the residuals to remain between 220 and 320 nm. The explanation is the higher level of vibrations observed on the UTs.

7.6. Power spectral density

In Figs. 14 and 15 we show the power spectral density of the OPD for two astronomical objects: IRS 16C observed with UTs, and GJ 65 observed with ATs. The observation conditions are listed in Table 2. The IRS 16C galactic center target was observed with the CIAO off-axis AOs. The conditions were good to excellent, and the residual OPD was around 220 nm over the entire duration of the observations. The GJ 65 binary was also observed in good seeing conditions, without AO, and OPD residuals of 140 nm.

thumbnail Fig. 14.

Power spectrum density and cumulative sum of the power spectrum density of phase residuals (2.2 μm/2π × Φn) toward target IRS 16C. The red curves are the pseudo-open-loop values, i.e., in the hypothesis of no fringe tracker (2.2 μm/2π × ΦATM, n). The blue curves correspond to power spectral densities of 1 f−2μm2/Hz and 0.001 μm2/Hz. The six lower plots are the reverse cumulative sum of the power spectrum. At zero frequency, the sum reaches 220 nm on average over the six baselines.

thumbnail Fig. 15.

Same as in Fig. 14, except for the binary star GJ 65, which was observed with the ATs. The fringe-tracking residuals are 140 nm, lower than what is observed with the UTs. The main difference is the lower level of vibrations in the 10−100 Hz range.

Table 2.

GRAVITY dataset plotted in Figs. 14 and 15.

To compute the power spectral density, the phase delay Φn is unwrapped and the π/4 modulation function removed. The pseudo-open-loop phase delay ΦATM, n is then computed from Eq. (63) using the piezo transfer function estimated during calibration. In Figs. 14 and 15, the six upper plots correspond to the square root of the power spectral density. The black curves correspond to the measured OPD estimated from the phase delay Φ, and the red curves show the power spectrum of the reconstructed atmosphere ΦATM, n. The atmospheric power spectrum (which also includes the vibrations) shows, as expected, the prevalence of the low frequencies in the atmospheric perturbations. Below 10 Hz, the power spectral density fits the relation

PSD Φ ATM , n ( f < 10 Hz ) = 1 f 2 μ m 2 Hz 1 , $$ \begin{aligned} {\mathrm{PSD}_{{\boldsymbol{\Phi }}_{\mathrm{ATM},n}}}(f < 10\,\mathrm{Hz})=1f^{-2} \, \mu \mathrm{m}^2\,\mathrm{Hz}^{-1}, \end{aligned} $$(77)

very well, which is not far, but different, from the power of −5/3 of a Kolmogorov type atmosphere. After fringe-tracking correction, the residual OPDs are attenuated below the spectral density:

PSD Φ n ( f < 10 Hz ) 0.001 μ m 2 Hz 1 . $$ \begin{aligned} \mathrm{PSD_{{\boldsymbol{\Phi }}_{n}}}(f < 10\,\mathrm{Hz}) \le 0.001 \, \mu \mathrm{m}^2\,\mathrm{Hz}^{-1}. \end{aligned} $$(78)

The fringe tracker is therefore clearly a high-pass filter. The cutoff frequency of the fringe tracker correction is not well defined because it depends on the efficiency of the Kalman filter and the accuracy with which the equations of state reflect the system. On the UTs, the 3 dB cutoff frequency is on the order of 10 Hz. On the ATs, maybe because the vibrations are less frequent and the predictive model more accurate, the fringe tracker performance has a higher cutoff frequency at 30 Hz. This 30 Hz shows that the system is optimized because it is close to the cutoff frequency of the open-loop system (≈60 Hz in Fig. 8).

8. Discussion

8.1. Have we reached the ultimate sensitivity?

It is often assumed that the sensitivity of an optical interferometer must decrease as a function of N, the number of telescopes. This is not necessarily true. The limiting sensitivity is when each of the degrees of freedom of the fringe tracker reaches a variance of one during one coherence time of the atmosphere, and each of the degrees of freedom corresponds to a non-zero eigenvalue of matrix 𝕀 (Sect. 4.4). Therefore the threshold on the phase-delay control loop ( S / N threshold PD $ S/N_{\mathrm{threshold}}^{\mathrm{PD}} $) is applied on the eigenvalues in Eq. (30). For N ≫ 1, the signal grows like the flux (∝N), the degrees of freedom like N, and the number of pixels like the number of baselines, N2. For an increasing number of telescopes, the detector noise therefore becomes ever stronger. However, in the case of a system without background and detector noise, the S/N on the eigenvalues no longer depends on N (Woillez et al. 2017). The ultimate sensitivity of the fringe tracker can then be established at one photon per coherence time and per telescope, regardless of the number of telescopes. For the VLTI, assuming 8 m telescopes, a coherence time of 10 ms, a throughput of 1%, and using the full K band, the ultimate sensitivity is Kmag = 17.5. Even assuming the need for an S/N of 1.5 per baseline and per coherence time, we should be able to reach a Kmag of 16 (Fig. 11).

What can be done? There are several paths forward to reach this magnitude. The first is to decrease the background and detector noise. The sky brightness in the K band at Paranal is about 12.8 mag/square arcsec3. Therefore, the fraction of sky background light entering the 60 mas single-mode fiber is almost negligible (Kmagsky ≤ 19). A more important light emitter is the VLTI thermal background because of the ≈75% absorption of the optical surfaces. All of these surfaces are typically about T = 283 K to 288 K and contribute to the majority of the background light. Regarding the detector noise, even if the SAPHIRA detector has a readout noise below 1 e, the number of pixels used by the fringe tracker per telescope is 36 (72 in split polarizations). For faint objects, this noise can therefore dominate. Solutions to use fewer pixels have been proposed (Petrov et al. 2014, 2016) and could lead to a better sensitivity. The development of infrared detectors could also be a promising path forward.

The second path is to increase the coherent throughput. On average, only 1% of the total flux reaches the fringe tracker detector. The 20 mirrors between M1 and the GRAVITY cryostat absorb up to 75% of the light. In addition, 50% of the light is scattered inside the IO beam combiner, 50% is lost by using the beamsplitter on the on-axis mode, and 50% because of the amplification of the detector (the so-called multiplicative noise). The last part (≈60% of the remaining flux) is lost when the light is injected into the single-mode fiber. Throughput improvements could therefore come from using fewer optical elements and possibly switching more of the mirrors involved from aluminium to gold coatings. Focus can also be placed on a more efficient light coupling into the single-mode fiber. This would mean a better AO system for a better Strehl ratio. The advantages of a good Strehl ratio are manyfold. It increases the mean throughput. It also maximizes the fringe contrast by giving a better instantaneous flux equilibrium. Last, it avoids flux drop-out, which is detrimental for good fringe tracking and model prediction.

Third, but not least, special care will be taken in monitoring and removal of the vibrations. The vibrations cause two main problems. Because they are usually at high frequency, they are difficult to predict and affect the fringe-tracking performance (in contrast to the atmospheric perturbations, which are easier to correct because they are at a lower frequency). The main problem, however, is that they limit how slow the fringe tracker can run because the decrease in fringe contrast hurts more than the additional integration time.

8.2. Have we reached the ultimate accuracy?

A false assumption is that sensitivity can be gained by trading accuracy for sensitivity because coherencing (i.e., keeping the fringes within the coherent length) requires fewer photons per coherence time than fringe tracking. However, by simultaneously using the group delay and the phase delay, it is possible to have the best of both worlds: the group-delay controller does the coherencing, while the phase-delay controller works in parallel as far as the S/N permits (Fig. 12).

Despite the high sensitivity, we routinely track high S/N fringes within 100 nm residual rms with GRAVITY. However, when the coherence time is short (τ0 <  3 ms at 500 nm), the fringe tracker performance degrades (Fig. 13). This is caused by the open-loop latency of the fringe tracker (of about 4 ms). Observing during these conditions could clearly benefit from a fringe tracker with a shorter response time. Could we still improve the control loop during good atmospheric conditions, however?

The answer is yes. It lies in the proper management of the S/N by the Kalman filter. For convenience, we used an asymptotic estimation of the Kalman gain from the Riccati equation. A better Kalman filter would propagate errors as well as the state by also applying the equation of state to the covariance matrix:

Σ ̂ x , n | n 1 = A V · Σ ̂ x , n 1 · A V , $$ \begin{aligned} \hat{\Sigma }_{{\boldsymbol{x}},n|n-1}= \mathsf A _V \cdot \hat{\Sigma }_{{\boldsymbol{x}},n-1} \cdot \mathsf A _V^\top , \end{aligned} $$(79)

and derive the optimum gain each DIT. This could be achieved with additional computing power.

An additional amelioration could come from modal control. This was proposed in Menu et al. (2012) and could theoretically be implemented. However, we have currently not been able to find any practical implementation that would make it robust for a realistic environment.


1

Presented during the Final Design Review as document VLT-TRE-GRA-15882-6701.

2

For more information, see the GRAVITY/ESO Final Design Review document VLT-TRE-GRA-15882-6401.

Acknowledgments

GRAVITY was developed in a collaboration of the Max Planck Institute for Extraterrestrial Physics, LESIA of Paris Observatory, IPAG of Université Grenoble Alpes/CNRS, the Max Planck Institute for Astronomy, the University of Cologne, the Centro Multidisciplinar de Astrofisica from Lisbon and Porto, and the European Southern Observatory. SL would like to thank C. Kulcsár, H.-F. Raynaud, K. Houairi, J. Lozi, J.-M. Conan, and L. Mugnier for their insight and remarkable discussions. A special thanks goes to the pioneering work made by M. Colavita. SL was supported by the European Union under ERC grant 639248 LITHIUM, and FC by ONERA internal funding. GP and KP acknowledge support from Action Spécifique ASHRA of CNRS/INSU and CNES, Commission Spécialisée Astronomie-Astrophysique of CNRS/INSU, Conseil Scientifique of Observatoire de Paris and Observatoire des Sciences de l’Univers de Grenoble. AA acknowledges funding from Fundação para a Ciência e Tecnologia through grants PTDC/CTE-AST/116561/2010 and UID/FIS/00099/2013.

References

  1. Abuter, R., Dembet, R., Lacour, S., et al. 2016, in Optical and Infrared Interferometry and Imaging V, Proc. SPIE, 9907, 990721 [NASA ADS] [CrossRef] [Google Scholar]
  2. Berger, D. H., & Monnier, J. D. 2006, in SPIE Conf. Ser., Proc. SPIE, 6268, 62683K [Google Scholar]
  3. Cassaing, F., Duigou, J. M. L., Houairi, K., et al. 2008, in Optical and Infrared Interferometry, eds. W. C. Danchi, F. Delplancke, & M. Schöller, Proc. Soc. Photo-Opt. Instrum. Eng., 7013 [Google Scholar]
  4. Choquet, É., Menu, J., Perrin, G., et al. 2014, A&A, 569, A2 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  5. Colavita, M. M., Booth, A. J., Garcia-Gathright, J. I., et al. 2010, PASP, 122, 795 [NASA ADS] [CrossRef] [Google Scholar]
  6. Colavita, M. M., Wizinowich, P. L., Akeson, R. L., et al. 2013, PASP, 125, 1226 [NASA ADS] [CrossRef] [Google Scholar]
  7. Correia, C., Raynaud, H. F., Kulcsár, C., & Conan, J. M. 2008, in Adaptive Optics Systems, Proc. SPIE, 7015, 70151F [CrossRef] [Google Scholar]
  8. Delplancke, F., Derie, F., Lévêque, S., et al. 2006, in SPIE Conf. Ser., Proc. SPIE, 6268, 62680U [Google Scholar]
  9. Finger, G., Baker, I., Alvarez, D., et al. 2016, in Adaptive Optics Systems V, Proc. SPIE, 9909, 990912 [NASA ADS] [CrossRef] [Google Scholar]
  10. Genzel, R., Eisenhauer, F., & Gillessen, S. 2010, Rev. Mod. Phys., 82, 3121 [NASA ADS] [CrossRef] [Google Scholar]
  11. Gravity Collaboration (Abuter, R., et al.) 2017, A&A, 602, A94 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  12. Gravity Collaboration (Abuter, R., et al.) 2018a, A&A, 615, L15 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  13. Gravity Collaboration (Abuter, R., et al.) 2018b, A&A , 618, L10 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  14. Gravity Collaboration (Sturm, E., et al.) 2018c, Nature, 563, 657 [Google Scholar]
  15. Houairi, K., Cassaing, F., Perrin, G., et al. 2008, in Optical and Infrared Interferometry, eds. W. C. Danchi, F. Delplancke, & M. Schöller, Proc. Soc. Photo-Opt. Instrum. Eng., 7013 [Google Scholar]
  16. Jocou, L., Perraut, K., Nolot, A., et al. 2010, in Optical and Infrared Interferometry II, Proc. SPIE, 7734, 773430 [CrossRef] [Google Scholar]
  17. Jones, R. H. 1980, Technometrics, 22, 389 [CrossRef] [Google Scholar]
  18. Kiekebusch, M. J., Chiozzi, G., Knudstrup, J., Popovic, D., & Zins, G. 2010, in Software and Cyberinfrastructure for Astronomy, Proc. SPIE, 7740, 77400T [CrossRef] [Google Scholar]
  19. Kulcsár, C., Massioni, P., Sivo, G., & Raynaud, H. F. G. 2012, in Adaptive Optics Systems III, Proc. SPIE, 8447, 84470Z [CrossRef] [Google Scholar]
  20. Labeyrie, A. 1970, A&A, 6, 85 [Google Scholar]
  21. Lacour, S., Jocou, L., Moulin, T., et al. 2008, in Optical and Infrared Interferometry, Proc. SPIE, 7013, 701316 [CrossRef] [Google Scholar]
  22. Lacour, S., Eisenhauer, F., Gillessen, S., et al. 2014, A&A, 567, A75 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  23. Lacour, S., Dembet, R., Abuter, R., et al. 2018, in Optical and Infrared Interferometry and Imaging VI, SPIE Conf. Ser., 10701, 1070107 [Google Scholar]
  24. Lawson, P. R., Colavita, M. M., Dumont, P. J., & Lane, B. F. 2000, in Interferometry in Optical Astronomy, eds. P. Léna, & A. Quirrenbach, Proc. SPIE, 4006, 397 [NASA ADS] [CrossRef] [Google Scholar]
  25. Le Bouquin, J.-B., Bauvir, B., Haguenauer, P., et al. 2008, A&A, 481, 553 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  26. Lozi, J., Cassaing, F., Le Duigou, J. M., et al. 2011, in Techniques and Instrumentation for Detection of Exoplanets V, ed. S. Shaklan, Proc. Soc. Photo-Opt. Instrum. Eng., 8151 [Google Scholar]
  27. Malbet, F., Kern, P., Schanen-Duport, I., et al. 1999, A&AS, 138, 135 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  28. Menu, J., Perrin, G., Choquet, E., & Lacour, S. 2012, A&A, 541, A81 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  29. Perraut, K., Jocou, L., Berger, J. P., et al. 2018, A&A, 614, A70 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  30. Petit, C., Conan, J.-M., Kulcsár, C., Raynaud, H.-F., & Fusco, T. 2008, Opt. Express, 16, 87 [NASA ADS] [CrossRef] [PubMed] [Google Scholar]
  31. Petrov, R. G., Malbet, F., Weigelt, G., et al. 2007, A&A, 464, 1 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  32. Petrov, R. G., Elhalkouj, T., Boskri, A., et al. 2014, in Opt. and Infrared Interferometry IV, Proc. SPIE, 9146, 91462P [Google Scholar]
  33. Petrov, R. G., Boskri, A., Bresson, Y., et al. 2016, in Opt. and Infrared Interferometry and Imaging V, Proc. SPIE, 9907, 99071F [CrossRef] [Google Scholar]
  34. Pfuhl, O., Eisenhauer, F., Haug, M., et al. 2010, in Opt. and Infrared Interferometry II, Proc. SPIE, 7734, 77342A [CrossRef] [Google Scholar]
  35. Pfuhl, O., Haug, M., Eisenhauer, F., et al. 2012, in Opt. and Infrared Interferometry III, Proc. SPIE, 8445, 84451U [CrossRef] [Google Scholar]
  36. Pfuhl, O., Haug, M., Eisenhauer, F., et al. 2014, in Opt. and Infrared Interferometry IV, Proc. SPIE, 9146, 914623 [NASA ADS] [CrossRef] [Google Scholar]
  37. Poyneer, L. A., & Véran, J.-P. 2010, J. Opt. Soc. Am. A, 27, A223 [CrossRef] [Google Scholar]
  38. Shao, M., & Colavita, M. M. 1992, A&A, 262, 353 [NASA ADS] [Google Scholar]
  39. Tatulli, E., Millour, F., Chelli, A., et al. 2007, A&A, 464, 29 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]
  40. Weigelt, G. 1977, Opt. Commun., 21, 55 [NASA ADS] [CrossRef] [Google Scholar]
  41. Woillez, J., Akeson, R., Colavita, M., et al. 2012, PASP, 124, 51 [NASA ADS] [CrossRef] [Google Scholar]
  42. Woillez, J., Lai, O., Perrin, G., et al. 2017, A&A, 602, A116 [NASA ADS] [CrossRef] [EDP Sciences] [Google Scholar]

All Tables

Table 1.

Open-loop transfer function parameters of the fringe tracker running at 909 Hz.

Table 2.

GRAVITY dataset plotted in Figs. 14 and 15.

All Figures

thumbnail Fig. 1.

RTD of the SAPHIRA detector. The pixels in the green boxes are read by the fringe tracker and are used for tracking. They correspond to the six baselines, four ABCD outputs, two polarizations, and six wavelength channels. The names GV1 to GV4 correspond to the input beams. The values in yellow to the right correspond to the phase shift in degrees between the different ABCD outputs.

In the text
thumbnail Fig. 2.

Block diagram of the GRAVITY fringe-tracking controller. The gray area corresponds to the GRAVITY open-loop transfer function, and the rest corresponds to the two controllers. The group-delay integrator controller is shown in blue, the phase-delay state controller in red, and the actuators predictive model is plotted in green. The group-delay controller is the main controller: it continues to track the fringes even if the instantaneous S/N is too low for phase-delay tracking. The phase-delay state controller is a closed-loop system that determines the atmospheric perturbations X ̂ V $ \hat{\boldsymbol{X}}_V $. A proportional controller (K) corrects for the effect of the atmosphere. The last block of the group-delay controller, the quantization step, ensures that the group-delay control signal is always a multiple of 2π: the change in OPD caused by the group-delay controller is not seen by the phase-delay controller.

In the text
thumbnail Fig. 3.

State machine of the fringe tracker. There are only three states: IDLE, SEARCHING, and TRACKING. The blue transitions are commands from the operator. The gray transitions are automatic decisions. Switching from searching to tracking only depends on the rank of the I GD 4 $ \mathbb I_{\mathrm{GD}}^4 $ matrix. If GRAVITY is running in a degraded mode, the TRACKING transition can happen for a rank of 2 or even 1.

In the text
thumbnail Fig. 4.

Block diagram of the group-delay controller. The controller is centered on an integrator (block 5), but also includes several features to work in conjunction with the phase-delay controller.

In the text
thumbnail Fig. 5.

Upper panel: signal from the modulation block, in radians (the Volts-to-radians gain is not accounted for here). At each science exposure (here 5 s), the umodulation values change to make π offsets between the baselines. The signal repeats every four science exposures so that each baseline is observed with as many +π/2 as −π/2 offsets. Lower panel: modified sawtooth signal to search for fringes when the fringe tracker is in SEARCHING state. Here the research is made on all telescopes, meaning that the rank of matrix I GD 6 $ \mathbb I_{\mathrm{GD}}^6 $ is 0.

In the text
thumbnail Fig. 6.

Phase Φi, j (upper panel) and group Ψi, j (lower panel) delays. All values are phases modulo 2π. The dashed lines correspond to the piezo command. From bottom to top, the phases correspond to baselines i, j equal to 12, 13, 14, 23, 24, and 34. At the beginning of this recording, the system only has fringes on two baselines (green and purple). At t = 0.8 s, the system found fringes on the yellow baseline, and later on all the other baselines. Gray areas correspond to the baselines whose S/N is below the value S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $, meaning that no tracking is performed. After t = 1.4 s, the system nominally tracks on all baselines.

In the text
thumbnail Fig. 7.

Block diagram of the phase-delay controller. The two control signals uGD and uPD are summed before they are applied to the actuators. In this control scheme, the state vectors X ̂ V $ \hat{{\boldsymbol{X}}}_V $ are regulated. The control signal uPD is then issued from a matrix multiplication of the state vectors: u PD = K X ̂ V $ {\boldsymbol{u}}_{\mathrm{PD}}=\mathsf K \hat{{\boldsymbol{X}}}_V $.

In the text
thumbnail Fig. 8.

Bode plot of the frequency response of the four pistons in open loop (including pure delay caused by integration and computation). The −90° cutoff frequencies are 61 Hz, 56 Hz, 54 Hz, and 59 Hz. The cutoff frequency is dominated by the pure delay caused by the control loop system.

In the text
thumbnail Fig. 9.

Observation of star GJ 65 A on 21 November 2018. This example shows the case of a glitch on the AT2 adaptive optics system that resulted in the loss followed by the recovery of the fringe by the fringe tracker. Upper two panels: fringe tracker phase Φi, j and group delay Ψi, j estimators. The color lines correspond to each of the six baselines. The π/2 phase jumps at −7 and −1.5 s are normal and correspond to the modulation synchronized with the 5 s DIT science camera (the high spectral resolution detector). The gray areas correspond to detection of low S/N fringes by the controller. Lower left panels: S/N for each of the baselines calculated as the inverse of the square root of the phase variance ( 1 / Var ( Φ i , j ) $ 1/\sqrt{\mathrm{Var}(\Phi_{i,j})} $). The horizontal red lines correspond to the group-delay threshold ( S / N threshold GD $ S/N_{\mathrm{threshold}}^{\mathrm{GD}} $). If the black line dips below the red line, the FT stops tracking on that baseline. The horizontal purple lines correspond to the phase-delay threshold ( S / N threshold PD $ S/N_{\mathrm{threshold}}^{\mathrm{PD}} $). Lower center panel: flux Fi. Similarly, the red line is a threshold made by a moving average of all flux, which is used to detect the loss of a telescope. Lower right panels: commands to the piezo-actuators and VLTI delay line actuators. The piezo-actuators take care of the fast control signal, while the VLTI delay lines are used to offload and to search for fringes over large distances.

In the text
thumbnail Fig. 10.

Transmission plot, i.e., photons detected on the GRAVITY FT receiver, per telescope and per second, as a function of the K-band magnitude (tracking ratio > 80%). The magnitudes of the targets are obtained from SIMBAD. Most of the observations are made on-axis, meaning that 50% of the flux is lost because of the beam splitter. However, the many K = 9.7 mag CIAO observations are taken off-axis, hence the higher flux. Targets observed with ATs can be as faint as 10 mag. Based on this plot, it is clear that because the flux observed with the UTs is more than 10 times higher, observations will be possible up to K = 13 mag.

In the text
thumbnail Fig. 11.

Signal-to-noise ratio as a function of detected photon per telescope per DIT. The S/N is the computed by the real-time computer, defined by 1 / Var ( Φ i , j ) $ 1/\sqrt{\mathrm{Var}(\Phi_{i,j})} $ , as stated in Eq. (14). The three colors correspond to the three different frame rates of the fringe tracker. The solid lines correspond to theoretical values assuming 100% fringe contrast. The vertical lines are theoretical flux assuming observations on UTs with 1% throughput. The horizontal line corresponds to an S/N of 1.5.

In the text
thumbnail Fig. 12.

OPD residuals as a function of the fringe tracker S/N. Above an S/N of 10, the best fringe-tracking residuals are limited to a constant value around 80 nm, caused by the intrinsic bandpass of the fringe tracker hardware (dashed line). At lower S/N, the fringe tracker performance decreases because it is difficult to predict and track the evolution of the perturbations. The phase error caused by a readout noise on the phase goes as λ/(2π S/N) (lower dotted line). The actual performances of the fringe tracker shows that the degradation is more likely a factor 2 or 3 above that limit.

In the text
thumbnail Fig. 13.

OPD residuals as a function of coherence time (at 500 nm) for all calibrators and GC data taken between July 2017 and November 2018 in the 909 Hz mode. The dashed vertical lines correspond to the first quintile (3 ms) and last quintile (7 ms) of the coherence time distribution as observed by the ESO astronomical site monitor (ASM) at visible wavelength. The thick lines correspond to the first and last quintile of the OPD residual distribution (purple for UTs and red for ATs). The median fringe-tracking residuals are 150 nm on the ATs and 250 nm on the UTs.

In the text
thumbnail Fig. 14.

Power spectrum density and cumulative sum of the power spectrum density of phase residuals (2.2 μm/2π × Φn) toward target IRS 16C. The red curves are the pseudo-open-loop values, i.e., in the hypothesis of no fringe tracker (2.2 μm/2π × ΦATM, n). The blue curves correspond to power spectral densities of 1 f−2μm2/Hz and 0.001 μm2/Hz. The six lower plots are the reverse cumulative sum of the power spectrum. At zero frequency, the sum reaches 220 nm on average over the six baselines.

In the text
thumbnail Fig. 15.

Same as in Fig. 14, except for the binary star GJ 65, which was observed with the ATs. The fringe-tracking residuals are 140 nm, lower than what is observed with the UTs. The main difference is the lower level of vibrations in the 10−100 Hz range.

In the text

Current usage metrics show cumulative count of Article Views (full-text article views including HTML views, PDF and ePub downloads, according to the available data) and Abstracts Views on Vision4Press platform.

Data correspond to usage on the plateform after 2015. The current usage metrics is available 48-96 hours after online publication and is updated daily on week days.

Initial download of the metrics may take a while.