Sun Sensors

Sun-vector measurement, coarse and fine Sun sensors, optical measurement geometry, sensor errors, eclipse modelling, calibration, attitude determination, safe-mode operation, and spacecraft GNC integration.

4.1.5 Sun Sensors

A Sun sensor is an optical attitude-determination sensor that measures the direction of the Sun relative to a spacecraft-fixed reference frame. Because the direction of the Sun can be predicted from spacecraft time, position, and an appropriate solar ephemeris, the measured Sun direction provides an absolute celestial reference for spacecraft attitude determination and control.

Sun sensors are among the most widely used spacecraft attitude sensors. Their importance comes not only from their ability to provide attitude information, but also from their simplicity, robustness, low power consumption, and usefulness during spacecraft contingency and safe modes.

Depending on the design, a Sun sensor may consist of a simple photodiode, several cosine-response detectors mounted on different spacecraft surfaces, a quadrant detector, a position-sensitive detector, or a precision digital optical instrument capable of returning two Sun angles directly.

The fundamental measurement concept is:

\[ \boxed{ \text{Sun} \rightarrow \text{Incident Solar Radiation} \rightarrow \text{Optical Detector} \rightarrow \text{Electrical Signal} \rightarrow \text{Sun Direction} } \]

At spacecraft-system level, the corresponding mathematical chain is:

\[ \boxed{ \mathbf s_{Sun}^{I} \rightarrow C_I^B \rightarrow \mathbf s_{Sun}^{B} \rightarrow C_B^S \rightarrow \mathbf s_{Sun}^{S} \rightarrow \text{Sensor Measurement} } \]

where:

A realistic Sun-sensor model must additionally account for field of view, eclipse, spacecraft shadowing, mounting errors, optical nonlinearity, detector noise, bias, temperature, quantisation, sampling, latency, Earth albedo, and spacecraft reflections.

4.1.5.1 Role of Sun Sensors in Spacecraft GNC

The primary purpose of a Sun sensor is to provide an absolute directional reference. This distinguishes it fundamentally from a gyroscope.

A gyroscope measures angular velocity:

\[ \boldsymbol{\omega} = \begin{bmatrix} \omega_x\\ \omega_y\\ \omega_z \end{bmatrix}, \]

whereas a Sun sensor determines the direction toward the Sun:

\[ \boxed{ \mathbf s_{Sun} = \begin{bmatrix} s_x\\ s_y\\ s_z \end{bmatrix} } \]

with

\[ \boxed{ \|\mathbf s_{Sun}\|=1. } \]

Sun sensors can support several important GNC functions:

A common spacecraft operational sequence is:

\[ \boxed{ \text{Launch / Deployment} \rightarrow \text{Detumbling} \rightarrow \text{Sun Acquisition} \rightarrow \text{Power-Positive Attitude} \rightarrow \text{Coarse Attitude} \rightarrow \text{Fine Attitude Acquisition} } \]

Consequently, even spacecraft equipped with highly accurate star trackers may retain coarse Sun sensors because they provide a simple and robust recovery sensor during abnormal operating conditions.

4.1.5.2 What Does a Sun Sensor Actually Measure?

A Sun sensor does not normally measure the spacecraft quaternion, Euler angles, or angular velocity directly. Its fundamental observable is the direction of incoming sunlight relative to the sensor.

In the sensor frame \(S\), the Sun direction may be represented by the unit vector

\[ \boxed{ \mathbf s^S = \begin{bmatrix} s_x^S\\ s_y^S\\ s_z^S \end{bmatrix}, \qquad \|\mathbf s^S\|=1. } \]

Some digital or fine Sun sensors instead provide two angular measurements. One possible convention is

\[ \boxed{ \alpha = \tan^{-1} \left( \frac{s_x^S}{s_z^S} \right) } \]

and

\[ \boxed{ \beta = \tan^{-1} \left( \frac{s_y^S}{s_z^S} \right). } \]

Here, \(\alpha\) and \(\beta\) represent Sun incidence angles relative to two sensor axes. The exact axis definitions and signs depend on the sensor manufacturer and mounting convention.

Given these two angles, an unnormalised direction can be constructed as

\[ \tilde{\mathbf s}^{S} = \begin{bmatrix} \tan\alpha\\ \tan\beta\\ 1 \end{bmatrix}. \]

The unit Sun vector is then

\[ \boxed{ \mathbf s^S = \frac{\tilde{\mathbf s}^{S}} {\|\tilde{\mathbf s}^{S}\|}. } \]

4.1.5.3 Why Is the Sun a Useful Attitude Reference?

The Sun is an exceptionally useful optical reference because it is extremely bright compared with ordinary celestial objects. A spacecraft therefore does not require the sophisticated star-pattern recognition algorithms used by a star tracker merely to identify the Sun.

Important advantages include:

If the inertial Sun position is \( \mathbf r_{Sun}^{I} \) and the spacecraft position is \( \mathbf r_{SC}^{I} \), the spacecraft-to-Sun vector is

\[ \mathbf r_{SC\rightarrow Sun}^{I} = \mathbf r_{Sun}^{I} - \mathbf r_{SC}^{I}. \]

The corresponding unit reference vector is

\[ \boxed{ \mathbf s_{Sun}^{I} = \frac{ \mathbf r_{Sun}^{I} - \mathbf r_{SC}^{I} }{ \left\| \mathbf r_{Sun}^{I} - \mathbf r_{SC}^{I} \right\| }. } \]

This reference vector can be obtained from a solar ephemeris model and used by the attitude-determination algorithm.

4.1.5.4 Sun Vector and Spacecraft Attitude

Assume that the reference Sun vector is known in an inertial frame \(I\):

\[ \mathbf s^I. \]

If \(C_I^B\) is the direction cosine matrix transforming vectors from the inertial frame into the spacecraft body frame, the ideal body-frame Sun vector is

\[ \boxed{ \mathbf s^B = C_I^B \mathbf s^I. } \]

The Sun sensor generally has its own coordinate frame. If \(C_B^S\) transforms vectors from the spacecraft body frame into the sensor frame, then

\[ \boxed{ \mathbf s^S = C_B^S \mathbf s^B. } \]

Combining the equations,

\[ \boxed{ \mathbf s^S = C_B^S C_I^B \mathbf s^I. } \]

This is one of the most important equations in spacecraft Sun-sensor simulation because it links the known celestial reference, spacecraft attitude, and sensor mounting geometry.

4.1.5.5 Why One Sun Vector Does Not Determine Complete Attitude

A single vector observation does not independently determine all three spacecraft attitude degrees of freedom.

Suppose the Sun sensor determines the body-frame vector

\[ \mathbf s^B. \]

The spacecraft can still rotate about this vector without changing the measured direction of the Sun.

Therefore,

\[ \boxed{ \text{One Reference Vector} \neq \text{Complete Three-Axis Attitude} } \]

because rotation about the measured reference vector remains unobservable from that vector alone.

Full attitude determination therefore normally requires another non-collinear reference or additional dynamic information:

\[ \boxed{ \text{Sun Sensor} + \text{Magnetometer} } \]

or

\[ \boxed{ \text{Sun Sensor} + \text{Gyroscope} } \]

or

\[ \boxed{ \text{Sun Sensor} + \text{Star Tracker} }. \]

In particular, two independent non-collinear vector observations can be used with algorithms such as TRIAD, QUEST, or Davenport's q-method to obtain three-axis attitude.

4.1.5.6 Main Types of Sun Sensors

Sun sensors can be classified according to their detector architecture, output type, accuracy, and intended spacecraft role.

Analog Sun Sensors

Analog Sun sensors typically use photodiodes or photovoltaic cells. Incident sunlight produces a voltage or current whose magnitude depends on illumination geometry.

Coarse Sun Sensors — CSS

Coarse Sun sensors generally prioritize field of view, robustness, simplicity, and low power rather than high angular accuracy.

They are particularly useful for:

Fine Sun Sensors — FSS

Fine Sun sensors use more precise optical geometry and detector position measurement. They may employ slits, apertures, masks, detector arrays, quadrant detectors, or position-sensitive devices.

Digital Sun Sensors — DSS

Digital Sun sensors perform internal signal processing and may directly output:

Two-Axis Sun Sensors

A two-axis sensor measures two independent angular coordinates and can reconstruct a three-dimensional Sun direction within its field of view.

4.1.5.7 Photodiode Operating Principle

Many Sun sensors are based on semiconductor photodiodes. When photons with sufficient energy reach the semiconductor, electron-hole pairs are generated and a photocurrent is produced.

A simplified relation is

\[ \boxed{ I_{ph} = R_{\lambda} P_{opt} } \]

where:

Responsivity depends on wavelength:

\[ R_{\lambda}=R(\lambda). \]

Consequently, detector response depends on the solar spectrum, detector material, optical filters, and temperature.

4.1.5.8 Cosine Response of a Flat Sun Sensor

A simple coarse Sun sensor can be modelled as a flat detector whose output depends on the projected area exposed to incoming sunlight.

Let

\[ \mathbf n \]

be the unit normal to the detector and

\[ \mathbf s \]

the unit vector pointing toward the Sun.

The incidence angle satisfies

\[ \boxed{ \cos\theta = \mathbf n^T\mathbf s. } \]

An ideal cosine-response detector can therefore be represented by

\[ I=I_0\cos\theta. \]

Because the rear side of the detector does not receive direct sunlight, a more useful model is

\[ \boxed{ I = I_0 \max \left( 0,\mathbf n^T\mathbf s \right). } \]

This simple dot-product model is extremely useful for early spacecraft GNC simulation.

4.1.5.9 Multiple Coarse Sun Sensors

A single cosine-response detector generally cannot determine the complete three-dimensional Sun direction. Multiple coarse Sun sensors are therefore commonly installed with different orientations.

For sensor \(i\),

\[ \boxed{ I_i = G_i \max \left( 0, \mathbf n_i^T\mathbf s^B \right) + b_i + n_i } \]

where:

By combining several illuminated sensors, the spacecraft can reconstruct an estimate of the Sun direction.

4.1.5.10 Coarse Sun Sensor Geometry and Vector Reconstruction

Suppose \(N\) coarse sensors have known unit normals

\[ \mathbf n_1,\mathbf n_2,\ldots,\mathbf n_N. \]

Ignoring clipping and measurement errors,

\[ I_i = G_i \mathbf n_i^T\mathbf s. \]

Define the normalized measurement

\[ y_i=\frac{I_i}{G_i}. \]

Then

\[ y_i=\mathbf n_i^T\mathbf s. \]

Stacking all valid measurements gives

\[ \boxed{ \mathbf y = H\mathbf s } \]

where

\[ H = \begin{bmatrix} \mathbf n_1^T\\ \mathbf n_2^T\\ \vdots\\ \mathbf n_N^T \end{bmatrix}. \]

If sufficient independent measurements are available, a weighted least-squares solution is

\[ \boxed{ \hat{\mathbf s} = (H^TWH)^{-1} H^TW\mathbf y. } \]

The result should then be normalized:

\[ \boxed{ \hat{\mathbf s} \leftarrow \frac{\hat{\mathbf s}} {\|\hat{\mathbf s}\|}. } \]

In practical implementations, only valid illuminated sensors should be included, and a numerically robust least-squares method such as QR or SVD may be preferred to explicitly forming the matrix inverse.

4.1.5.11 Fine Sun Sensor Operating Principle

A fine Sun sensor commonly converts the incidence angle of sunlight into the position of an illuminated spot or line on a detector.

Consider a simplified optical geometry with an aperture or slit separated from the detector by a distance \(h\).

If the incident sunlight arrives at angle \(\theta\), the illuminated detector position may satisfy

\[ \boxed{ x=h\tan\theta. } \]

Therefore,

\[ \boxed{ \theta = \tan^{-1} \left( \frac{x}{h} \right). } \]

For sufficiently small angles,

\[ \tan\theta\approx\theta, \]

giving

\[ \boxed{ \theta \approx \frac{x}{h}. } \]

Thus detector position is converted directly into an angular measurement.

4.1.5.12 Two-Axis Fine Sun Sensor

A two-axis fine Sun sensor measures displacement in two perpendicular detector directions:

\[ x,\qquad y. \]

For a simplified geometry,

\[ \boxed{ \alpha = \tan^{-1} \left( \frac{x}{h} \right) } \]

and

\[ \boxed{ \beta = \tan^{-1} \left( \frac{y}{h} \right). } \]

These angular measurements can be converted into a sensor-frame Sun direction:

\[ \tilde{\mathbf s}^{S} = \begin{bmatrix} \tan\alpha\\ \tan\beta\\ 1 \end{bmatrix}. \]

After normalization,

\[ \boxed{ \mathbf s^S = \frac{\tilde{\mathbf s}^{S}} {\|\tilde{\mathbf s}^{S}\|}. } \]

4.1.5.13 Quadrant Photodiode Sun Sensor

A quadrant photodiode divides the photosensitive surface into four independent regions. The relative illumination of the four quadrants can be used to estimate the location of the incident Sun image.

Let the measured quadrant currents be

\[ I_1,\quad I_2,\quad I_3,\quad I_4. \]

For one possible quadrant numbering convention, a normalized horizontal signal is

\[ \boxed{ u_x = \frac{ (I_1+I_4)-(I_2+I_3) }{ I_1+I_2+I_3+I_4 }. } \]

A corresponding vertical signal can be

\[ \boxed{ u_y = \frac{ (I_1+I_2)-(I_3+I_4) }{ I_1+I_2+I_3+I_4 }. } \]

The precise equations depend on quadrant numbering and sensor geometry.

Calibration functions convert these normalized detector coordinates into angular measurements:

\[ \boxed{ \alpha=f_x(u_x) } \] \[ \boxed{ \beta=f_y(u_y). } \]

Normalization by total intensity helps reduce sensitivity to overall illumination-level changes.

4.1.5.14 Position-Sensitive Detector

A position-sensitive detector can provide a continuous estimate of the location of an illumination spot rather than merely identifying which discrete detector element is illuminated.

For a simplified one-dimensional detector,

\[ \boxed{ x = \frac{L}{2} \frac{I_2-I_1} {I_1+I_2} } \]

where \(L\) represents an appropriate detector dimension and \(I_1\) and \(I_2\) are detector currents.

The measured position can then be converted into incidence angle using the sensor optical geometry.

4.1.5.15 Field of View

A Sun sensor can only provide a valid measurement when the Sun lies within its calibrated field of view.

For a two-axis sensor,

\[ |\alpha|\leq\alpha_{\max} \]

and

\[ |\beta|\leq\beta_{\max}. \]

A simple validity function is

\[ \boxed{ valid_{FOV} = \begin{cases} 1, & |\alpha|\leq\alpha_{\max}, \quad |\beta|\leq\beta_{\max} \\[4pt] 0, & \text{otherwise}. \end{cases} } \]

The stated field of view should not automatically be interpreted as the region of uniform accuracy. Many sensors have a smaller region over which their highest specified accuracy is guaranteed.

4.1.5.16 Sensor Coverage and Spacecraft Placement

A spacecraft may install several coarse Sun sensors to provide broad directional coverage.

Sensors can, for example, be distributed approximately around the spacecraft faces:

\[ +X,\quad -X,\quad +Y,\quad -Y,\quad +Z,\quad -Z. \]

The exact arrangement depends on spacecraft geometry and mission requirements.

Placement must account for:

Consequently,

\[ \boxed{ \text{Sensor Geometric FOV} \neq \text{Actual Spacecraft-Level Sun Visibility}. } \]

4.1.5.17 Ideal Sun Sensor Model

The simplest vector-output Sun sensor model is

\[ \boxed{ \mathbf s_m^S = \mathbf s_{true}^S. } \]

This model assumes:

It is useful during early attitude-estimator development but should eventually be replaced by a realistic measurement model.

4.1.5.18 General Sun Sensor Measurement Model

A simple vector-level model can be written as

\[ \boxed{ \mathbf s_m^S = C_B^S C_I^B \mathbf s_{Sun}^{I} + \mathbf b_s + \mathbf n_s. } \]

Because a physical Sun-direction measurement is normally represented as a unit vector, the result may subsequently be normalized.

A more general nonlinear measurement model is

\[ \boxed{ \mathbf z_s = h_s \left( C_B^S C_I^B\mathbf s_{Sun}^{I}, T, I_{Sun}, \ldots \right) + \mathbf b_s + \mathbf n_s. } \]

The function \(h_s(\cdot)\) can contain the detector geometry, optical calibration, field-of-view mapping, nonlinearity, and other sensor-specific effects.

4.1.5.19 Small-Angle Vector Error Model

A convenient way to model Sun-vector error is to perturb the true vector by a small angular rotation.

Let the angular measurement error be

\[ \delta\boldsymbol{\theta}_s. \]

Then

\[ \mathbf s_m = C(\delta\boldsymbol{\theta}_s)\mathbf s. \]

For a sufficiently small rotation,

\[ C(\delta\boldsymbol{\theta}_s) \approx I- [\delta\boldsymbol{\theta}_s\times]. \]

Therefore,

\[ \boxed{ \mathbf s_m \approx \mathbf s - [\delta\boldsymbol{\theta}_s\times] \mathbf s. } \]

This model is particularly useful in Monte Carlo simulations and multiplicative/error-state attitude filters.

4.1.5.20 Measurement Noise

Random detector, optical, electronic, and signal-processing effects cause measurement uncertainty.

For a two-axis sensor,

\[ \boxed{ \alpha_m = \alpha_{true} + n_\alpha } \] \[ \boxed{ \beta_m = \beta_{true} + n_\beta. } \]

A simple Gaussian model is

\[ n_\alpha \sim \mathcal N(0,\sigma_\alpha^2) \] \[ n_\beta \sim \mathcal N(0,\sigma_\beta^2). \]

If the errors are independent, the measurement covariance is

\[ \boxed{ R_s = \begin{bmatrix} \sigma_\alpha^2 & 0\\ 0 & \sigma_\beta^2 \end{bmatrix}. } \]

If they are correlated,

\[ R_s = \begin{bmatrix} \sigma_\alpha^2 & \rho\sigma_\alpha\sigma_\beta\\ \rho\sigma_\alpha\sigma_\beta & \sigma_\beta^2 \end{bmatrix}. \]

4.1.5.21 Bias

Bias is a systematic offset between the measured and true Sun direction. For a two-axis Sun sensor,

\[ \boxed{ \alpha_m = \alpha_{true} + b_\alpha + n_\alpha } \] \[ \boxed{ \beta_m = \beta_{true} + b_\beta + n_\beta. } \]

Bias may arise from:

A low-noise sensor can still produce poor absolute attitude knowledge if its systematic bias is not accurately calibrated.

4.1.5.22 Scale-Factor Error

Scale-factor error occurs when the conversion between detector output and Sun angle is slightly incorrect.

For one axis,

\[ \boxed{ \alpha_m = (1+k_\alpha)\alpha_{true} + b_\alpha + n_\alpha. } \]

Similarly,

\[ \boxed{ \beta_m = (1+k_\beta)\beta_{true} + b_\beta + n_\beta. } \]

Scale-factor error becomes increasingly important as the Sun moves farther from the sensor boresight because a small percentage error can produce a larger absolute angular error.

4.1.5.23 Axis Non-Orthogonality and Cross-Axis Sensitivity

The two measurement axes of a Sun sensor may not be perfectly orthogonal. In addition, the output intended to represent one axis may depend slightly on the other axis.

A first-order model is

\[ \boxed{ \begin{bmatrix} \alpha_m\\ \beta_m \end{bmatrix} = (I+M_s) \begin{bmatrix} \alpha\\ \beta \end{bmatrix} + \mathbf b_s + \mathbf n_s } \]

where

\[ M_s = \begin{bmatrix} k_\alpha & m_{\alpha\beta}\\ m_{\beta\alpha} & k_\beta \end{bmatrix}. \]

The diagonal terms may represent scale errors, while the off-diagonal terms represent cross-axis coupling.

4.1.5.24 Nonlinearity

Real optical sensors do not always exhibit a perfectly linear relationship between incidence angle and output.

In general,

\[ \boxed{ z=f(\theta). } \]

The nonlinear response may arise from:

A polynomial approximation can be written as

\[ \boxed{ z = a_0 + a_1\theta + a_2\theta^2 + a_3\theta^3 +\cdots. } \]

In practical hardware, a calibration lookup table may be preferable to a simple analytical polynomial.

4.1.5.25 Quantisation and Resolution

Digital Sun sensors have finite output resolution. If the angular quantisation step is \(\Delta\theta\), the reported value can be modelled as

\[ \boxed{ \theta_q = \Delta\theta \operatorname{round} \left( \frac{\theta}{\Delta\theta} \right). } \]

The ideal quantisation error is bounded approximately by

\[ \boxed{ -\frac{\Delta\theta}{2} \leq e_q \leq \frac{\Delta\theta}{2}. } \]

Resolution should not be confused with absolute accuracy. A sensor may report very fine numerical increments while having significantly larger systematic calibration or alignment errors.

4.1.5.26 Saturation and Signal Limits

The detector or associated electronics may saturate when the optical or electrical signal exceeds its usable range.

A generic model is

\[ \boxed{ z_m = \operatorname{sat} (z,z_{\min},z_{\max}). } \]

Saturation may occur because:

A saturated output should generally not be treated as an ordinary high-quality measurement.

4.1.5.27 Temperature Effects

Temperature can affect both the detector electronics and the physical geometry of the sensor.

Temperature-sensitive quantities may include:

A simple temperature-dependent bias model is

\[ \boxed{ b_s(T) = b_0 + k_T(T-T_0). } \]

A higher-order model may be

\[ b_s(T) = b_0 + k_1(T-T_0) + k_2(T-T_0)^2. \]

Scale factor may also vary:

\[ \boxed{ k_s=k_s(T). } \]

4.1.5.28 Mounting Alignment Error

The sensor reference frame is never mounted perfectly relative to the spacecraft body reference frame.

Let the nominal sensor-to-body transformation be

\[ C_{S,nom}^{B}. \]

A small mounting-angle error can be represented by

\[ \delta\boldsymbol{\theta}_{align}. \]

For one common small-angle convention,

\[ \boxed{ C_{S,true}^{B} \approx \left( I- [\delta\boldsymbol{\theta}_{align}\times] \right) C_{S,nom}^{B}. } \]

The exact multiplication order and sign depend on the adopted frame and perturbation convention.

Alignment error is especially important because it can map almost directly into spacecraft attitude knowledge error.

4.1.5.29 Thermoelastic Alignment Drift

Sensor alignment may change after ground calibration because spacecraft structures deform as their temperature changes.

Possible sources include:

A simplified model is

\[ \boxed{ \delta\boldsymbol{\theta}_{align}(T) = \delta\boldsymbol{\theta}_0 + K_T(T-T_0). } \]

For precision attitude determination, thermoelastic alignment can become more important than short-term detector noise.

4.1.5.30 Earth Albedo Error

Earth-orbiting spacecraft can experience an additional optical disturbance because sunlight is reflected from the Earth.

A Sun sensor may therefore receive

\[ \boxed{ I_{total} = I_{direct\,Sun} + I_{Earth\,albedo} + I_{reflection} + I_{noise}. } \]

Albedo is particularly relevant to wide-field coarse Sun sensors because they can respond to light arriving from a broad range of directions.

The resulting detector output may no longer correspond exactly to the direct Sun direction and can therefore introduce a systematic angular error.

4.1.5.31 Spacecraft Reflection Error

Sunlight may reflect from spacecraft surfaces before reaching the detector. Potential reflecting surfaces include:

Reflected illumination can produce:

This illustrates why spacecraft-level optical accommodation is an important part of Sun-sensor integration.

4.1.5.32 Spacecraft Shadowing and Obstruction

A sensor can geometrically point toward the Sun while still being blocked by another spacecraft component.

Introduce a line-of-sight visibility variable

\[ \boxed{ V_{shadow} = \begin{cases} 1,&\text{clear line of sight to the Sun}\\ 0,&\text{Sun blocked by spacecraft structure}. \end{cases} } \]

A coarse Sun-sensor model becomes

\[ \boxed{ I_i = V_{shadow,i} G_i \max \left( 0,\mathbf n_i^T\mathbf s \right) + n_i. } \]

If the spacecraft contains moving solar arrays or deployable appendages, the shadowing geometry may be time dependent.

4.1.5.33 Eclipse

During eclipse, the Earth or another celestial body blocks direct sunlight from reaching the spacecraft.

In full eclipse,

\[ \boxed{ I_{direct\,Sun}\approx0. } \]

The Sun-sensor validity flag should therefore become

\[ \boxed{ valid_{Sun}=0. } \]

During this interval, the attitude estimator must propagate using other available sensors.

Examples include:

\[ \boxed{ \text{Gyroscope + Magnetometer} } \]

or

\[ \boxed{ \text{Gyroscope + Star Tracker}. } \]

Thus Sun-sensor availability is inherently linked to orbital geometry.

4.1.5.34 Umbra and Penumbra

Eclipse transitions are not always adequately represented by a simple binary Sun/no-Sun model.

Umbra

In umbra, the solar disk is completely occulted and direct solar illumination is approximately zero:

\[ I_{direct}\approx0. \]

Penumbra

In penumbra, only part of the solar disk is visible. The illumination lies between zero and full sunlight.

Define the visible solar fraction

\[ \boxed{ 0\leq f_{Sun}\leq1. } \]

Then

\[ \boxed{ I_{direct} = f_{Sun}I_0. } \]

This is useful when modelling analogue detector response during eclipse entry and exit.

4.1.5.35 Finite Angular Size of the Sun

The Sun is not a mathematical point source. Near Earth, its apparent angular diameter is approximately half a degree, with a small variation over the year due to changing Earth-Sun distance.

This finite angular size can influence:

For many spacecraft GNC simulations, treating the Sun as a point-direction source is sufficiently accurate. Detailed optical models may instead represent the finite solar disk.

4.1.5.36 Timing Error

A Sun measurement must be associated with the correct measurement time. If the timestamp is incorrect, the spacecraft may have rotated between the actual observation and the time assumed by the estimator.

For spacecraft angular velocity

\[ \boldsymbol{\omega} \]

and small timing error \(\delta t\), the corresponding angular error is approximately

\[ \boxed{ \delta\boldsymbol{\theta}_{time} \approx \boldsymbol{\omega}\delta t. } \]

Timing accuracy becomes increasingly important as spacecraft angular rate increases.

4.1.5.37 Sensor Latency

A Sun sensor may require a finite time for:

If a measurement physically corresponds to time \(t_k\) but becomes available at

\[ t_k+\tau_s, \]

then

\[ \boxed{ \tau_s = \text{Sun-sensor latency}. } \]

Known latency can often be handled through correct timestamping and estimator propagation.

4.1.5.38 Sampling and Update Rate

Digital Sun-sensor measurements are available at discrete times

\[ t_k=kT_s. \]

The update frequency is

\[ \boxed{ f_s=\frac{1}{T_s}. } \]

A discrete measurement model is

\[ \boxed{ \mathbf z_{s,k} = h_s(\mathbf x_k) + \mathbf v_k. } \]

The required update rate depends strongly on spacecraft dynamics. A slowly moving Sun-pointing spacecraft may require only modest measurement frequency, whereas a rapidly rotating spacecraft requires faster updates to avoid large inter-sample attitude changes.

4.1.5.39 Complete Two-Axis Measurement Model

Let

\[ \mathbf z = \begin{bmatrix} \alpha\\ \beta \end{bmatrix}. \]

A useful two-axis error model is

\[ \boxed{ \mathbf z_m = (I+S_s+M_s) \mathbf z_{true} + \mathbf b_s(T) + \mathbf n_s. } \]

Here:

A higher-fidelity sensor chain can be written conceptually as

\[ \boxed{ \mathbf z_m = Q \left[ \operatorname{sat} \left( f_{cal} \left( C_B^S C_I^B \mathbf s_{Sun}^{I}, T \right) + \mathbf n_s \right) \right]. } \]

The output is accepted only when the Sun is visible and the sensor is operating within its valid measurement region.

4.1.5.40 Complete Coarse Sun Sensor Model

A useful high-level model for coarse detector \(i\) is

\[ \boxed{ \begin{aligned} I_{m,i} ={}& G_i(T) V_i \max \left( 0, \mathbf n_i^T\mathbf s^B \right) \\ &+ b_i(T) + I_{albedo,i} + I_{reflection,i} + n_i. \end{aligned} } \]

This equation includes:

It provides a considerably more realistic spacecraft-level model than assuming only

\[ I_i=\cos\theta_i. \]

4.1.5.41 Sun-Vector Reconstruction from Multiple CSS Measurements

For \(N\) valid coarse Sun sensors, the idealized linear relation can be written as

\[ \mathbf y=H\mathbf s. \]

A weighted least-squares estimate is

\[ \boxed{ \hat{\mathbf s} = (H^TWH)^{-1} H^TW\mathbf y. } \]

The reconstructed vector is normalized:

\[ \boxed{ \hat{\mathbf s} \leftarrow \frac{\hat{\mathbf s}} {\|\hat{\mathbf s}\|}. } \]

The weighting matrix \(W\) can account for differences in measurement confidence. A sensor may receive less weight because of:

4.1.5.42 Geometry and Observability of Multiple Coarse Sun Sensors

The quality of Sun-vector reconstruction depends not only on the number of illuminated sensors but also on their geometric arrangement.

If the usable sensor normals are nearly parallel, the matrix

\[ H \]

becomes poorly conditioned, and small measurement errors can produce large Sun-vector estimation errors.

Therefore,

\[ \boxed{ \text{Large Number of Sensors} \not\Rightarrow \text{Good Geometry}. } \]

Sensor placement should provide sufficiently diverse detector normals over the expected spacecraft attitude envelope.

4.1.5.43 Sun Sensor + Magnetometer Attitude Determination

A Sun sensor and magnetometer form a classical low-cost spacecraft attitude-determination combination.

The reference-frame vectors are

\[ \mathbf s^I \]

for the Sun and

\[ \mathbf B^I \]

for the geomagnetic field.

The spacecraft measures the corresponding body-frame vectors

\[ \mathbf s^B \]

and

\[ \mathbf B^B. \]

Therefore,

\[ \boxed{ \{ \mathbf s^I,\mathbf B^I \} + \{ \mathbf s^B,\mathbf B^B \} \rightarrow \text{Three-Axis Attitude}. } \]

The two reference vectors must be sufficiently non-collinear for good attitude observability.

4.1.5.44 TRIAD Using Sun Sensor and Magnetometer

TRIAD constructs orthonormal reference and body triads from two independent vector observations.

Define the first inertial/reference direction:

\[ \mathbf r_1 = \frac{\mathbf s^I} {\|\mathbf s^I\|}. \]

Define the second triad axis:

\[ \mathbf r_2 = \frac{ \mathbf r_1\times\mathbf B^I }{ \| \mathbf r_1\times\mathbf B^I \| }. \]

Then

\[ \mathbf r_3 = \mathbf r_1\times\mathbf r_2. \]

Similarly in the spacecraft body frame,

\[ \mathbf b_1 = \frac{\mathbf s^B} {\|\mathbf s^B\|}, \] \[ \mathbf b_2 = \frac{ \mathbf b_1\times\mathbf B^B }{ \| \mathbf b_1\times\mathbf B^B \| }, \] \[ \mathbf b_3 = \mathbf b_1\times\mathbf b_2. \]

Construct

\[ R = \begin{bmatrix} \mathbf r_1 & \mathbf r_2 & \mathbf r_3 \end{bmatrix} \]

and

\[ B = \begin{bmatrix} \mathbf b_1 & \mathbf b_2 & \mathbf b_3 \end{bmatrix}. \]

For the convention used here,

\[ \boxed{ C_I^B = BR^T. } \]

TRIAD is computationally simple and useful for coarse attitude determination, although its performance degrades when the two reference vectors approach collinearity.

4.1.5.45 Sun Sensor + Gyroscope

Gyroscopes and Sun sensors provide complementary information.

The gyroscope provides high-rate angular motion information and is used to propagate attitude between absolute measurements.

For one common quaternion convention,

\[ \boxed{ \dot{\hat{\mathbf q}} = \frac{1}{2} \Omega \left( \boldsymbol{\omega}_m - \hat{\mathbf b}_g \right) \hat{\mathbf q}. } \]

The Sun sensor then provides an absolute vector reference that can correct accumulated gyro drift.

The predicted body-frame Sun vector is

\[ \boxed{ \hat{\mathbf s}^{B} = C_I^B(\hat{\mathbf q}) \mathbf s^I. } \]

It can be compared with the measured vector

\[ \mathbf s_m^B. \]

4.1.5.46 Sun-Vector Residual for EKF / MEKF

The Sun-sensor measurement can be incorporated into an Extended Kalman Filter or Multiplicative Extended Kalman Filter.

A vector residual can be defined as

\[ \boxed{ \mathbf y_s = \mathbf s_m^B - \hat{\mathbf s}^{B}. } \]

For a small attitude error,

\[ \delta\mathbf s \approx - [\hat{\mathbf s}^{B}\times] \delta\boldsymbol{\theta}. \]

Therefore, for a representative error state containing attitude error and gyro bias, a measurement sensitivity block can take the form

\[ \boxed{ H_s = \begin{bmatrix} -[\hat{\mathbf s}^{B}\times] & 0 \end{bmatrix}. } \]

The exact sign and structure depend on the selected attitude-error definition, quaternion convention, and complete filter state.

4.1.5.47 Sun Sensor + Magnetometer + Gyroscope

A robust coarse attitude-estimation architecture can combine all three sensor types:

\[ \boxed{ \text{Gyroscope} + \text{Sun Sensor} + \text{Magnetometer} \rightarrow \text{EKF / MEKF}. } \]

Their functions are complementary:

During eclipse, the Sun-sensor update can be removed:

\[ \boxed{ \text{Eclipse} \rightarrow \text{Gyroscope + Magnetometer}. } \]

When sunlight becomes available again, the Sun-sensor update can be reintroduced after appropriate validity checks.

4.1.5.48 Measurement Gating

A Sun-sensor measurement should not automatically be accepted simply because the sensor has produced an output.

Let the estimator innovation be

\[ \mathbf y \]

with innovation covariance

\[ S. \]

The normalized innovation squared can be computed as

\[ \boxed{ d^2 = \mathbf y^T S^{-1} \mathbf y. } \]

If

\[ d^2>\gamma, \]

where \(\gamma\) is a selected statistical threshold, the measurement can be rejected.

Large innovations can result from:

4.1.5.49 Sun-Sensor Validity Logic

A spacecraft should generate a Sun-sensor validity flag using several independent conditions.

\[ \boxed{ valid_{Sun} = f \left( FOV, illumination, eclipse, shadow, signal, temperature, health, innovation \right). } \]

A measurement may be declared valid only when:

4.1.5.50 Sun Acquisition

Sun acquisition is one of the most important operational functions of coarse Sun sensors.

After spacecraft separation, the initial attitude may be uncertain. A collection of wide-FOV Sun sensors can first determine the approximate direction toward the Sun.

The GNC system then commands the spacecraft to rotate until the desired spacecraft axis is aligned with that direction.

\[ \boxed{ \text{Unknown Attitude} \rightarrow \text{CSS Detection} \rightarrow \text{Sun Vector Estimate} \rightarrow \text{Pointing Error} \rightarrow \text{Controller} \rightarrow \text{Actuator} \rightarrow \text{Sun Acquisition}. } \]

4.1.5.51 Sun-Pointing Error

Suppose the desired body-frame Sun direction is

\[ \mathbf s_d^B \]

and the measured direction is

\[ \mathbf s_m^B. \]

Assuming both are normalized, the angular pointing error is

\[ \boxed{ \theta_e = \cos^{-1} \left[ (\mathbf s_d^B)^T \mathbf s_m^B \right]. } \]

A directional error vector can be constructed using the cross product:

\[ \boxed{ \mathbf e_s = \mathbf s_m^B \times \mathbf s_d^B. } \]

For small angular errors, the magnitude of this cross-product vector is approximately proportional to the pointing error and can be used in a feedback-control law.

4.1.5.52 Safe-Mode Sun Pointing

One of the most important spacecraft applications of Sun sensors is safe-mode attitude control.

During a serious spacecraft anomaly, high-performance sensors or payload electronics may be unavailable or intentionally switched off. The spacecraft must nevertheless maintain a survivable attitude.

A robust safe-mode architecture may use

\[ \boxed{ \text{Coarse Sun Sensors} + \text{Magnetometer} + \text{Gyroscope}. } \]

Depending on spacecraft design, the safe-mode objective may be:

Safe mode therefore emphasizes robustness and availability rather than extremely high pointing accuracy.

4.1.5.53 Detumbling and Early Operations

After launch-vehicle separation, a spacecraft may have significant residual angular velocity.

Gyroscopes and magnetometers are commonly used directly for detumbling, while Sun sensors provide useful information for subsequent attitude acquisition and can help verify the evolving spacecraft orientation.

A representative early-orbit sequence is

\[ \boxed{ \text{Separation} \rightarrow \text{Rate Determination} \rightarrow \text{Detumble} \rightarrow \text{Sun Detection} \rightarrow \text{Sun Acquisition} \rightarrow \text{Power-Positive Attitude}. } \]

4.1.5.54 Solar-Array Pointing

For a simple flat solar array, generated electrical power depends strongly on the angle between the Sun direction and the panel normal.

A simplified relationship is

\[ \boxed{ P \propto \max \left( 0,\cos\theta_{Sun} \right). } \]

Maximum ideal illumination occurs when

\[ \theta_{Sun}=0. \]

Sun-vector measurements can therefore support spacecraft or solar-array control designed to reduce

\[ \boxed{ \theta_{Sun} \rightarrow 0 } \]

subject to other mission constraints.

4.1.5.55 Sun Avoidance

Not every spacecraft component should point toward the Sun. Some optical and thermal systems require exclusion zones.

A Sun-avoidance requirement can be written as

\[ \boxed{ \theta_{Sun} > \theta_{exclude}. } \]

Such constraints can protect:

Sun-vector knowledge is therefore useful both for Sun pointing and Sun avoidance.

4.1.5.56 Sensor Redundancy

Sun sensors are often part of the spacecraft's survival architecture. Redundancy is therefore particularly important.

Multiple coarse Sun sensors can provide:

Let the health state of sensor \(i\) be

\[ h_i\in\{0,1\}. \]

A simple selection rule is

\[ \boxed{ I_{used,i} = h_iI_i. } \]

A failed sensor is then removed from Sun-vector reconstruction.

4.1.5.57 Measurement Selection and Weighting for Multiple CSS

When several coarse Sun sensors are illuminated simultaneously, the flight software must decide how their measurements are combined.

Possible approaches include:

A simple signal-based weighting rule might use

\[ w_i\propto I_i. \]

A more realistic weight can depend on several factors:

\[ \boxed{ w_i = f \left( I_i, \sigma_i, \theta_i, health_i, calibration_i \right). } \]

High signal strength should not automatically imply high measurement quality because the sensor may be saturated or operating in a poorly calibrated region.

4.1.5.58 Continuous-Time Sun Sensor Model

A simplified continuous-time model can be written as

\[ \boxed{ \mathbf z_s(t) = h_s \left[ \mathbf q(t), \mathbf s^I(t) \right] + \mathbf b_s(t) + \mathbf n_s(t). } \]

If the sensor bias is represented as a random walk,

\[ \boxed{ \dot{\mathbf b}_s(t) = \mathbf n_b(t). } \]

However, many Sun-sensor systematic errors are better represented as constant or slowly varying calibration errors rather than rapidly varying stochastic bias.

4.1.5.59 Discrete-Time Sun Sensor Model

At measurement sample \(k\),

\[ \boxed{ \mathbf z_{s,k} = h_s \left( \mathbf q_k, \mathbf s_k^I \right) + \mathbf b_{s,k} + \mathbf v_{s,k}. } \]

A random-walk bias model can be written as

\[ \boxed{ \mathbf b_{s,k+1} = \mathbf b_{s,k} + \mathbf w_{s,k}. } \]

The measurement update is executed only if

\[ \boxed{ valid_{Sun,k}=1. } \]

4.1.5.60 Simulink Sun Sensor Model

A practical vector-output Sun sensor can be constructed in Simulink using the following signal flow.

Sun Ephemeris / Reference Sun Vector
                |
                v
        Inertial Sun Vector
                |
                v
       Spacecraft True Attitude
                |
                v
      Rotate into Body Frame
                |
                v
       Sensor Mounting DCM
                |
                v
       True Sensor Sun Vector
                |
                v
          FOV Check
                |
        +-------+-------+
        |               |
        v               v
   Eclipse Logic    Shadow Logic
        |               |
        +-------+-------+
                |
                v
         Alignment Error
                |
                v
       Scale / Nonlinearity
                |
                v
        Temperature Model
                |
                v
          Add Bias
                |
                v
          Add Noise
                |
                v
         Quantisation
                |
                v
        Sample and Hold
                |
                v
          Sensor Delay
                |
                v
        Measured Sun Vector
                |
        +-------+-------+
        |               |
        v               v
     Valid Flag      Covariance
        |               |
        +-------+-------+
                |
                v
             EKF / MEKF

For a coarse photodiode-based Sun-sensor assembly, the detector projection should be explicitly modelled:

Body-Frame Sun Vector
        |
        v
Sensor Normal Vectors
        |
        v
     Dot Products
        |
        v
 max(0, n_i^T s)
        |
        v
Gain / Temperature
        |
        v
Albedo + Reflection
        |
        v
Bias + Random Noise
        |
        v
CSS Detector Measurements
        |
        v
Sun Vector Reconstruction
        |
        v
Estimated Sun Vector

4.1.5.61 Levels of Sun-Sensor Simulation Fidelity

Level 1 — Direct Vector Measurement

The simplest GNC-level simulation uses

\[ \mathbf s_m = \delta C \mathbf s_{true} + \mathbf n. \]

Typical additions are:

This level is suitable for many spacecraft attitude-estimator simulations.

Level 2 — Detector and Geometry Model

A more detailed model includes:

Level 3 — Optical and Environmental Model

A high-fidelity model can additionally include:

4.1.5.62 Example — Ideal Coarse Sun Sensor

Consider a coarse detector whose body-frame normal is

\[ \mathbf n = \begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}. \]

Suppose the body-frame Sun direction is

\[ \mathbf s^B = \begin{bmatrix} 0.8\\ 0.6\\ 0 \end{bmatrix}. \]

The vector has unit magnitude:

\[ \sqrt{0.8^2+0.6^2}=1. \]

The normalized ideal detector output is

\[ y = \mathbf n^T\mathbf s^B = 0.8. \]

Therefore,

\[ \cos\theta=0.8. \]

Hence

\[ \boxed{ \theta = \cos^{-1}(0.8) \approx 36.87^\circ. } \]

4.1.5.63 Example — Fine Sun Sensor Geometry

Suppose the separation between the optical aperture and detector is

\[ h=10\text{ mm} \]

and the measured displacement of the illumination spot is

\[ x=1\text{ mm}. \]

The incidence angle is

\[ \theta = \tan^{-1} \left( \frac{1}{10} \right). \]

Therefore,

\[ \boxed{ \theta \approx 5.71^\circ. } \]

If the detector-position uncertainty is \(\sigma_x\), then

\[ \theta=\tan^{-1}(x/h). \]

The sensitivity to position error is

\[ \boxed{ \frac{d\theta}{dx} = \frac{h}{h^2+x^2}. } \]

Therefore, using first-order uncertainty propagation,

\[ \boxed{ \sigma_\theta \approx \frac{h}{h^2+x^2} \sigma_x. } \]

This directly connects detector-position resolution to angular measurement uncertainty.

4.1.5.64 Example — Bias and Noise

Suppose the true Sun angles are

\[ \alpha=20^\circ, \qquad \beta=-10^\circ. \]

Assume sensor biases

\[ b_\alpha=0.10^\circ, \qquad b_\beta=-0.05^\circ \]

and a particular random-noise realization

\[ n_\alpha=0.02^\circ, \qquad n_\beta=0.03^\circ. \]

The measured first angle is

\[ \alpha_m = 20+0.10+0.02 = \boxed{20.12^\circ}. \]

The second measured angle is

\[ \beta_m = -10-0.05+0.03 = \boxed{-10.02^\circ}. \]

These measured angles can subsequently be converted into a unit Sun vector and supplied to the attitude estimator.

4.1.5.65 Reading a Sun Sensor Datasheet

Sensor selection should not be based on a single accuracy value. A spacecraft engineer should examine the complete optical, electrical, mechanical, environmental, and interface specification.

Parameter Why It Matters
Measurement axes Determines how much directional information is directly measured.
Field of view Determines acquisition and tracking coverage.
Angular accuracy Determines absolute Sun-direction uncertainty.
Resolution Smallest reported angular increment.
Repeatability Consistency of repeated measurements.
Bias Systematic angular offset.
Nonlinearity Deviation from ideal angle-to-output calibration.
Cross-axis error Coupling between measurement axes.
Update rate How frequently measurements become available.
Latency Delay between physical observation and delivered measurement.
Acquisition time Time required to generate a valid Sun solution.
Signal threshold Minimum illumination required for valid measurement.
Interface Determines compatibility with spacecraft avionics.
Supply voltage Electrical compatibility with spacecraft power buses.
Power Contribution to spacecraft power budget.
Mass Contribution to spacecraft mass budget.
Dimensions Mechanical accommodation and placement.
Operating temperature Temperature range over which performance is specified.
Survival temperature Temperature range tolerated without operation.
Radiation tolerance Suitability for the expected mission radiation environment.
Vibration / shock Compatibility with launch loads.
Lifetime Compatibility with mission duration.
Space heritage Evidence of previous flight use and operational maturity.

4.1.5.66 Accuracy vs Resolution

Accuracy and resolution are different quantities.

Suppose a digital Sun sensor reports angle increments of

\[ 0.001^\circ. \]

This does not imply that the absolute Sun-angle error is only \(0.001^\circ\).

Absolute accuracy may additionally be limited by:

\[ \boxed{ \text{Resolution} \neq \text{Accuracy}. } \]

4.1.5.67 Field of View vs Accuracy

A wide field of view is highly desirable for initial Sun acquisition and safe mode because it increases the probability that at least one sensor can observe the Sun.

However, maintaining very high angular accuracy across a large field of view can be challenging because of:

This creates an important engineering trade:

\[ \boxed{ \text{Wide FOV} \longleftrightarrow \text{High Angular Precision}. } \]

Some spacecraft therefore use coarse sensors for acquisition and a more accurate sensor for fine Sun-direction measurement.

4.1.5.68 Coarse vs Fine Sun Sensors

Characteristic Coarse Sun Sensor Fine Sun Sensor
Primary role Acquisition and safe mode More precise Sun-direction measurement
Field of view Usually large Often smaller or more constrained
Accuracy Lower Higher
Complexity Low Higher
Power Very low to low Low to moderate
Processing Minimal More extensive
Typical detector Photodiode / solar-cell type detector PSD, array, slit, or precision optical detector
Safe-mode suitability Excellent Depends on architecture

These are general engineering trends. Actual performance must always be taken from the specific sensor datasheet.

4.1.5.69 Sun Sensor vs Star Tracker

Property Sun Sensor Star Tracker
Celestial reference Sun Stars
Typical fundamental output Sun direction / Sun angles Absolute attitude or identified star vectors
Full attitude alone Usually no Usually yes
Accuracy Coarse to fine depending on type Very high
Acquisition complexity Relatively low Higher
Computational burden Low Higher
Direct sunlight Required Usually an exclusion condition
Eclipse Unavailable for direct Sun measurement Can remain available if viewing conditions are suitable
Safe-mode role Excellent Architecture dependent

Sun sensors and star trackers therefore usually perform complementary spacecraft functions rather than serving as direct replacements for one another.

4.1.5.70 Sun Sensor vs Magnetometer

A Sun sensor measures a celestial direction, whereas a magnetometer measures the local magnetic-field vector.

The magnetometer measurement is

\[ \mathbf B^B. \]

Important Sun-sensor advantages include:

Magnetometer advantages include:

Combining the two produces two independent reference directions:

\[ \boxed{ \text{Sun Sensor} + \text{Magnetometer} \rightarrow \text{Three-Axis Coarse Attitude}. } \]

4.1.5.71 Sun Sensor vs Gyroscope

The two sensors measure fundamentally different quantities.

\[ \boxed{ \text{Sun Sensor} \rightarrow \text{Absolute Direction Reference} } \]

while

\[ \boxed{ \text{Gyroscope} \rightarrow \text{Angular Rate}. } \]

A gyro is excellent for high-rate short-term attitude propagation but accumulates attitude error because of bias and integration.

A Sun sensor does not accumulate integration drift, but it becomes unavailable during eclipse and does not independently observe rotation about the Sun vector.

Therefore,

\[ \boxed{ \text{Gyroscope + Sun Sensor} } \]

provides complementary short-term and absolute-reference information.

4.1.5.72 Sun Sensor Error Budget

The total Sun-direction error can be conceptually decomposed into several contributions:

\[ \boxed{ \begin{aligned} \delta\boldsymbol{\theta}_{Sun} ={}& \delta\boldsymbol{\theta}_{noise} + \delta\boldsymbol{\theta}_{bias} + \delta\boldsymbol{\theta}_{scale} \\ &+ \delta\boldsymbol{\theta}_{nonlinearity} + \delta\boldsymbol{\theta}_{alignment} + \delta\boldsymbol{\theta}_{thermal} \\ &+ \delta\boldsymbol{\theta}_{timing} + \delta\boldsymbol{\theta}_{albedo} + \delta\boldsymbol{\theta}_{reflection}. \end{aligned} } \]

If several contributions can reasonably be treated as independent zero-mean random errors, their standard deviations may be combined by root-sum-square:

\[ \boxed{ \sigma_{total} = \sqrt{ \sigma_1^2+ \sigma_2^2+ \cdots+ \sigma_n^2 }. } \]

Systematic or correlated errors should instead be treated explicitly through calibration parameters or covariance modelling.

4.1.5.73 Monte Carlo Modelling

Monte Carlo simulation allows the complete spacecraft GNC system to be tested against realistic variations in Sun-sensor performance.

Parameters that can be randomized include:

For Monte Carlo run \(j\), a parameter set can be represented as

\[ \boxed{ \mathbf p_s^{(j)} = \left\{ \mathbf b^{(j)}, S^{(j)}, M^{(j)}, \delta\boldsymbol{\theta}_{align}^{(j)}, \sigma^{(j)}, \tau^{(j)} \right\}. } \]

Useful simulation outputs include:

4.1.5.74 Failure Modes

A realistic spacecraft design should consider both complete sensor loss and more subtle incorrect measurements.

Possible Sun-sensor failure modes include:

A particularly important distinction is

\[ \boxed{ \text{Sensor Unavailable} } \]

versus

\[ \boxed{ \text{Sensor Available but Incorrect}. } \]

The second condition can be more dangerous because the estimator may unknowingly accept incorrect attitude information.

4.1.5.75 Fault Detection, Isolation, and Recovery

Sun-sensor FDIR can combine physical checks, sensor-status information, and estimator consistency checks.

Vector Norm Check

If the sensor output is expected to be a unit vector,

\[ \boxed{ \left| \|\mathbf s_m\|-1 \right| < \epsilon. } \]

Signal-Level Check

\[ \boxed{ I_{min} < I < I_{max}. } \]

Field-of-View Check

The reconstructed Sun angles must remain inside the calibrated measurement region.

Ephemeris Consistency Check

Compare the measured Sun direction with the direction predicted from the current attitude estimate and Sun ephemeris.

Estimator Innovation Check

Reject measurements producing statistically inconsistent innovations.

Cross-Sensor Check

Compare the Sun-sensor information against:

Temporal Continuity Check

Sudden physically impossible changes in the measured Sun direction may indicate a sensor or optical disturbance.

4.1.5.76 Sun Sensor Placement Trade-Offs

Sensor placement is part of the GNC design problem and should not be treated purely as a mechanical accommodation task.

Coverage

The sensor arrangement must provide adequate Sun visibility over the required spacecraft attitude envelope.

Shadowing

Solar arrays, antennas, payloads, and deployable structures should not block critical sensor viewing directions.

Reflections

Highly reflective surfaces can create false illumination.

Thermal Environment

The mounting location should remain within the sensor operating temperature range and minimize severe thermoelastic distortion where practical.

Alignment Stability

Precision sensors should be mounted on mechanically stable structures.

Redundancy

The placement should avoid a single failure or obstruction removing all Sun visibility in a critical spacecraft orientation.

Electrical Integration

Harness length, power availability, interface compatibility, and flight computer connectivity must also be considered.

4.1.5.77 Sun Sensor Calibration

Calibration determines the relationship between raw sensor output and the actual Sun direction.

A calibration parameter vector may contain

\[ \boxed{ \mathbf p_{cal} = \begin{bmatrix} b_\alpha & b_\beta & k_\alpha & k_\beta & m_{\alpha\beta} & m_{\beta\alpha} & \delta\boldsymbol{\theta}_{align}^T & k_T & \cdots \end{bmatrix}^{T}. } \]

Calibration can account for:

The calibrated measurement can be represented as

\[ \boxed{ \mathbf z_{cal} = f_{cal} \left( \mathbf z_{raw}, T, \mathbf p_{cal} \right). } \]

4.1.5.78 Ground Calibration

Ground calibration can be performed using a controlled optical source and precision rotation equipment.

The sensor is exposed to known illumination angles while its electrical or digital outputs are recorded.

This produces a calibration relationship of the form

\[ \boxed{ (\alpha,\beta) \longleftrightarrow (z_1,z_2,\ldots). } \]

Calibration can be repeated at multiple temperatures:

\[ T_1,\quad T_2,\quad \ldots,\quad T_N \]

to characterize thermal sensitivity.

The final calibration may be represented using coefficients, lookup tables, or multidimensional interpolation.

4.1.5.79 In-Orbit Calibration

Some alignment and calibration errors can be refined after launch.

If an accurate attitude estimate is available from a star tracker, the expected Sun direction can be predicted:

\[ \boxed{ \text{Star Tracker Attitude} + \text{Sun Ephemeris} \rightarrow \text{Predicted Sun Vector}. } \]

This can be compared against

\[ \boxed{ \text{Measured Sun Vector}. } \]

Repeated residual analysis can help estimate:

4.1.5.80 Radiation Effects

The space radiation environment can degrade semiconductor detectors and supporting electronics.

Possible effects include changes in:

Radiation suitability depends on:

A sensor should therefore be evaluated against the actual mission radiation environment rather than being assumed suitable simply because it is marketed for space use.

4.1.5.81 Contamination and Optical Degradation

Optical surfaces can degrade during the mission because of contamination or environmental exposure.

Possible sources include:

A simple optical efficiency parameter can be introduced:

\[ \boxed{ I_{measured} = \eta_{opt}(t) I_{ideal} } \]

with

\[ 0\leq\eta_{opt}\leq1. \]

Long-duration missions may require degradation margins in the sensor signal budget.

4.1.5.82 Mission-Level Sun Sensor Availability

Angular accuracy alone does not determine whether a Sun sensor is useful for a mission. The sensor must also be available when the spacecraft needs it.

A simple availability metric is

\[ \boxed{ A_{Sun} = \frac{ T_{\text{valid Sun measurements}} }{ T_{\text{mission interval}} }. } \]

Availability depends on:

For a safe-mode sensor, high availability and coverage may be more important than extremely small measurement noise.

4.1.5.83 Selecting a Sun Sensor for a Space Mission

Sun-sensor selection should begin with mission and GNC requirements rather than with a hardware catalogue.

Important questions include:

  1. What Sun-direction accuracy is required?
  2. Is the sensor intended for safe mode, nominal mode, or both?
  3. Is coarse or fine Sun measurement required?
  4. Is one-axis or two-axis sensing required?
  5. What field of view is required?
  6. How much spacecraft angular coverage is required?
  7. How many sensors are needed for redundancy?
  8. What update rate is required?
  9. What measurement latency is acceptable?
  10. What spacecraft angular rates must be supported?
  11. How long are expected eclipse intervals?
  12. Is Earth albedo a significant disturbance?
  13. Can spacecraft reflections affect the measurement?
  14. What temperature range is expected?
  15. What mounting-alignment stability is required?
  16. What radiation environment must be survived?
  17. What mass and power budgets are available?
  18. What electrical/data interface is required?
  19. What qualification evidence is required?
  20. What mission lifetime and flight heritage are required?

A useful selection process is

\[ \boxed{ \text{Mission Requirement} \rightarrow \text{Attitude Requirement} \rightarrow \text{Sun-Sensor Requirement} \rightarrow \text{Candidate Comparison} \rightarrow \text{GNC Simulation} \rightarrow \text{Qualification Assessment} \rightarrow \text{Selection}. } \]

4.1.5.84 Recommended Spacecraft-Level Sun Sensor Model

For spacecraft GNC simulation, a useful model should be sufficiently realistic to capture estimator and control performance without requiring a complete optical ray-tracing simulation.

Begin with the inertial Sun vector:

\[ \boxed{ \mathbf s_{Sun}^{I} } \]

Transform it into the spacecraft body frame:

\[ \boxed{ \mathbf s_{Sun}^{B} = C_I^B \mathbf s_{Sun}^{I}. } \]

Then transform into the sensor frame:

\[ \boxed{ \mathbf s_{Sun}^{S} = C_B^S \mathbf s_{Sun}^{B}. } \]

The measurement should then pass through the following effects:

\[ \boxed{\text{Field of View}} \] \[ \downarrow \] \[ \boxed{\text{Eclipse / Penumbra}} \] \[ \downarrow \] \[ \boxed{\text{Spacecraft Shadowing}} \] \[ \downarrow \] \[ \boxed{\text{Alignment Error}} \] \[ \downarrow \] \[ \boxed{\text{Scale Factor + Nonlinearity}} \] \[ \downarrow \] \[ \boxed{\text{Temperature Effects}} \] \[ \downarrow \] \[ \boxed{\text{Albedo + Reflections}} \] \[ \downarrow \] \[ \boxed{\text{Bias + Noise}} \] \[ \downarrow \] \[ \boxed{\text{Quantisation}} \] \[ \downarrow \] \[ \boxed{\text{Sampling + Latency}} \] \[ \downarrow \] \[ \boxed{ \mathbf s_{Sun,m}, \quad R_{Sun}, \quad valid_{Sun}, \quad t_{Sun} } \]

The final sensor packet therefore ideally contains not only a direction measurement, but also the information required to use that measurement correctly in the navigation system.

4.1.5.85 Complete Sun Sensor Signal Flow

Sun Ephemeris
      |
      v
Reference Sun Direction
      |
      v
Spacecraft True Attitude
      |
      v
Body-Frame Sun Direction
      |
      v
Sensor Mounting Geometry
      |
      v
Sensor-Frame Sun Direction
      |
      +----------------------------+
      |                            |
      v                            v
Eclipse / Penumbra             Shadowing
      |                            |
      +-------------+--------------+
                    |
                    v
                Sensor FOV
                    |
                    v
             Optical Response
                    |
                    v
               Photodetector
                    |
                    v
           Signal Conditioning
                    |
          +---------+---------+
          |                   |
          v                   v
 Temperature Effects     Albedo / Reflection
          |                   |
          +---------+---------+
                    |
                    v
               Bias + Noise
                    |
                    v
                Calibration
                    |
                    v
            Sun Angles / Vector
                    |
                    v
          Validity / Quality Logic
                    |
                    v
              Attitude Estimator
                    |
       +------------+------------+
       |                         |
       v                         v
   Gyroscope                Magnetometer
       |                         |
       +------------+------------+
                    |
                    v
                 EKF / MEKF
                    |
                    v
         Estimated Spacecraft Attitude
                    |
                    v
              GNC Controller
                    |
                    v
    Reaction Wheels / MTQs / Thrusters

This signal flow shows that a Sun sensor should be treated as part of a complete spacecraft measurement and estimation chain rather than as an isolated angle-measuring device.

4.1.5.86 Key Sun Sensor Equations

Spacecraft-to-Sun Reference Vector

\[ \boxed{ \mathbf s_{Sun}^{I} = \frac{ \mathbf r_{Sun}^{I} - \mathbf r_{SC}^{I} }{ \| \mathbf r_{Sun}^{I} - \mathbf r_{SC}^{I} \| }. } \]

Body-Frame Sun Vector

\[ \boxed{ \mathbf s^B = C_I^B \mathbf s^I. } \]

Sensor-Frame Sun Vector

\[ \boxed{ \mathbf s^S = C_B^S C_I^B \mathbf s^I. } \]

Cosine Detector

\[ \boxed{ I_i = G_i \max \left( 0,\mathbf n_i^T\mathbf s \right). } \]

Fine Sun Sensor Geometry

\[ \boxed{ x=h\tan\theta } \] \[ \boxed{ \theta = \tan^{-1}(x/h). } \]

Two-Axis Sun Vector

\[ \boxed{ \mathbf s = \frac{ \begin{bmatrix} \tan\alpha\\ \tan\beta\\ 1 \end{bmatrix} }{ \left\| \begin{bmatrix} \tan\alpha\\ \tan\beta\\ 1 \end{bmatrix} \right\| }. } \]

Angular Error Between Sun Vectors

\[ \boxed{ \theta_e = \cos^{-1} \left( \mathbf s_1^T \mathbf s_2 \right). } \]

Small-Angle Measurement Error

\[ \boxed{ \mathbf s_m \approx \mathbf s - [\delta\boldsymbol{\theta}\times]\mathbf s. } \]

EKF / MEKF Sun-Vector Residual

\[ \boxed{ \mathbf y_s = \mathbf s_m^B - \hat{\mathbf s}^{B}. } \]

Timing Error

\[ \boxed{ \delta\boldsymbol{\theta}_{time} \approx \boldsymbol{\omega}\delta t. } \]

CSS Sun-Vector Reconstruction

\[ \boxed{ \hat{\mathbf s} = (H^TWH)^{-1} H^TW\mathbf y. } \]

followed by

\[ \boxed{ \hat{\mathbf s} \leftarrow \frac{\hat{\mathbf s}} {\|\hat{\mathbf s}\|}. } \]

4.1.5.87 Summary

A Sun sensor is an optical attitude-determination sensor that measures the direction of the Sun relative to the spacecraft.

The fundamental spacecraft measurement relationship is

\[ \boxed{ \mathbf s^S = C_B^S C_I^B \mathbf s_{Sun}^{I}. } \]

A simple coarse photodiode sensor can be approximated by

\[ \boxed{ I_i = G_i \max \left( 0, \mathbf n_i^T \mathbf s \right). } \]

A fine Sun sensor can convert optical displacement into incidence angle:

\[ \boxed{ \theta = \tan^{-1} \left( \frac{x}{h} \right). } \]

Real spacecraft measurements are affected by considerably more than detector noise. Important errors and environmental effects include:

\[ \boxed{ \begin{aligned} &\text{Bias} + \text{Noise} + \text{Scale Factor} + \text{Nonlinearity} \\ &+ \text{Cross-Axis Error} + \text{Mounting Alignment} + \text{Thermal Drift} \\ &+ \text{Timing} + \text{Quantisation} + \text{Albedo} + \text{Reflections} + \text{Shadowing}. \end{aligned} } \]

Measurement availability must also be modelled because direct Sun observation disappears during full eclipse:

\[ \boxed{ \text{Eclipse} \rightarrow valid_{Sun}=0. } \]

One Sun vector does not independently determine complete three-axis attitude because rotation about the Sun direction remains unobservable.

\[ \boxed{ \text{Sun Vector Alone} \Rightarrow \text{One Unobservable Rotation Degree of Freedom}. } \]

Combining the Sun sensor with a second reference vector resolves this limitation:

\[ \boxed{ \text{Sun Sensor} + \text{Magnetometer} \rightarrow \text{Three-Axis Coarse Attitude}. } \]

Combining vector sensors with a gyroscope provides continuous dynamic attitude estimation:

\[ \boxed{ \text{Gyroscope} + \text{Sun Sensor} + \text{Magnetometer} \rightarrow \text{EKF / MEKF} \rightarrow \text{Attitude Estimate}. } \]

At mission level, the Sun sensor is particularly important during the transition from uncertain initial conditions to nominal spacecraft operation:

\[ \boxed{ \text{Deployment} \rightarrow \text{Detumbling} \rightarrow \text{Sun Acquisition} \rightarrow \text{Power-Positive Safe Attitude} \rightarrow \text{Coarse Attitude} \rightarrow \text{Fine Attitude Acquisition}. } \]

For this reason, Sun sensors are not merely low-accuracy alternatives to star trackers. They are important components of spacecraft robustness, autonomy, recovery, and survival architecture.