Tianwen-1 attitude change

A month ago, I wrote a post showing the evolution of Tianwen-1‘s attitude so far during its transfer orbit to Mars. For most of the mission, the spacecraft has maintained a fixed attitude where the spacecraft body Y axis was held orthogonal to the planed formed by the spacecraft, Earth and Sun, and the spacecraft to Sun vector had a constant angle of -20 degrees with the spacecraft body X axis.

The figure below shows how the spacecraft axes are labelled. Note the solar panels along the Y axis, the thruster on the -X face, and the high gain antenna on the -Z face.

Yesterday, on 2020-10-22, the spacecraft made an attitude change. The angle between the Sun vector and the X axis was changed back to 0 degrees, which was the angle maintained during the first days of the mission. This can be seen clearly in the figure below.

The angle between the Earth vector and the -Z axis (where the high gain antenna is located) is more interesting, as it gives the slew angle of the antenna. Throughout most of the mission, it was growing and I kept wondering if an attitude change would be done to prevent the antenna from running out of slew range. However, at some point the angle started decreasing. This is basically caused by the Earth “overtaking” Tianwen-1, since the Earth’s orbit is faster (you can see some pictures of this in the last slides of my talk in the AMSAT-UK colloquium).

In this graph we see that the change in attitude also causes a sudden increase of 20 degrees in this angle, so now it is 70 degrees. This shows that the possible slew range for the high gain antenna is much larger than I had initially thought. Perhaps it is not so surprising after we have seen the cut-out in the dish in the in-orbit images published on October 1.

If we zoom in to the last few days, we see that the change in attitude happened at some time when the spacecraft was not in view from Europe, so unfortunately we don’t have any telemetry of the change itself.

I’m not sure of the reason why this attitude change has been done now. It will be interesting to see if the attitude continues with this new 0 degree angle or it switches back to the previous -20 degree angle.

Thanks to AMSAT-DL‘s team at Bochum for continuing the daily collection of telemetry with the 20m antenna. Their effort makes it possible to detect events like this with short notice. The data and code to produce the plots in this post can be found in this Jupyter notebook.

Tianwen-1 DSM final trajectory

A few days ago I spoke about the deep space manoeuvre that Tianwen-1 had executed on 2020-10-09. As remarked in that post, the data we had from that manoeuvre came from extrapolating state vectors from before and after the burn. The state vectors that the spacecraft was broadcasting after the burn most likely came from a prediction rather than from the actual result of the burn. In a few days, we would see a small change in the trajectory as the Chinese DSN performed precise orbit determination and uploaded the results to the spacecraft.

In fact, we saw that change the next day. The figure below is generated in the following way. I have taken the first state vector that we have received after the burn, and propagated its trajectory in GMAT. Then I compute and plot the error in each of the ICRF coordinates between the state vectors broadcast by the spacecraft in the telemetry and this GMAT trajectory. This allows us to see whether the trajectory broadcast by the spacecraft has changed slightly at some point.

As we can see, during the first day the error is close to zero. Afterwards, the trajectory deviates and the error starts growing to several hundreds of km. The new trajectory seems to be stable over the last few days (sorry about the lack of data on the night between the 11th and 12th). This is best shown in the figure below, where the state vector used as a seed to generate the GMAT trajectory is taken from the UTC evening of 2020-10-10. The error is only a fraction of a km. Therefore, we can consider final this new trajectory.

I have updated the calculations I did in the last post to use a state vector from the updated final trajectory. The results don’t change much. The calculations now locate the burn (approximated as an impulse burn) at 15:03:54 UTC with a delta-V of

[-31.08193895,  40.28872314, 308.12845989]

in ICRF coordinates, while my previous calculations estimated a burn at 15:03:59 with a delta-V of

[-31.49477234,  39.29765307, 308.11690616]

The state vector describing the updated post-DSM trajectory in heliocentric ICRF coordinates and UTC epoch is

Tianwen1.Epoch = '10 Oct 2020 19:08:50.122';
Tianwen1.X = 172262669.5024532
Tianwen1.Y = 42536664.64589398
Tianwen1.Z = 21989467.534531824
Tianwen1.VX = -1.7753279668677469
Tianwen1.VY = 25.966616665124505
Tianwen1.VZ = 11.810575717885476

Tianwen-1 deep space manoeuvre

As I have mentioned in several posts, the trajectory in which Tianwen-1 was launched had a closest approach to Mars of around 3 million km, so at some point a large correction manoeuvre was needed. We had already seen small manoeuvres TCM-1 and TCM-2, but we were expecting soon enough this large correction, which is called DSM (deep space manoeuvre). Some sources placed the DSM around the beginning of October, while others were more precise and mentioned that it would happen right after the Mid-Autumn festival holiday season, which this year ended on October 8.

This information turned out to be pretty accurate, since yesterday we heard news that Tianwen-1 had done its DSM at 15:00 UTC on 2020-10-09. This information quickly appeared in the news.

After the Bochum 20m antenna was able to acquire the spacecraft’s signal and gather telemetry at 19:09 UTC, we were able to confirm the manoeuvre in the state vectors transmitted by the spacecraft. Paul Marsh M0EYT was also able to receive telemetry confirming this, starting at 18:18 UTC. This post is an analysis of the data.

Tianwen-1 TCM-2

Last Sunday September 20, around 14:15 UTC, I published a post with an update on Tianwen-1‘s attitude during the mission. I mentioned that we were expecting to see an attitude change to prevent the high-gain antenna from exceeding its maximum slew range. I also mentioned that we were expecting the second trajectory correction manoeuvre (TCM-2) to happen sometime in September according to Chinese media.

Apparently the timing of my post was quite appropriate, because shortly afterwards, at 15:00 UTC (23:00 Beijing time), Tianwen-1 executed its TCM-2. However, news of this didn’t appear until the next morning, at 7:00 Beijing time (23:00 UTC). Unfortunately the manoeuvre happened when the spacecraft wasn’t in view from Europe, so we don’t have Doppler data as for TCM-1. In any case, we can use the state vectors transmitted in the telemetry to study the manoeuvre, by comparing the vectors received before the burn and those received after the burn. In this post I look at this and check if it matches the news report.

Update on Tianwen-1 attitude

A month ago I posted about the ADCS telemetry of Tianwen-1 and how it was controlling its attitude on its cruise orbit to Mars. Since then, AMSAT-DL has been collecting telemetry data from Tianwen-1 using the 20m antenna at Bochum observartory almost all the time that the spacecraft is in view from Germany. This short post is an update with the results collected so far.

Tianwen-1’s attitude is controlled by maintaining the spacecraft’s Y axis (on which the solar panels lie) perpendicular to the plane formed by the Sun, Earth and spacecraft, and by maintaining a fixed angle between the spacecraft’s X axis and the Sun vector. This is done to prevent the solar panels from having to steer constantly to track the Sun.

The figure below shows the angle between the Sun vector an the X axis using all the telemetry collected as of writing this post. We see that the Sun angle was fixed to 0 degrees at the start of the mission, then was changed to -15 degrees for a few days, and finally has been kept at -20 degrees since the beginning of August.

All the dots shown in this picture correspond to telemetry recorded either at Bochum or by Paul Marsh M0EYT. Many thanks to all people involved for their continuous effort in recording telemetry data.

Since the Sun-Earth angle, as seen from the spacecraft, changes as the spacecraft travels along the transfer orbit, and the spacecraft maintains a fixed Sun angle, the Earth angle keeps changing. The high-gain antenna is placed on the -Z axis according to diagrams of the spacecraft. However, the antenna can slew to track the Earth. The figure below shows the angle between the Earth vector and the -Z axis, which is precisely the slew angle needed to point the high-gain antenna.

We see that this slew angle keeps increasing with time. The slew angle of the antenna is limited mechanically, though we don’t know the maximum slew angle. At some point, the spacecraft will have to yaw and reduce its Sun-to-X angle in order to reduce the slew angle to an acceptable value. This is one of the events we are hoping to capture soon in the telemetry.

I don’t know the reason why the spacecraft yawed two times near the beginning of the mission. At first, I thought that the antenna slew was limited to perhaps 20 degrees, so the spacecraft would need to yaw every couple of week to maintain an acceptable antenna slew. Now it is clear that this is not the case, since the slew angle is near 60 degree. It may happen that the spacecraft was yawed for thermal reasons.

The other event we are expecting is the second correction manoeuvre, which according to some sources will happen in September. So far we haven’t seen any indication of this in the telemetry, so stay tuned for more news.

The updated Jupyter notebook where these plots have been made is here.

Tianwen-1 attitude during cruise and early orbit

In a previous post I talked about the ADCS telemetry of Tianwen-1. In there I showed that Space Packets in APID 1281 had several fields corresponding to the ADCS, including the quaternion giving the spacecraft attitude. I used these quaternions to show that the spacecraft had made a turn of 15º about its Y axis. However, at that time I still lacked some details to give a full interpretation of the attitude quaternions, such as what frame of reference they used or how were the spacecraft body axes defined.

Now I have looked at all the telemetry we have collected so far and with this I’ve been able to guess the missing details, so I can give a complete interpretation of the attitude quaternions. In this post I will show the attitude control law of Tianwen-1 on its cruise orbit to Mars and also the attitude during early orbit operations.

Tianwen-1 post–TCM-1 state vectors

Yesterday I reported about Tianwen-1’s first trajectory correction manoeuvre, TCM-1. In that post I commented the possibility that the updated state vectors that we saw on the telemetry after TCM-1 might come from a prediction or planning rather than take into account the actual performance of the burn.

The figure below shows the error between the state vectors collected after TCM-1 over the last two days, and a trajectory propagated in GMAT, using the following state vector, which is one of the first received after TCM-1.

[0151059eb9ea] 2020-08-02 00:17:06.711400 100230220.21360767 -106145016.11787066 -45441035.07405791 25.581827920522485 18.240707152437626 8.567874276424218

We see that on the UTC night between August 1 and 2 the state vectors deviate very little from the GMAT trajectory. However, on the UTC night between August 2 and 3 we see a slightly different trajectory in the state vectors. We have no data in between, as the spacecraft is not visible in Europe, so we don’t know the precise moment of change. The gap in telemetry around 2020-08-03 00:45 UTC is due to a transmission of high-speed data.

It seems reasonable to think that after TCM-1 the Chinese DSN performed precise ranging of the spacecraft to determine the new orbit accurately and then uploaded a correction to the state vectors on-board Tianwen-1.

The state vectors from last night all describe the same trajectory, as shown in the plot below which uses

[0151322e67d0] 2020-08-02 21:03:08.078400 102132184.96868199 -104770375.00352533 -44795830.46284772 25.29849580646669 18.532513218789806 8.692135086385246

to propagate a trajectory in GMAT. There is a small jump of a few hundred meters at some point. We usually see one or two these jumps per day, but we don’t understand well why they happen.

The trajectory according to the state vectors from 00:17:06 and from 21:03:08 are very similar. For example, at the closest approach to Mars they only differ in 1197km. For comparison, the difference between the new trajectory and the pre–TCM-1 trajectory is 126529km (again, at the closest approach to Mars).

I have generated a new table of right-ascension, declination and distance coordinates based on the updated state vectors. Note that this table doesn’t include light-time delay to the spacecraft.

Thanks to AMSAT-DL‘s Bochum observatory team and to Paul Marsh M0EYT for their continuous effort in tracking Tianwen-1. The data used in this post has come from their observations.

Tianwen-1 TCM-1

On 2020-08-01 23:00 UTC, Tianwen-1 made its first correction manoeuvre, called TCM-1. The manoeuvre was observed by Amateur trackers, such as Edgar Kaiser DF2MZ, Paul Marsh M0EYT, and the 20m antenna at Bochum observatory, operated by AMSAT-DL. The news of the successful manoeuvre appeared in Chinese media, and in the German Wikipedia article for Tianwen-1 (thanks to Achim Vollhardt DH2VA for sharing this information).

Since Tianwen-1 transmits its own real time orbit state vectors in the telemetry, by comparing the vectors transmitted before and after TCM-1, and also by studying the Doppler observed by groundstations on Earth, we can learn more about the manoeuvre.

Tianwen-1 manoeuvre and high-speed data

On the Beijing time morning of 2020-07-30, Tianwen-1 did something. Paul Marsh M0EYT reports that the probe first switched from the high gain antenna to the low gain antenna, then returned to the high gain antenna, and then switched to a high-speed data mode, finally coming back to the usual 16384baud telemetry.

r00t.cz has already analysed the telemetry data collected during this event. He reports that the high speed data was a replay of the telemetry produced during the period when the low gain antenna was used. He shows some interesting behaviour on APIDs 1280, 1281 and 1282 (see my previous post for a description of these during nominal operation). These seem to contain ADCS data.

This event was followed with some expectation by the Amateur deep space tracking community, since according to this paper Tianwen-1 would make the first correction manoeuvre (TCM-1) early on in the mission (day 9 is stated in the paper). However, by now it is clear that a true correction manoeuvre didn’t happen, since no significant change has been seen in the trajectory described by the state vectors transmitted in the spacecraft’s telemetry. However, this event might have been a very small thruster firing, in order to test the propulsion in preparation for the true TCM-1.

In this post, I look at the data during the high speed replay, following the same approach as in the previous post. With this data, I reach a definite conclusion of what happened during this event (I won’t spoil the mystery by stating it in advance). The description of the modulation and coding used by the high speed data will come in a later post.

The Jupyter notebook for the calculations in this post can be found here.

Tracking Tianwen-1’s orbit to Mars: part II

Yesterday I published a post explaining how Tianwen-1 is transmitting real time state vectors for its own orbit in its telemetry and how we’ve used those to propagate its orbit and track the spacecraft with the Bochum observatory 20m dish. However, there seemed to be some problem in the way we were interpreting the state vectors, since the ephemerides derived from these had a pointing error of a few degrees when compared with observations from Bochum and other smaller Amateur stations.

As of writing that post, I believe I have found the problem. It has to do with the way that the timestamps from the state vectors are interpreted. After correcting this problem I am getting an orbit that matches the observations well. Here I explain this problem and show some more details about the corrected ephemerides.