Chapter 3: Satellite Launch and In-Orbit Operations

Example 3.1, page no-72

In [1]:
import math
#Variable Declaration
Az=85      # Azimuth angle of injection point
l=5.2      # latitude of launch site


#Calculation
cosi=math.sin(Az*math.pi/180)*math.cos(l*math.pi/180)
i=math.acos(cosi)
i=i*180.0/math.pi


#Result
print("Inclination angle attained, i=%.1f°"%i)
Inclination angle attained, i=7.2°

Example 3.2, page no-73

In [2]:
import math
#Variable Declaration
delta_i=7     #orbital plane inclination
V=3000        #velocity of satellite in circularized orbit


#Calculation
vp=2*V*math.sin(delta_i*math.pi/(2*180))


#Result
print("Velocity thrust to make the inclination 0° = %.0f m/s"%vp)
Velocity thrust to make the inclination 0° = 366 m/s

Example 3.3, page no-73

In [3]:
import math

#Variable Declaration
mu=39.8*10**13          # Nm^2/kg
P=7000.0*10**3          # Perigee distance in m
e=0.69                  # eccentricity of eliptical orbit
w=60.0/2                # angle made by line joing centre of earth and perigee with the line of nodes


#Calculation
k=(e/math.sqrt(1+e))
k=math.floor(k*100)/100
v=2*(math.sqrt(mu/P))*k*math.sin(w*math.pi/180.0)


#Result
print("The velocity thrust required to rotate the perigee point\n by desired amount is given by, v=%.1f m/s = %.3fkm/s"%(v,v/1000.0))
The velocity thrust required to rotate the perigee point
 by desired amount is given by, v=3996.4 m/s = 3.996km/s

Example 3.4, page no-74

In [4]:
import math
#Variable Declaration
A=15000*10**3            #Original apogee distance
A1=25000*10**3           # Raised opogee distance
P=7000*10**3             # Perigee Distance
mu=39.8*10**13           #Nm**2/kg


#Calculation
A_d=A1-A
v=math.sqrt((2*mu/P)-(2*mu/(A+P)))
del_v=A_d*mu/(v*(A+P)**2)


#Result
print("required Thrust velocity Delta_v = %.1f m/s"%del_v)
required Thrust velocity Delta_v = 933.9 m/s

Example 3.5, page no-75

In [5]:
import math
#Variable Declaration
A=15000.0*10**3            # Original apogee distance
A1=7000.0*10**3            # Raised opogee distance
P=7000.0*10**3             # Perigee Distance
mu=39.8*10**13             # Nm^2/kg


#Calculation
A_d=A-A1
v=math.sqrt((2*mu/P)-(2*mu/(A+P)))
del_v=A_d*mu/(v*(A+P)**2)

#Result
print("required Thrust velocity Delta_v = %.1f m/s"%del_v)
required Thrust velocity Delta_v = 747.1 m/s

Example 3.6, page no-76

In [6]:
#Variable Declaration
A=15000.0*10**3            # Original apogee distance
A1=16000.0*10**3           # Raised opogee distance
P=7000.0*10**3             # Perigee Distance
mu=39.8*10**13           # Nm**2/kg


#Calculation
A_d=A1-A
v=math.sqrt((2*mu/P)-(2*mu/(A+P)))
v=v*P/A
del_v=A_d*mu/(v*(A+P)**2)

#Result
print("required Thrust velocity Delta_v = %.1f m/s"%del_v)
required Thrust velocity Delta_v = 200.1 m/s

Example 3.7, page no-77

In [7]:
import math
#Variable Declaration
R=6378.0*10**3              # Radius of earth
mu=39.8*10**13              # Nm**2/kg
r1=500.0*10**3              # original orbit from earths surface
r2=800.0*10**3              # orbit to be raised to thisdistance


#Calculation
R1=R+r1
R2=R+r2
delta_v=math.sqrt(2*mu*R2/(R1*(R1+R2)))-math.sqrt(mu/R1)
delta_v_dash=math.sqrt(mu/R2)-math.sqrt(2*mu*R1/(R2*(R1+R2)))


#Result
print("Two thrusts to be applied are,\n Delta_v = %.2f m/s \n Delta_v_dash = %.2f m/s"%(delta_v,delta_v_dash))
Two thrusts to be applied are,
 Delta_v = 80.75 m/s 
 Delta_v_dash = 79.89 m/s

Example 3.8, page no-97

In [8]:
import math
#Variable Declaration
H=36000.0       # Height of geostationary satellite from the surface of earth
R=6370.0        # Radius of earth in km


#Calculation
k=math.acos(R/(R+H))
#k=k*180/%pi
k=math.sin(k)
k=math.ceil(k*1000)/1000
d=2*(H+R)*k


#Result
print("Maximum line-of-sight distance is %.2f km"%d)
Maximum line-of-sight distance is 83807.86 km

Example 3.9, page no-98

In [9]:
import math
#Variable Declaration
H=36000.0       # Height of geostationary satellite from the surface of earth
R=6370.0        # Radius of earth in km
theta=20.0      # angular separation between two satellites


#Calculation
D=(H+R)
k=math.ceil(math.cos(theta*math.pi/180.0)*100)/100
d=math.sqrt(2*D**2*(1-k))


#Result
print("The line-of-sight distance is %.4f km"%d)
The line-of-sight distance is 14677.3985 km

Example 3.10, page no-98

In [10]:
import math

#Variable Declaration

theta=37+74        # angular separation between two satellites
D=42164.0          # circular equilateral geostationary orbit in km


#Calculation
k=math.cos(math.pi*theta/180.0)
#printf("%f\n",k)
k=-0.357952
d=math.sqrt(2*D**2*(1-k))


#Result
print("Inter-satellite distance is %.2f km"%d)
Inter-satellite distance is 69486.27 km

Example 3.11, page no-99

In [11]:
import math

theta_l=30.0          # earth station's location 30°W longitude
theta_s=50.0          # satellite's location 50°W longitude
theta_L=60.0          # earth station's location 60°N latitude
r=42164.0             # orbital radius of the satellite in km
R=6378.0              # Earth's radius in km

A_dash=math.atan((math.tan(math.pi*(theta_s-theta_l)/180.0))/math.sin(math.pi*60/180.0))
A_dash=A_dash*180/math.pi
A=180+A_dash         #Azimuth angle

x=(180/math.pi)*math.acos(math.cos(math.pi*(theta_s-theta_l)/180.0)*math.cos(math.pi*theta_L/180))
y=r-math.ceil(R*(math.cos(math.pi*(theta_s-theta_l)/180.0)*math.cos(math.pi*theta_L/180)))
z=R*math.sin(math.pi*x/180)
E=(math.atan(y/z)*180/math.pi)-x
print("Azimuth  angle =%.1f°\n Elevation angle =%.1f°"%(A,E))
Azimuth  angle =202.8°
 Elevation angle =19.8°

Example 3.12, page no-100

In [12]:
import math
#Variable Declaration
theta_l=60.0           #earth station's location 60°W longitude
theta_s=105.0          #satellite's location 105°W longitude
theta_L=30.0           #earth station's location 30°N latitude

theta_l1=90.0           #earth station's location 90°W longitude
theta_s1=105.0          #satellite's location 105°W longitude
theta_L1=45.0           #earth station's location 45°N latitude

c=3*10**8             # speed of light
r=42164.0             # orbital radius of the satellite in km
R=6378.0              # Earth's radius in km


#Calculation

x=(180/math.pi)*math.acos(math.cos(math.pi*(theta_s-theta_l)/180)*math.cos(math.pi*theta_L/180))
y=r-math.ceil(R*(math.cos(math.pi*(theta_s-theta_l)/180)*math.cos(math.pi*theta_L/180)))
z=R*math.sin(math.pi*x/180)
E=(math.atan(y/z)*180/math.pi)-x

x1=(180/math.pi)*math.acos(math.cos(math.pi*(theta_s1-theta_l1)/180)*math.cos(math.pi*theta_L1/180))
y1=r-math.ceil(R*(math.cos(math.pi*(theta_s1-theta_l1)/180)*math.cos(math.pi*theta_L1/180)))
z1=R*math.sin(math.pi*x1/180)
E1=(math.atan(y1/z1)*180/math.pi)-x1
E1=math.floor(E1)

#calculation of slant range dx
k=(R/r)*math.cos(math.pi*E/180)
k=(180/math.pi)*math.asin(k)
k=k+E
k=math.sin(math.pi*k/180)
k=math.ceil(k*1000)/1000
#k=k+E
#k=sin(k)
dx=(R)**2+(r)**2-(2*r*R*k)
dx=math.sqrt(dx)


#calculation of slant range dy
k1=(R/r)*math.cos(math.pi*E1/180)
k1=(180/math.pi)*math.asin(k1)
k1=k1+E1
k1=math.floor(k1)
k1=math.sin(math.pi*k1/180)
k1=math.ceil(k1*1000)/1000
dy=(R)**2+(r)**2-(2*r*R*k1)
dy=math.sqrt(dy)

tr=dy+dx
delay=tr*10**6/c
x=50
td=delay+x


#Result
print("Elevation angle, Ex =%.1f°"%E)
print("\n Elevation angle, Ey =%.1f°"%math.floor(E1))
print("\n Slant range dx of the earth station X is dx=%.2fkm"%dx)
print("\n Slant range dy of the earth station Y is dy=%.1fkm"%dy)
print("\n Therefore, total range to be covered is %.2fkm"%tr)
print("\n propagation delay=%.2fms"%delay)
print("\n\n Time required too transmit 500 kbs of information at \n a transmisssion speed of 10Mbps is given by 500000/10^7=%.0fms"%(500000000.0/10**7))
print("\n\n Total Delay= %.2fms"%td)
Elevation angle, Ex =30.3°

 Elevation angle, Ey =36.0°

 Slant range dx of the earth station X is dx=38584.76km

 Slant range dy of the earth station Y is dy=38100.8km

 Therefore, total range to be covered is 76685.57km

 propagation delay=255.62ms


 Time required too transmit 500 kbs of information at 
 a transmisssion speed of 10Mbps is given by 500000/10^7=50ms


 Total Delay= 305.62ms

Example 3.13, page no-102

In [13]:
import math
#Variable Declaration
da=38000.0                # slant range of satellite A
db=36000.0                # slant range of satellite B
beeta=60.0                # difference between longitudes of two satellites
R=42164.0                 # radius of the orbit of satellites


#Calculation
theta=(da**2+db**2-2*(R**2)*(1-math.cos(math.pi*beeta/180)))/(2*da*db)
theta=(180/math.pi)*math.acos(theta)
d=math.sqrt(2*(R**2)*(1-math.cos(math.pi*beeta/180)))


#Result
print("Angular spacing between two satellites viewed by earth station is,\n theta= %.1f°"%theta)
print("\nInter-satellite distance , d=%.0fkm"%d)
Angular spacing between two satellites viewed by earth station is,
 theta= 69.4°

Inter-satellite distance , d=42164km

Example 3.14, page no-107

In [15]:
import math
#Variable Declaration
r=42164.0             # orbital radius of the satellite in km
R=6378.0              # Earth's radius in km

#refer to Figure 3.53

#Calculation

#for E=0°
alfa=math.asin(R/r)*(180/math.pi)
alfa=math.floor(alfa*10)/10
theta=90-alfa
#in the right angle triangle OAC,
k=math.sin(math.pi*alfa/180)
k=math.floor(k*1000)/1000
oc=R*k
oc=math.ceil(oc*10)/10
A=2*math.pi*R*(R-oc)


#for E=10°
E=10
alfa1=math.asin((R/r)*math.cos(math.pi*E/180))*(180/math.pi)
#alfa1=ceil(alfa1*100)/100
theta1=90-alfa1-E
#in the right angle triangle OAC,
k1=math.sin(math.pi*(alfa1+E)/180)
k1=math.floor(k1*1000)/1000
oc1=R*k1
oc1=math.floor(oc1*10)/10
A1=2*math.pi*R*(R-oc1)


#Result
print("for E=0°,\n covered surface area is %.1f km^2"%A)
print("\n\n for E=10°,\n covered surface area is %.1f km^2"%A1)
for E=0°,
 covered surface area is 216997546.7 km^2


 for E=10°,
 covered surface area is 174314563.3 km^2

Example 3.15, page no-108

In [16]:
#variable declaration
theta=30               #satellite inclination to the equitorial plan


print("Extreme Northern latitude covered = %.0f° N"%theta)
print("\n Extreme Southern latitude covered = %.0f° S"%theta)
print("\n\n In fact, the ground track would sweep\n all latitudes between %d°N and %d°S"%(theta,theta))
Extreme Northern latitude covered = 30° N

 Extreme Southern latitude covered = 30° S


 In fact, the ground track would sweep
 all latitudes between 30°N and 30°S