Skip to main content
Version: 2.0

Satellite Constellation


Satellites can be used for communication, observation and remote sensing functionalities. For missions covering multiple regions, or even the entire globe, a group of satellites (called a constellation) is allocated. Examples of satellite constellations include GPS satellite constellation, GLONASS, Starlink, etc.

Problem statement

The problem is presented with a group of targets that are to be observed , and a group of satellites have been allocated for the observation. For continuous coverage, a subconstellation of multiple satellites are to be allocated to each target. The aim of the problem is to find the optimal allocation of the satellites to the subconstellations, such that the coverage of all the targets is maximized.

Mathematical formulation

Let there be NN targets to be observed and SS satellites allocated for observation. Assume that SS is divisible by NN. Each satellite is represented by a coverage score, which is provided as an input in the form of a list C={ci}C = \{c_i\} where cic_i is the coverage score of the ithi^{th} satellite.

Suppose the satellites have been divided into NN subconstellations, each containing S/NS/N satellites. Each subconstellation is associated with a score, which quantifies the quality of coverage of the target by the given subconstellation of satellites. The score for the kthk^{th} subconstellation is mathematically calculated as follows

SCSk=1(1cm)SCS_k = 1 - \prod{(1-c_m)}

where cmc_m represents the mth satellite in the subconstellation.

The total coverage score of the constellation is considered as the sum of the coverage scores of all the subconstellations.

CS=SCSkCS = \sum{SCS_k}

The objective of the optimization problem is to group the satellites into the subconstellations such that the constellation score CS is maximized.

Objective:maxCSObjective: \max CS

Running the Satellite Constellation in BQPhy

BQPhy platform provides a seperate page to solve the satellite constellation problem. You can go to the Projects tab, click on New Project, and select Satellite Constellation.

Required inputs from user

  • Number of targets
  • Number of satellites
  • A .csv file containing the coverage score of each satellite

Example

Consider a sample case of 10 satellites and 2 targets. The coverage score of the satellites are written in a .csv file (sample.csv) in the form

satelliteid,coverage
s1,0.16,
s2,0.16,
...
s10,0.12,

The following steps are to be followed for running the optimization problem

Creating the model file

  • Go to Projects tab and click on New Project button on the top right corner
  • On the pop-up dialog box [check if the term is right], give the name of the project, and select Satellite in the Optimization Type options

Sample data for 10 satellites has been provided here in the satellite Constellation Optimization - Guide drop down

The information on the number of satellites is automatically calculated from the uploaded csv file.

  • Upload sample.csv and click Add Project
  • The model file for the given information is created

Running the execution

  • Go to the project and click on Execute
  • Input the name of the execution and the hardware configuration to be used.
  • Provide the number of targets in the optimization problem and click Next
  • In the next pop-up, provide the population size, the maximum number of generations, the number of trials and the value of theta and click on Submit Execution

Results

  • The details of the run are shown in two ways
    • Chart view: The best fitness obtained at each generation for multiple trials is shown as a chart
    • Table view: The values of the best fitness at each generation for the trials is shown in tabular format
  • The following results can be downloaded
    • a json file containing the optimal subconstellation allocation and their coverage scores
    • a csv file containing the optimal design variables
    • a csv file containing the fitness value evolution through the generations for each trial
  • The platform also provides a Space Visualization page, that shows the subconstellations in an interactive GUI interface.