There are two basic kinds of satellite nodes: geostationary and non-geostationary satellite nodes. In addition, terminal nodes can be placed on the Earth's surface. As is explained later in Section 17.3, each of these three different types of nodes is actually implemented with the same class SatNode object, but with different position, handoff manager, and link objects attached. The position object keeps track of the satellite node's location in the coordinate system as a function of the elapsed simulation time. This position information is used to determine link propagation delays and appropriate times for link handoffs. Section 5.3 introduced the "node-config" utility used to prime the node generator for different types of satellite nodes.
Figure 17.2 illustrates the spherical coordinate system, and the corresponding Cartesian coordinate system. The coordinate system is centered at the Earth's center, and the axis coincides with the Earth's axis of rotation. corresponds to longitude (prime meridian) on the equator.
Specifically, there is one class of satellite node Class Node/SatNode, to which one of three types of Position objects may be attached. Each SatNode and Position object is a split OTcl/C++ object, but most of the code resides in C++. The following types of position objects exist:
$ns node-config -satNodeType terminal \bs (other node config commands go here...) set n1 [$ns node] $n1 set-position $lat $lon; # in decimal degrees
$ns node-config -satNodeType geo (or ``geo-repeater'') \bs (other node config commands go here...) set n1 [$ns node] $n1 set-position $lon; # in decimal degrees
Satellite orbits are usually specified by six parameters: altitude, semi-major axis, eccentricity, right ascension of ascending node, inclination, and time of perigee passage. The polar orbiting satellites in ns have purely circular orbits, so we simplify the specification of the orbits to include only three parameters: altitude, inclination, and longitude, with a fourth parameter alpha specifying initial position of the satellite in the orbit, as described below. Altitude is specified in kilometers above the Earth's surface, and inclination can range from degrees, with corresponding to pure polar orbits and angles greater than degrees corresponding to ``retrograde'' orbits. The ascending node refers to the point where the footprint of the satellite orbital track crosses the equator moving from south to north. In this simulation model, the parameter longitude of ascending node specifies the earth-centric longitude at which the satellite's nadir point crosses the equator moving south to north.17.3 Longitude of ascending node can range from degrees. The fourth parameter, alpha, specifies the initial position of the satellite along this orbit, starting from the ascending node. For example, an alpha of degrees indicates that the satellite is initially above the equator moving from north to south. Alpha can range from degrees. Finally, a fifth parameter, plane, is specified when creating polar satellite nodes- all satellites in the same plane are given the same plane index. The node generator used to create a polar satellite with an attached position object as follows:
$ns node-config -satNodeType polar \bs (other node config commands go here...) set n1 [$ns node] $n1 set-position $alt $inc $lon $alpha $plane
Tom Henderson 2011-11-05