# Chapter 4 – Satellites (Earth Orbit)

**Posted:**March 23, 2013

**Filed under:**Satellites, ZX Spectrum Astronomy |

**Tags:**Apogee, Astronomy, Earth Orbit, Kepler, Laws of Planetary Motion, Maurice Gavin, Perigee, Programming, Satellites, Sinclair Basic, ZX Spectrum Astronomy Leave a comment

Launch your own satellites

Earth Orbit, put a satellite into orbit about the Earth

Satellite Orbit, how to put a satellite into orbit around any planet.

## Earth Orbit

This is a modelling program which enables you to place a satellite in orbit about the Earth. There are two parameters to INPUT, the initial height of the satellite above the surface of the Earth and the initial velocity, and so there are literally thousands of permutations to try, no two being precisely identical. The orbit is PLOTted in real time and the screen presentation is automatically rescaled to contain the orbit on the screen.

To ensure that the satellite is of maximum size as it traces around the Earth, only half the orbit is PLOTted — the second half is a precise mirror image of the first half and no particular advantage is gained by completing the orbit. Once the half-orbit is completed, the full orbital period in minutes, hours and days is displayed at the top right of the screen. Throughout the PLOTting, at the bottom left is the ‘elapse’ time in minutes and the relative x and y coordinate positions as PLOTted. Bottom right shows the initial height and velocity as INPUT.

Of course successful insertion into orbit is not automatically achieved — as space scientists well know. A balance between the initial height and velocity must be made — particularly so for a neat circular orbit.

There is a further problem to consider. Although the satellite will happily orbit the centre of the Earth (this is the centre of the Earth’s gravitational field) the Earth’s surface sometimes gets in the way and the satellite crashes. The Spectrum BEEPs a polite warning and awaits further INPUT instructions.

There is a second possibility of failure — when you have so high an initial velocity that the satellite is lost to outer space. This particular program does not recognise this condition and will keep rescaling the display, via line 560 (if… YY> 175),each time the satellite reaches the top of the screen, constantly hoping that the satellite will return towards Earth. In this case you must BREAK the program and reRUN it. An option to COPY the screen via the ZX printer is included for your successful orbits.

*The Kepler plot*

This program PLOTs the orbits according to Kepler’s Laws of Planetary Motion (which applies to any lesser body orbiting a larger body), with an elliptical trace and the centre of the Earth as one focus. The satellite speeds up as it gets close to Earth to compensate for the stronger gravitational field experienced. With the following INPUTs, it is possible to test that the program gives reasonably accurate results and is a fair simulation of a body orbiting Earth.

1) Initial height 200 miles

Initial velocity 286 miles/minute

= Orbital period 88 minutes

This is the minimum period for the lowest satellite, like Sputnik I.

2) Initial height 240,250 miles

Initial velocity 37 miles/minute

= Orbital period 27.37 days (mean sidereal period)

This matches our natural satellite — the Moon.

*Test examples*

The above INPUTS represent neat circular orbits. More often than not, however, an ellipse is formed. If the orbit PLOT touches the lefthand side of the screen the display is not rescaled but left to continue the PLOTting as a mirror image back towards right again to maintain maximum image size.

The screen COPYs (Figures 4.1, 4.2 and 4.3) show typical results from the program.

**Figure 4.1**

This orbit simulates our natural satellite, the Moon.

**Figure 4.2**

Typical orbit plotted from apogee (point adjacent + x sign).

**Figure 4.3**

Typical orbit started adjacent to globe (perigee). The orbit is mirrored by left hand side of display, plotting towards the right (apogee).

*Mission control*

As an experiment, try ‘designing’ orbits for the Russian and American space programs in long range communications. The West has produced geostationary satellites placed at just sufficient distance from the Earth so as to have a 24-hour orbital period and to remain fixed above the equator at a particular longitude. This would appear to be the ideal solution and was first proposed by Arthur C. Clarke in the 1940s in an article in *Wireless World*.

The Russian approach has been, or was in the 1970s, to send craft into highly elliptical orbits but again of 24-hour orbital periods. As has been demonstrated, such satellites would be constantly changing their velocity according to their current distance from Earth and would remain moderately stationary (so as not to need a tracked aerial) for only a few hours per day, whilst at the point of apogee (the most remote part of the orbit from Earth). Many permutations can be tried on your Spectrum.

**9 REM ***********************
10 REM Earth Orbit
11 REM ***********************
15 BORDER 0: PAPER 0: INK 9: CLS
20 LET se=7912/2: LET hw=32.12
40 LET dn=.68181818: LET z=1
70 LET g=hw*dn*se*se: LET t=0
80 INPUT “Height above Earth in miles”,eh
90 INPUT “Velocity in miles/min”,sp: IF sp>999 THEN GO TO 90
100 LET tm=2/z: LET h=tm
120 LET w=sp: LET x=eh+se
140 LET y=0: LET v=0
160 FOR n=0 TO 255 STEP 2
170 PLOT INK 5;140,n-100
180 PLOT INK 5;n,40: NEXT n
190 PRINT AT 16,0;”-x”;AT 16,30;”+x”;AT 3,16;”+y”
200 PRINT AT 19,24;”start”;TAB 20;”hgt=”;eh;”ml”;TAB 20;”vel=”;INT w;”ml/mn”
210 CIRCLE INK 4;140,40,30*z
220 LET r=x: LET s=y
230 LET h4=h/4
240 LET x=x+h4*v: LET y=y+h4*w
260 GO SUB 440
270 LET x=r: LET y=s
280 LET h2=h/2
290 LET v=v+h2*b: LET w=w+h2*c
310 GO SUB 500
320 FOR t=0 TO 4e6 STEP tm
330 LET x=x+h*v: LET y=y+h*w
350 GO SUB 440
360 IF d>se THEN GO TO 390
370 FOR n=45 TO -30 STEP -15: BEEP .5,n-30: NEXT n: PRINT INK 3;AT 0,0;”Velocity too low – CRASH”‘”in “;t;” min”
380 GO TO 610
381 REM ***********************
390 LET v=v+h*b: LET w=w+h*c
410 GO SUB 500: NEXT t
440 LET e=x*x+y*y
450 LET d=SQR e: LET a=-g/e
470 LET b=a*x/d: LET c=a*y/d
490 RETURN
500 PRINT AT 19,2;”time=”;t;” min ”
510 PRINT “x axis=”;INT x;” mls ”
517 REM ***********************
520 PRINT “y axis=”;INT y;” mls ”
521 REM ***********************
530 LET xx=x/125*z+140
540 LET yy=y/125*z+40
550 IF x<0 AND y255 OR xx175 THEN LET z=z/2: CLS : PRINT INK 3;”Rescale”: GO TO 100
569 REM ***********************
570 PLOT BRIGHT 1; INK 6;xx,yy
571 REM ***********************
580 RETURN
600 PRINT INK 6;AT 0,0;”Half orbit plot- period=”;t*2;”mn”;AT 1,23;”=”;INT (t/.3)/100;”hr”;AT 2,23;”=”;INT (t/.3/24)/100;”days”
609 REM ***********************
610 PRINT #0; INK 5;”Press ‘C’=COPY ‘N’=Next orbit”: PAUSE 0
620 IF INKEY$=”c” OR INKEY$=”C” THEN COPY : INPUT “”: GO TO 610
630 RUN
631 REM ***********************
9990 SAVE “Eorbit” LINE 1**