Closed MatthewGrim closed 6 years ago
First steps in replicated Figure 3 from the Brandhorst paper. The script processes the data from .csv output files from STK which are generated for sunlit events and access periods for a lunar target to SPS link. I had to edit some of the reports/.csv files in Excel so that they all had the same format (three columns with this order from right to left: start time, end time, duration) so the processing algorithm is not exactly generic.
The test results which I processed today are for one SPS targeting a point at 45 N on the Moon. The access times, SPS eclipse times, and target area sunlit times are shown in the plot. The actual SPS "active" time is calculated as the total available access time, subtracting away the time (during access periods) when the SPS is eclipsed, and when the target itself is illuminated by the Sun (since the SPS is not required, or likely not functional in these scenarios).
The results are, for a two year simulation spanning Jul 1, 2008 to Jun 30, 2010 (same as in the paper): Total access time: 8001 hrs SPS eclipse time during access periods: 246 hrs Target illumination time during access periods: 611 hrs Total active SPS time: 7144 hrs
This is about double what Brandhorst quoted in the paper (3500 - 4000 hrs, depending on the SPS configuration). There could be many reasons for this. The first that comes to mind is that my analysis is for a single satellite, and his is for two. By adding another SPS, an additional layer of decomposition of the total access period is required, assuming only one SPS is required at any given time. This must be incorporated into the analysis before better direct comparison to the paper can be made. Another possibility is Brandhorst using a more restrictive assumption on the accessibility of the target. In this study, I assumed that the target could be accessed from the horizon (90 degree cone angle), whereas in reality that parameter could be less.
Notes on updated script:
The total access time for SPS2 is calculated for various arguments of perigee (relative to argument of perigee of SPS1). The total access time is found by first identifying the total possible access time domains, then overlapping that with the times when SPS2 is sunlit. Then the events which are determined from that overlapping calculation are overlapped with the times when the target is in eclipse. The resulting events are assumed to be the times when the SPS2 is active (Figure 3 in Brandhorst). The first plot shows the duration and start time of possible access periods, as well as the eclipsing periods of SPS2 (which are removed from possible access periods), and lastly the periods of sunlight on the target (also removed), for reference.
Following the calculating through results in a series of "access events", where the total access time is on the order of 100s of hours (over the two year simulation) which is an order of magnitude lower than expected (in comparison to Brandhorst). If I remove the condition on the target being in eclipse for active times (ie. SPS2 is actively beaming every time it is in sunlight and the target is in view) and the results appear closer to what is expected (same order of magnitude).
The second figure shows how this calculation varies depending on the initial angle between the arguments of perigee for SPS2 and SPS1 (where arg_per = 0 is constant for SPS1).
The maximum length of the dark periods (Figure 2 in Brandhorst, referring to periods when no power can be provided to the target) were calculated in this script by finding the overlapping domains in time when both the satellite and the target are in eclipse. The expected values are on the order of 80-160 hrs, whereas the ones I calculate < 10 hours.
Notes on Results so far The access time should definitely not be as low as in the results currently. If the total access time is ~8000hrs, then after target eclipse events are included, this should halve (because the target is eclipsed half the time). After satellite eclipses are included, it shouldn't change considerably.
I've had a look at the script and think there's a bug in the code - compare your get_event_overlaps() function in Replicate_Fig3_Access_Times.py with the one written in general_functions.py called combine_events()
I think your function needs some more conditions than those you've included.
Notes on the approach I think it might be useful to focus on figure 2 first, because this task is simpler and will be useful for debugging post processing functions. Maybe focus on this first, and move onto figure 3 once you're confident about the approach you've developed getting figure 2 out?
I have updated algorithm for calculating overlapping event timing (main bug from previous iteration). With that correction (and other additions) I was able to reproduce results of Brandhorst Figures 2 (black-out periods for lunar target) and Figure 3 (access times of SPS to lunar target as a function of argument of perigee). These are shown below, in the order mentioned:
This figure above shows both the timing and duration of events where no SPS coverage is available, as well as the events where there is no SPS coverage AND the target is in eclipse simultaneously (full black-out). The data in the plot is for an SPS satellite at 135 deg argument of perigee, 30000 km apogee altitude, and 500 km perigee altitude. The maximum black-out period in this case was 166 hours, and the number of black-out periods which exceed 84 hours is 12. The claims of Brandhorst were 164 hour max, and 10 84 hour blackouts. Thus the results match closely to what is presented in the paper. However, there is still a bug in the script that misses roughly 5 hours of the total simulation period when inverting the data for SPS access times to the target into events where the target has no coverage. This will have to be resolved in order to improve the comparison of the results.
The above figure shows the total access time of an SPS satellite to the lunar target as a function of the argument of perigee. The same satellite (orbit) as before is used, and the argument of perigee is changed in increments of 30 degrees. The result matches that of Brandhorst closely, with the major differences being the resolution and phase of the argument of perigee (ie. at which angle the maximum access time is achieved).
I've made a direct comparison between my results for the total access time as a function of argument of perigee and those in Brandhorst. The Brandhorst data was extracted from the paper with WebPlotDigitizer.
The first thing to note is the inconsistent difference in the total access times from one graph to the other. On average the difference is about 39 hours, or roughly 1% of a given total access time measurement, although the difference is not constant. It is difficult to say why this is the case. Another peculiarity is that in order for the plots to fit together, I had to mirror one of the data sets (across a vertical axis in the center of the data), then shift a data set so that the two are in phase. The phase issue is purely geometric and not very concerning, but the mirror is more confusing.
Updated the figure so that the actual and reproduction of the brandhorst are on the same axis for better comparison. Additional source of error identified: web plot digitizer
This plot contains the duration and start date of blackout periods for the Brandhorst lunar SPS configuration, and it shows the advantage of using two SPS. With only one SPS, the maximum blackout duration is 166 hours, and there are more than 10 instances of a blackout exceeding 84 hours. However with two SPS, the maximum blackout period duration is only 51 hours.
Assigning this issue to @MatthewGrim for peer review
The final result is in line with Brandhorst so it looks like this one's wrapped up
This issue documents the validation work by Darian to get the figures of access times from the Brandhorst paper:
A solar electric propulsion mission for lunar power beaming - H. W. Brandhorst et al.
This work has already been partially done in the work in 000-RR-InitialWork. The things that need to be verified are: