Attitude determination and control for centrifugal tether deployment on the ESTCube-1 nanosatellite

This paper presents the design, development, and pre-launch characterization of the ESTCube-1 Attitude Determination and Control System (ADCS). The design driver for the ADCS has been the mission requirement to spin up the satellite to 360 deg·s−1 with controlled orientation of the spin axis and to acquire the angular velocity and the attitude during the scientific experiment. ESTCube-1 is a one-unit CubeSat launched on 7 May 2013, 2:06 UTC on board the Vega VV02 rocket. Its primary mission is to measure the Coulomb drag force exerted by a natural plasma stream on a charged tether and, therefore, to perform the basic proof of concept measurement and technology demonstration of electric solar wind sail technology. The attitude determination system uses three-axis magnetometers, three-axis gyroscopic sensors, and two-axis Sun sensors, a Sun sensor on each side of the satellite. While commercial off-the-shelf components are used for magnetometers and gyroscopic sensors, Sun sensors are custombuilt based on analogue one-dimensional position sensitive detectors. The attitude of the satellite is estimated on board using an Unscented Kalman Filter. An ARM 32-bit processor is used for ADCS calculations. Three electromagnetic coils are used for attitude control. The system is characterized through tests and simulations. Results include mass and power budgets, estimated uncertainties as well as attitude determination and control performance. The system fulfils all mission requirements.

The ADCS of a one-unit CubeSat ESTCube-1 is designed to perform high rate spin control for centrifugal tether deployment as part of the electric solar wind sail (E-sail) [25][26][27] experiment.Precise angular velocity and attitude measurements are needed for a successful E-sail experiment.This is a pre-launch paper and does not include flight data.
To fulfil the mission requirements, an integrated system is developed and tested.The system can be divided into two subsystems.First, the attitude determination system, which has three-axis Honeywell HMC5883L magnetometers; three-axis Invensense ITG-3200 gyroscopic sensors; and two-axis Sun sensors based on two one-dimensional Hamamatsu S3931 position sensitive detectors (PSD), a Sun sensor for each side of the satellite.Attitude estimation is performed using an Unscented Kalman Filter (UKF) [28].Second, the attitude control system, which has three electromagnetic coils.
This paper presents the following: requirements, design of the system, design and test results of sensors, coil production procedure and test results, and attitude determination and control performance.The test results include mass and power budgets as well as estimated uncertainties that are given as expanded uncertainties at the approximate confidence level of 95%, coverage factor k = 2. Attitude determination performance is given as the double standard deviation from model data.Attitude control performance is given as the number of orbits required to spin up the satellite.

REQUIREMENTS
The ADCS is required to perform the following tasks for the E-sail experiment: (1) spin up and (2) provide the angular velocity and the attitude as the main scientific measurements.
For centrifugal tether deployment [29], the satellite is required to spin up: reach the angular velocity of ≈360 deg•s −1 around the axis of maximum moment of inertia (z-axis) and align its spin axis with the Earth's polar axis with a pointing error less than 3 • [30].After tether deployment the spin rate will decrease to ≈20 deg•s −1 , which is an approximate spin rate during the experiment.
During the E-sail experiment, the deployed tether is charged and discharged once per rotation.The ADCS provides time periods when to charge and discharge the tether to the Command and Data Handling System (CDHS) [31].The E-sail experiment will be performed ≈ ±15 • from the poles where the magnetic field is considered parallel to the spin plane.The angular velocity should be estimated with an accuracy better than 0.4 deg•s −1 , and the attitude should be estimated with an accuracy better than 2 • during the E-sail experiment.
Sun sensors, magnetometers, and gyroscopic sensors are required to estimate the attitude.The Sun sensor external width must be less than 14 mm and the length less than 25 mm.The Sun sensor must not extend more than 2.5 mm into the satellite from the side panel.The Sun sensor electronics board must be less than 25 mm wide.Since the satellite is required to perform high rate spin control, the Sun sensors as well as the magnetometers and gyroscopic sensors are required to have a high sampling frequency (order of magnitude >10 Hz).Each Sun sensor should have ≈90 • field of view to be able to provide measurements in any orientation.The given field of view also limits interference from the Earth's albedo.
The Electrical Power System (EPS) [32,33] is able to constantly provide 900 mW for coils for a maximum of 9 orbits.The volume occupied by coils is limited to 69 mm × 90 mm × 2.5 mm with cut corners.The volume of one of the coils is limited to 69 mm × 84 mm × 2.5 mm with cut corners.The inner dimensions of the coils are limited to 49 mm × 70 mm.

SYSTEM DESIGN
Based on the requirements, the following system has been developed and characterized.The ADCS is distributed over the satellite.Four gyroscopic sensors, two magnetometers, analogue to digital converters, temperature sensors, and an access port connector are located on the ADCS sensor board.Sun sensors are located on all sides of the satellite and connected to the sensor board.Calculations are run on a STMicroelectronics STM32F103 processor on the CDHS.This approach was chosen to save volume and employ hardware and software redundancy provided by the CDHS.Calculations include models, the UKF, processing of sensor readings, and attitude controllers.Three coils are aligned with the orthogonal sides of the satellite and directly connected to the main power bus on the EPS.Coils are driven based on commands sent from the CDHS.To avoid unwanted influences on magnetic field measurements, coils are not used at the same time when measurements are taken.The coil driver consists of an Allegro A3901 motor driver, a Maxim MAX319CSA analogue switch, and a Linear Technology LT6105 current sensor.The driving frequency is fixed to 32 kHz. Figure 1 shows the on-board data flow.Figure 2 shows interfaces between the ADCS, the CDHS, and the EPS.
A multimeter was used to determine the power consumption of the ADCS sensor board.The average power consumption of the ADCS sensor board at full load is 262 mW.Voltage drop measurements across a precision shunt resistance were performed to determine the power consumption of the CDHS board.The average power consumption of the CDHS board at full load is 178 mW.The total mass of the ADCS sensor board, Sun  sensors, and coils is 112 g.The size of the ADCS board and the CDHS board is 92 mm × 94 mm × 5 mm.The mass of the CDHS board is 49 g.When the CDHS processor is run at a frequency of 32 MHz (half the maximum), one iteration of ADCS calculations takes less than 150 ms.

SUN SENSORS
Figure 3 shows a two-axis custom-built Sun sensor hardware layout and its dimensions.Two PSDs are located under a mask with two slits perpendicular to the corresponding PSDs.A light beam travels through a slit and upon reaching a PSD, introduces a photocurrent.Depending on the position and the intensity, two output Sun sensors are based on analogue Hamamatsu S3931 [34] PSDs, which were chosen because of their optimal price/performance ratio and ability to fulfil the requirements for mass, size, and accuracy.An analogue solution provides optimal power consumption and a high sampling frequency.Analogue signals are converted using Maxim MAX1230 analogue to digital converters.
The expanded uncertainty for an angle of incident light measured by the Sun sensor is 2.5 • .The value is estimated by taking into account such major contributors as the Earth's albedo influence (1 • ), the temperature drift (0.76 • ), the solar irradiance uncertainty (0.25 • ), the precision of the angle test set-up (0.08 • ), the resolution (0.02 • ), the statistical error (0.005 • ), and the precision of the rotating bench test set-up (0.001 • ).Tests also indicated that a vacuum and the ultraviolet radiation would not cause permanent damage to sensors.
Each sensor weighs 4.6 g and consumes 4 mW.On average six Sun sensors and two analogue to digital converters consume a total of 96 mW.

MAGNETOMETERS
A Honeywell HMC5883L [35] magnetometer, which utilizes anisotropic magnetoresistive technology, was chosen to measure the direction of the local magnetic field.This sensor was selected because of its low mass (18 mg), low power consumption (0.33 mW), high sampling frequency (160 Hz), and sufficient resolution (60 nT) and range (±0.13 mT).
The expanded uncertainty for an angle of the magnetic field direction measured by the magnetometer is 3.2 • .The value is estimated by taking into account such major contributors as the temperature (1.4 • ), the statistical error (0.8 • ), and the precision of the test setup (0.3 • ).To estimate the uncertainty, angular measurements of a constant magnetic field were performed.The residual magnetic field from coils and other parts of the satellite decreases to an insignificant level of 2 ms after coils have been charged.The residual magnetic field is not taken into account in the uncertainty budget because it can be avoided by taking magnetic field measurements after the period of 2 ms.

GYROSCOPIC SENSORS
An Invensense ITG-3200 [36] gyroscopic sensor, which utilizes the Coriolis effect, was chosen to measure the angular velocity of the satellite.This sensor was selected because of its low mass (37 mg), low power consumption ( 21

COILS
Attitude control is performed by three orthogonal coils aligned with the sides of the satellite.Coils are custom designed and produced in-house to comply with the ESTCube-1 structure.Typical coil parameters at room temperature, which are also used in simulations, are the following: copper wire with a diameter of 0.19 mm, 400 turns, thickness of 2.55 mm, an area of 35 cm 2 , mass of 25 g, resistance of 60 Ω, voltage of 4 V, current of 67 mA, and maximum magnetic moment of 0.094 Am 2 .One of the coils has 300 turns, an area of 33 cm 2 , mass of 17 g, resistance of 44 Ω, current of 92 mA, and maximum magnetic moment of 0.091 Am 2 .As the temperature and battery voltage will fluctuate in space several of the previous parameters will be changing separately for each coil.
A coil winder has been developed in-house to produce coils using a special aluminium mould.A thin and even layer of the Araldite DBF + Ren HY956 epoxy is applied after every 2 layers of the copper wire with a syringe.The epoxy is put into a vacuum before and after winding to remove most of the air bubbles.After winding the coil is kept in a mould while the epoxy is cured in a thermal chamber for 3 h.Then the mould is carefully opened and the coil is pushed loose from the other part of the mould and from the centre part.A scalpel is used to carefully remove the excess epoxy.Figure 4 shows a coil glued to the ADCS sensor board.

ATTITUDE DETERMINATION AND CONTROL PERFORMANCE
ESTCube-1 attitude determination and control are tested in a MATLAB Simulink space simulation environment [37,38].Sensor readings are given to the UKF [28] for attitude estimation.Results from sensor testing are used for sensor emulation to calculate the standard deviation of an attitude estimation error and an angular velocity estimation error.A total number of 870 simulations are run with the following settings.The maximum value possible in random variations used below is assumed as the worst-case scenario.
• The mass of the satellite is 1.05 kg.
• The size of the satellite is 10 cm × 10 cm × 11. • A random time bias of maximum ±1 s is applied for emulated on-board calculations at the beginning of each simulation.• Coefficients for the Earth's magnetic field model (IGRF [39]) are calculated with a random time bias of maximum ±30 days at the beginning of each simulation.• The following random variations of maximum biases are applied to sensors at the beginning of each simulation: magnetometer ±2400 nT, Sun sensor ±1 are applied for expected standard deviations of sensor measurements.• Attitude determination and control are performed with a frequency of 2.5 Hz, which is sufficient to estimate the attitude and run coils.One iteration of attitude determination and control takes less than 250 ms.Attitude determination takes less than 150 ms and a period of 100 ms has been found optimal for attitude control.
Figure 5 shows a double standard deviation of the attitude estimation error over the orbit, an angle the blue dashed line shows the angle between the Sun vector and the magnetic field vector.The continuous red line shows periods when the E-sail experiment will be performed (±15 • from poles).The black dash-dot line shows the eclipse period.) Fig. 6.The continuous line shows the double standard deviation of the angular velocity estimation error.The continuous red line shows periods when the E-sail experiment will be performed (±15 • from poles).The dashed line shows the eclipse period.
between the Sun vector and the magnetic field vector, as well as the eclipse period and periods when the E-sail experiment will be performed.The standard deviation of the attitude estimation error is calculated for each axis over all simulations and a double mean value is calculated over all axes to show overall performance of attitude estimation.Figure 6 shows a double standard deviation of the angular velocity estimation error.
A spin-up manoeuvre is simulated to test attitude determination together with emulated coils and emulated on-board software.The spin control algorithm is described in [40] and a detailed study for ESTCube-1 is presented in [30].During spin-up, the accuracy of attitude estimation is not a parameter of importance as long as the satellite is able to reach the desired state.The following list shows how spin-up simulation differs from attitude estimation simulations.
• The satellite is required to reach the angular velocity around the z-axis 360 deg•s −1 and align its spin axis with the Earth's polar axis.Figure 7 shows the satellite angular velocity expressed in the Earth inertial reference frame during the spin-up manoeuvre, as well as the satellite pointing error between the satellite body reference frame z-axis and the Earth inertial reference frame polar axis.

DISCUSSION AND CONCLUSIONS
The ESTCube-1 ADCS, presented in this article, has been designed, developed, implemented, characterized, and simulated and it fulfils all mission requirements.
Thorough testing of sensors has given realistic uncertainty values for using sensors in the low Earth orbit.The sensor testing results provided inputs for sensor emulation that was used in attitude estimation and spin-up simulations.
Sun sensors can measure the Sun direction with an expanded uncertainty of 2.5 • .Gyroscopic sensors can measure the angular velocity with an expanded uncertainty of 3.6 deg•s −1 .Magnetometers can measure the magnetic field direction with an expanded uncertainty of 3.2 • .The average power consumption of the ADCS sensor board is 262 mW.The average power consumption of the CDHS board, where ADCS calculations are performed, is 178 mW.The mass of all ADCS components is 112 g (the CDHS board is not included).
The attitude estimation accuracy is better than 2 • for essential parts of the orbit (Fig. 5).There are two cases when the attitude estimation error increases significantly: (1) the satellite is in the eclipse and (2) the vector of the Sun direction and the magnetic field vector are close to parallel; in other words, an angle between both vectors approaches either 180 • or 0 • .Increases in the attitude estimation error are not essential because (1) execution of the E-sail experiment can be avoided during the eclipse; (2) E-sail experiment periods are not overlapping with periods when the vector of the Sun direction and the magnetic field vector are close to parallel.
The angular velocity estimation accuracy is better than 0.4 deg•s −1 for most of the orbit (Fig. 6).Similarly to the attitude estimation case, periods when the angular velocity estimation accuracy does not fulfil the requirement are not relevant for the E-sail experiment.
It is feasible to spin up the satellite to 360 deg•s −1 around the z-axis and align its spin axis with the Earth polar axis (Fig. 7).The spin-up manoeuvre is not significantly affected by increases of attitude and angular velocity estimation errors.It takes less than 8 orbits for the satellite to reach the desired state, and the pointing error between the spin axis and the Earth polar axis is much less than the required 3 • .
During the first six orbits of the spin-up manoeuvre, when coils are used actively, average power consumption of all coils summed is 536 mW, which is within limits that the EPS can provide.
The frequency of 2.5 Hz is sufficient to spin up the satellite and to take measurements during the E-sail experiment.
The system was delivered in time for the Vega launch.Due to a tight time frame, some improvements were not tested and are described below.The testing of gyroscopic sensors and magnetometers showed that the statistical error of a single measurement gives a major contribution to uncertainty budgets.The contribution can be reduced in the future by testing and potentially choosing other sensors.A significant contributor to uncertainties for all sensors is temperature, which can be reduced by adding temperature sensors and taking temperature into account in calibration.Usage of different sensors that measure the same phenomenon will be considered in the future to provide a higher level of redundancy.Choosing those sensors such that different communication buses are used can be beneficial as well.
The system design, sensors, characterization results, simulation results, and tuning of the system are generally applicable to other missions that have an access to magnetic field measurements.

Fig. 3 .
Fig. 3.The Sun sensor hardware layout.Dimensions in mm.signals are generated.These are converted to voltages and measured using analogue to digital converters.Light spot positions on PSDs, which are calculated using the formula in the data sheet, a calibration function, height of the mask, and information on which side of the satellite is illuminated are used to calculate the Sun direction.Sun sensors are based on analogue Hamamatsu S3931[34] PSDs, which were chosen because of their optimal price/performance ratio and ability to fulfil the requirements for mass, size, and accuracy.An analogue solution provides optimal power consumption and a high sampling frequency.Analogue signals are converted using Maxim MAX1230 analogue to digital converters.The expanded uncertainty for an angle of incident light measured by the Sun sensor is 2.5 • .The value is estimated by taking into account such major contributors as the Earth's albedo influence (1 • ), the temperature drift (0.76 • ), the solar irradiance uncertainty (0.25 • ), the precision of the angle test set-up (0.08 • ), the resolution (0.02 • ), the statistical error (0.005 • ), and the precision of the rotating bench test set-up (0.001 • ).Tests also indicated that a vacuum and the ultraviolet radiation would not cause permanent damage to sensors.Each sensor weighs 4.6 g and consumes 4 mW.On average six Sun sensors and two analogue to digital converters consume a total of 96 mW.
.155 0.447 −0.642] T cm from the physical centre of the satellite when the tether is deployed.• The inertia matrix with a deployed tether is diag([76.4852.081 76.709] T • 10 −3 ) kg•m 2 .• The orbital period is 5882 s. • The satellite is in a low Earth orbit with an altitude of 704 km and an inclination of 98 • .• The angular velocity around the z-axis is set to 20 deg•s −1 , which is the expected spin rate after tether deployment and during the E-sail experiment.The angular velocity around the x-and y-axes is set to 0. Random variations of maximum ±0.2 deg•s −1 are applied around all axes at the beginning of each simulation.• The satellite is aligned with the Earth-centred inertial frame.Random variations of maximum ±3 • are applied for all axes at the beginning of each simulation.• The following disturbances are enabled: radiation, atmospheric, gravity, and magnetic residual.

Fig. 5 .
Fig.5.Left y-axis: the black continuous line shows the double standard deviation of the attitude estimation error.Right y-axis: the blue dashed line shows the angle between the Sun vector and the magnetic field vector.The continuous red line shows periods when the E-sail experiment will be performed (±15 • from poles).The black dash-dot line shows the eclipse period.

Fig. 7 .
Fig. 7. Left y-axis: the satellite angular velocity expressed in the Earth inertial reference frame.Right y-axis: the satellite pointing error between the satellite body reference frame and the Earth inertial reference frame z-axis.
• , gyroscopic sensors ±0.5 deg•s −1 .• Gaussian noise with the following standard deviations is applied to model data to emulate sensors at each step: magnetometer 1.6 • , Sun sensor 1.25 • , gyroscopic sensor 1.8 deg•s −1 .These values are directly derived from uncertainty budgets.• Magnetometers and gyroscopic sensors are tilted and a heading error is applied with random variations of maximum ±1 • at the beginning of each simulation.• In the UKF random variations of maximum ±10% are applied for inertia matrix values at the beginning of each simulation.• In the UKF random variations of maximum ±10%

•
The initial angular velocity is set to[3.4 −4.4 2.9] T deg•s −1 .•The centre of the mass is placed [−0.155 −0.261 −0.642] T cm from the physical centre of the satellite when the tether is not deployed.• The inertia matrix before tether deployment is diag([1.97972.0812 2.2037] T • 10 −3 ) kg•m 2 .