1 Introduction

The design of satellite attitude control laws for space platforms is becoming more and more challenging. With the decrease of mass and stiffness, and the use of multiple large appendages, stringent control specifications lead to synthesizing of nontrivial control solutions demanding reliable and efficient control design tools to reduce the development cycle. Being aware of these challenges, a great level of effort has been spent by Airbus Defence and Space over the past years in collaboration with the French and European Space Agencies to investigate on systematic design methods of fixed-structure controllers. For decades it was already common practice to tune controllers using nonconvex global parameter optimisation tools. Nonetheless, two main drawbacks were reported by the AOCS engineers. The first point concerns a lack of a well-established mathematical foundation with efficient guidelines to systematically translate the system engineering requirements into formal mathematical optimisation criteria and constraints (e.g., limited number of firings, angular excursion during manoeuvres and mode switching, excitation of structure modes). Static or dynamic penalty functions composed of nonhomogeneous temporal and frequency-dependent weights are widely considered. Numerical conditioning tricks of the optimisation problem considering a normalization of the objectives are necessary to ensure a reliable convergence. Another point concerns a lack of reproductibility of global (nonconvex) optimisation strategies so that results are not uniquely defined due to nonconvexities and local minima.

Regarding the first point, it is definitively admitted that \(\mathcal {H}_{\infty }\) control theory is well suited to handle control design specifications into a unified framework that allows for systematic handling of performance and robustness objectives using the notion of generalized plant representation and Small Gain theorem results. The practical relevance of modern \(\mathcal {H}_{\infty }\) control can only rely on the Bode Sensitivity Integral Theorem [11] which provides to the control engineer a fundamental law of conservation as in Physics the conservation of Energy or Momentum [9, 10]. It expresses the trade-off between quantities related to a generalized system performance and stability robustness which is generalized by the structured singular values \(\mu\). Stability robustness of a feedback system \(\Sigma\) is measured by the means of the peak gain of its transfer function \(T_{w\rightarrow z}(s)\) from an input vector w to the output cost signal z, i.e.,

$$\begin{aligned} \Vert T_{w\rightarrow z}(s)\Vert _{\infty }:=\sup _{\omega \in R}\overline{\sigma }\left( T_{w\rightarrow z}(j\omega )\right) =\sup _{\omega \in \mathcal {L}_{2}}\frac{\Vert z\Vert _{2}}{\Vert w\Vert _{2}} \end{aligned}$$
(1)

This measure can equivalently be viewed in terms of loop gain with which the stability margin is associated. The \(\mathcal {H}_{\infty }\)-norm of the sensitivity function \(\Vert S(j\omega )\Vert _{\infty }\) quantifies how sensitive the closed-loop system is to variations of the considered plant \(\Sigma\). It is directly linked to the modulus margin \(M_{m}=\Vert S(j\omega )\Vert _{\infty }^{-1}\) which quantifies the shortest distance from the Nyquist curve of the loop transfer function to the critical point \({-}1\) and allows deriving lower bounds of the gain (\(G_{m}\)), phase (\(\Phi _{m}\)) and delay (\(d_{m}\)) margins, i.e., \(G_{m}>M_{m}/(M_{m}-1)\), \(\Phi _{m}>2\arcsin (1/2M_{m})\), \(d_{m}=\Phi _{m}/\omega _{c}\); \(\omega _{c}\) being the cut-off frequency. As the stability robustness is influenced by control action or gain change, the system’s performance such as disturbance rejection intimately changes in the opposite direction. The situation becomes more subtle when disturbance rejection competes with tracking objectives as high pointing performance. The bandwidth cannot be arbitrarily increased as it is limited by the stability constraint. The Bode’s integral indicates the impact of control or gain change in terms of the balance between system sensitivity decrease region and the sensitivity increase region. Bode’s integral constraints, also referred in [11] as the Waterbed effect, implies that the net area under the sensitivity function is conserved. In others words, it implies that if sensitivity is pushed down in the low-frequency range (i.e., good disturbance rejection and reference tracking), it increases by an equal amount at higher frequencies, amplifying for instance control commands or noise propagation. When dealing with complex systems, such trade-offs are not obvious. It remains difficult to derive mathematical formulation of the objective function that reflects the desired performance needs (Fig. 1).

Fig. 1
figure 1

Waterbed effect of the robustness and performance compromise

Basically, the control design objectives are captured and formalized by shaping the frequency-domain plant transfer functions according to the desired closed-loop properties. \(\mathcal {H}_{\infty }\) controllers result from a numerical optimisation which consists in finding the controller realisation which minimises the \(\mathcal {H}_{\infty }\)-norm of the weighted transfer \(T_{w\rightarrow z}(j\omega )\). Nonetheless, \(\mathcal {H}_{\infty }\) control methods have occasionally been used in Airbus development programmes for some time now. Particularly, one can mention its application for the suppression of line of sight jitter for SILEX programme in 1998 [3], the telescope pointing control of GOMOS’s satellite in 2001 or again the design of attitude controllers for the Orbit Control Mode of Mars Express in 2003 and Rosetta in 2004 [7]. More recently, \(\mathcal {H}_{\infty }\) control demonstrated its capacity of efficiently tuning the pointing control mode of the optical link between GEO satellite and aircraft throughout the LOLA project in 2006 [13]. However, \(\mathcal {H}_{\infty }\) techniques have not yet found their application in the daily production process.

The main reasons are as follows:

  • numerical issues with high dimensional plants leading to high-dimensional controllers not suitable for implementation,

  • the need for employing post-design truncation methods which are difficult to handle with conservation of performances,

  • the complex problem of weighting function objectives not suitable for nonspecialists,

  • difficulty to handle methods when results are to be obtained in a very short period of time.

As a result, in engineering practice, there is often a preference to just do a brute-force search to find tuning parameters which provide adequate performance, rather than to rely on more sophisticated methods which may provide better performance parameters but the methods themselves may be more difficult to use. The recently developed nonsmooth optimisation techniques bypass the technical shortcomings of the standard \(\mathcal {H}_{\infty }\) approach by enabling direct formulation of the control structure while managing the controller size.

The \(\mathcal {H}_{\infty }\) optimisation problem can be efficiently solved using the structured \(\mathcal {H}_{\infty }\) solver Hinfstruct commercialized by Mathworks in the Robust Control Toolbox [8] or similarly, using HIFOO (\(\mathcal {H}_{\infty }\) Fixed Order Optimisation) [4, 5] which is an open-source fully available solver but which has not been exploited in this activity. Structured \(\mathcal {H}_{\infty }\) method relies on specialized nonsmooth optimisation techniques to enforce closed-loop stability while minimising the \(\mathcal {H}_{\infty }\)-norm as a function of the tunable parameters. This approach allows optimising specific control architecture composed of tunable control parameters such as PID gains, filter gains and coefficients or even more complex structures. Parasite off-diagonal terms are omitted as is done in the \(\mathcal {H}_{\infty }\) multi-channel control concepts proposed by [6]. Furthermore, nonsmooth optimisation techniques bring a great flexibility in the specification of performance objectives as well as the formulation of constraints on the closed-loop responses or directly on the controller itself (e.g., strong stabilization [12]).

In this paper, the industrialization capability of the Hinfstruct solver is evaluated considering a realistic high-performance control problem. The design of the roll and yaw controllers for a highly flexible Eurostar E3000 satellite during Chemical Station Keeping manoeuvres is considered. After the problem description given in Sect. 2, three robust design methods are presented in Sect. 3. A classical \(\mu\)-synthesis design methodology is first introduced. This is compared with a structured \(\mu\)-synthesis approach inspired in [1]. Finally, a multi-model approach is proposed to smoothly bridge the gap between current industrial practices and \(\mu\)-based methods. The performances of the proposed solutions are compared and discussed in Sect. 4. Finally, Sect. 5 is dedicated to the involvement of the Hinfstruct solver to refine the Rosetta’s orbit controller required to compensate thrust authority degradation since its launch in 2004.

2 Control design methodologies

2.1 Benchmark description

The system considered in this section is a heavy Eurostar E3000 satellite platform composed of two solar arrays based on four large flexible panel wings. The rotational equations of motion of the system is given by the Euler’s law:

$$\begin{aligned}&J(\alpha (t))\ddot{\theta } + L(\alpha (t))\ddot{\eta }=T \nonumber \\&\ddot{\eta }+2\xi \Omega \dot{\eta }+\Omega ^{2}\eta +L(\alpha (t))^{T}\ddot{\theta }=0, \end{aligned}$$
(2)

where \(\theta\) denotes the attitude vector and \(T=C_{c}+d\) is the three axes vector of external torques composed of the commanded torque \(C_{c}\) and the external disturbances d. \(\eta\) represents the modal coordinates of the appendages, whereas \(\Omega\) and \(\xi\) denote the modal frequencies and damping ratio matrices, respectively. L is the generalized rotational participation factor matrix and J denotes the global inertia matrix of the spacecraft expressed in the reference control frame. J and L are uncertain time-varying matrices which depend on the solar arrays orientation \(\alpha (t)\) and uncertainties arising from the variation of the spacecraft Centre-of-Mass \(\overrightarrow{X}_{sc}\) and the rigid body and appendages mass and inertia uncertainties. The vector of commanded torques \(C_{c}\) acting on the spacecraft is produced by two complementary sets of five thrusters (Branch A and B). The relationship between the thrusters’ actuation \(u_{Ti}\) and \(C_{c}\) is obtained by means of the influence matrix \(C_{c}=E(\overrightarrow{\gamma _{i}})\cdot u_{Ti}\), \(u_{Ti}=F_{\mathrm{nom}}\epsilon _{i}\), \(i=1,\ldots ,5\), where \(\overrightarrow{\gamma _{i}}\) is introduced to model the thrust jet direction (constant bias) uncertainty caused by the spacecraft Centre-of-Mass modification due to the solar array daily rotation \(\alpha (t)\) and fuel consumption. The thrusters are commanded in pulse modulation, providing a nominal force \(F_{\mathrm{nom}}\) of 10 N. However, their real efficiency depends on several parameters, such as the valves temperature, the command impulse duration (\(t_{\mathrm{on}}\)) and propellant mixture ratio. The parameter \(\epsilon _{i}\) is introduced to describe a loss of efficiency on the nominal thrust \(F_{\mathrm{nom}}\) (Fig. 2).

Fig. 2
figure 2

Airbus’s Eurostar E3000 satellite

Attitude and angular rates are given by two kinds of sensors. Attitude on the roll and pitch axis (\(\theta _{x}\) and \(\theta _{y}\), respectively) are provided by optical sensor whereas two gyros allow to provide the angular rates on the roll and yaw axis. The drift and scale factors of the gyros are calibrated before the manoeuvre and hybridization with optical data is done to provide a fine 3-axis angular position to the attitude controller. The attitude measurement equation can then be approximated by the following relation:

$$\begin{aligned} \theta _{k}^{m} = e^{-\tau _{\theta }p}\theta _{i}+W_{\theta }n_{\theta }, \quad k=\lbrace x,y,z\rbrace , \end{aligned}$$
(3)

where \(\tau _{\theta }\) is the measurement time delay and \(n_{\theta }\) represents a zero mean Gaussian distributed measurement noise vector weighted by the square root of the Power Spectral Density \(W_{\theta }\). The angular rate’s equation is given by the following relation:

$$\begin{aligned} \omega _{l}^{m} = e^{-\tau _{\omega }p}\omega _{i}+W_{\omega }n, \quad l=\lbrace x, z\rbrace , \end{aligned}$$
(4)

where \(\tau _{\omega }\) and \(W_{\omega }\) represent the measurement delay and the square root of the PSD of the measurement, respectively. Finally, from Eqs. (2) to (4), one can derive an uncertain state space representation of the system dynamics:

$$\begin{aligned} G:\left\{ \begin{array}{l} \dot{x}=A(\alpha (t),\Theta )x+B(\alpha (t),\Theta )\left( C_{c}+d\right) \\ C_{c}=E(\overrightarrow{\gamma}_{i})\hbox {diag}(F_{\mathrm{nom}}\epsilon _{i})E_{0}^{\dagger }u\\ y_{xz} = \left[ \theta _{x}^{m},\theta _{z}^{m}\right] ^{\mathrm{T}}, y_{y} = \theta _{y}^{m} \end{array} \right. \end{aligned}$$
(5)

where \(x=[\dot{\theta },\theta ,\dot{\eta },\eta ]^{T}\) represents the state vector. \(y_{xz}\) and \(y_{y}\) denote the measurement vectors used to control the roll/yaw and pitch axes, respectively. u is the signal to be delivered by the attitude controller and \(\Theta =[J_{xx},J_{yy},J_{zz},J_{xy},J_{xz},J_{yz},X_{sc},\overrightarrow{\gamma}_{i},\epsilon {i}]\) is the uncertain parameter vector. \(E_{0}^{\dagger }\) is the Moore–Penrose pseudo-inverse of the influence matrix evaluated in nominal conditions.

Airbus Defence and Space industrial practices consists in extracting from Eq. (5) a finite set of state space realisations \(\{A_{i},B_{i},C_{i},D_{i}\}\in \mathcal {S}\), \(i=1,\ldots ,N\) considering discretized panel orientations and worst case combinations of parametric uncertainties. This set of dynamics, composed of more than 1000 plants, is considered for the design of the attitude controllers used during Chemical Station Keeping (CSK). CSK manoeuvres are periodically performed to correct the spacecraft orbital drifts induced by environmental and parasites disturbance forces (e.g. solar pressure Earth’s potential, secular effects, \(\ldots\)). Basically, a CSK manoeuvre relies on a three-step sequence composed of:

  • a low thrust level pre-manoeuvre for fuel positioning in the tank and plume impingement disturbing forces estimation,

  • a high thrust level manoeuvre phase to provide corrective velocity increment while minimising the spacecraft depointing,

  • a tranquilization phase to reduce the attitude depointing and and angular rates velocity.

According to the flight phase, pitch and roll/yaw controls are carried out via two sets of controllers. \(K_{y}^{\mathrm{ma}}\) and \(K_{xz}^{\mathrm{ma}}\) are dedicated to the manoeuvre, whereas \(K_{y}^{\mathrm{TT}}\) and \(K_{xz}^{\mathrm{TT}}\) are used during the thruster tranquilization. In in this paper, the roll and yaw controllers (\(K_{x}^{\mathrm{man}}\) and \(K_{z}^{\mathrm{man}}\)) will be synthesized to minimise the transient and converged depointing of the satellite during the two first phases of the CSK manoeuvre. The control design objective mainly consists in maximising the control gain and bandwidth to minimise the Absolute Pointing Error (APE) while guaranteeing the robust stability properties, i.e., 30° of phase margin and 6 dB modulus and gain margins. Regarding the appendage flexibilities, two requirements associated with two Families of Modes (i.e., FM1 and FM2) are formulated. Modes located below the critical frequency \(\omega _{\mathrm{crit}}\) (i.e., FM1) can be stabilized in phase but considering 10 dB of maximum amplification. Flexible Modes higher than \(\omega _{\mathrm{crit}}\) (i.e., FM2) must be rejected in gain below \(-6\) dB. Concerning the implementation issues, each SISO controller will rely on a 8th order filter defined by the following structure:

$$\begin{aligned} K_{l}^{\mathrm{man}}= \displaystyle \prod _{i=1}^{4}\frac{a_{i0}+a_{i1}s+a_{i2}s^{2}}{1+b_{i0}s+b_{i1}s^{2}} \theta _{l}^{m},\quad l=\lbrace x, z \rbrace \end{aligned}$$
(6)

Then, the control problem consists in optimising the set of parameters \(\lbrace a_{i0},a_{i1},a_{i2},b_{i0},b_{i1}\rbrace\), \(i=1,\ldots ,4\) meeting the above-presented requirements.

Fig. 3
figure 3

Family of the roll-axis plant dynamics

Fig. 4
figure 4

Closed-loop interconnection structure for control design

2.2 \(\mu\)-Synthesis controller

The control design is here formulated as a \(\mu\)-synthesis problem considering the interconnected synthesis scheme of Fig. 4 where the weighting functions \(W_{i}\), \(i=1,\ldots ,4\), are introduced to shape the closed loop system responses according to the robust performance and stability margin requirements. In Sect. 2.1, it has been seen that the uncertain and time-varying system of Eq. (2) is discretized into a family of LTI plants computed to cover a large range of operating points. This family of responses, depicted in Fig. 3, can be modelled as an uncertain system \(G=G_{0}(I+W_{c}\Delta _{c})\), where \(\Delta _{c} \in \mathbf {\Delta _{c}}\) represents the uncertain dynamics with unit peak gain and \(W_{c}\) is a stable, minimum-phase shaping filter that adjusts the amount of uncertainty at each frequency. \(G_{0}\) represents the centered plant dynamics. The feedback system as arranged in Fig. 4 is reformulated into a the generalized \(\mu\)-synthesis interconnection structure as shown in Fig. 5. Given the open loop interconnection \(\tilde{P}\), the synthesis problem consists in finding a stabilizing controller K, over all stabilizing controllers, such that the peak value of \(\mu _{\Delta }\) of the closed-loop transfer \(M=\mathcal {F}_{l}(\tilde{P},K)\) is minimised, that is,

$$\begin{aligned} \displaystyle \min _{K}\quad \displaystyle \max _{\omega } \quad \mu _{\Delta }\mathcal {F}_{l}(\tilde{P}(j\omega ),K(j\omega )), \end{aligned}$$
(7)

where \(\Delta := \hbox {diag}(\Delta _{c},\Delta _{p})\). \(\Delta _{p}\) is introduced to close the loop between the input and output channels associated with the performance criterion and M is the lower LFT of \(\tilde{P}\) with K defined as follows:

$$\begin{aligned} M = \tilde{P}_{11}+\tilde{P}_{12}K(I-\tilde{P}_{22}K)^{-1}\tilde{P}_{21} \end{aligned}$$
(8)

This gives raise to the partitioned matrix for analysis M with appropriate partitions \(\tilde{M}_{ij}\), \((i,j) :=1:2\) defined as follows:

$$\begin{aligned} \begin{array}{c} \left[ \begin{array}{c}z_{\Delta _{c}} \\ \hline z_{1}\\ z_{2} \\ z_{3}\end{array}\right] =\underbrace{\mathcal {W}_{a}\left[ \begin{array}{c|cc}\overline{T}&{}K\overline{S}&{}\overline{S}\\ \hline SG_{0} &{}S&{}SG_{0}\\ \overline{T}&{}K\overline{S}&{}\overline{S}\\ SG_{0}&{}T&{}SG_{0} \end{array}\right] \mathcal {W}_{b}}\cdot \left[ \begin{array}{c} w_{\Delta _{c}} \\ \hline d_{1} \\ d_{2}\end{array}\right] \\ \quad \quad \quad \quad \mathcal {F}_{l}(\tilde{P},K) \end{array} \end{aligned}$$
(9)

with \(S=(I+G_{0}K)^{-1}\), \(\overline{S}=(I+KG_{0})^{-1}\), \(T=G_{0}K(I+G_{0}K)^{-1}\), \(\overline{T}=KG_{0}(I+KG_{0})^{-1}\) and \(w_{\Delta _{c}}=\Delta _{c}z_{\Delta _{c}}\). The control design objectives are shaped by the weighting functions gathered in the scaling matrices \(\mathcal {W}_{a} = \hbox {diag}(I, W_{1},W_{2},W_{3} )\) and \(\mathcal {W}_{b} = \hbox {diag}(W_{c},I,W_{4})\). These filters are defined to traduce the control design objectives while minimising the undesirable off diagonal effects to limit as much as possible the conservatism of the solution. The guidelines which are retained for the tuning of the weighting functions is presented hereafter.

  • \(W_{1}\) is in charge of constraining the modulus margin (i.e., \(\Vert S\Vert _{\infty }^{-1}\)) at 6 dB to ensure \(30^{\circ }\) and 6 dB of phase and gain margins, respectively. \(W_{1}\) is here fixed as a simple scalar value such as \(W_{1}=0.5\).

  • \(W_{4}\) is introduced to manage the disturbance rejection constraints. It is fixed to a static gain parameterized by the targeted pointing performance \(\theta _{\mathrm{APE}}\) and the worst case input disturbance torque d such that \(\Vert W_{1}SG_{0}\Vert _{\infty }<\Vert W_{4}\Vert _{\infty }\), \(W_{4}=|\theta _{\mathrm{APE}}|\cdot |d|^{-1}\). In practice \(W_{4}\) is maximised to improve as much as possible the control gain and bandwidth.

  • \(W_{2}\) is fixed to constrain the control sensitivity function \(K\overline{S}\) to produce sufficient control gain in low frequency with a roll-off action to limit measurement noise propagation and excitation of flexibilities above the critical frequency \(\omega _{\mathrm{crit}}\).

  • \(W_{3}\) is introduced to reject in gain the flexible modes above \(\omega _{\mathrm{crit}}\) and guaranteeing that \(\Vert G_{0}K\Vert _{\infty }<-6\) dB \(\forall \omega > \omega _{\mathrm{crit}}\). \(W_{3}\) also allows managing the robustness margin specification on the complementary sensitivity function T.

In its general form, the \(\mu\)-synthesis problem of Eq. (7) is not tractable. Basic idea consists in approximating the \(\mu\)-function by its upper bound which remains an optimally scaled maximum singular value [2], i.e.,

$$\begin{aligned} \mu _{\Delta }(M):= & {} \left( \displaystyle \min _{\Delta }\lbrace \overline{\sigma }(\Delta ): det(I-M\Delta )=0 \rbrace \right) ^{-1}\nonumber \\ \mu _{\Delta }(M)\le & {} \displaystyle \inf _{D\in \mathcal {D}} \overline{\sigma }\left( D_{L}\mathcal {F}_{l}(\tilde{P},K)D_{R}\right) \end{aligned}$$
(10)

with \(D_{L}=\hbox {diag }(D,I_{3})\), \(D_{R}=\hbox {diag }(D^{-1},I_{2})\); D being the set of scaling matrices commuting with \(\Delta _{c}\) and belonging into the structure \(\mathcal {D}\) defined by [2]:

$$\begin{aligned} \mathcal {D}:=\left\{ D=D^{T}>0: \forall \Delta _{c}, \Delta _{c} D = D\Delta _{c} \right\} \end{aligned}$$
(11)

These matrices are used to decrease the conservatism of the Small Gain theorem stability condition and their commuting property ensures that their introduction into the interconnection does not modify the stability properties of the closed loop. The optimisation problem in (7) is then recast into the following one:

$$\begin{aligned} \displaystyle \min _{K}\quad \displaystyle \min _{D\in \mathcal {D}} \quad \Vert D_{L}\mathcal {F}_{l}(\tilde{P},K)D_{R} \Vert _{\infty } \end{aligned}$$
(12)

which is solved considering the so-called \(D-K\) iteration procedure [2] based on successive refinement of the peak value of \(\mu _{\Delta }\).

Fig. 5
figure 5

General interconnection scheme for \(\mu\)-synthesis

Fig. 6
figure 6

Optimisation criteria for structured \(\mu\)-synthesis problem

2.3 \(\mu\)-Synthesis for structured control

The above presented \(\mu\)-synthesis method does not allow handling design constraints on the controller order and structure. Post-design reduction procedures and conditioning tricks are necessary to fit with implementation constraints. In addition, the scaling matrices D and \(D^{-1}\) need to be stable as \(\mathcal {H}_\infty\) synthesis must achieve the internal stability of the closed-loop scaled plant \(P_{d}\). Another limitation of unstructured \(\mu\)-synthesis approach relates to the inflation in the controller order since \(\mathcal {H}_\infty\) synthesis is a full-order method which provides controllers of the same order as the scaled synthesis model, accumulating the order of the plant itself and the order of the D-scalings. Then, it is of common practice to consider low-order weighting functions to limit the augmented plant dimension constraining by the same way the best achievable performances (i.e., limitation of bandwidth). All these shortcoming motivated Airbus Defence and Space to investigate recent nonsmooth optimisation techniques to solve the \(\mu\)-synthesis problem considering by design the controller implementation issues [1].

Fig. 7
figure 7

Interconnection scheme for structured \(\mu\)-synthesis

Fig. 8
figure 8

D-scaled interconnection scheme for structured \(\mu\)-synthesis

Basically, the structured \(\mu\)-synthesis problem is formulated as a systematic multi-model control design problem. The control design objectives are decomposed into three main interconnection schemes to avoid interaction between the control objectives. In our case, the three interconnection schemes presented in Fig. 6 are considered where \(W_{1}\), \(W_{2}\) and \(W_{3}\) are introduced to shape the desired closed-loop transfers, i.e., S, \(SG_{0}\) and GK. Similarly to Sect. 2.2, \(W_{1}\) is fixed to 0.5 to guarantee 6 dB of modulus margin and \(W_{2}\) is maximised to increase the control gain (i.e., disturbance rejection). \(W_{3}\) is defined to manage the control bandwidth and the rejection of flexibilities. \(W_{3}\) is then chosen as a high-order low-pass filter to increase as much as possible the control bandwidth while guaranteeing that \(\Vert GK\Vert _{\infty }<-6\) dB \(\forall \omega > \omega _{\mathrm{crit}}\). After some rearrangement tricks, the scheme of Fig. 6 can be recast into the general interconnection scheme of Fig. 7 where \(\hat{K}=\hbox {diag }(K,K,K)\) and \(\tilde{\Delta }_{c}=\hbox {diag }(\Delta _{c},\Delta _{c},\Delta _{c})\). The \(\mu\)-synthesis control problem is solved introducing new scaling matrices to take into account the structure of the block \(\tilde{\Delta }_{c}\) as illustrated in Fig. 8 with \(\hat{\Delta }_{c}=\hbox {diag }(\tilde{\Delta }_{c},\Delta _{p})\). As discussed by the authors of reference [1], specific arrangement of scaling matrices can be done allowing simultaneous construction of both the controller and the scaling in one shot. For that, let us consider \(\tilde{D} = D - I\) in such a way that \(\tilde{D}\tilde{\Delta }_{c} = \tilde{\Delta }_{c} \tilde{D}\). With these translated scalings, Fig. 8 is an LFR in \(\hat{K}\) and \(\tilde{D}\) such as

$$\begin{aligned} \left\{ \begin{array}{l} D_{L}\mathcal {F}_{l}\left( \tilde{P},\hat{K}\right) D_{R} = \mathcal {F}_{l}\left( \hat{P},\left[ \begin{array}{ccc}\hat{K}&{}&{}\\ {} &{}\tilde{D}&{}\\ &{}&{}\tilde{D} \end{array}\right] \right) \\ \hat{P}=D_{L}\tilde{P}D_{R} \end{array} \right. \end{aligned}$$
(13)

with \(D_{L}=\hbox {diag }(D,I_{3})\) and \(D_{R}=\hbox {diag }(D^{-1},I_{2})\). The complex structured \(\mu\)-synthesis is then recast as the nonsmooth programme with block diagonal controller \(K:=\hbox {diag }\left( \hat{K},\tilde{D},\tilde{D} \right)\) and can be efficiently solved using Hinfstruct solver [8].

$$\begin{aligned} \left\{ \begin{array}{l} \displaystyle \min _{K}\quad \sup _{\omega }\overline{\sigma }\left( F_{l}\left( \hat{P},K \right) \right) \\ K:=\left[ \begin{array}{ccc}\hat{K}&{}0&{}0\\ 0&{}\tilde{D}&{}0\\ 0&{}0&{}\tilde{D}\end{array}\right] ,\quad \tilde{D}\in \tilde{\mathbf {D}}, \end{array}\right. \end{aligned}$$
(14)

where the shifted scaling set \(\tilde{\mathbf {D}}\) is defined as follows:

$$\begin{aligned} \tilde{\mathbf {D}}:=\left\{ \tilde{D}=\tilde{D}^{T}>0: \forall \tilde{\Delta }_{c}, \tilde{D}\tilde{\Delta }_{c}=\tilde{\Delta }_{c}\tilde{D}\right\} \end{aligned}$$
(15)

2.4 Multi-model controller

In the previous sections, the robustness issues are addressed considering a structured version of the Small Gain theorem. These approaches systematically allow to address the robustness objectives in one shot but require a bit more expertise than current AOCS engineer practices and experimentally lead to conservatism solutions. What distinguishes multi-model approach from \(\mu\)-synthesis is that the optimisation criteria complexity is incrementally increased up to meet the desired control performances. Robustness and performances are managed considering discretized sets of plant dynamics overall \(\mathcal {S}\) on which each optimisation criteria are applied.

Then, \(W_{1}\) is considered to shape a subset of sensitivity functions \(S_{i}=(P_{11}^{i},P_{12}^{i},P_{21}^{i},P_{22}^{i})\in \mathcal {S}_{S}\), \(W_{2}\) is applied to constrain the set of functions \(G_{j}S_{j}=(P_{11}^{j},P_{12}^{j},P_{21}^{j},P_{22}^{j})\in \mathcal {S}_{GS}\) and \(W_{3}\) allows constraining the set of open-loop responses \(G_{l}^{*}K=(P_{11}^{l},P_{12}^{l},P_{21}^{l},P_{22}^{l})\in \mathcal {S}_{GK}\). The index \((*)\) is introduced to indicate that preliminary artificial plant stabilization is considered for this criteria. This leads to consider the interconnection scheme of Fig. 9 which results to a diagonal encapsulation of \(\mathcal {H}_{\infty }\) criteria. The multi-model and multi-channel control design problem relies on the computation of a robust controller solving the following nonsmooth optimisation problem.

$$\begin{aligned} \exists K:\left\{ \begin{array}{l}\displaystyle \min _{K} \max ( \Vert W_{1}S_{1}\Vert _{\infty },\ldots ,\Vert W_{1}S_{m}\Vert _{\infty }, \\ \quad \ldots \Vert G_{1}S_{1}W2\Vert _{\infty },\ldots ,\Vert G_{n}S_{n}W_{2}\Vert _{\infty },\\ \quad \quad \Vert W_{3}G_{1}^{*}K\Vert _{\infty },\ldots , \Vert W_{3}G_{p}^{*}K\Vert _{\infty }) \end{array} \right. \end{aligned}$$
(16)

In practice, the optimisation criteria of Eq. (16) are introduced in an iterative design/analysis loop. At the \(k=0\), a first controller is computed based on an initial set of dynamics. The controller performances are tested on the overall set of plants contained in \(\mathcal {S}\) and the worst case dynamics are extracted to be included in the \(\mathcal {H}_{\infty }\) criteria. New optimisation is done to refine the previously designed controller and this process is done until a controller fulfilling all the specifications is found.

Fig. 9
figure 9

Interconnection scheme for structured multi-model synthesis

3 Performance analysis

The three methods presented in Sect. 2.4 have been applied to tune the roll and yaw-axis controllers of the Eurostar E3000 satellite. For the sake of consistency, only the results relative to the roll axis controllers are presented here. The first method leads to an unstructured \(\mu\) controller \(K_{1}(s)\) of order 75 and a 8th order reduced version \(K_{2}(s)\) has been obtained after a balanced truncation based on the Hankel singular values. The Nichols diagrams and the open-loop responses of \(K_{1}(s)\) and \(K_{2}(s)\) are depicted in Figs. 10 and 11 considering the overall plant dynamics contained in \(\mathcal {S}\). As can be seen, the Modulus Margin is almost satisfied by the \(K_{1}(s)\) controller, but loss of robustness property is observed in high frequency with \(K_{2}(s)\) (some dynamics are entering in the S-circle). The reduced controller also presents degraded flexibility rejection properties as can be seen in Fig. 12. Indeed, an increase of flexibilities above \(-6\) dB \(\forall \omega > \omega _{\mathrm{crit}}\) is observed (i.e., \(\Vert GK\Vert _{\infty }\cong 0> -6\,\hbox {dB}\)) (Fig. 13). As regards the phase stabilization of modes below \(\omega _{\mathrm{crit}}\), it can be noted that the possibility of amplifying modes up to 10 dB is not exploited due to the difficulty of managing the medium-frequency range with the proposed 6-block optimisation criteria. In comparison, Figs. 14 and 15 present the performances of the structured \(\mu\) controller \(K_{3}(s)\) computed with Hinfstruct solver. As can be seen, the robustness margins are perfectly satisfied and the flexibilities above \(\omega _{\mathrm{crit}}\) are perfectly rejected in gain. In addition, modes below \(\omega _{\mathrm{crit}}\) are amplified up to 10 dB which allow an increase of the control gain in this frequency range leading to better transient behaviour and pointing performances. The diagram corresponding to the controller \(K_{4}(s)\) computed by the multi-model approach are not presented here since very close to the ones corresponding to \(K_{3}(s)\). Table 1 summarises the post-analysis results for the four controllers. As foreseen, this analysis distinctly demonstrates the superiority of nonsmooth optimisation to solve the robust control design problem. All the Control Design Specifications are perfectly satisfied and the gap between the multi-model and structured \(\mu\)-synthesis approach is negligible. Note that \(K_{1}(s)\) controller also presents good performances, but the reduction procedure clearly leads to a drastic degradation of robustness and performance. This last point is a major issue of unstructured design methods explaining why there are usually disregarded for industrial applications with hard structure implementation constraints. The four controllers have been discretized and benchmarked within Airbus’s industrial simulator including thruster modulators, sensors models and Kalman-based torque estimator. Figures 16, 17 and 18 present the obtained results both for the roll (red curves) and yaw axis (blue curves). According to the results presented in Table 1, the three control solutions present good temporal behaviours.

Fig. 10
figure 10

Nichols diagram—full-order \(\mu\) controller

Fig. 11
figure 11

Nichols diagram—reduced \(\mu\) controller

Fig. 12
figure 12

KG dynamics—reduced \(\mu\) controller

Fig. 13
figure 13

KG dynamics—full-order \(\mu\) controller

Fig. 14
figure 14

Nichols diagram—structured \(\mu\) controller

Fig. 15
figure 15

KG dynamics—structured \(\mu\) controller

Table 1 Robustness and performances outcomes
Fig. 16
figure 16

Roll (right) and yaw (blue) depointing—\(\mu\) controller (colour figure online)

Fig. 17
figure 17

Roll (right) and yaw (blue) depointing—reduced \(\mu\) controller (colour figure online)

Fig. 18
figure 18

Roll (right) and yaw (blue) depointing—structured \(\mu\) controller (colour figure online)

The capability of Hinfstruct of rapidly computing a controller from scratch offered prospect for real improvement of industrial design process, especially when dealing with off the shelf tuning or when controller retrofit was too far from optimality. Convinced by its optimisation performances and algorithmic reliability and stability, the presented nonsmooth designed methods and Hinfstruct solver have been incorporated in the Airbus Defence and Space development process. Hinfstruct allowed to enhance the existing tuning tool (i.e., Neptune) by providing a high-quality initial guess, Neptune being still necessary to refine Hinfstruct solution as regards others multi-rate and nonlinear constraints. This updated tool has been successfully used for the tuning of further controllers. For instance, the Chemical Station Keeping controllers of three Telecommunication satellites (Eurostar E3000 satellites) have been recently designed as well as the the Orbit Control Mode of Bepi Colombo space probe. More recently, Hinfstruct has been involved for the refinement of the in-flight orbit controller of Rosetta space probe to fit with updated thrust authority assumptions. The next section is entirely devoted to the presentation of this challenge which contributed to the success of Rosetta’s mission.

Fig. 19
figure 19

Milestones from Rosetta’s launch to its encounter with the comet 67P/Churyumov–Gerasimenko

4 Rosetta’s orbit controller refinement

4.1 Mission presentation

ESA’s Rosetta mission was launched on 2nd of March 2004 with an Ariane-5 launch from Kourou in French Guiana. Along this roundabout route, Rosetta entered the asteroid belt twice and gained velocity from gravitational assists provided by close fly-bys of Mars and Earth. After the first fly-by of Earth in March 2005, Rosetta headed towards Mars and returned to Earth twice in November 2007 and November 2009. After a large set of deep-space manoeuvres, the spacecraft entered into hibernation between June 2011 and January 2014 (Fig. 19). Just before this 31-month deep space hibernation mode, a rendez-vous manoeuvre (RDVM) led to an unexpected satellite off-pointing about the Y-axis spacecraft axis triggering attitude off-pointing FDIR (Fault Detection Isolation and Recovery) and leading the space probe in safe mode. In-depth on-ground analysis of the anomaly revealed a Loss-Of-Efficiency (LOS) of one thruster [\(7.4\,\%\) \((1 \sigma )\) on Thurster 9] leading to strong parasite torques which could not be compensated by the initially designed orbit controller. Orbit Control System returning was necessary to improve the robustness properties as regards unpredictable thruster under-performances. New attitude controllers have been synthesized in March 2014 according to the multi-model design methodology presented in Sect. 2.4. The refined controllers have been uploaded in May 2014 just before engaging the braking and final insertion manoeuvres to reduce relative velocity and distance to the comet. The next section provides an overview of the tuning process with comparison between the initial and refined controller.

Fig. 20
figure 20

Rosetta structure

Table 2 Thruster’s layout

4.2 System characteristics

Rosetta is a 3-tonne spacecraft based on a box-type central structure, 2.8 \(\times\) 2.1 \(\times\) 2.0 m, on which all subsystems and payload equipment are mounted. Two solar panels, with a combined area of 64 m2, each stretch out to 16 m in length. The platform is actuated by two sets of 12 redundant thrusters of 10 N (Beginning Of Life assumptions) as illustrated in Fig. 20. Thrusters nos. 1–8 are tilted to ensure the attitude control and Thrusters nos. 9–12 are used to perform pure velocity increments. The position and forces of the thrusters are reported in Table 2. The thruster alignment accuracy is 0.4°, which is modelled as constant bias for all thrusters and is assumed to include any thrust jet misalignment. Referring to Eq. (2), this leads to consider each component of the uncertain parameters \(\overrightarrow{\gamma _{i}}\) fixed to \({\pm } 0.4^{\circ }\). As regards the thrust magnitude, 30 % of predictable LOS of thrust since the Beginning-Of-Life (BOL) assumptions have been confirmed. Including the faulty behaviour of the thruster led to fix the value of the uncertain parameters \(\epsilon _{i}=0.7(1-7.4/100) (1\sigma )\) for \(i=1,\ldots ,12\). The attitude and orbit control functions used during the OCM are presented in Fig. 21. It mainly consists of the disturbance torque estimator as well as the attitude controller composed of 3 SISO attitude controllers each one based on a set of five 2nd order filters arranged in parallel. Each controller \(K_{k}=\Sigma _{l=1}^{5}F_{l}^{k}\) is then given by the following structure:

$$\begin{aligned} F_{l}^{k}(p)=\frac{a_{l0}^{k}+a_{l1}^{k}s}{1+b_{l1}^{k}s+b_{l2}^{k}s^{2}}, \end{aligned}$$
(17)

where \(l=\lbrace 1,2,\ldots ,5\rbrace\) and \(k=\lbrace x,y,z\rbrace\). The control system is achieved using the Inertial Measurement Package (IMP) composed of 3 sets of two 3-axis gyros and 3 accelerometers, a set of two star trackers and two sun sensors. Rosetta satellite mass properties are summarised in Table 3. This table includes the COM parameters and the inertia matrix J values with respect to the spacecraft COM. Regarding the solar array dynamics, by assuming that Y-axis is parallel to the longest side of the array and positively oriented from the yoke to the end of the wing, Z-axis is normal to the solar array plane, with the solar cells facing Z-axis, so that the reference (XYZ) is right handed, a simple flexibility model on each axis is considered for the design. The whole solar array, including the yoke, is considered as a single flexible body. The modal properties of this body and its data are defined in Table 4. The damping coefficient is fixed to 2.5 %.

Fig. 21
figure 21

Atitude and orbit control system

Table 3 Centre-Of-Mass and inertia parameters
Table 4 Modal coupling coefficients of solar arrays
Fig. 22
figure 22

Attitude dynamics

Table 5 Stability margins with the final tuning

4.3 Controller refinement

In accordance with the design process of Sect. 2.4, the refinement of the controller variables \(\lbrace a_{l0}^{k}, a_{l1}^{k}, b_{l1}^{k}, b_{l2}^{k}\rbrace\) \(l=\lbrace 1,2,\ldots ,5\rbrace\) and \(k=\lbrace x,y,z\rbrace\) has been performed considering a family of plants dynamics extracted from Eq. (2) considering different evaluation of the system uncertainties. Figure 22 provides an illustration of the Bode diagrams for the roll, pitch and yaw axis including sloshing modes. For each axis, the control tuning process has been done considering the optimisation criteria of Eq. (16) automatically updated according to the iterative design/analysis cycle. After some iterations, 3 new SISO controllers have been computed and Table 5 presents the worst-case analysis done with all the considered dynamics. Figures 23 and 24 present the Nichols diagrams and the open loop response on the Y-axis. As it can be seen, the robustness margins are perfectly respected since the Modulus margin is always below \(-6\) dB guaranteeing 6 dB of gain margins and \(30^{\circ }\) of phase margins. All the flexibilities are rejected below \({-}6\) dB except for the Y axis where modes are allowed to increase close to zero. In order to get an estimation of the temporal behaviour of the controllers, the response of the system to a disturbing torque of 0.001 Nm has been considered. The top part of Fig. 25 represents the depointing error when the initial in-flight controller is considered, whereas the bottom part of Fig. 25 considers the new controller. Clearly, a gain of performances is observed owing to a higher control gain required to efficiently compensate the thruster LOS. The controllers have been implemented in the validation test bench considering the real software in simulated environment. The thruster forces are set to 7 N and a thruster under-performance of 7.4 % (1\(\sigma\) value) has been added after the ramp on the thruster 9Footnote 1 (the failure begins at \(t=5400\) s and lasts 400 s). Figure 26 presents the thruster pulse duration commanded by the flight software and the thruster realised force as a function of time for the four thrusters that are used during the OCM manoeuvre (Thruster 9, 10, 11 and 12). The pulse duration graphs shows the acceleration ramp at the beginning of OCM and the thruster force graphs show that the maximum thruster force is equal to 7 N on each thruster except thruster 9 for which 7.4 % (1\(\sigma\)) of LOS can be observed. Figure 27 presents the angular control errors as a function of time for the initial in-flight tuning and the new one (the preliminary tuning depicted on the figures is out of the scope of this paper and will not be commented). The final tuning is slightly better on the X-axis: the maximum control error stays under 21.3 m rad, i.e., 1.22° (24.5 m rad, i.e., 1.40° for the in-flight one). On the Y-axis the final tuning is far better than the initial one: the maximum control error remains below 13.5 m rad (i.e., 0.75°), whereas it reached 59.5 m rad (i.e., 3.41°) with the in-flight tuning (which would lead to trigger the FDIR flag if it were activated). On the Z-axis, the behaviour of the control error is similar for all simulations; whatever the considered controller, it remains under 3 m rad (i.e., 0.17°). In conclusion, the refinement of the OCM controller allowed to significantly improve the OCM robustness to thruster-induced disturbances:

  • On the Y axis: a significant reduction of the pointing errors is observed with respect to the in-flight tuning by almost a factor 5. The response time of the controller has been reduced by at least a factor 2.

  • On the X-axis: the new controller tuning has brought some reduction of the pointing error. The response time of the controller has been reduced by a factor 2.

  • On the Z-axis, the new controller tuning has brought a slight reduction of the pointing error. The response time of the controller has been reduced by a factor 2.

Fig. 23
figure 23

Nichols diagram—Y-axis

Fig. 24
figure 24

GK responses—Y-axis

Fig. 25
figure 25

Step responses on Y-axis with initial and refined controllers

Fig. 26
figure 26

Thruster commands

Fig. 27
figure 27

Temporal performances of the controllers

The reduction of the response time will make the spacecraft recover more quickly from a thruster error, thus increasing the robustness to consecutive thruster errors. The Hinftruct-based controller has finally been uploaded in the flight computer in May 2014 and a first 40 min duration test manoeuvre has been executed for performances analysis before initiating the comet insertion manoeuvres. Figure 28 presents the telemetry delivered by ESOC providing the behaviours of the attitude errors for a manoeuvre executed with the initial controller. Figure 29 presents an equivalent manoeuvre considering Hinfstruct-based controller. Figure 29 clearly demonstrates the improvement of the updated OCM as regards the initial one, especially on the Y-axis.

Fig. 28
figure 28

Telemetry of Rosetta Manoeuvre with the initial controller

Fig. 29
figure 29

Telemetry of Rosetta Manoeuvre with the refined Hinfstruct-based controller

5 Concluding discussion

This paper described both theoretical and application results of advanced robust control methods based on nonsmooth optimisation techniques. An important aspect of the proposed methods is the simplicity to efficiently address the robustness and performance objectives while considering by design the software implementation issues. Two main methods have been first analysed either considering structured \(\mu\)-synthesis or multi-model technique closer to current industrial practices. The design methodologies have been first evaluated on a telecommunication satellite benchmark and implemented in Airbus Defence and Space development process for daily application to space programmes. The best token of this design approach is definitively its application to the refinement of Rosetta space probe controller which allows providing an indisputable industrial handover certificate of advanced \(\mathcal {H}_{\infty }\) nonsmooth optimisation technique.