1. Introduction
The attitude determination and control system (ADCS) is a subsystem in satellites. Magnetometers are sensors commonly used in the ADCS. If the magnetometer data are not calibrated properly, using simulations of on-orbit operating conditions with the running satellite, these data can be affected by residual magnetic fields. CubeSats have limited volume, space, and power. Due to the limitations of CubeSats, their magnetometers are not separated from other electrical circuits installed inside the satellite. Incorrect magnetometer data can lead to malfunction of the attitude determination and control system. However, not every CubeSat developer has the facilities to calibrate the magnetometers precisely. Therefore, not every CubeSat is able to calibrate its magnetometers correctly before flight.
Magnetometers can provide unexpected results due to scaling factors, offsets, and non-orthogonality errors. Due to the residual magnetic field inside the satellite, the magnetometers require an additional calibration. That is, despite being calibrated by the ground test, magnetometers need to be calibrated again with on-orbit data.
Previous studies have demonstrated calibration methods to calibrate on-orbit magnetometer data. Bangert et al. [
1] described the performance characteristics of the UWE-3 pico-satellite’s attitude determination and control system. According to the on-orbit results, attitude estimation was not accurate. It was found that the magnetometer data were not calibrated properly. Oscillations in total magnetic field, |B|, were identified. Bangert’s study attempted to calibrate the on-orbit magnetometer data and set the correct parameters using standard minimization algorithms. Gain, cross-axis effects, and offsets were considered in the calibration method. A study presented by Foster [
2] shows an extension of the two-step estimation algorithm to calibrate solid-state strap-down magnetometers. Additionally, the authors stated that this algorithm can be applied to any two- or three-axis sensor. This method was not tested for magnetometers installed in a whole vehicle or spacecraft. Pourtakdoust et al. [
3] presented the calibration of magnetometers using the hyper least square (HyperLS) method. This method was tested with a Honeywell HMC5883L magnetometer. The authors mentioned that magnetometer outputs were affected by various disturbances due to manufacturing faults and limits as well as environmental impacts, requiring calibration for meaningful application. The authors defined the errors as hard iron errors, soft iron errors, bias, scale factors, and misalignment in their study. Wang et al. presented a calibration method utilizing a back propagation (BP) neural network [
4]. The trained BP neural network is able to predict the true magnetic field, referring to the observational data. This method provided an error of less than 10 nT. The authors trained the network with the Levenberg–Marquardt (LMBP) algorithm, considering the non-orthogonal error, measurement noise, and constant drift. This calibration method is verified by a simulation. Previous studies used the genetic algorithm to calibrate magnetometers. Xueliang et al. [
5] presented a calibration method for a three-axis magnetometer using the genetic algorithm. In this study, three-axis non-orthogonal error, sensitivity error, and the residual magnetic effect are considered. This method was tested by numerical simulation and experimentation using a fluxgate magnetometer. The author mentioned that it is difficult to achieve high accuracy with methods such as the least square method for model parameter estimation. In our study, we used on-orbit data collected by three satellites, with the evaluation function as the error (defined as in Equation (5) shown in the methodology). Moreover, we focused on low-latitude regions where the deviation of the true magnetic field from a model magnetic field is expected to be small and applied the genetic algorithm.
Chekhov et al. [
6] also presented magnetometer calibration with the genetic algorithm for industrial micro-controllers. Remotely operated underwater vehicles use attitude and heading reference systems (AHRSs). AHRSs use magnetometer and accelerometer data to determine the heading of a vehicle. For genetic algorithm calibration, bias errors, gain errors, and misalignment errors were considered. This method was verified with simulated and collected magnetometer data. It is shown that the genetic algorithm shows an improvement over the recursive least square method after testing on a mission. Most research has attempted to use two-step estimation [
2], standard minimization [
1], the hyper least square method, strict ellipsoid, and the three-step method [
3]. However, in every case, the magnetometer calibration conditions are different. The majority of previous authors have used error models. The accuracy of calibration depends on the true magnetic field or the model used. Xuelinag and Chekhov stated that the genetic algorithm shows an improvement in magnetometer calibration.
Genetic algorithms have been applied to many areas successfully [
7] (p. 3). Genetic algorithms are suitable for solving problems unable to be solved easily using classical methods such as least square methods [
6,
7,
8]. Genetic algorithms are known as effective candidates for parameter selection for non-linear, non-continuous problems wherein a large number of unknown parameters must be found while local maxima can exist in the search domain. In order to observe the performance, we used the genetic algorithm for magnetometer calibration.
The purpose of the paper is to use a genetic algorithm to calibrate the on-orbit magnetometer data collected by CubeSats. Our study focuses on calibrating on-orbit magnetometer data using the genetic algorithm. This method is tested with magnetometer data observed by BIRDS-3 CubeSats. This study discusses the accuracy and interchangeability of the answers found using the genetic algorithm for selected regions. Even though there remain limitations, this study demonstrates the level of calibration accuracy that can be achieved using the genetic algorithm for magnetometers installed in CubeSats.
The novelty of the present work concerns applying the genetic algorithm to low-latitude regions (where the true magnetic field is expected to be similar to a model magnetic field) of on-orbit magnetometer data and checking the interchangeability of the parameters with other on-orbit data measured from the same satellite. Moreover, this work considers the reasons for the high oscillations seen in the total magnetic field measured on orbit.
The present work can contribute to calibrating the on-orbit magnetometer data collected by CubeSats, aiding CubeSat developers in overcoming limitations when calibrating magnetometers.
This paper consists of six sections.
Section 1 is the introduction;
Section 2 describes the materials;
Section 3 describes the methodology used in this study;
Section 4 describes the results obtained using the aforementioned methodology;
Section 5 is the discussion; and
Section 6 is the conclusion.
2. Materials
BIRDS-3 is the third project of the BIRDS program [
9]. BIRDS-3 is a constellation of three CubeSats deployed to orbit on 17 June 2019 [
10].
Figure 1 shows the BIRDS-3 flight models. The external dimensions and weight of each BIRDS-3 CubeSat are 113.5 mm × 100 mm × 100 mm and 1.05 kg, respectively. All three satellites re-entered the atmosphere on October 2021.
The BIRDS-3 CubeSats had four missions, namely the Imaging Mission (CAM), the LoRa Demonstration Mission (LDM), the Attitude Determination and Control System (ADCS), and the Software Configurable Backplane Mission (BPB):BIRDS-3 FM CPLD. The BIRDS-3 CubeSats had two mission boards named Mission Board 1 and Mission Board 2. ADCS and CAM were installed on Mission Board 2. BIRDS-3 satellites have three-axis magnetic torquers for ADCS and were implemented in printed circuit boards in order to save space. The magnetometer was installed in Mission Board 2 in the ADCS section.
Figure 2 shows the location of Mission Board 2 (ADCS mission board), and
Figure 3 shows the location of the magnetometer. The MMC5883MA magnetometer was used in BIRDS-3 CubeSats.
On-orbit magnetometer data were used as part of the BIRDS-3 attitude stabilization system. B-dot control was used to stabilize the CubeSats. The B-dot algorithm [
11] is a simple algorithm used to reduce the angular velocity of satellites. It requires the rate of changes in magnetic field flux density, measured by magnetometers. Magnetometer data were the key input of the B-dot algorithm. The attitude stabilization system of BIRDS-3 failed in orbit. It was found that the on-orbit magnetic field data observed by all three magnetometers were different from the expected results when compared to magnetic field models such as the World Magnetic Model (WMM) [
12]. Before the flight, a magnetometer calibration test using a Helmholtz coil was conducted on the ground utilizing an engineering model of the magnetometer. This calibration test was performed only for the magnetometer. The whole satellite was not used to calibrate the magnetometer. Moreover, the gain and non-orthogonality angles were not estimated before the flight.
Figure 4 shows the on-orbit magnetometer data observed by BIRDS-3 CubeSats after their deployment from the International Space Station. The BIRDS-3 CubeSats were deployed into orbit at 7:15 p.m. (JST) on 17 June 2019. The data were collected after 16 s of deployment. The zero in the time axis corresponds to the 16 s after the deployment. Latitude at deployment was approximately 1.433 degrees north, and longitude was −57.903 degrees.
In
Figure 4, the magnetometer data are compared with the WMM. The orange line indicates the magnetometer data of NepaliSat-1, the gray line indicates the magnetometer data of Raavana-1, the yellow line indicates the magnetometer data of Uguisu, and the blue line indicates the WMM.
Figure 4 shows the difference between observed and WMM magnetic fields. There are heavy variations in the observed total magnetic field measured in all three satellites due to the offsets, gains, and non-orthogonal angles in the magnetometers. These errors in the magnetometer data must be corrected.
5. Discussion
It is shown that our results for a selected region can be applied to other orbit data obtained by the same satellite. If the obtained nine parameters are correct, the calibrated result should match with the WMM regardless of when the measurement is performed, as long as the WMM is steady. WMM coefficients are estimated using data measured during magnetically quiet periods. The combined error of the WMM 2020 is 129 nT in the total magnetic field [
15] (p. 67). In
Table 9 below, we list the Kp-index of when the measurement was performed. From this table, we can say that the magnetic field was quiet, and the WMM is an adequate “solution” for the genetic algorithm.
Although the calibrated results obtained by parameters derived from an additional data set provided reduced error values, as shown in
Table 4,
Table 7 and
Table 8, we still could not reduce the oscillation to the degree we desired. To determine the measured source of oscillation, we ran the GA simulation by dropping some of the parameters from the subject of the search. We applied the GA for specific low-latitude regions of each data set. In each simulation, only six parameters, instead of nine, were searched.
Table 10 shows the results. In the table, without gain means that we searched only the offset (X, Y, and Z) and non-orthogonal angles (λ, ρ, ϕ) while fixing the gain values (a, b, c) to 1. The errors when gain and offsets were not considered were larger than the error when non-orthogonal angles were not considered. According to the results, the main reasons for the high oscillations are offsets and gain.
Next, the solar cell output pattern and the magnetometer output pattern for each axis were checked to confirm the reason for the high oscillations observed. The solar cell graph pattern and the magnetometer graph pattern have similar behavior, proving that each axis’ oscillation of magnetometers stems from the satellites’ rotation. One example is shown in
Figure 15; the solar cell current is shown in mA, and the magnetic field is shown in mG. Each axis of the magnetometer data has an oscillation due to satellite rotation. However, we should not observe an oscillation in the total magnetic field. Therefore, the oscillation remaining after calibration is because the parameters obtained by GA are not yet perfectly matched.
As we still observed high oscillations in the calibrated result, we attempted to use the frequency amplitude contained in the measured data to reduce the high oscillations. From
Figure 15, we can see that the high-frequency oscillation is due to a combination of the satellite’s rotation and the mismatch of calibration parameters. From
Figure 15, we determine the satellite rotates at about 0.005 Hz (1.8 deg/s). In
Figure 16, we show the frequency spectrum of Data Set 1 of NepaliSat-1. It shows a peak at around 0.007 Hz. Instead of using the error defined in Equation (5) as the evaluation function of the GA, we used the sum of the magnitude of frequency amplitude and WMM data. The smaller the amplitude, the better the ranking is. In this search, we used the entire data sets of whole orbits rather than a selected region within low-latitude regions.
The following Equations (8)–(10) were used to apply genetic algorithms in this case. Equation (10) was used as the evaluation function. E1 and E2 were chosen to make e/E1 and e2/E2 both approximately one at the first generation.
Table 11 shows the parameters obtained from the GA. By comparing with
Table 6, we can observe that the offset of the X-axis has been reduced.
Figure 17 shows the calibrated result. Compared to
Figure 14, we can see that the oscillations in the observation were reduced significantly in the first part of the graph, where we noticed high oscillations even after calibration with Equation (5).
6. Conclusions
CubeSats have limitations, as mentioned in the introduction section. Thus, magnetometers are not separated from electrical circuits inside the satellites. Therefore, magnetometers should be calibrated properly before flight. However, most CubeSat developers do not have the facilities to calibrate magnetometers with in-orbit conditions. Magnetometers are important sensors used in attitude determination and control systems. In this study, we investigated the magnetometer data collected by the BIRDS-3 CubeSats Raavana-1, NepaliSat-1, and Uguisu that flew with an orbit of 51.6-degree inclination and approximately 400 km altitude. There was a heavy variation in the magnetometer data collected when compared to a magnetic model.
The genetic algorithm was used in this study to calibrate the magnetometer data. We focused on non-orthogonality angles, offsets, and gains to calibrate the on-orbit magnetometer data. According to the results, applying the genetic algorithm to low-latitude regions and interchanging the answers with other available on-orbit data collected by the same satellite is possible. We defined the error as the difference from the WMM value, regarding the WMM value as a “true” solution. We use the error as the evaluation function of the genetic algorithm; the smaller, the better. According to the results, we could reduce the error with the genetic algorithm compared to the error in the measured magnetometer data. We were able to show that the high oscillations in the total magnetic field are mostly due to the gain and the offset. Next, we discussed using frequency amplitude in the genetic algorithm to reduce the oscillations. In this case, we defined two errors. One was the difference from the WMM value. The other was the oscillation amplitude of frequency, which was higher than expected due to satellite rotation. In this case, we used entire data sets of whole orbits. According to the results, we show that only using the difference from the WMM value for low-latitude data as the evaluation function gives better calibration results than using both the high-frequency oscillation and the difference from the WMM value as the evaluation function.
We tested the genetic algorithm for flight magnetometer data collected by three satellites and confirmed that the method is sufficient in calibrating on-orbit magnetometer data.
The calibration method outlined in this paper still has room for improvement. We could not remove the oscillations in the total magnetic field completely. Finding a better way to reduce oscillations remains a goal of future work.