Assistance data for orienting a mobile device for satellite-based communications - Patent Application 20070122999
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- QUALCOMM INC
- Filing Date
- 2023-05-22
- Publication Date
- 2026-05-08
AI Technical Summary
Traditional satellite-based communications for mobile devices are impractical due to the need for user-oriented pointing of non-dedicated devices and the difficulty in accurately predicting satellite locations, especially during steering events, which limits their effectiveness beyond a few weeks.
A method and system for providing assistance data using historical orbital data to estimate and predict the location of satellite control boxes, enabling accurate satellite positioning for mobile devices over extended periods, such as one year, by fitting orbital models and providing guidance for proper device orientation.
Enables reliable satellite-based communications for mobile devices by ensuring accurate satellite location prediction and device orientation, even during steering events, thus extending the communication capability beyond conventional limitations.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] (Related Applications)
[0001] This application claims the benefit of U.S. patent application Ser. No. 17 / 813,099, entitled "ASSISTANCE DATA FOR ORIENTING A MOBILE DEVICE FOR SATELLITE-BASED COMMUNICATIONS," filed July 18, 2022, which is assigned to the assignee of this application and incorporated herein by reference in its entirety. [Background technology]
[0002] 1. Field of Disclosure FIELD OF THE DISCLOSURE
[0002] The present disclosure relates generally to the field of wireless communications, and more particularly to enabling mobile devices (eg, cellular phones) to communicate using satellite-based communications.
[0003] 2. (Description of Related Art)
[0003] Traditionally, satellite-based communications have been limited to satellite phones with dedicated antennas that enable the satellite phone to effectively transmit and receive signals to and from satellites. As the number of communications satellites increases, the potential for enabling satellite-based communications for other types of devices also increases. However, for non-dedicated devices such as standard mobile phones, such communications may be impractical if the user cannot orient the mobile phone so that the communications satellite falls within the main lobe of the mobile phone antenna. Furthermore, because communications satellites may perform movements within their orbits (e.g., stationkeeping to help avoid collisions), it may be difficult to determine the location of communications satellites in real time without frequently updating their orbital parameters (e.g., once every few weeks). Summary of the Invention
[0004] An exemplary method for facilitating pointing of a mobile device to a satellite of a satellite constellation for satellite-based data communications according to the present disclosure may include obtaining historical orbital data indicative of the orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time. The method may also include estimating, for each satellite in the set of satellites, a set of orbital parameter values, wherein at least one orbital parameter value of the set of orbital values is common across a group of satellites in the set of satellites, by fitting an orbital model to the historical data for the respective satellite. The method may also include sending, to at least one mobile device, assistance data indicative of the respective sets of orbital parameter values for all satellites in the set of satellites.
[0005] An exemplary device for facilitating pointing of a mobile device to a satellite of a satellite constellation for satellite-based data communications according to the present disclosure includes a transceiver, a memory, and one or more processors communicatively coupled to the transceiver and the memory, the processors configured to obtain historical orbital data indicative of the orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time. The one or more processors may be further configured to estimate, for each satellite in the set of satellites, a set of orbital parameter values by fitting an orbital model to the historical data for the respective satellite, wherein at least one orbital parameter value of the set of orbital values is common across a group of satellites in the set of satellites. The one or more processors may be configured to send assistance data to the at least one mobile device indicative of the respective sets of orbital parameter values for all satellites in the set of satellites.
[0006] An exemplary apparatus for facilitating pointing of a mobile device to a satellite of a satellite constellation for satellite-based data communications according to the present disclosure may include means for obtaining historical orbital data indicative of the orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time. The apparatus may further include means for estimating, for each satellite in the set of satellites, a set of orbital parameter values, wherein at least one orbital parameter value of the set of orbital values is common across a group of satellites in the set of satellites, by fitting an orbital model to the historical data for the respective satellite. The apparatus may further include means for sending, to at least one mobile device, assistance data indicative of the respective sets of orbital parameter values for all satellites in the set of satellites.
[0007] According to the present disclosure, an exemplary non-transitory computer-readable medium stores instructions for facilitating pointing a mobile device to a satellite of a satellite constellation for satellite-based data communication over a period of time, the instructions including code for obtaining historical orbital data indicative of the orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation. The instructions may further include code for estimating, for each satellite in the set of satellites, a set of orbital parameter values by fitting an orbital model to the historical data for the respective satellite, wherein at least one orbital parameter value of the set of orbital values is common across a group of satellites in the set of satellites. The instructions may further include code for sending assistance data to at least one mobile device indicative of a respective set of orbital parameter values for all satellites in the set of satellites.
[0008]
[0008] This Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used alone to determine the scope of the claimed subject matter. The subject matter should be understood by reference to the entire specification, any or all drawings, and appropriate portions of each claim of this disclosure. The above, together with other features and examples, are described in more detail below in the following specification, claims, and accompanying drawings. [Brief explanation of the drawings]
[0009] [Figure 1]
[0009] FIG. 1 is a diagram of a satellite-based communication system, according to one embodiment. [Figure 2]
[0010] 1 is a set of graphs showing an example of the visibility and number of satellites moving across the sky over a one-hour period for a constellation of communications satellites. [Figure 3]
[0011] FIG. 1 illustrates how satellite-based communication with a mobile device, such as a conventional cell phone, can be enabled without a dedicated antenna for satellite communication. [Figure 4]
[0012] FIG. 1 is a diagram provided to conceptually illustrate what satellite modeling may do to predict the location of a given satellite, according to some embodiments. [Figure 5]
[0013] 1 illustrates an example architecture of a system for providing assistance data to a mobile device that enables a user to orient the mobile device for communication with a satellite, according to one embodiment. [Figure 6]
[0014] FIG. 1 is a flow diagram illustrating a first process flow showing an initial parameter estimation process for determining an accurate long-term model, according to some embodiments. [Figure 7]
[0015] FIG. 7 is a flow diagram illustrating a second process flow showing a subsequent parameter estimation process for determining an accurate long-term model, which may follow the initial process illustrated in FIG. 6, according to some embodiments. [Figure 8]
[0016] FIG. 1 is a flow diagram of a method that may be employed by a mobile device to use assistance data provided by a server to assist a user of the mobile device in orienting the mobile device to enable satellite-based communications, according to some embodiments. [Figure 9]
[0017] 7 is a table illustrating exemplary Keplerian orbit parameter values generated by performing step 1 of the estimation process flow described herein with respect to FIG. 6. [Figure 10]
[0018] 10 is a table illustrating a first exemplary set of Keplerian orbital parameter values generated by performing step 2 of the estimation process flow described herein with respect to FIG. 7 , continuing the exemplary values of FIG. 9 for generating Keplerian orbital parameter values for a satellite. [Figure 11]
[0019] 10 is a table illustrating a second exemplary set of Keplerian orbit parameter values generated by performing step 2 of the estimation process flow. [Figure 12]
[0020] FIG. 1 is a flow diagram of a method for facilitating pointing a mobile device to a satellite of a satellite constellation for satellite-based data communication, according to one embodiment. [Figure 13]
[0021] FIG. 1 is a block diagram of one embodiment of a mobile device that can be utilized in the embodiments described herein. [Figure 14]
[0022] FIG. 1 is a block diagram of one embodiment of a computer system that can be utilized in the embodiments described herein.
[0010]
[0023] According to some example implementations, like reference numerals in various figures refer to like elements. Additionally, multiple instances of an element may be indicated by the first numeral of that element followed by a letter or hyphen and a second numeral. For example, multiple instances of element 110 may be indicated as 110-1, 110-2, 110-3, etc., or as 110a, 110b, 110c, etc. When referring to such an element using only the first numeral, it should be understood to refer to any instance of that element (e.g., element 110 in the previous example refers to elements 110-1, 110-2, and 110-3, or elements 110a, 110b, and 110c). DETAILED DESCRIPTION OF THE INVENTION
[0011]
[0024] Some illustrative examples will now be described with reference to the accompanying drawings, which form a part of this specification. One or more aspects of the present disclosure will be described below with reference to specific examples in which they may be implemented, but other examples may be used and various modifications may be made without departing from the scope of the disclosure in the appended claims.
[0012]
[0025] Throughout this specification, a reference to "one example" or "an example" means that the particular features, structures, or characteristics described in connection with the example are included in at least one example of the claimed subject matter. Thus, the appearances of the phrase "in one example" or "an example" in various places throughout this specification are not necessarily all referring to the same example. Moreover, these particular features, structures, or characteristics may be combined in one or more examples.
[0013]
[0026] The methods described herein may be implemented by various means depending on the application according to the particular example. For example, such methods may be implemented in hardware, firmware, software, and / or a combination thereof. In a hardware implementation, for example, a processing unit may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other device units designed to perform the functions described herein, and / or a combination thereof.
[0014]
[0027] As used herein, the term "mobile device" may include a mobile electronic device that may be capable of wireless communication. While often referred to as a mobile phone (or "user equipment" (UE) in a cellular network), the wireless communication capabilities of a mobile device are not intended to be specific to or otherwise limited to a particular Radio Access Technology (RAT) unless otherwise specified. Generally, a mobile device may be any wireless communication device that can be directed by a user (e.g., a mobile phone, a router, a tablet computer, a laptop computer, a tracking device, a wearable (e.g., a smart watch, glasses, an Augmented Reality (AR) / Virtual Reality (VR) headset, etc.), an Internet of Things (IoT) device, etc.), or other electronic device that can be used for Global Navigation Satellite Systems (GNSS) positioning as described herein. According to some embodiments, a mobile device may be used to communicate over a wireless communication network. A mobile device may be mobile or may be stationary (e.g., at some time) and may communicate with a terrestrial Radio Access Network (RAN) when within range of the RAN. As used herein, the term mobile device may also be used with UE, Access Terminal (AT), client device, wireless device, subscriber device, subscriber terminal, subscriber station, user terminal, etc. A mobile device may be referred to interchangeably as a RAN (Routing Area Network), a mobile terminal (RAN), a mobile station, or variations thereof. Generally, a mobile device may communicate with a core network through which the mobile device may connect with external networks (such as the Internet) and with other mobile devices.Other mechanisms for connecting to the core network and / or the Internet are also possible for mobile devices, such as via a wired access network (e.g., based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard), a wireless local area network (WLAN) network, etc.
[0015]
[0028] As described herein, a GNSS receiver may constitute and / or be incorporated into an electronic device. This may include a single entity, or may include multiple entities, such as in a personal area network, where a user may utilize, for example, audio, video, and / or data I / O devices and / or body sensors and a separate wireline or wireless modem. As described herein, an estimate of a Global Positioning System (GPS) receiver's location may be referred to as a location, location estimate, location fix, fix, position, position estimate, or position fix, and may be a geodetic datum and thus provide GPS receiver location coordinates (e.g., latitude and longitude) that may or may not include an altitude component (e.g., height above sea level, height or depth above ground, floor level or basement level). In some embodiments, the location of a GPS receiver and / or an electronic device equipped with a GPS receiver may be expressed as an area or volume (defined either geodetically or in administrative form) where the GPS receiver is expected to be located with some probability or confidence (e.g., 67%, 95%, etc.). In the description contained herein, use of the term location may include any of these variations unless otherwise indicated. When calculating the location of a GPS receiver, such calculations may solve for local X, Y, and possibly Z coordinates, and then transform the coordinates from one coordinate frame to another, as necessary.
[0016]
[0029] Satellite-based communication systems have proliferated in recent years, expanding coverage for voice- and date-based communications, which can enable telephone coverage and Internet access to areas not previously served by terrestrial wireless (e.g., cellular / mobile communication networks) or wired networks (e.g., traditional wired telephone networks, cable, digital subscriber line (DSL), etc.).
[0017]
[0030] 1 is a diagram of a satellite-based communication system 100 in which satellites 110 orbit Earth 120 and travel along paths in orbital planes 130. For simplicity, the diagram has been greatly simplified. In a practical embodiment, the satellite-based communication system 100 may be made up of dozens of satellites 110 having many orbital planes 130. For example, the Iridium® communication system has 66 satellites, with 11 satellites in each of six orbital planes. To help optimize communication efficiency, the satellites 110 in such a satellite-based communication system 100 are typically equally spaced such that spacing 140 is approximately the same between all satellites 110 within an orbital plane 130.
[0018]
[0031] Occasionally, a satellite 110 may deviate from its normal orbit due to controlled maneuvers. For example, sometimes a satellite 110 may be steered to avoid a collision with another satellite 110 (and / or other objects in space). This can occur, for example, when satellites 110 approach a potential collision point 150 (where the orbital planes 130 intersect) from different orbital planes 130 at approximately the same time. (This assumes that the satellites 110 in the intersecting orbital planes 130 orbit the Earth 120 at approximately the same altitude, which is common in satellite-based communication systems.) For this reason, orbital models that predict the location of a communication satellite 110 often cannot accurately predict the location of the satellite 110 over long periods of time. For a given satellite 110, steering events may occur every few weeks (Iridium satellites are corrected approximately every 4 to 7 weeks). Therefore, such orbital models typically cannot accurately predict the location of the satellite 110 for longer than a few weeks.
[0019]
[0032] Satellite-based communication systems, such as that illustrated in FIG. 1, generally operate satellites in low Earth orbit (LEO), where the satellites are at altitudes of 2,000 km or less. That said, some satellite-based communication systems may operate in medium Earth orbit (MEO) (with an altitude of approximately 10,000-20,000 callers) or geostationary Earth orbit (GEO) (with an altitude of approximately 35,786 km). For LEO satellites, this means that the satellites move much faster through the sky relative to users on the Earth's surface. FIG. 2 helps illustrate this concept.
[0020]
[0033] FIG. 2 is a set of graphs showing an example of the visibility and number of satellites moving across the sky over the course of an hour. This particular example relates to the visibility of Iridium NEXT satellites from a viewpoint at 32.7157000° latitude and −117.1611000° longitude above sea level on Earth. The top chart 210 shows the changing altitudes of the different visible satellites (legend 215 identifies the particular satellite), while the bottom chart 220 shows the number of satellites visible at any given time. Both charts show how each satellite is visible for only about 10 minutes. However, the satellite orbits (including the spacing between satellites and the spacing between orbital planes) are such that at least one satellite is always visible at any given moment. Also, although different locations may have different numbers of visible satellites (e.g., locations closer to the poles tend to have more visible satellites than locations closer to the equator), satellite communication systems can be designed to ensure that at any time and at any location on Earth, at least one satellite is visible (assuming an open-sky scenario).
[0021]
[0034] As mentioned above, traditional satellite-based communications for mobile devices often required dedicated mobile devices such as satellite phones, which are typically expensive. However, mobile phone manufacturers and providers are exploring opportunities to offer (if only limited) satellite communications to more traditional mobile devices, such as traditional cell phones. However, this can be a challenge given the limitations of battery capacity and antennas in traditional cell phones, as well as the movement of communications satellites (e.g., LEO satellites).
[0022]
[0035] 3 illustrates some of the challenges of enabling satellite-based communications using a mobile device, such as a conventional cell phone, without a dedicated antenna for satellite communications. Here, a satellite 310 may serve one or more terrestrial devices by directionally transmitting and receiving signals using one or more RF beams. To conduct satellite-based communications using a mobile device 330, a user 340 may need to orient the mobile device 330 so that a primary antenna node 350 of the mobile device's antenna is substantially pointed at the satellite 310.
[0023]
[0036] Once the primary antenna node 350 is pointed at the satellite 310, it may take only a few seconds for the mobile device 330 to establish a communications link with the satellite 310 and transmit / receive data. In some embodiments, such functionality may be provided to users or subscribers of satellite-based communications services (e.g., by mobile carriers) to enable users to transmit and / or receive data when not within coverage of a terrestrial wireless network (e.g., a cellular network). The data may be transmitted in an emergency and may include, for example, an SOS or other emergency message. Additionally or alternatively, text messages may be buffered and transmitted / received when a communications link is established between the mobile device 330 and the satellite 310. Such satellite-based communications may be used to facilitate other data and / or voice services.
[0024]
[0037] However, such communication depends on the user 340 being able to successfully point the primary antenna node 350 of the mobile device 330 toward the satellite 310. This can be particularly challenging due to various factors. The accuracy with which the mobile device 330 with its primary antenna node 350 needs to be pointed toward the satellite 310 is a function of the available error budget. The error budget is typically a function of the characteristics of the antenna primary node 350. A large portion of the available error budget is allocated to account for user pointing errors, leaving more stringent requirements for the components described in FIG. 8. For example, the primary antenna node 350 may not be oriented relative to the mobile device 330 to make it easy or intuitive to "point" the primary antenna node 350 toward the satellite 310. Furthermore, the primary antenna node 350 may be relatively narrow, such that an error of, for example, 3 to 5 degrees, can impact performance. In addition, as previously mentioned, the position and movement of the satellite 310 in the sky may be difficult to accurately predict when the satellite 310 is undergoing a steering event.
[0025]
[0038] Embodiments herein help address at least some of these problems by providing accurate modeling of the orbital positions of satellites in satellite-based communications. Models capable of accurately predicting the locations of satellites in a satellite-based communications system over long periods of time can be created by a server in communication with a mobile device. To help enable a user to properly orient the mobile device for satellite-based communications, the server can provide assistance data including the model to the mobile device. Techniques provided herein can be used to provide models capable of accurately predicting the locations of satellites (e.g., within 41 km (or 3° from a user's perspective on Earth)) for more than one year with 99% confidence.
[0026]
[0039] 4 is a diagram 400 similar to FIG. 1 that is provided to conceptually illustrate what satellite modeling can do to predict the location of a given satellite 410, according to some embodiments. Using standard modeling techniques, conventional satellite modeling can predict the location of the satellite 410 relative to Earth 420 with some accuracy. However, when the satellite 410 undergoes a steering event that temporarily moves it away from its position in orbit, these models are typically no longer applicable after the steering event because the satellite 410 typically does not return to its exact position in orbit that was modeled using standard techniques. Thus, conventional satellite modeling for a given satellite 410 may only last for a few weeks, or until a steering event occurs.
[0027]
[0040] According to an embodiment, a more robust model can be created by modeling the location of the control box 440 of a satellite 410 rather than the exact location of the satellite 410 itself. The control box 440 of a satellite 410 is the region in which the satellite 410 is typically located. The combination of all control boxes for all satellites in a satellite constellation can be referred to as a reference grid, with each "cell" in the reference grid corresponding to a satellite's control box. Satellite constellations are typically created and maintained with the idea that each satellite can deviate from its normal orbit but can be controlled to remain within a threshold distance from its predicted location. This is particularly true for satellites in satellite-based communication systems (e.g., LEO communication satellites), where precise spacing between satellites is desired, as previously indicated. Thus, although a steering event may temporarily move a satellite 410 away from its control box 440, the satellite 410 typically returns to its control box 440. Thus, steering events generally do not affect the location of the control box 440.
[0028]
[0041] Because satellites in satellite-based communications systems have "tight" control boxes (e.g., ranging in width and height from 10 to 20 km), a mobile device may be able to communicate with a satellite when its primary antenna node (e.g., primary antenna lobe 350 in FIG. 3 ) is pointed at the center point of control box 440 rather than the actual location of satellite 410. With this in mind, and because, as mentioned above, steering events generally do not affect the location of control box 440, embodiments herein provide satellite modeling that can model the location of control box 440 (e.g., the center point of control box 440) and allow a user to orient their device for satellite communications, where the model can remain accurate over a year instead of just a few weeks (as mentioned above). A detailed description of how this modeling can be performed is provided below.
[0029]
[0042] 5 illustrates an exemplary architecture 500 of a system for providing assistance data to a mobile device 505 to enable a user to orient the mobile device 505 for satellite-based communication with a satellite 510, according to one embodiment. The arrows represent communication links that may include one or more intervening devices, networks, etc. (not shown). As with other figures, FIG. 5 is provided as a non-limiting example, and alternative embodiments may include additional or alternative components for providing assistance data to a mobile device 505.
[0030]
[0043] In the exemplary architecture 500, the modeling may be performed utilizing a server connected to one or more data sources 530, where the server 520 may include a computer server hosted in the cloud by a service for modeling satellite orbit data. The service may be provided, for example, by a satellite-based communications carrier, a mobile phone carrier, etc. Communications between the server 520 and the mobile device 505 may be relayed via one or more wired and / or wireless networks, including the Internet, a wireless cellular network, etc.
[0031]
[0044] The data sources may include computer servers and / or other devices that provide 530 orbital information for satellites (e.g., satellite 510) of a satellite-based communications system. As an example, the United States Space Command (USSPACECOM) 18th Space Defense Squadron (18 SPDS) publishes Two Line Element (TLE) data that can be used with the unclassified Simplified General Perturbations #4 (SGP4) library to derive orbital information based on radar observations. The TLE data is typically published on the Internet several times a day.
[0032]
[0045] By using the historical data to accurately model the bounding boxes of the satellites in the constellation (e.g., using techniques described below), the server 520 can provide the model to the mobile device 505, enabling the mobile device 505 to determine the position of the satellite 510. Using this information, along with the approximate location of the mobile device 505 on Earth, the mobile device 505 can determine how it should be oriented to communicate with the satellite 510 and can prompt the user (e.g., using a graphical user interface, audio prompts, etc.) to orient the mobile device 505 in this manner.
[0033]
[0046] According to an embodiment, using historical data to determine an accurate long-term model for predicting the location of a control box can be done in a two-step process, as illustrated in Figures 6 and 7. Note that the embodiments illustrated in Figures 6 and 7 refer to "satellite" and "control box" interchangeably, and indicate the center of the region (control box) corresponding to the satellite in which it is located.
[0034]
[0047] 6 is a flow diagram illustrating a first process flow 600 showing an initial parameter estimation process for determining an accurate long-term model, according to some embodiments. The operations illustrated in this first process flow 600 (along with the process flow illustrated in FIG. 7 and described below) may be performed by a server (e.g., server 520) to determine a model for satellite control box prediction for all satellites in the constellation. As mentioned above, this model may then be provided to the UE as assistance data that enables the UE to determine the location of the control box for UE orientation when conducting satellite-based communications.
[0035]
[0048] Step 1 may begin using inputs provided in blocks 605 and 610. In particular, as previously discussed, the server may retrieve an archive of TLE (orbital) data for satellites in a satellite-based communications constellation over a period of time, as shown in block 605. Each control box or satellite may be given a particular slot within a particular plane, and satellite data for all slots and planes, or a subset thereof, may be obtained.
[0036]
[0049] As further shown, the satellite information may be provided in an earth-centered inertial (ECI) reference frame. However, it may be preferable to utilize an earth-centered, earth-fixed (ECEF) frame to determine the position of the satellite relative to a terrestrial UE. Accordingly, embodiments may further obtain parameters for coordinate rotation from ECI to ECEF, as shown in block 610.
[0037]
[0050] The amount of historical data used in first process flow 600 can vary depending on the desired functionality. However, to account for changes in satellite orbits due to steering events, embodiments may use historical data spanning one or more orbital steering events for each satellite. For example, for Iridium NEXT satellites, each of which performs a steering event every 4-7 weeks, TLE data covering at least an 8-week sampling period can help ensure that each satellite performs at least one steering event, thereby allowing the model to account for all satellite steering events (and therefore accurately predict satellite locations for much longer than conventional models).
[0038]
[0051] At block 615, the process includes preparing uniformly sampled ECEF reference orbit data spanning a time period T1. As mentioned above, the length of the time period T1 may be selected to help ensure that a steering event occurs for each satellite for which data is acquired (in the example above regarding Iridium satellites, T1 includes the most recent 8 weeks of data). Preparing the uniformly sampled orbit data may include determining the position (e.g., x, y, z location) of each satellite at a uniform sampling rate (e.g., every 5 minutes).
[0039]
[0052] Next, using the uniformly sampled reference orbit data prepared in block 615, the server can calculate a seed value for the orbit parameters, as shown in block 620. These orbit parameters can vary depending on the type of orbit model used for satellite position estimation. For example, in the case of the Kepler model, the orbit parameters can include Kepler orbit parameters such as the square root of the semi-major axis, eccentricity, mean anomaly, inclination angle, right ascension of the ascending node (RAAN), RAAN rate, and argument of perigee, or combinations thereof. Alternatively, near-equatorial orbit modeling may be used, in which case the orbit parameters may include a set of near-equatorial orbit elements, i.e., the semi-major axis, the components of the eccentricity vector in the near-equatorial reference frame, the components of the ascending node vector in the near-equatorial reference frame, and some or all of the mean longitude. In some embodiments, secondary parameters or derived parameters can be used as orbit parameters. For example, in classical Kepler orbit modeling, the set of Kepler elements can be represented using derived parameters such as the orbital time period instead of the semi-major axis. This is because there is a direct relationship between the two. The seed value can be used to seed an iterative process of estimating values for the orbit parameters executed by a group of operations included in block 625. The seed value can be obtained in any of a variety of ways depending on the desired functionality. In some embodiments, for example, the seed value can be obtained from the last N epochs of the reference orbit data extracted in block 615. 【0<strong>040< / strong>】
[0053] A group of operations in block 625 then iteratively changes the parameter values (e.g., starting from the seed values obtained in block 620) to find a set of orbital parameter values that best fits the actual orbital data for time period T1. This is done by estimating, for each orbital parameter, a respective adjustment to each seed value to determine a respective candidate orbital parameter value, as shown in block 627. These candidate orbital parameter values are then used to calculate a candidate orbital path, as shown in block 630. In block 635, the candidate orbital path is compared with the actual (reference) orbital path from block 615, and a residual indicating the difference between the candidate orbital path and the actual orbital path is calculated. In block 640, the cost function can be checked for convergence (e.g., whether the value of the residual for successive iterations changes by more than a threshold). If not, the process of estimating orbital parameter values can be repeated using estimated updated orbital parameter values, as shown in block 645. However, once the iterative process results in convergence (e.g., the residual value from one iteration to the next does not change by more than a threshold), the candidate orbit parameter values in the most recent iteration may be used as the output orbit parameter values for the first process flow 600, as shown in block 650. This first process flow 600 may be performed in parallel or sequentially for all satellites in the constellation (e.g., all planes and slots), or a subset thereof.
[0041]
[0054] FIG. 7 is a flow diagram illustrating a second process flow 700 illustrating a subsequent parameter estimation process for determining an accurate long-term model according to some embodiments, which may follow the initial process illustrated in FIG. 6 . Again, the operations illustrated in this second process flow 700 may be performed by a server to determine a model for satellite control box predictions for all satellites in a constellation. Unlike the first process flow 600 of FIG. 6 , which illustrated the process used to estimate orbital parameter values for each control box or satellite (e.g., one at a time), the second process flow 700 may be performed to determine final orbital parameter values for all control boxes or satellites in a satellite constellation (illustrated in FIG. 7 as having N faces and M slots). Nevertheless, as described in more detail below, the second process flow 700 illustrates a parameter estimation process that is similar in many respects to the first process flow 600 of FIG. 6 .
[0042]
[0055] As shown, the second process flow 700 may include obtaining data from the data sources of the first process flow 600, including the TLE archive (for all satellites), as shown in block 705, and parameter values for the ECI-to-ECEF coordinate rotation, as shown in block 710. This data may be sampled over a second period T2, which may span the same period as T1 but may be longer or shorter. In a preliminary implementation, T2 is selected to be longer than T1. As an example, T1 may include the most recent eight weeks, and T2 may include the most recent 24 weeks (including the eight weeks of T1). Similar to the operations at block 615 in FIG. 6, the operations at block 715 include preparing uniformly sampled ECEF reference orbit data over the period T2. As shown, this is done for all control boxes or satellites. (The sample rate may be the same or different from the sample rate used to prepare the samples for the first process flow 600. It may also be different.)
[0043]
[0056] Similar to the first process flow 600, the second process flow may include using seed values for an iterative estimation process that finds a best fit of orbital parameter values to the data obtained in block 715. However, here the parameter values output by the first process flow 600 may be used as seed values for the operations shown in the second process flow 700. In particular, as shown in block 720, the output orbital parameters from the first process flow 600 for each control box in the satellite constellation may be used as inputs.
[0044]
[0057] The group of operations in the iterative process illustrated in block 725 may generally follow the iterative process illustrated in block 625 of FIG. 6 to find a set of orbital parameter values. However, here, the iterative process is performed to find orbital parameter values that best fit actual orbital data for time period T2 (rather than T1), is performed for multiple satellites (e.g., all satellites in a satellite constellation), and in some embodiments, estimates adjustments to only a subset of parameters (e.g., only the square root of the semimajor axis and the mean anomaly). This is done by estimating respective adjustments to respective seed values for each subset of orbital parameters for each control box / satellite to determine respective candidate orbital parameter values, as shown in block 727. These candidate orbital parameter values are then used to calculate candidate orbital paths, as shown in block 730. In block 735, the candidate orbital paths are compared to the actual (reference) orbital paths prepared in block 715, and a residual indicating the difference between the candidate orbital paths and the actual orbital paths is calculated.
[0045]
[0058] In block 740, the cost function can be checked for convergence (e.g., whether the value of the residual for successive iterations has changed by more than a threshold). As shown, this can be done across all satellites / control boxes. In contrast to the functionality in block 640 of FIG. 6 in step 1, the cost function and residual values in the operations shown in block 740 can be applied across the entire group of satellites. If convergence has not occurred, the process of estimating orbital parameter values can be repeated using estimated updated orbital parameter values, as shown in block 745. However, if the iterative process results in convergence, the candidate orbital parameter values in the most recent iteration can be used as the final orbital parameter values for the control box / satellite. These values are output of the second process flow 700, as shown in block 750. These final orbital parameter values can be provided by the server to the UE to model satellite movement and accurately predict the locations of communication satellites (or, more precisely, their respective control boxes) for satellite-based communications.
[0046]
[0059] An iterative process, as illustrated for the group of operations in block 725, may be performed to further refine values across a particular group. As shown in block 745, grouping constraints may be applied when adjusting selected parameter values. Groups may be defined based on satellites that may have similar (or ideally the same) values for one or more parameters. For example, with respect to one or more parameters, satellites may be grouped based on orbital plane, orbital shell, satellite constellation, or a combination thereof. Then, as shown in block 745, grouped parameter value adjustments may be estimated, and an iterative process may be used to find best-fit parameter values for the entire group. According to some embodiments, other (ungrouped) parameters may retain their original values as determined in step 1 of the estimation process flow (e.g., as illustrated in FIG. 6) or may be further adjusted as desired (e.g., on a satellite / control box basis). Additional details regarding applying grouping constraints are described below with respect to the example values shown in FIGS. 9-11.
[0047]
[0060] 8 is a flow diagram of a method 800 that may be employed by a mobile device to use assistance data provided by a server to assist a user of the mobile device in orienting the mobile device to enable satellite-based communications, according to some embodiments. As mentioned above, the mobile device may include a mobile electronic device such as a mobile phone. Other types of mobile devices may include tablets, laptops, commercial or industrial mobile devices, personal media players, headsets or other wearable devices, etc.
[0048]
[0061] Method 800 may begin by a mobile device obtaining assistance data (as shown in block 805), the current time (block 810), and a current user position 815. Here, the assistance data may include orbital parameter values determined by a server (e.g., as the output of step 2 of the estimation process flow of FIG. 7 ) over a data communications network (e.g., via the Internet, a cellular wireless network, and / or a similar network). The assistance data may have been previously obtained by the mobile device (e.g., when the mobile device was within coverage of a cellular or Wi-Fi network). However, as described above, using the techniques provided herein to determine orbital parameters for a control box / satellite of a satellite-based communications system, the parameters may enable accurate prediction of the control box / satellite for a period of one year or more.
[0049]
[0062] The current time obtained in block 810 may be used in the control box / satellite prediction by the mobile device. Thus, the current time may be substantially synchronized with the time used to determine the orbital parameter values to enable accurate prediction. According to some embodiments, the current time may be obtained by using the GNSS receiver of the mobile device to synchronize the mobile device to the precise time of the GNSS constellation. In some embodiments, the current time of the mobile device, maintained by the mobile device's clock, may be sufficiently accurate to enable accurate prediction of satellite locations.
[0050]
[0063] The user position obtained in block 815 may also be obtained in different ways. Again, if the mobile device is equipped with a GNSS receiver, the mobile device may use GNSS positioning. Additionally or alternatively, the mobile device may use terrestrial-based positioning methods (including wireless network-based positioning, if available), dead reckoning (e.g., using sensors on the mobile device), or a combination thereof. To determine the orientation of the mobile device for satellite-based communications, the accuracy of the user position need not be very granular, but may be within a few kilometers of the mobile device's true location.
[0051]
[0064] Using the assistance data obtained in blocks 805 and 810, respectively, and the current time, the mobile device can then calculate the satellite position for each satellite in the constellation of the satellite-based communication system, as shown in block 820. The orbital parameters can be used to determine (or predict) the satellite position at the current time, for example, in a standard (e.g., Keplerian, equatorial, etc.) orbital model.
[0052]
[0065] The functionality in block 825 includes identifying one or more satellites that are visible to the user (or mobile device). Using the current satellite positions and the current user position, the mobile device can determine the relative position of each satellite to the user and further determine which satellites are above the horizon and visible to the mobile device (e.g., available for direct line-of-sight communication). This determination may result in data similar to that shown in FIG. 2, for example.
[0053]
[0066] Using knowledge of which satellites are visible to the user and the relative positions of the satellites, the mobile device can then provide pointing assistance to the user to orient the mobile device in a manner that allows the mobile device to conduct satellite-based communications with the satellite. As described above with respect to FIG. 3, this can be done by further considering the orientation of the mobile device's main antenna lobe relative to the mobile device. Pointing assistance can be provided using audio and / or visual prompts using the mobile device's speaker and / or display. According to some embodiments, the mobile device can further notify the user when the mobile device is properly oriented, prompting the user to stop moving and allowing the mobile device to conduct communications with the satellite as it is oriented for communications.
[0054]
[0067] According to some embodiments, the operations shown in one or more of the blocks of Figure 8 may be repeated during the orientation of the mobile device to enable real-time feedback to the user. For example, the determination of satellite positions in block 820, the identification of visible satellites in block 825, and the provision of pointing assistance in block 830 may be refreshed frequently (e.g., several times per second, once per second, once every few seconds, etc.) to enable the mobile device to guide the user to properly orient the mobile device with the satellite as it moves across the sky. In some embodiments, the mobile device may prompt a "leading" orientation to point the satellite to a position where it will come, to account for the time it may take the user to properly orient the mobile device.
[0055]
[0068] 9-11 show exemplary Keplerian orbital parameter values based on publicly available information for the Iridium NEXT satellite constellation over a particular time period. However, it should be noted that the techniques provided herein may be applied to other satellite constellations, particularly constellations of other satellite-based communication systems.
[0056]
[0069] FIG. 9 is a table showing exemplary Keplerian orbital parameter values generated by performing step 1 of the estimation process flow described above with respect to FIG. 6 using archived public TLE data for the Iridium satellites. To avoid confusion, data for only two orbital planes from the satellites (22 satellites) is shown. However, in practice, data for all six planes from the satellites may be used. In this particular example, the time period (T1) to which the data corresponds is from November 6, 2020 to December 31, 2020, spanning eight weeks of historical data.
[0057]
[0070] As can be seen, the output includes values for the Keplerian orbit parameters, i.e., square root of semimajor axis, eccentricity, mean anomaly, inclination, RAAN, RAAN rate, and argument of perigee, along with the reference epoch time (e.g., the timestamp at which the orbit parameters apply). At this point in the model determination process (e.g., at the output of step 1 of the estimation process flow), values for each of the seven Keplerian orbits have been determined separately for each satellite. Thus, each satellite may have a unique set of Keplerian orbit parameter values.
[0058]
[0071] 10 is a table illustrating a first exemplary set of Keplerian orbital parameter values generated by performing step 2 of the estimation process flow described above with respect to FIG. 7 following the exemplary values of FIG. 9 for generating Keplerian orbital parameter values for the Iridium NEXT satellite. Specifically, the values of FIG. 10 were obtained using the Keplerian orbital parameter values in the table of FIG. 9 as seed values, and the time period (T2) to which the TLE data corresponds is from July 17, 2020 to December 31, 2020.
[0059]
[0072] As described above, satellites may be grouped in this manner, and constraints may be applied on a group-by-group basis when determining adjustments to different parameter values during step 2 of the estimation process flow illustrated in FIG. 7. Group-common parameter values may be constant for the entire group. In the example of FIG. 10, for example, different orbital planes define different groups. (Again, only two of the six orbital planes are shown in FIG. 10.) Because the inclination angle and RAAN are common to the group, common values may be applied to the entire group. As shown in FIG. 10, the inclination angle values in column 1010 and the RAAN values in column 1020 are the same for all satellites (e.g., for each orbital plane) in each group.
[0060]
[0073] As mentioned above, according to some embodiments, grouping for some parameters may be applied to a group that includes the entire constellation. The value of the square root of the semimajor axis may be the same for all satellites in the entire constellation. Thus, in the example shown in Figure 10, the value of the square root of the semimajor axis shown in column 1030 is the same for all satellites in the entire constellation.
[0061]
[0074] Using these grouping constraints on the values in columns 1010, 1020, and 1030, step 2 of the estimation process flow can be utilized to determine a common value that is the best fit for all satellites in the group (across the group). The values in column 1030 represent the value that best fits the square root of the semimajor axes of all 66 satellites in the constellation over time T2. Similarly, the values in columns 1010 and 1020 represent the best fit for each orbital plane's respective values for inclination angle and RAAN across all satellites. The mean anomaly values in column 1040 may be different from step 1 and may be unique to each satellite. Thus, step 2 can further refine these values for each satellite. (Because mean anomaly describes the satellite's position within the orbit, while other Keplerian orbit values generally describe the orbit itself, it may be reasonable to preserve mean anomaly as a "free" parameter whose value is selected during step 2 for each satellite. That said, alternative embodiments may utilize additional or alternative Keplerian parameter values as free parameters.) Other values (e.g., eccentricity, RAAN rate, and argument of perigee) do not have any grouping constraints and may retain their original values as determined in step 1 of the estimation process flow (e.g., as shown in FIG. 6). Thus, in this example, step 2 estimates 79 parameter values: 66 values for mean anomaly (for each satellite), 6 values for inclination (for each orbital plane), 6 values for RAAN (again, for each orbital plane), and a single value of 4 for the square root of the semimajor axis for all satellites.
[0062]
[0075] It should be noted that the principles described herein with respect to a satellite-based communications constellation within a single shell can be extended to a satellite-based communications constellation having multiple shells, e.g., different grouping constraints may be applied to different shells and / or different groups within different shells (e.g., different orbital planes within a shell).
[0063]
[0076] FIG. 11 is a table showing a second example set of Keplerian orbit parameter values generated by performing step 2 of the estimation process flow. It uses the same data set and time period (T2) as the Keplerian orbit parameter values of FIG. 10. However, here, the grouping is different. More specifically, there is no grouping by orbital plane. Instead, there is a single constellation-wide grouping for the square root of the semimajor axis (similar to FIG. 10), resulting in a common value for all satellites in column 1110, and a mean anomaly value, shown in column 1120, is estimated for each satellite. Thus, step 2 of the estimation process flow in this example estimates 66 values for the mean anomaly (for each satellite), a single value, the square root of the semimajor axis, for all satellites, and 67 parameter values. All other parameter values may remain the same as those determined in step 1.
[0064]
[0077] FIG. 12 is a flow diagram of a method 1200 of a method for facilitating pointing a mobile device to a satellite of a satellite constellation for satellite-based data communication. Means for performing the illustrated functionality in one or more of the blocks shown in FIG. 1200 may be performed by hardware and / or software components of a computer server, as described herein. Exemplary components of a computer server are illustrated in FIG. 14 and described in more detail below. In some embodiments, some or all of the operations of FIG. 12 (as well as FIGS. 6 and / or 7) may be performed by a mobile device.
[0065]
[0078] In block 1210, the functionality includes obtaining historical orbit data indicating the orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time. In some aspects, this functionality may correspond, for example, to the operations in blocks 605, 610, and 615 of FIG. 6 . Thus, this period of time may correspond to T1 in FIG. 6 . In some embodiments, obtaining the historical orbit data includes using archived TLE data of the set of satellites for a period of time to calculate satellite orbital paths at a fixed sampling rate. As described elsewhere herein, the satellite constellation may comprise a communications satellite constellation having satellites capable of communicating with a ground device. Each satellite may be stationkeeping and may correspond to a control box.
[0066]
[0079] Means for performing the functionality in block 1210 may include bus 1305, processor(s) 1310, DSP 1320, wireless communication interface 1330, memory 1360, and / or other components of mobile device 1300, as shown in FIG. 13 and described below. Additionally or alternatively, means for performing the functionality block 1210 may include bus 1405, processor 1410, communication subsystem 1430 (optionally including wireless communication interface 1433), memory 1435, and / or other components of computer system 1400, as shown in FIG. 14 and described below, for example.
[0067]
[0080] In block 1220, the functionality includes estimating, for each satellite in the set of satellites, a set of orbital parameter values, where at least one orbital parameter value of the set of orbital values is common across a group of satellites in the set of satellites, by fitting an orbital model to the respective satellite's historical data. As described with respect to Figures 6 and 7, satellite estimation may include a two-step estimation process in which an initial or preliminary set of orbital parameter values is determined and then one or more orbital parameter values are used as seed values for determining a final set of orbital parameter values shared among the group of satellites. Thus, according to some embodiments of method 1200, fitting the set of orbital parameter values for each satellite may include estimating the preliminary set of orbital parameter values in a first operation that fits the orbital model to a first portion of the historical data spanning a first portion of the time period, and using the preliminary set of orbital parameter values as a seed value in a second operation that fits the orbital model to a second portion of the historical data spanning at least the first portion of the time period. In such an embodiment, the value of at least one orbit parameter common across the group of satellites may be determined by a second operation that fits the orbit model to a second portion of the historical data. Additionally or alternatively, the historical data spanning the first portion of the time period may include data spanning one or more steering events for each satellite in the set of satellites.
[0068]
[0081] As discussed above, satellites sharing orbital parameter values may be grouped in one or more different ways. Thus, the group of satellites referred to in block 1220 may include satellites in a common orbital plane, satellites in a common orbital shell, or all satellites in a satellite constellation, or a combination thereof.
[0069]
[0082] Different types of orbital models may be used, which may determine the type of orbital parameter values estimated. According to some embodiments, the orbital model includes a Keplerian model, and the set of orbital parameter values includes the square root of the semimajor axis, the eccentricity, the mean anomaly, the inclination, the RAAN, the RAAN rate, or the argument of perigee, or a combination thereof. According to some embodiments, the orbital model includes a near-equatorial model, and the set of orbital parameter values includes the semimajor axis, the components of the eccentricity vector in the near-equatorial reference frame, the components of the ascending node vector in the near-equatorial reference frame, or the mean longitude, or a combination thereof.
[0070]
[0083] Means for performing the functionality in block 1220 may include bus 1305, processor(s) 1310, DSP 1320, wireless communication interface 1330, memory 1360, and / or other components of mobile device 1300, as shown in FIG. 13 and described below. Additionally or alternatively, means for performing the functionality block 1220 may include bus 1405, processor 1410, communication subsystem 1430 (optionally including wireless communication interface 1433), memory 1435, and / or other components of computer system 1400, as shown in FIG. 14 and described below, for example.
[0071]
[0084] At block 1230, the functionality includes sending assistance data to at least one mobile device that indicates a respective set of orbital parameter values for all satellites in the set of satellites. As described with respect to Figure 8, this assistance data can be used by the mobile device to provide pointing assistance to a user of the mobile device to enable the mobile device to determine satellite locations and ultimately to enable the mobile device to engage in satellite-based communications with the satellites. Again, because the modeling techniques described herein, including those described in Figures 6 and 7, provide accurate long-term orbital models, a receiving mobile device may be able to utilize the assistance data to determine the positions of satellites in the constellation over a period of several months, a year, or more.
[0072]
[0085] Means for performing the functionality in block 1230 may include bus 1305, processor(s) 1310, DSP 1320, wireless communication interface 1330, memory 1360, and / or other components of mobile device 1300, as shown in FIG. 13 and described below. Additionally or alternatively, means for performing the functionality block 1230 may include bus 1405, processor 1410, communication subsystem 1430 (optionally including wireless communication interface 1433), memory 1435, and / or other components of computer system 1400, as shown in FIG. 14 and described below, for example.
[0073]
[0086] FIG. 13 is a block diagram of one embodiment of a mobile device 1300 that can be utilized as described above in this specification (e.g., in connection with FIGS. 1-12). For example, the mobile device 1300 can perform one or more of the functions of the method illustrated in FIG. 8. It should be noted that FIG. 13 is intended only to provide a generalized illustration of various components, any or all of which may be utilized as desired. It should be noted that in some instances, the components illustrated in FIG. 13 may be localized in a single physical device and / or distributed among various networked devices that may be located in different physical locations. Additionally, as previously mentioned, the UE functionality described in the foregoing embodiments may be performed by one or more of the hardware and / or software components illustrated in FIG. 13.
[0074]
[0087] A mobile device 1300 is shown comprising hardware elements that may be electrically coupled (or otherwise in communication as appropriate) via a bus 1305. The hardware elements may include processor(s) 1310, which may include, but are not limited to, one or more general-purpose processors (e.g., application processors), one or more special-purpose processors (such as digital signal processor (DSP) chips, graphics acceleration processors, application-specific integrated circuits (ASICs)), and / or other processing structures or means. The processor(s) 1310 may include one or more processing units that may be housed in a single integrated circuit (IC) or multiple ICs. As shown in FIG. 13, some embodiments may have a separate DSP 1320, depending on the desired functionality. Location determination and / or other decisions based on wireless communication may be performed in the processor(s) 1310 and / or in the wireless communication interface 1330 (described below). The mobile device 1300 may also include one or more input devices 1370, which may include, but are not limited to, one or more keyboards, touchscreens, touchpads, microphones, buttons, dials, switches, etc., and one or more output devices 1315, which may include, but are not limited to, one or more displays (e.g., touchscreens), light emitting diodes (LEDs), speakers, etc.
[0075]
[0088] The mobile device 1300 may also include a wireless communication interface 1330, which may comprise, but is not limited to, a modem, a network card, an infrared communication device, a wireless communication device, and / or a chipset (such as a Bluetooth device, an IEEE 802.11 device, an IEEE 802.15.4 device, a Wi-Fi device, a WiMAX device, a WAN device, and / or various cellular devices), etc., that may enable the mobile device 1300 to communicate with other devices as described in the above embodiments. The wireless communication interface 1330 may enable data and signaling to be communicated (e.g., transmitted and received) with a TRP of a network, as described herein, for example, via an eNB, a gNB, an ng-eNB, an access point, various base stations and / or other access node types, and / or other network components, computer systems, and / or any other electronic devices communicatively coupled to the TRP. Communication may be performed via one or more wireless communication antenna(s) 1332 that transmit and / or receive wireless signals 1334. According to some embodiments, the wireless communication antenna(s) 1332 may include multiple individual antennas, an antenna array, or any combination thereof. The antenna(s) 1332 may be capable of transmitting and receiving wireless signals using beams (e.g., Tx beams and Rx beams). Beamforming may be performed using digital and / or analog beamforming techniques using respective digital and / or analog circuitry. The wireless communication interface 1330 may include such circuitry. As shown in FIG. 3 , the antenna(s) 1332 may further be used for satellite-based communications and may comprise a primary node that may be directed to a satellite for satellite-based communications, as described herein. According to some embodiments, the orientation of the primary node relative to the body of the device may be known / established by the device manufacturer.
[0076]
[0089] Depending on the desired functionality, the wireless communication interface 1330 may include separate receivers and transmitters, or any combination of transceivers, transmitters, and / or receivers, for communicating with base stations (e.g., ng-eNBs and gNBs) and other terrestrial transceivers, such as wireless devices and access points. The mobile device 1300 may communicate with different data networks, which may include a variety of network types. For example, a Wireless Wide Area Network (WWAN) may be a CDMA network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (OFDMA) network, a Single-Carrier Frequency Division Multiple Access (SC-FDMA) network, a WiMAX (IEEE 802.16) network, etc. The CDMA network may implement one or more RATs, such as CDMA2000, WCDMA, etc. CDMA2000® includes the IS-95 standard, the IS-2000 standard, and / or the IS-856 standard. A TDMA network may implement GSM, the Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. An OFDMA network may utilize LTE, LTE Advanced, 5G NR, etc. 5G NR, LTE, LTE Advanced, GSM, and WCDMA are described in documents from the 3GPP. CDMA2000® is described in documents from an organization named "3rd Generation Partnership Project 2" (3GPP2). 3GPP and 3GPP2 documents are publicly available.A wireless local area network (WLAN) may also be an IEEE 802.11x network, and a wireless personal area network (WPAN) may be a Bluetooth network, an IEEE 802.15x, or some other type of network. The techniques described herein may also be used for any combination of WWAN, WLAN, and / or WPAN.
[0077]
[0090] The mobile device 1300 may further include sensor(s) 1340. The sensor(s) 1340 may include, but are not limited to, one or more inertial sensors and / or other sensors (e.g., accelerometer(s), gyroscope(s), camera(s), magnetometer(s), altimeter(s), microphone(s), proximity sensor(s), light sensor(s), barometer(s), etc.), some of which may be used to obtain location-related measurements and / or other information.
[0078]
[0091] An embodiment of mobile device 1300 may also include a GNSS receiver 1380 capable of receiving signals 1384 from one or more Global Navigation Satellite System (GNSS) satellites using antenna 1382 (which may be the same as antenna 1332). Positioning based on GNSS signal measurements can be utilized to complement and / or incorporate the techniques described herein. GNSS receiver 1380 can use conventional techniques to extract a location for mobile device 1300 from GNSS satellites of GNSS systems such as Global Positioning System (GPS), Galileo, GLONASS, the Quasi-Zenith Satellite System (QZSS) over Japan, the IRNSS over India, and the Beidou Navigation Satellite System (BDS). Furthermore, the GNSS receiver 1380 can be used with various augmentation systems (e.g., Satellite Based Augmentation System (SBAS)) associated with or adapted for use with one or more global and / or regional navigation satellite systems, such as, for example, the Wide Area Augmentation System (WAAS), the European Geostationary Navigation Overlay Service (EGNOS), the Multi-functional Satellite Augmentation System (MSAS), and the Geo Augmented Navigation system (GAGAN).
[0079]
[0092] It should be noted that while GNSS receiver 1380 is illustrated in FIG. 13 as a separate component, embodiments are not limited to this. As used herein, the term “GNSS receiver” may include hardware and / or software components configured to acquire GNSS measurements (measurements from GNSS satellites). Thus, in some embodiments, the GNSS receiver may comprise a measurement engine executed (as software) by one or more processors, such as processor(s) 1310, DSP 1320, and / or a processor in wireless communication interface 1330 (e.g., in a modem). The GNSS receiver may also optionally include a positioning engine, which can use GNSS measurements from the measurement engine to determine the position of the GNSS receiver using an Extended Kalman Filter (EKF), Weighted Least Squares (WLS), a Hatch filter, a particle filter, or the like. The positioning engine may also be executed by one or more processors, such as processor(s) 1310 or DSP 1320.
[0080]
[0093] Mobile device 1300 may further include and / or be in communication with memory 1360. Memory 1360 may include, but is not limited to, local and / or network-accessible storage devices, disk drives, drive arrays, optical storage devices, solid-state storage devices such as random access memory (RAM) and / or read-only memory (ROM), which may be programmable, flash-updateable, etc. Such storage devices may be configured to implement any suitable data store, including, but not limited to, various file systems, database structures, etc.
[0081]
[0094] Memory 1360 of mobile device 1300 may also include software elements (not shown in FIG. 13 ) including other code, such as an operating system, device drivers, executable libraries, and / or one or more application programs, which may include computer programs provided by various embodiments and / or may be designed to implement methods and / or configure systems provided by other embodiments, as described herein. By way of example only, one or more procedures described with respect to the method(s) described above may be implemented as code and / or instructions in memory 1360 executable by mobile device 1300 (and / or processor(s) 1310 or DSP 1320 within mobile device 1300). In some embodiments, such code and / or instructions may then be used to configure and / or adapt a general-purpose computer (or other device) to perform one or more operations in accordance with the described method(s).
[0082]
[0095] FIG. 14 is a block diagram of one embodiment of a computer system 1400 (e.g., data source(s) 530 and / or server 520 of FIG. 5 ) that can be used in whole or in part to provide the functionality of one or more network components, as described in embodiments herein. Note that FIG. 14 is intended only to provide a generalized illustration of the various components, any or all of which may be utilized as desired. Thus, FIG. 14 broadly illustrates how individual system elements may be implemented in a relatively separate or relatively more integrated fashion. Additionally, note that the components illustrated in FIG. 14 may be localized on a single device and / or distributed among various networked devices that may be located in different geographic locations.
[0083]
[0096] Computer system 1400 is shown including hardware elements that may be electrically coupled (or otherwise in communication as needed) via a bus 1405. The hardware elements may include processor(s) 1410, which may include, but are not limited to, one or more general-purpose processors, one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, etc.), and / or other processing structures that may be configured to perform one or more of the methods described herein. Computer system 1400 may also include one or more input devices 1415, which may include, but are not limited to, a mouse, keyboard, camera, microphone, etc., and one or more output devices 1420, which may include, but are not limited to, a display device, printer, etc.
[0084]
[0097] Computer system 1400 may further include (and / or be in communication with) one or more non-transitory storage devices 1425, which may include, but are not limited to, local and / or network-accessible storage devices and / or solid-state storage devices such as, but not limited to, disk drives, drive arrays, optical storage devices, RAM and / or ROM, which may be programmable, flash-updateable, etc. Such storage devices may be configured to implement any suitable data store, including, but not limited to, various file systems, database structures, etc. Such data stores may include database(s) and / or other data structures used to store and manage messages and / or other information to be sent to one or more devices via the hub, as described herein.
[0085]
[0098] The computer system 1400 may also include a communications subsystem 1430, which may include wireless communications technologies managed and controlled by a wireless communications interface 1433, as well as wired technologies (such as Ethernet, coaxial communications, and universal serial bus (USB)). The wireless communications interface 1433 may include one or more wireless transceivers that may transmit and receive wireless signals 1455 (e.g., signals according to 5G NR or LTE) via wireless antenna(s) 1450. Accordingly, the communications subsystem 1430 may comprise a modem, a network card (wireless or wired), an infrared communications device, a wireless communications device, and / or a chipset, etc., that may enable the computer system 1400 to communicate in any or all of the communications networks described herein to any device on the respective network, including user equipment (UE), base stations and / or other TRPs, and / or any other electronic device described herein. Accordingly, the communications subsystem 1430 may be used to receive and transmit data as described in the embodiments herein.
[0086]
[0099] In many embodiments, computer system 1400 will further include working memory 1435, which may include a RAM device or a ROM device, as described above. Software elements shown as residing in working memory 1435 may include other code, such as an operating system 1440, device drivers, executable libraries, and / or one or more applications 1445, which may include computer programs provided by various embodiments and / or may be designed to implement methods and / or configure systems provided by other embodiments, as described herein. By way of example only, one or more procedures described with respect to the method(s) described above may be implemented as code and / or instructions executable by a computer (and / or a processor within a computer), and in one aspect, such code and / or instructions may then be used to configure and / or adapt a general-purpose computer (or other device) to perform one or more operations in accordance with the described method.
[0087]
[0100] A set of these instructions and / or code may be stored on a non-transitory computer-readable storage medium, such as storage device(s) 1425 described above. In some cases, the storage medium may be incorporated within a computer system, such as computer system 1400. In other embodiments, the storage medium may be separate from the computer system (e.g., a removable medium such as an optical disk) and / or provided in an installation package, such that the storage medium may be used to program, configure, and / or adapt a general-purpose computer with the instructions / code stored thereon. These instructions may be in the form of executable code that can be executed by computer system 1400 and / or may be in the form of source and / or installable code that, when compiled and / or installed on computer system 1400 (e.g., using any of a variety of publicly available compilers, installation programs, compression / decompression utilities, etc.), is then in the form of executable code.
[0088]
[0101] It will be apparent to those skilled in the art that substantial variations may be made according to particular requirements. For example, customized hardware might also be used and / or particular elements might be implemented in hardware, software (including portable software such as applets), or both. Furthermore, connection to other computing devices, such as network input / output devices, might be utilized.
[0089]
[0102] With reference to the accompanying figures, components that may include memory may also include non-transitory machine-readable media. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any storage medium that participates in providing data that causes a machine to operate in a specific manner. In the embodiments provided above, various machine-readable media may participate in providing instructions / code to a processor and / or other device(s) for execution. Additionally or alternatively, machine-readable media may be used to store and / or transport such instructions / code. In many implementations, computer-readable media are physical and / or tangible storage media. Such media may take many forms, including, but not limited to, non-volatile media and volatile media. Common forms of computer-readable media include, for example, magnetic and / or optical media, any other physical media with a pattern of holes, RAM, programmable ROM (PROM), erasable PROM (EPROM), FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read instructions and / or code.
[0090]
[0103] The methods, systems, and devices described herein are examples. Various embodiments may omit, substitute, or add various procedures or components, as appropriate. For example, features described with respect to some embodiments may be combined in various other embodiments. Different aspects and elements of the embodiments may be similarly combined. Various components of the diagrams provided herein may be embodied in hardware and / or software. Also, technology evolves, and therefore, many of the elements are examples that do not limit the scope of the disclosure to those specific examples.
[0091]
[0104] It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, information, values, elements, symbols, characters, variables, terms, numbers, numerical values, or the like. It should be understood, however, that all of these or similar terms are merely convenient labels and are to be associated with the appropriate physical quantities. Unless otherwise expressly stated, and as is clear from the above description, throughout this specification, descriptions utilizing terms such as "processing," "calculating," "calculating," "determining," "ascertaining," "identifying," "associating," "measuring," "performing," and the like, should be understood to refer to the actions or processes of a particular apparatus, such as a special purpose computer or similar special purpose electronic computing device. Thus, in the context of this specification, a special purpose computer or similar special purpose electronic computing device is capable of manipulating or transforming signals that are typically represented as physical electronic, electrical, or magnetic quantities within the memories, registers, or other information storage, transmission, or display devices of the special purpose computer or similar special purpose electronic computing device.
[0092]
[0105] The terms "and" and "or" as used herein may include a variety of meanings that are expected to depend, at least in part, on the context in which such terms are used. Generally, when "or" is used to associate a list, such as A, B, or C, it is intended to mean A, B, and C, which are used herein in an inclusive sense, as well as A, B, or C, which are used herein in an exclusive sense. Additionally, as used herein, the term "one or more" may be used to refer to any feature, structure, or characteristic in the singular, or may be used to refer to any combination of features, structures, or characteristics. However, it should be noted that this is merely an illustrative example, and claimed subject matter is not limited to this example. Furthermore, the term "at least one of," when used to associate a list, such as A, B, or C, may be interpreted to mean any combination of A, B, and / or C, such as A, AB, AA, AAB, AABBCCC, etc.
[0093]
[0106] While several embodiments have been described, various modifications, alternative configurations, and equivalents may be used without departing from the scope of the present disclosure. For example, the above elements may merely be components of a larger system in which other rules may take precedence over or otherwise modify the application of the various embodiments. Also, some steps may be taken before, during, or after the above elements are considered. Therefore, the above description does not limit the scope of the present disclosure.
[0094]
[0107] In view of this description, embodiments may include different combinations of features. Example implementations are described in the following numbered clauses.
[0095] Clause 1. A method for facilitating pointing of a mobile device to a satellite of a satellite constellation for satellite-based data communications, the method comprising: obtaining historical orbital data indicative of the orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time; estimating, for each satellite in the set of satellites, a set of orbital parameter values by fitting an orbital model to the historical data for the respective satellite, wherein at least one orbital parameter value among the set of orbital values is common across a group of satellites in the set of satellites; and sending assistance data to at least one mobile device indicative of the respective sets of orbital parameter values for all satellites in the set of satellites.
[0096] Clause 2. The method of clause 1, wherein fitting a set of orbital parameter values for each satellite includes estimating a preliminary set of orbital parameter values in a first operation that fits the orbital model to a first portion of the historical data spanning a first portion of the time period, and using the preliminary set of orbital parameter values as seed values in a second operation that fits the orbital model to a second portion of the historical data spanning at least the first portion of the time period.
[0097] Clause 3. The method of clause 2, wherein the value of at least one orbital parameter common across the group of satellites is determined by a second operation of fitting an orbital model to a second portion of the historical data.
[0098] Clause 4. The method of clause 2 or 3, wherein the historical data spanning a first portion of the time period includes data spanning one or more steering events for each satellite in the set of satellites.
[0099] Clause 5. The method of any one of clauses 1 to 4, wherein the group of satellites comprises satellites in a common orbital plane, satellites in a common orbital shell, or all satellites of a satellite constellation, or a combination thereof.
[0100] Clause 6. The method of any one of clauses 1 to 5, wherein the orbital model comprises a Keplerian model and the set of orbital parameter values comprises a square root of the semimajor axis, an eccentricity, a mean anomaly, an inclination, a right ascension of the ascending node (RAAN), a RAAN ratio, or an argument of perigee, or a combination thereof.
[0101] Clause 7. The method of any one of clauses 1 to 6, wherein the orbital model includes a near-equatorial model and the set of orbital parameter values includes a semi-major axis, a component of an eccentricity vector in a near-equatorial reference frame, a component of an ascending node vector in a near-equatorial reference frame, or a mean longitude, or a combination thereof.
[0102] Clause 8. The method of any one of clauses 1 to 7, wherein obtaining historical orbital data includes uniformly sampling archived two-line orbital element (TLE) data of the set of satellites for the time period.
[0103] Clause 9. A device for facilitating pointing of a mobile device to a satellite of a satellite constellation for satellite-based data communications, the device comprising: a transceiver; a memory; and one or more processors communicatively coupled to the transceiver and the memory, the one or more processors configured to: obtain historical orbital data indicative of orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time; estimate, for each satellite in the set of satellites, a set of orbital parameter values by fitting an orbital model to the historical data for the respective satellite, wherein at least one orbital parameter value among the set of orbital values is common across a group of satellites in the set of satellites; and send assistance data indicative of the respective sets of orbital parameter values for all satellites in the set of satellites to the at least one mobile device.
[0104] Clause 10. The device of clause 9, wherein the device comprises a mobile device or a computer server.
[0105] Clause 11. The device of clause 9 or 10, wherein the one or more processors are configured to estimate a preliminary set of orbital parameter values in a first operation of fitting an orbital model to a first portion of the historical data spanning a first portion of the time period to fit a set of orbital parameter values for each satellite, and to use the preliminary set of orbital parameter values as seed values in a second operation of fitting the orbital model to a second portion of the historical data spanning at least the first portion of the time period.
[0106] Clause 12. The device of clause 11, wherein the at least one orbital parameter value common across the group of satellites is determined by a second operation that fits an orbital model to a second portion of the historical data.
[0107] Clause 13. A device as described in clause 11 or 12, wherein the one or more processors are configured to obtain data spanning one or more steering events for each satellite in the set of satellites to obtain historical data spanning a first portion of a period of time.
[0108] Clause 14. A device according to any one of clauses 9 to 13, wherein the group of satellites comprises satellites in a common orbital plane, satellites in a common orbital shell, or all satellites of a satellite constellation, or a combination thereof.
[0109] Clause 15. The device of any one of clauses 9 to 14, wherein the orbital model includes a Keplerian model and the set of orbital parameter values includes square root of semimajor axis, eccentricity, mean anomaly, inclination, right ascension of ascending node (RAAN), RAAN ratio, or argument of perigee, or a combination thereof.
[0110] Clause 16. The device of any one of clauses 9 to 15, wherein the orbital model includes a near-equatorial model and the set of orbital parameter values includes a semi-major axis, a component of an eccentricity vector in a near-equatorial reference frame, a component of an ascending node vector in a near-equatorial reference frame, or a mean longitude, or a combination thereof.
[0111] Clause 17. A device as described in any one of clauses 9 to 16, wherein the one or more processors are configured to uniformly sample archived two-line orbital element (TLE) data of a set of satellites for a period of time to obtain historical orbit data.
[0112] Clause 18. An apparatus for facilitating pointing of a mobile device to a satellite of a satellite constellation for satellite-based data communications, the apparatus comprising: means for obtaining historical orbital data indicative of the orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time; means for estimating, for each satellite in the set of satellites, a set of orbital parameter values by fitting an orbital model to the historical data for the respective satellite, wherein at least one orbital parameter value among the set of orbital values is common across a group of satellites in the set of satellites; and means for sending, to at least one mobile device, assistance data indicative of the respective sets of orbital parameter values for all satellites in the set of satellites.
[0113] Clause 19. The apparatus of clause 18, wherein the means for fitting a set of orbital parameter values for each satellite includes means for estimating a preliminary set of orbital parameter values in a first operation of fitting the orbital model to a first portion of the historical data spanning a first portion of the time period, and means for using the preliminary set of orbital parameter values as seed values in a second operation of fitting the orbital model to a second portion of the historical data spanning at least the first portion of the time period.
[0114] Clause 20. The apparatus of clause 19, wherein the value of at least one orbital parameter common across the group of satellites is determined by a second operation of fitting an orbital model to a second portion of the historical data.
[0115] Clause 21. The apparatus of clause 19 or 20, wherein the means for obtaining historical data spanning a first portion of the time period includes means for obtaining data spanning one or more steering events for each satellite in the set of satellites.
[0116] Clause 22. Apparatus according to any one of clauses 18 to 21, wherein the group of satellites comprises satellites in a common orbital plane, satellites in a common orbital shell, or all satellites of a satellite constellation, or a combination thereof.
[0117] Clause 23. The apparatus of any one of clauses 18 to 22, wherein the orbital model comprises a Keplerian model and the set of orbital parameter values comprises square root of semimajor axis, eccentricity, mean anomaly, inclination, right ascension of ascending node (RAAN), RAAN ratio, or argument of perigee, or a combination thereof.
[0118] Clause 24. The apparatus of any one of clauses 18 to 23, wherein the orbital model includes a near-equatorial model and the set of orbital parameter values includes a semi-major axis, a component of an eccentricity vector in a near-equatorial reference frame, a component of an ascending node vector in a near-equatorial reference frame, or a mean longitude, or a combination thereof.
[0119] Clause 25. The apparatus of any one of clauses 18 to 24, wherein the means for obtaining historical orbital data comprises means for uniformly sampling archived two-line orbital element (TLE) data of the set of satellites for a period of time.
[0120] Clause 26. A non-transitory computer-readable medium storing instructions for facilitating pointing of a mobile device to a satellite of a satellite constellation for satellite-based data communications, the instructions including code for: obtaining historical orbital data indicative of orbital motion of a set of satellites including at least a subset of the satellites of the satellite constellation over a period of time; estimating, for each satellite in the set of satellites, a set of orbital parameter values, wherein at least one orbital parameter value among the set of orbital values is common across a group of satellites in the set of satellites, by fitting an orbital model to the historical data for the respective satellite; and sending, to the at least one mobile device, assistance data indicative of the respective sets of orbital parameter values for all satellites in the set of satellites.
[0121] Clause 27. The computer-readable medium of Clause 26, wherein the code for fitting a set of orbital parameter values for each satellite includes: code for estimating a preliminary set of orbital parameter values in a first operation that fits the orbital model to a first portion of the historical data spanning a first portion of the time period; and code for using the preliminary set of orbital parameter values as seed values in a second operation that fits the orbital model to a second portion of the historical data spanning at least the first portion of the time period.
[0122] Clause 28. The computer-readable medium of clause 27, wherein the at least one orbital parameter value common across the group of satellites is determined by a second operation that fits an orbital model to a second portion of the historical data.
[0123] Clause 29. The computer-readable medium of clause 27 or 28, wherein the code for obtaining historical data spanning a first portion of a time period includes code for obtaining data spanning one or more steering events for each satellite in the set of satellites.
[0124] Clause 30. The computer-readable medium of any one of clauses 26 to 29, wherein the code for obtaining historical orbit data comprises code for uniformly sampling archived two-line orbital element (TLE) data of a set of satellites for a period of time.
Claims
1. A method for facilitating the orientation of mobile devices to satellites of a satellite constellation for satellite-based data communications, Obtaining hierarchical orbit data showing the orbital motion of a set of satellites, including at least a subset of satellites in a satellite constellation, over a certain period of time, For each satellite in the set of satellites, the orbital model is fitted to the historical data of each satellite to estimate a set of orbital parameter values such that at least one of the set of orbital parameter values is common across the group of satellites in the set of satellites. Sending support data indicating each set of orbital parameter values for all satellites in the set of satellites to at least one mobile device. This includes fitting the set of orbital parameter values for each satellite, In a first calculation that fits the orbital model to a first portion of the historical data covering a first portion of the period, a preliminary set of orbital parameter values is estimated. A method comprising using a preliminary set of orbital parameter values as seed values in a second operation for fitting the orbital model to a second portion of the historical data extending over at least the first portion of the period.
2. The method according to claim 1, wherein at least one orbital parameter value common across the group of satellites is determined by a second operation that fits the orbital model to the second portion of the historical data.
3. The method according to claim 1, wherein the historical data relating to the first portion of the period comprises data relating to one or more steering events for each satellite in the set of satellites.
4. The aforementioned group of satellites, Satellites in the common orbital plane, Satellites within a common orbital shell, or All satellites of the aforementioned satellite constellation, or The method according to claim 1, including combinations thereof.
5. The orbital model includes the Kepler model, and the set of orbital parameter values is The square root of the semi-major axis, eccentricity, average periapsis angle, inclination angle, Right ascension of the ascending node (RAN), RAN rate, or Argument perigee, or The method according to claim 1, including combinations thereof.
6. The orbital model includes a near-equatorial model, and the set of orbital parameter values is semi-major axis, Components of the eccentricity vector in the near-equatorial reference frame, The components of the ascending node vector within the aforementioned near-equatorial reference frame, or Average longitude, or The method according to claim 1, including combinations thereof.
7. The method according to claim 1, wherein obtaining the historical orbit data includes uniformly sampling archived two-row orbital element (TLE) data of the set of satellites for the period.
8. A device for facilitating the orientation of mobile devices to satellites in a satellite constellation for satellite-based data communications, Transmitter and receiver, Memory and One or more processors, which are communicably coupled to the transceiver and the memory, By obtaining historical orbital data showing the orbital motion of a set of satellites, including at least a subset of the satellites in the satellite constellation, over a certain period of time, For each satellite in the set of satellites, by fitting the orbital model to the historical data of each satellite, a set of orbital parameter values is estimated in which at least one of the set of orbital values is common across the group of satellites in the set of satellites. A processor configured to send to at least one mobile device support data indicating each set of orbital parameter values for all satellites in the set of satellites, The system includes, and the one or more processors are configured to fit the set of orbital parameter values for each satellite. In a first calculation that fits the orbital model to a first portion of the historical data covering a first portion of the period, a preliminary set of orbital parameter values is estimated. A device configured to use a preliminary set of orbital parameter values as seed values in a second operation for fitting the orbital model to a second portion of the historical data extending over at least the first portion of the period.
9. The device according to claim 8, wherein the device includes the mobile device or computer server.
10. The device according to claim 8, wherein at least one orbital parameter value common across the group of satellites is determined by a second operation that fits the orbital model to the second portion of the historical data.
11. The device according to claim 8, wherein the one or more processors are configured to acquire data relating to one or more steering events for each satellite in the set of satellites in order to acquire the historical data relating to the first portion of the period.
12. The aforementioned group of satellites, Satellites in the common orbital plane, Satellites within a common orbital shell, or All satellites of the aforementioned satellite constellation, or The device according to claim 8, including a combination thereof.
13. The orbital model includes the Kepler model, and the set of orbital parameter values is The square root of the semi-major axis, eccentricity, average periapsis angle, inclination angle, Right ascension of the ascending node (RAN), RAN rate, or Argument perigee, or combinations of those, or The orbital model includes a near-equatorial model, and the set of orbital parameter values is semi-major axis, Components of the eccentricity vector in the near-equatorial reference frame, The components of the ascending node vector within the aforementioned near-equatorial reference frame, or Average longitude, or The device according to claim 8, including a combination thereof.
14. The device according to claim 8, wherein one or more processors are configured to uniformly sample archived two-row orbital element (TLE) data of the set of satellites for the period in order to acquire the historical orbital data.
15. A non-temporary computer-readable medium for storing instructions for facilitating the orientation of a mobile device to a satellite of a satellite constellation for satellite-based data communications, wherein the instructions are: By obtaining historical orbital data showing the orbital motion of a set of satellites, including at least a subset of the satellites in the satellite constellation, over a certain period of time, For each satellite in the set of satellites, by fitting the orbital model to the historical data of each satellite, a set of orbital parameter values is estimated in which at least one of the set of orbital values is common across the group of satellites in the set of satellites. The code includes sending to at least one mobile device support data indicating each set of orbital parameter values for all satellites in the set of satellites, The code for fitting the set of orbital parameter values for each satellite is, In a first calculation that fits the orbital model to a first portion of the historical data covering a first portion of the period, a preliminary set of orbital parameter values is estimated. A non-temporary computer-readable medium including code, which uses a preliminary set of orbital parameter values as seed values in a second operation that fits the orbital model to a second portion of the historical data extending over at least the first portion of the period.