  In this work, we achieve propellantless control of both cross-track and
along-track separation of a satellite formation by manipulating atmospheric
drag. Increasing the differential drag of one satellite with respect to another
directly introduces along-track separation, while cross-track separation can be
achieved by taking advantage of higher-order terms in the Earth's gravitational
field that are functions of altitude. We present an algorithm for solving an
n-satellite formation flying problem based on linear programming. We
demonstrate this algorithm in a receeding-horizon control scheme in the
presence of disturbances and modeling errors in a high-fidelity closed-loop
orbital dynamics simulation. Our results show that separation distances of
hundreds of kilometers can be achieved by a small-satellite formation in
low-Earth orbit over a few months.
