The Fire Satellite model

The fire satellite model is a multidisciplinary test case that involves 3 disciplines: Power, Orbit and Attitude & control. This usecase has been firstly proposed by Wertz et al. [wertz1999].

The model deals with the design of a realistic satellite, the goal of which is to detect and monitor forest fires from Earth’s orbit, through the use of optical sensors. Three disciplines are needed to design this satellite. The orbit discipline is responsible of computing the orbit period, the satellite velocity, the maximal slewing angle and the eclipse period. The power discipline is used to estimate the total power of the system and the area of the solar arrays. Finally, the attitude & control discipline computes the total torque of the satellite and the power required for the attitude control system. These disciplines exchange several coupling variables. The multidisciplinary analysis that is used to compute the converged values of the coupling variables is performed through a Fixed Point Iteration algorithm.

use case geometry

This test case is composed of nine random variables. These variables are distributed according to truncated Normal distribution \mathcal{TN}(\mu,\sigma,a,b). The hyperparameters are \mu the mean, \sigma the standard deviation, a the lower bound and b the upper bound.

  • H \sim \mathcal{TN}(\num{18e6}, \num{1e6}, \num{15e6}, \num{21e6}): the altitude (\unit{\m})

  • P_{other} \sim \mathcal{TN}(1000, 50, 850, 1150): the power other than attitude control system (\unit{\W})

  • F_{s} \sim \mathcal{TN}(1400, 20, 1340, 1460): the average solar flux (\unit{\W\per\m^2})

  • \theta \sim \mathcal{TN}(15, 1, 12, 18): the deviation of moment axis (\unit[angle-symbol-degree=deg]{\degree})

  • L_{sp} \sim \mathcal{TN}(2, 0.4, 0.8, 3.2): the moment arm for radiation torque (\unit{\m})

  • q \sim \mathcal{TN}(0.5, 0.1, 0.2, 0.8): the reflectance factor (-)

  • R_D \sim \mathcal{TN}(5, 1, 2, 8): the residual dipole of spacecraft (\unit{\A\m^2})

  • L_\alpha \sim \mathcal{TN}(2, 0.4, 0.8, 3.2): the moment arm for aerodynamic torque (\unit{\m})

  • C_d \sim \mathcal{TN}(1, 0.3, 0.1, 1.9): the drag coefficient (-)

The three outputs of interest are:

  • \tau_{torque}: the total torque of the satellite (\unit{\N\m})

  • P_{tot}: the total power of the satellite (\unit{\W})

  • A_{sa}: the area of the solar array (\unit{\m^2})

Different deterministic quantities are also present:

  • c: the speed of light, \qty{2.9979e8}{\m\per\s}

  • \omega_{max}: the maximum rotational velocity of reaction wheel, \qty{6000}{\rpm}

  • n: the number of reaction wheels that could be active, 3

  • \delta_{\theta_{slew}}: the slewing time period, \qty{760}{\s}

  • A_s: the area reflecting radiation, \qty{13.85}{\m^2}

  • i: the sun incidence angle, \qty{0}{\deg}

  • M: the magnetic moment of earth, \qty{7.96e15}{\A\m^2}

  • \rho: the atmospheric density, \qty{5.1480e-11}{\kg\per\m^3}

  • A: the cross-sectional in flight direction, \qty{13.85}{\m^2}

  • P_{hold}: the holding power, \qty{20}{\W}

  • \mu: the Earth gravity constant, \qty{398600.4418e9}{\m^3\per\s^2}

  • Id: the inherent degradation of array, 0.77

  • t: the thickness of solar panels, \qty{0.005}{\m}

  • n_{sa}: the number of solar arrays, 3

  • \epsilon_{deg}: the degradation in power production capability, \qty{0.0375}{\percent\per\year}

  • LT: the lifetime of spacecraft, \qty{15}{\year}

  • r_{lw}: the length to width ratio of solar array, 3

  • D: the distance between panels, \qty{2}{\m}

  • I_{bodyX}: the inertia of body, X axis, \qty{6200}{\kg\m^2}

  • I_{bodyY}: the inertia of body, Y axis, \qty{6200}{\kg\m^2}

  • I_{bodyZ}: the inertia of body, Z axis, \qty{4700}{\kg\m^2}

  • \rho_{sa}: the average mass density to arrays, \qty{700}{\kg\m^3}

  • \eta: the power efficiency, 0.22

  • \phi_{target}: the target diameter, \qty{235000}{\m}

  • R_E: the Earth radius, \qty{6378140}{\m}

We assume that the input variables are independent.

The following figure depicts the interaction between the disciplines.

use case geometry

The orbit discipline is defined as follows. First, the satellite velocity v is computed from the Earth radius R_E and the altitude H .

v = \sqrt{\frac{\mu}{R_E+H}}

with \mu the Earth gravity constant. Then, the orbit period \Delta_{t_{orbit}} is calculated,

\Delta_{t_{orbit}} = \frac{2\pi(R_E+H)}{v}

The eclipse period \Delta_{t_{ecplise}} and maximum slewing angle \theta_{slew} are then computed,

\Delta_{t_{ecplise}} = \frac{\Delta_{t_{orbit}}}{\pi}\arcsin\left(\frac{R_E}{R_E+H}\right)

\theta_{slew} = \arctan\left(\frac{\sin\left(\frac{\phi_{target}}{R_E}\right)}{1-\cos\left(\frac{\phi_{target}}{R_E}\right)+\frac{H}{R_E}} \right)

with \phi_{target} the target diameter.

The attitude and control discipline is governed by the following equations.

\tau_{tot} = \max(\tau_{slew},\tau_{dist})

with

\tau_{slew} = \frac{4\theta_{slew}}{\Delta t_{slew}^2} I_{max}

and

\tau_{dist} = \sqrt{\tau_g^2 + \tau_{sp}^2 + \tau_m^2 + \tau_a^2}

\tau_{g} = \frac{3\mu}{2(R_E+H)^3}|I_{max}-I_{min}|\sin(2\theta)

\tau_{sp} = L_{sp}\frac{F_s}{C}A_s(1+q)\cos(i)

\tau_{m} = \frac{2 M R_D}{(R_E+H)^3}

\tau_{a} = \frac{1}{2} L_{alpha} \rho C_d A v^2

with \tau_{tot} the total torque, \tau_{slew} the slewing torque, \tau_{dist} the disturbance torque, \tau_{g} the gravity gradient torque, \tau_{sp} the solar radiation torque, \tau_{m} the magnetic field interaction torque, \tau_{a} the aerodynamic torque.

The attitude control power P_{ACS} is finally defined by

P_{ACS} = \tau_{tot}\omega_{max} + n P_{hold}

The power discipline has 16 inputs and computes the total solar array size and total power by,

P_{tot} = P_{ACS} + P_{other}

A_{sa} = \frac{P_{sa}}{P_{EOL}}

with,

P_{EOL} = P_{BOL}(1-\epsilon_{deg})^{LT},

the power production capability at the end of life, defined by

P_{BOL} = \eta F_s I_d \cos(i)

the power production capability at the beginning of life, and

P_{sa} = \frac{\left( \frac{P_e T_e}{0.6} + \frac{P_d}{T_d}{0.8} \right)}{T_d}

is the required power output. P_e and P_d are the satellite requirements during eclipse and daylight (here P_e = P_d = P_{tot}). T_e and T_d are the time per orbit spent in eclipse and daylight.

Finally, the inertia can be derived as follows,

I_{min} = \min(I_{totX},I_{totY},I_{totZ})

I_{max} = \max(I_{totX},I_{totY},I_{totZ})

with I_{tot} = I_{sa} + I_{body} the total moment of inertia in the three dimensions, that depends on,

I_{saX} = m_{sa} \left( \frac{1}{12} (L^2+t^2) + (D+\frac{L}{2})^2 \right)

I_{saY} = m_{sa} (t^2+W^2)

I_{saZ} = m_{sa} \left( \frac{1}{12} (L^2+W^2) + (D+\frac{L}{2})^2 \right)

with L = \sqrt{\frac{A_{sa} r_{tw}}{n_{sa}}} the length of the solar array, W = \sqrt{\frac{A_{sa}}{r_{tw}n_{sa}}} the width of the solar array, and m_{sa} = 2\rho_{sa}L W t the mass of the solar array.

Two tunings parameters are present :

  • tolFPI: the tolerance on the fixed point iteration algorithm used in the multidisciplinary analysis, 1e-3

  • maxFPIIter: the maximum number of iterations of the fixed point iteration algorithm used in the multidisciplinary analysis, 50

References

Load the use case

We can load this model from the use cases module as follows :

>>> from openturns.usecases import fireSatellite_function
>>> m = fireSatellite_function.FireSatelliteModel()
>>> # Load the Fire satellite use case (with 3 outputs: total torque, total power and solar array area)
>>> model = m.model()
>>> # Load the Fire satellite use case with total torque as output
>>> modelTotalTorque = m.modelTotalTorque()
>>> # Load the Fire satellite use case with total power as output
>>> modelTotalPower = m.modelTotalPower()
>>> # Load the Fire satellite use case with solar array area as output
>>> modelSolarArrayArea = m.modelSolarArrayArea()

API documentation

class FireSatelliteModel

Data class for the Fire Satellite.

Examples

>>> from openturns.usecases import fireSatellitefunction
>>> # Load the FireSatellite model model
>>> m = fireSatellitefunction.FireSatelliteModel()
Attributes:
dimDimension of the problem

dim = 9

HAltitude (m), TruncatedNormal distribution

First marginal, ot.TruncatedNormal(18e6,1e6,18e6-3e6,18e6+3e6)

PotherPower other than ACS (W), TruncatedNormal distribution

Second marginal, ot.TruncatedNormal(1000.0,50.0,1000.0-150.0,1000.0+150.0)

FsAverage solar flux (W/m^2), TruncatedNormal distribution

Third marginal, ot.TruncatedNormal(1400.0,20.0,1400.0-60.0,1400.0+60.0)

thetaDeviation of moment axis (deg), TruncatedNormal distribution

Fourth marginal, ot.TruncatedNormal(15.0,1.0,15.0-3.0,15.0+3.0)

LspMoment arm for radiation torque (m), TruncatedNormal distribution

Fifth marginal, ot.TruncatedNormal(2.0,0.4,2.0-1.2,2.0+1.2)

qReflectance factor (-), TruncatedNormal distribution

Sixth marginal, ot.TruncatedNormal(0.5,0.1,0.5-0.3,0.5+0.3)

RDResidual dipole of spacecraft (A.m^2), TruncatedNormal distribution

Seventh marginal, ot.TruncatedNormal(5.0,1.0,5.0-3.0,5.0+3.0)

LalphaMoment arm for aerodynamic torque (m), TruncatedNormal distribution

Eighth marginal, ot.TruncatedNormal(2.0,0.4,2.0-1.2,2.0+1.2)

CdDrag coefficient (-), TruncatedNormal distribution

Nineth marginal, ot.TruncatedNormal(1.0,0.3,1.0-0.9,1.0+0.9)

distributionXJointDistribution

The joint distribution of the input parameters.

modelPythonFunction

The Fire Satellite model with H, Pother, Fs, theta, Lsp, q, RD, Lalpha and Cd as variables. This function retrieves three outputs : the total torque, the total power and the area of solar array

modelTotalTorquePythonFunction

The Fire Satellite model retrieving only the Total Torque as output, with H, Pother, Fs, theta, Lsp, q, RD, Lalpha and Cd as variables.

modelTotalPowerPythonFunction

The Fire Satellite model retrieving only the Total Power as output, with H, Pother, Fs, theta, Lsp, q, RD, Lalpha and Cd as variables. This function retrieves three outputs : the total torque, the total power and the area of solar array

modelSolarArrayAreaPythonFunction

The Fire Satellite model retrieving only the Solar Array Area as output, with H, Pother, Fs, theta, Lsp, q, RD, Lalpha and Cd as variables. This function retrieves three outputs : the total torque, the total power and the area of solar array

cSpeed of light, constant

c = 2.9979e8 m/s

omega_maxMaximum rotational velocity of reaction wheel, constant

omega_max = 6000 rpm

nNumber of reaction wheels that could be active, constant

n = 3

delta_theta_slewSlewing time period, constant

delta_theta_slew = 760 s

AsArea reflecting radiation, constant

As = 13.85 m^2

iSun incidence angle, constant

i = 0 deg

MMagnetic moment of earth, constant

M = 7.96e15 A.m^2

rhoAtmospheric density, constant

rho = 5.1480e-11 kg/m^3

ACross-sectional in flight direction, constant

A = 13.85 m^2

PholdHolding power, constant

Phold = 20 W

muEarth gravity constant

mu = 398600.4418e9 m^3/s^2

IdInherent degradation of array, constant

Id = 0.77

tThickness of solar panels, constant

t = 0.005 m

n_saNumber of solar arrays, constant

n_sa = 3

epsilon_degDegradation in power production capability, constant

epsilon_deg = 0.0375 percent per year

LTLifetime of spacecraft, constant

LT = 15 years

r_lwLength to width ratio of solar array, constant

r_lw = 3

DDistance between panels, constant

D = 2 m

I_bodyXInertia of body, X axis, constant

I_bodyX = 6200 kg.m^2

I_bodyYInertia of body, Y axis, constant

I_bodyY = 6200 kg.m^2

I_bodyZInertia of body, Z axis, constant

I_bodyZ = 4700 kg.m^2

rho_saAverage mass density to arrays, constant

rho_sa = 700 kg.m^3

etaPower efficiency, constant

eta = 0.22

phi_targetTarget diameter, constant

phi_target = 235000 m

REEarth radius, constant

RE = 6378140 m

tolFPITolerance on Fixed Point Iteration used in the multidisciplinary analysis

tolFPI = 1e-3 (deterministic)

maxFPIIterMaximum number of iterations of Fixed Point Iteration used in the multidisciplinary analysis

maxFPIIter = 50 (deterministic)

Methods

attitudeControl(inputs)

Function computing the attitude and control discipline outputs to retrieve the power of ACS and total torque

multidisciplinaryAnalysis(x)

Function computing the multidisciplinary analysis to retrieve the total torque, the total power and the area of solar array

orbit(inputs)

Function computing the orbit discipline outputs and retrieve the slewing angle, the velocity, the orbit duration and the eclipse duration

power(inputs)

Function computing the power discipline outputs to retrieve the inertia, the total power and the area of solar array

attitudeControl(inputs)

Function computing the attitude and control discipline outputs to retrieve the power of ACS and total torque

Inputs:

dictionary of inputs of the Attitude and Control discipline

multidisciplinaryAnalysis(x)

Function computing the multidisciplinary analysis to retrieve the total torque, the total power and the area of solar array

X:

list of inputs

orbit(inputs)

Function computing the orbit discipline outputs and retrieve the slewing angle, the velocity, the orbit duration and the eclipse duration

Inputs:

dictionary of inputs of the Orbit discipline

power(inputs)

Function computing the power discipline outputs to retrieve the inertia, the total power and the area of solar array

Inputs:

dictionary of inputs of the Power discipline

Examples based on this use case

Example of multi output Kriging on the fire satellite model

Example of multi output Kriging on the fire satellite model