#
# Skybridge double-delta constellation
#
# First originally for launch, 2000; second in 2002.
# Original 64-satellite proposal; later redesigned to 80 satellites.
#
# Two overlapping synchronised rosettes of sorts, to give
# frequency sharing with GEO.
#
# When one satellite is too near the centre of a GEO footprint, switch
# to its neighbour to avoid interference - well, that's the theory.
#
# information used from the SkyBridge FCC application, 28 February 1997.
# pp27-31. Fascinating 300+ page read! Skybridge is described as two
# 32-sat Walker constellations. Each 32-satellite constellation
# is 8 planes of 4 satellites, each separated in ascending node by 45
# degrees, i.e. two overlapping deltas/rosettes. Lots of diversity.
#
# this script for SaVi 1.2 by Lloyd Wood (L.Wood@surrey.ac.uk)
# http://www.ee.surrey.ac.uk/Personal/L.Wood/constellations/
#
# $Id: skybridge-64.tcl,v 1.4 2004/12/26 14:47:20 lloydwood Exp $



# Elevation angle apparently 10 degrees, but that's not quite full coverage.
set coverage_angle 10.0

# I'm not convinced by the orbital parameters given - they define the
# argument of perigee as 90 degrees, and the eccentricity as 0 degrees
# (table, p.30). Some redundancy, surely? Would have been impossible
# to figure out if they hadn't given a planar projection of satellite
# distribution; it's continuous-phasing.

set SATS_PER_PLANE 4
set NUM_PLANES 8

# set to one to show the first subconstellation after completed launch
set NUM_CONSTS 2

# offset of second SkyBridge sub-constellation, degrees
set LONG_OFFSET 10
set LAT_OFFSET -14

# setup orbital elements
set a [expr 1457.0+$RADIUS_OF_EARTH]
set e 0.0
set inc 55
set omega 0.0
set T_per [expr 2 * $PI * pow($a,1.5) / sqrt($MU)]

satellites GV_BEGIN

# outer loop for both sub-constellations
for {set k 0} {$k < $NUM_CONSTS} {incr k} {

   for {set j 0} {$j < $NUM_PLANES} {incr j} {

        set Omega [expr $j * 45.0 + $k * $LONG_OFFSET ]
        set plane_offset [expr $T_per / 360.0 * $j * -33.75 + $k * $LAT_OFFSET ]

        for {set i 0} {$i < $SATS_PER_PLANE} {incr i} {

                set T [expr $T_per * $i / $SATS_PER_PLANE + $plane_offset]
		satellites LOAD $a $e $inc $Omega $omega $T
	}
    }
}
satellites GV_END
