Tutorial:Ideal Orbits for Communication Satellites
With the additions in Communications networks in 1.2, getting continious communication in any given system is an important factor. While the exact method of execution depends on personal taste there are fairly easy ways to set up a Comm network, even in early career with only 1.25 Parts at max.
This Tutorial will show two sets of Comm Networks around any given body and shine a little light on the math of it and an easy way to do it. This is a pretty theoretical tutorial. There is no way around this, really. You can skip to the results tho.
For simplicity this guide assumes an occlusion of 1 for planets and a target orbit with an eccentricity of 0. With higher or lower settings your results will differ.
- 1 3-Satellite Constellation
- 2 4-Satellite constellation
- 3 N-Satellite Constellation Minimum Altitude
- 4 Stationary orbit
- 5 Distance Management
- 6 I don't feel like doing the math...
- 7 See also
In a 3-Satellite constellation 3 satellites are evenly spaced in a triangle with each one holding a 60° angle towards the other satellites. To work properly they need to be visible to each other; over the horizon. This leads to the question of what altitude is required so the satellites can see each other.
Constellation minimum Altitude
The answer is simple and applies to all bodies. It is one planetary radius or a semi-major axis of the planets diameter, assuming a negligible eccentricity, which should be a given for a commsat constellation.
Why is it one Radius? I have to go into sine/cosine for that a little.
As I said earlier each satellite holds a 60° angle to the others. If you draw a line at mid-angle through each angle to the opposing side where the triangle is touching the circular planet you split the triangle into six smaller triangles with a 30° angle at the satellite, a 60° angle at the planet's center where the lines will cross and a 90° right angle at the horizon point. Thus we now know, that the side adjacent from the 60° angle and opposite from the 30° angle is the planet's radius.
With that we can now apply sine and/or cosine to the problem at hand. Remember here that the sine of an angle is the relation between the opposing (o) and the long side (hypotenuse h) of the triangle while the cosine is relation of the adjacent side (a) to the hypotenuse. Or in math form: sin(x)=o/h cos(x)=a/h The long side hence will also be the distance of the satellite to the center of the planet.
In our case we will use sine and cosine in such form that it will always give us r/h. A scientific Calculator gives us: sin(30)=0.5=1/2 cos(60)=0.5=1/2
This means that for the constellation to work the satellite needs to be twice as far from the center of the planet than its radius. Hence you need to be at an altitude of the radius to be visible.
Yes, it's that simple.
Finding the optimal altitude
Now that we know our minimum altitude we could set up shop there, and it'll work. It's not going to work well, though. For one the satellites will be barely visible to each other, making for a lousy commline. Also the satellites will be rather hard to place as either you need to place them at 60° with some reference or you separate them by launching them all at once and using the orbital period to make sure they have a good separation. I find it easier to use the orbital period, however for example Kerbin's orbital period at 600 km circular altitude is 1h 13m 15s. You could work with that, but it would be rather hard.
So we need a time that is easy to use at a higher altitude. Easy to use here means a time that while a placed satellite in its final orbit will perform 2/3 of that orbit the satellite carrier being parked in a lower orbit with the apoapsis at the target altitude will perform one orbit. Alternatively when coming from a higher orbit the placed satellite might do 1.33 orbits while the carrier makes 1 orbit with its PE at the target altitude.
This requires two steps to work out.
Getting the Period from the semi-major axis
The first step is knowing the period of the minimum orbit at which the satellites will see each other. The period can be calculated from the following formula:
- T: Orbital Period in seconds
- Pi: 3.14159...
- a: semi-major axis of the orbit in meters; in the Previous step we have established this to be the diameter or two times the radius of the planet
- GM: the planets standard gravitational parameter in m³/s²
Inserting the semi-major axis derived from the earlier step will give you a time in seconds, which I recommend to convert to HH:MM:SS for ease of use in the next step.
Getting the altitude through the desired period
Now that we know the minimum time satellites visible to each other take for one orbit we can select a higher time interval, and hence a higher orbit, that will allow us to place the satellites evenly. To make it easy it should be a time interval easily dividable by 3. That limits your options to 1.5 hours with 1 hour transfer, 2 hours with 1.33 hours transfer and every 3 hours with 2/3 of that time for transfer (3 with 2, 6 with 4 and so forth). If you convert that time back to seconds you can use the following formula to get a semi major axis for that period time:
Subtracting the planet's radius will give you the circular orbital altitude to shoot for.
Individually Spacing Satellites
If you don't mind launching each satellite individually. There are several ways to space the satellites, including the Law of Cosines or the distance formula. Instead of looking at the periods of the orbits, you will look at the distance between satellites. When you target one, it will display the distance between them, from which you can manipulate by altering your apoapsis or periapsis for a couple of orbits. Here's how you use the formula:
a2 = b2 + c2 - 2bc * cos(A)
If you have a circular orbit, the formula can be simplified to:
a2 = 2b2 - 2b2 cos(A)
In both of these formulae, A is 120 degrees or 2π/3 radians, and b is the altitude plus the radius of the planet (600km for Kerbin). a is the desired distance between the satellites. The other way to do it is to use the distance formula, but for that you have to use polar coordinates in order to find the points on the circle that we want to find the distance between. Polar coordinates are methods to find the coordinates of points on the edge of a circle. You don't need a polar coordinate plane, but you can instead convert the points using r*cos(θ) and r*sin(θ) for the x and y, respectively, where r is the altitude plus the radius of the planet and θ is 2π/3 radians. The distance formula,
d2 = (x2-x1)2+(y2-y1)2
can then be used on the coordinates that you calculated. I've already implemented it all here in this Desmos graph for convenience.
There are 2 approaches to a 4 satellite constellation. The first, a 4-Satellite equally spaced equatorial constellation has no real benefits over a 3 satellite constellation, when I started though it made things conceptually easier, because instead of working with sine and cosine you work with simple pythagoras. In this constellation the satellites form a perfect square with a minimum side length of the diameter or two times the radius of the planet. Hence it can be divided into four squares with the connecting point at the planet's center and a side length of the radius. And with a²+b²=c² being what it is in such a case the semi-major axis of the target orbit is the radius multiplied by the square root of two with the radius being again subtracted to get the altitude. a=r*2^0.5
To get an optimal altitude from here you proceed just as with 3 satellites, the only difference being that you are looking for periods easily divisible by 4 (1 hour and every even number of hours).
The second method, although far more complex is also the most efficient way to deliver continuous 100% coverage of the entire surface. John E. Draim published a paper in the J. E. DRAIM. "Three- and four-satellite continuous-coverage constellations", Journal of Guidance, Control, and Dynamics, Vol. 8, No. 6 (1985), pp. 725-730. outlining a proof that complete coverage could be achieved with only 4 satellites deployed in a tetrahedron. It produces large swaths of multiple satellite coverage and no areas are ever out of coverage. In general, On pair of satellites moves clockwise, the other 2 counterclockwise, and both pairs drift to the west.
In technical terms, all satellites have an identical semi-major axis sufficient to provide a wide footprint but close enough to not induce signal attenuation, they have an identical eccentricity so their apogee and perigee are identical, and identical inclinations so that each will eventually cover polar regions in addition to equatorial ones, and they are spaced apart by 90 degree intervals in their Argument of the Periapsis (which sets the LAN) to ensure each having a unique 1/4 of the planet "slice" opposite the others, and they have an identical Mean Anomaly at Epoch (all with Epoch of 0 for convenience) with their intervals of 180 degrees (expressed in radians) so spread them out properly in their progress along their orbits. An Illustration of this for Earth orbits is in the picture below:
To apply this to Kerbin, here are the orbital parameters needed, courtesy of Maltesh posts in the KSP forums Scenario: Putting up 4 Satellite Config for Kerbin
|AoP||Argument of Periapsis|
|LAN||Longitude of Ascending Node|
|MAE||Mean Anomaly at Epoch|
Be sure to choose an appropriate antenna. In the case of these orbits and Kerbin, an 8K Omnidirectional Antenna (Relay) appears to be able to keep constant contact with the surface. Be sure to add Relay antennas to each satellite if you are not playing with the additional ground stations, because they will need to relay to each other to reach KSC. Optionally a large antenna satellite in a geostationary orbit above KSC could serve as the central relay point, and would also serve as a relay for comsat pairs with high power relays in highly elliptical polar orbits later in the game.
To adapt these to other planets, all the factors remain the same except for the Semimajor Axis (adjust proportionally). The challenge is, of course, getting all these launched wand getting them into the precise orbits needed. Or else simply editing them into place once you get "close enough".
N-Satellite Constellation Minimum Altitude
In general, the altitude (as measured from the body's centre that any number of satellites need to be at or above is:
This is for circular orbits, where all satellites are evenly spaced. As stated above however, it is not necessary to build a relay network with extra satellites.
Putting comm sats in a stationary orbit is an interesting and challenging choice, however in terms of gameplay it has no benefit. Stationary orbits are great if you have a static directional dish placed on the surface that needs line of sight to a satellite in the very same position in the sky at all time. The antennas in KSP are omnidirectional though, you need not point them. A low orbit is usually an easier choice.
One additional factor that you should be aware of is the distance between the satellites. if their distance is greater than their Range it does not matter if they are in a perfect formation, they won't connect. The distance is easily calculates using the cosine (relation between adjacent side and hypotenuse) of mid angle at the satellite (30° or 45°) and multiplying it with the Semi -Major axis (a). Since this will only give you the distance between the satellite and the horizont point you also need to multiply it by 2. If the following mathematical statement is true the satelites will connect:
- 3 Satellite Constellation: (Satellite A Antenna Rating * Satellite B Antenna Rating)^0.5 >= Cos(30)*a*2
- 4 Satellite Constellation: (Satellite A Antenna Rating * Satellite B Antenna Rating)^0.5 >= Cos(45)*a*2
If your aim is to only create a comm network without nesessarely connecting it to Kerbin, other than for Kerbol or any other body you can always get by with a single HG-5, possibly at the expense of signal strength.
I don't feel like doing the math...
Here is something i prepared earlier. This table will provide you with everything you need to calculate this yourself along with the precalculated results. I suggest you try it yourself though. That's when you learn.