Orbiting satellite in UCM
This activity belongs to the GeoGebra book The Domain of the Time.
So far, we have assumed that the gravitational acceleration g is measured at Earth's surface, with a value of 9.81 m/s². However, a satellite M orbiting Earth experiences a lower gravitational acceleration.
Recall that the magnitude of the gravitational acceleration g, caused by Earth's mass, decreases with the square of the distance d, which is no longer the same as Earth's radius r:
where G is the universal gravitational constant and mT is the mass of Earth.
The following table shows the values of g, v, and the orbital period for a satellite in circular orbit at a given altitude (note that altitude 0 is theoretical for comparison):
Observing the table, it's clear that faithfully representing a satellite's motion around Earth graphically is challenging. If we use real measurements without scaling, it would take too long to depict a complete circular orbit (over an hour in reality). Waiting that long for visualization isn't practical.
In this simulation, you can observe the Uniform Circular Motion (UCM) of an artificial satellite (M1) around Earth in a low polar orbit (at 1700 km altitude).
For this animation, Earth's rotation is sped up to complete a full revolution in 23.93 seconds, representing one full day on Earth (23.93 hours in reality). This means the Earth rotates 3600 times faster than in reality. To maintain proportionality with the satellite periods, we've calculated each satellite's real orbital period (based on actual distances and Earth's mass) and divided it by 3600 as well. The satellite, with a real period of about 2 hours (approximately 12 orbits per day), completes a full orbit in about 2 seconds in the animation.
Additionally, in the 3D view, the satellite's distance from Earth's center, and therefore its orbit, is scaled proportionally to Earth's radius.
SCRIPT FOR SLIDER anima
# Calculate the elapsed seconds dt; add one second if t1(1) < tt
SetValue(tt, t1(1))
SetValue(t1, First(GetTime(), 3))
SetValue(dt, (t1(1) < tt) + (t1(1) − tt)/1000)
# Record the orbit time and the number of completed orbits
SetValue(M1', Rotate(M1, ω1 dt, axis1))
SetValue(reg, If(z(M1) < 0 ∧ z(M1') ≥ 0, Append(t, reg), reg))
SetValue(orbits, If(z(M1) < 0 ∧ z(M1') ≥ 0, orbits + 1, orbits))
# Rotate the Earth and move M1
SetValue(f, f + ω dt)
SetValue(M1, M1')
Author of the activity and GeoGebra construction: Rafael Losada.