## 3 Simulation
### Simulation Overview  
Figure 3 provides an overview of the simulation system. First, a rover trajectory in the X-Y direction, i.e., a time-series dataset of \(x_{R}\) and \(y_{R}\), was created, and then a rover position in the Z direction, i.e., \(z_{R}\), was also created using lunar DEM data \(z_{R\text{ DEM}}\). Then, by adding DEM error (\(\Delta z_{R\text{ DEM}}\)) to a created rover trajectory, the true rover position \(X_{R\text{ true}}\) was developed. For lunar DEM data, we used [20], which is 5-m resolution DEM data for latitude from \(-87.5\) deg to \(-90\) deg. The DEM error dataset, i.e., \(\Delta z_{R\text{ DEM}}\), was prepared at a 1-m grid interval. In other words, the DEM data change every 5-m grid, while DEM error data change every 1-m grid. The true rover altitude, i.e., the z-component of \(X_{R\text{ true}}\), is estimated using the DEM value and DEM error value of the closest grid point from its horizontal location respectively: e.g., if the rover is horizontally located at (\(x_{R}\), \(y_{R}\)) = (11.3 [m], 3.5 [m]), it refers to the DEM data of the point (\(x_{R}\), \(y_{R}\)) = (10.0 [m], 5.0 [m]) and the DEM error data of the point (\(x_{R}\), \(y_{R}\)) = (11.0 [m], 3.0 [m]) to calculate the true rover altitude. Next, the true satellite trajectory \(X_{\text{true}}^{S}\) was prepared separately. A precise cis-lunar dynamics model takes into account the gravity models of the Moon to degree 40 as well as the gravity from the Earth and the Sun, which was used to generate satellite trajectory data in the topocentric frame, whose origin is at the lander position. The true range was calculated using the true satellite, rover and lander positions while taking into account the Moon precession during the signal traveling time between the satellites and rover/lander. Then, by adding receiver observation errors to a true range value, the pseudorange observation \(\rho_{R}^{S}(t_{i})\) was prepared. Also, by adding Satellite orbit determination error and Time tag error to the satellite's true position \(X_{\text{true}}^{S}\), the observed satellite position \(X_{\text{ob}}^{S}\) was prepared. The 2D MDPO algorithm uses the pseudorange observation \(\rho_{R}^{S}(t_{i})\), observed satellite position \(X_{\text{ob}}^{S}\) and lunar DEM data \(z_{R\text{ DEM}}\), and an estimated rover position \(X_{R\text{ est}}\) was calculated over the course of the simulation period. Finally, the true rover position \(X_{R\text{ true}}\) and the estimated rover position \(X_{R\text{ est}}\) were compared to evaluate the algorithm estimation accuracy. Table 2 summarizes the general parameters used in the simulation. The total simulation period was set to 15,000 min assuming a two-week-long mission. Range measurement resolution at the user pseudorange receiver was set to 0.4 m assuming a typical space GNSS receiver specification with a safety margin. The initial rover position and lander position were set to (\(-90\) deg, \(90\) deg) assuming a south-pole mission. The rover trajectory was created dynamically by changing the rover position after each MDPO estimation according to the defined traveling distance and the random heading direction specified in Table 2. Two-dimensional MDPO requires pseudorange observations from two epochs, and the interval of pseudorange observations was set to 0.5 min. Hence, it takes 1.0 min for the 2D MDPO algorithm to estimate the rover position. The rover position was fixed during the MDPO estimation for 1.0 min, and then the rover position was changed in the following 0.5 min and then stopped for 1.0 min for another MDPO estimation, which continued over the course of the simulation period. In addition, the rover moved only when both orbiters were in view. Initial satellite orbits were selected, according to the discussion in Section 2.3, to be a 110 deg-300 km (inclination-altitude) orbit with a 15-deg phase difference, as shown in Table 3.