# Lunar Satellite Constellations in Frozen Low Orbits
## 4 Constellation Design and Performance Metrics
In order to compactly and conveniently visualize basic constellation design parameters, we put forward the idea of a single Constellation Design (CoDe) nomogram, with the \(x\)-axis being the footprint size and the \(y\)-axis unified for the properly normalized four parameters (see Figure 8):  
* Orbital altitude, expressed in a body's radii;
* Free-space path loss (FSPL) of the signal power, normalized to its value at the altitude of \(h=R\); it grows proportionally to the square of altitude;
* Minimum number of satellites in a constellation to provide 1-fold coverage (in hundreds);
* Minimum number of satellites in a constellation to provide 4-fold coverage (in hundreds). Moreover, the green color shades of the background stripes indicate the corresponding number of orbital planes at least required, starting with two planes for the rightmost stripe. The advantage of the developed nomogram is its universality (i.e., validity for any particular celestial body) and comprehensiveness, which makes it quite convenient for the preliminary constellation design. Leveraging the CoDe nomogram, we selected two footprint sizes, \(\varphi=25^{\circ}\) and \(\varphi=35^{\circ}\), corresponding to the altitude values \(h_{\text{ref}}=0.15\,R_{M}\approx 261\) km and \(h_{\text{ref}}=0.3\,R_{M}\approx 522\) km, as potentially appropriate for candidate low-altitude lunar constellations: they ensure that  
Figure 7: Relation between the minimum elevation angle, the orbital altitude, and the footprint size. the total number of satellites does not exceed 100 even for navigation purposes. As for the number of orbital planes, our analysis covers LLO constellations with at least two orbital planes, no matter which of the two reference altitude values is taken. Among the performance metrics tracked, we are most interested in median and minimum numbers of visible spacecraft, globally and in lunar polar zones defined as North and South polar caps with latitudes higher than 70\({}^{\circ}\). Additionally, the craters of Boguslawsky (72.9 S, 43.2 E) and Manzimus (67.7 S, 26.8 E) were of specific interest to us as the primary and backup landing sites of Russia's recently failed Luna 25 mission. The constellation geometry quality for navigation is often quantified by the position dilution of precision (PDOP), a useful scalar metric that reflects how the user equivalent range error (UERE) is amplified due to poor configuration of visible satellites to result in higher user position uncertainty. The 50% (median) and 95% PDOP levels are tracked for both the poles and the craters of interest. To evaluate the abovementioned metrics, we use a quasi-uniform grid on the Moon's surface, which is generated as an outcome of the numerical optimization procedure similar to the one introduced in [30]. Specifically, to generate a grid of \(n\) almost uniformly distributed points on the unit sphere, one can search for unit vectors \(\mathbf{r}_{i}\in\mathbb{R}^{3}\), \(i=1,\ldots,n\), which minimize the objective function:  
\[J=\sum_{1\leq i<j\leq n}\log\frac{1}{|\mathbf{r}_{i}-\mathbf{r}_{j}|}\]  
For convenience, the first six vectors \(\mathbf{r}_{1}\),..., \(\mathbf{r}_{6}\) have been fixed to \((\pm 1,0,0)\), \((0,\pm 1,0)\), and \((0,0,\pm 1)\), the points on the MER frame axes, including North and South poles. Moreover, we fix \(\mathbf{r}_{7}\) and \(\mathbf{r}_{8}\) at positions of Boguslawsky and Manzimus craters. In this study, \(n=1200\) is set. Unlike our previous paper [9], where the optimization problem was solved by MATLAB's realization of the interior point algorithm, the trust-region interior point method  
Figure 8: CoDe nomogram for basic coverage parameters as a function of the footprint size: the altitude of orbits, in \(R\) (blue); the free-space path loss (red) normalized to its value at \(h=R\); the theoretical minimum constellation size, in 100 s of satellites, for 1-fold (maroon) and 4-fold (violet) coverage. The 5 deg minimum elevation angle is assumed. from the Python SciPy library is exploited.