  We study the optimal control of an arbitrarily large constellation of small
satellites operating in low Earth orbit. Simulating the lack of on-board
propulsion, we limit our actuation to the use of differential drag maneuvers to
make in-plane changes to the satellite orbits. We propose an efficient method
to separate a cluster of satellites into a desired constellation shape while
respecting actuation constraints and maximizing the operational lifetime of the
constellation. By posing the problem as a linear program, we solve for the
optimal drag commands for each of the satellites on a daily basis with a
shrinking-horizon model predictive control approach. We then apply this control
strategy in a nonlinear orbital dynamics simulation with a simple, varying
atmospheric density model. We demonstrate the ability to control a cluster of
100+ satellites starting at the same initial conditions in a circular low Earth
orbit to form an equally spaced constellation (with a relative angular
separation error tolerance of one-tenth a degree). The constellation separation
task can be executed in 71 days, a time frame that is competitive for the
state-of-the-practice. This method allows us to trade the time required to
converge to the desired constellation with a sacrifice in the overall
constellation lifetime, measured as the maximum altitude loss experienced by
one of the satellites in the group after the separation maneuvers.
