bonanni
所属分类:其他
开发工具:matlab
文件大小:417KB
下载次数:1
上传日期:2017-09-15 21:30:20
上 传 者:
aminos
说明: this is a satelit code optimization by using MATLAB
文件列表:
orbitper.m (445, 2014-07-08)
dbmacover.m (5215, 2014-07-08)
demo1.m (7442, 2014-07-08)
demo2.m (8653, 2014-07-08)
demo3.m (11066, 2014-07-08)
drawmap.m (1907, 2014-07-08)
eci2ecf2.m (1383, 2014-07-08)
greatarc.m (1682, 2014-07-08)
grnwich.m (1589, 2014-07-08)
intreg.m (3018, 2014-07-08)
kepl2eci.m (1693, 2014-07-08)
lonlat.m (658, 2014-07-08)
maps.mat (1391404, 2014-07-08)
arcangle.m (985, 2014-07-08)
perimvis.m (1808, 2014-07-08)
posllr.m (751, 2014-07-08)
pvdeg.m (309, 2014-07-08)
pvdegs.m (332, 2014-07-08)
pvrad.m (328, 2014-07-08)
pvrads.m (347, 2014-07-08)
rot3x.m (266, 2014-07-08)
rot3y.m (266, 2014-07-08)
rot3z.m (266, 2014-07-08)
rotate3x.m (792, 2014-07-08)
rotate3y.m (795, 2014-07-08)
rotate3z.m (792, 2014-07-08)
str2jt.m (1475, 2014-07-08)
swath.m (3188, 2014-07-08)
ucompass.m (820, 2014-07-08)
walker.m (1554, 2014-07-08)
license.txt (1332, 2014-07-08)
Description of Simulation Software for the book:
DOPPLER APPLICATIONS IN LEO SATELLITE COMMUNICATION SYSTEMS by
Irfan Ali, Pierino G. Bonanni, Naofal Al-Dhahir, and John E. Hershey
Kluwer Academic Publishers, 101 Philip Drive, Norwell, MA 02061
For inquiries please contact:
Dr. Pierino G. Bonanni
GE Corporate Research & Development
bonanni@crd.ge.com
Dr. Irfan Ali
Motorola
Irfan.Ali@motorola.com
-------------------------
COPYRIGHT AND DISCLAIMER
-------------------------
Copyright 2001, Pierino G. Bonanni and Irfan Ali. All Rights Reserved.
These M-files are User Contributed Routines which are being distributed
by The MathWorks, upon request, on an "as is" basis. A User Contributed
Routine is not a product of The MathWorks, Inc. and The MathWorks assumes
no responsibility for any errors that may exist in these routines.
The software is distributed via this Web site with NO WARRANTY from
the authors or from Kluwer Academic Publishers. The authors and Kluwer
Academic Publishers shall not be liable for damage in connection with,
or arising out of, the furnishing, performance or use of this software.
Use or reproduction of these M-files for commercial gain is strictly
prohibited. Explicit permission is given for reproduction and use
in an instructional setting, provided proper reference is given to
the original source.
------------
DESCRIPTION
------------
DBMA Simulation Software
These routines are written to aid the reader in the visualization of LEO
satellite orbit geometry and dynamics of the Doppler Based Multiple Access
(DBMA) communication protocol described in Chapter 5 of the book.
The "demo" functions are a set of graphical animations driven by a simple
graphical user interface (GUI) modeled after the MATLAB Lorenz demo. These
illustrate a typical LEO orbit, its coverage regions, and the DBMA concept.
The support functions are a small collection of functions useful for
calculating satellite orbits, terrestrial contours and regions, and
coordinate transformations based on Earth rotation. These are intended
to "jump start" any readers who might wish to advance the material in the
book.
These functions are drawn from a larger toolbox of satellite oriented
routines under development by P.G. Bonanni.
---------------------------------------
1. LOADING AND USING THE DEMO SOFTWARE
---------------------------------------
The complete set of routines is available on CD-ROM provided with the book.
Alternatively, the software and any future updates can be accessed via the
MathWorks Web site. Instructions for download are
Web: ftp://ftp.mathworks.com/pub/books/bonanni
Unix login: ftp ftp.mathworks.com
Name: anonymous
Guest login ok, send your complete e-mail address
Password: (type in e-mail address)
cd /pub/books/bonanni
The routines have been tested with Versions 5.3.1, 6.0, and 6.1 of MATLAB.
To install the software, simply copy all the provided files to a convenient
folder. Upon startup of MATLAB, use the path command to ensure that the
selected folder is included in the search path. Then enter a demo command
(demo1, demo2, demo3, ...) to bring up a GUI from which an animation can be
launched.
The following animations are included in the initial release:
o demo1 - Satellite ground track animation. This demo animates
the ground track of a typical LEO satellite. The chosen trajectory
is an inclined circular orbit at 1000 km altitude.
o demo2 - Visibility-based coverage region animation. This demo
displays and animates the visibility-based coverage region of a
typical LEO satellite. Visibility from points on the Earth's
surface is established if the satellite appears above a given
elevation angle in the sky. The satellite in this demo follows
an inclined circular orbit at 1000 km altitude.
o demo3 - DBMA-based coverage region animation. This demo
displays and animates the DBMA-based coverage region of a typical
LEO satellite. The "region of eligibility" for DBMA coverage is
symmetric about the sub-satellite point and is given by the
intersection of three larger regions:
(1) Visibility cone around the sub-satellite point -- the
region in which the elevation to the satellite from the
ground exceeds a given angle. Nodes may transmit at a given
time only if the satellite is above this elevation.
(2) Orbital swath -- the region defined by a lower bound
to the maximum elevation angle to the satellite. Only nodes
that have observed, or will observe, an elevation angle
greater than the given value upon closest passage of the
satellite during the current orbital cycle are permitted
to transmit.
(3) Orbital time window -- the region observing closest
passage of the satellite within a given time window. Only
nodes that have observed (will observe) maximum elevation
within this interval from the given time are permitted to
transmit.
The satellite in this demo follows an inclined circular orbit
at 1000 km altitude.
------------------------
2. OVERVIEW OF ROUTINES
------------------------
The demos described above are built on a platform of satellite oriented
routines and some supporting math functions that supplement the basic
MATLAB command set. The most direct reliance is on two high-level
routines, 'walker' and 'dbmacover', which compute the satellite orbits
and the DBMA coverage regions displayed dynamically in the animations.
Function 'walker' generates orbit trajectories for a Walker satellite
constellation, which describes a pattern of identical circular orbits
regularly spaced about a series of planes at a fixed inclination.
Function 'dbmacover' computes the geographic "region of eligibility"
defined by the DBMA protocol of Chapter 5, given parameters specifying
the visibility cone, the orbital swath, and the orbital time window.
The satellite oriented support functions on which these high-level
routines are based are next listed and described:
o arcangle - Calculates the angular distance (central angle) between
two terrestrial surface points specified by latitude and longitude.
o drawmap - Draws a map using a rectangular grid projection (latitude
versus longitude). A "map" is defined as a sequence of contiguous
latitude-longitude pairs delimited by "pen-up" indications.
Example maps are provided in the MAT-file 'maps.mat'. Included
are maps representing Earth land-water boundaries, U.S. state
borders, and a grid constructed from parallels of latitude and
meridians of longitude.
o eci2ecf2 - Transforms a position/velocity trajectory from Earth-
centered-inertial (ECI) to Earth-centered-fixed (ECF) coordinates.
o greatarc - Computes a latitude-longitude sequence representing the
great-circle arc connecting two terrestrial surface points.
o grnwich - Calculates the Greenwich right ascension for a given
Julian date and time. This is used to compensate for Earth rotation
in transformations between ECI and ECF coordinates.
o intreg - Computes a latitude-longitude sequence representing the
intersection of two geographic regions, themselves defined by
latitude-longitude sequences.
o kepl2eci - Transforms Keplerian to ECI coordinates. Keplerian
coordinates are convenient for specification of elliptical orbits;
conversion to ECI enables Cartesian representation of position and
velocity.
o lonlat - Calculates longitude, latitude, and range from a Cartesian
position specification (ECI or ECF). Opposite of 'posllr'.
o orbitper - Calculates the orbital period as a function of semi-major
axis for satellites in orbit about Earth.
o perimvis - Computes a latitude-longitude sequence describing the
perimeter of the region on Earth's surface visible from a given
position in space. Visibility is defined by the criterion that
the elevation to the satellite from the ground exceeds a given
angle.
o posllr - Calculates Cartestian position (ECI or ECF) given longitude,
latitude, and range. Opposite of 'lonlat'.
o str2jt - Converts a date-time string specification to a real-valued
Julian time in days, suitable for use in astronomical formulas.
o swath - Generates a latitude-longitude sequence defining the swath
of visibility for an orbit. Visibility from a given ground point
is defined by the criterion that the maximum elevation reached by
the satellite on the current pass exceeds a given angle.
o ucompass - Calculates unit vectors defining local bearings (East,
North, and Zenith) for a given latitude and longitude on Earth.
Additionally, the satellite routines make use of the following mathematical
support functions:
o pvdeg - Principal value in degrees. Converts angles outside the
range [0,360] degrees to the equivalent angle in that range.
o pvdegs - Symmetric principal value in degrees. Converts angles
outside the range [-180,180] degrees to the equivalent angle in
that range.
o pvrad - Principal value in radians. Converts angles outside the
range [0,2*pi] radians to the equivalent angle in that range.
o pvrads - Symmetric principal value in radians. Converts angles
outside the range [-pi,pi] radians to the equivalent angle in
that range.
o rot3x - Computes the 3x3 matrix representing a rotation about
the x-axis by a given angle.
o rot3y - Computes the 3x3 matrix representing a rotation about
the y-axis by a given angle.
o rot3z - Computes the 3x3 matrix representing a rotation about
the z-axis by a given angle.
o rotate3x - Rotates a 3-space trajectory about the x-axis.
o rotate3y - Rotates a 3-space trajectory about the y-axis.
o rotate3z - Rotates a 3-space trajectory about the z-axis.
----------------------------------
3. ALPHABETICAL LIST OF FUNCTIONS
----------------------------------
ARCANGLE - Angular distance between surface points.
DBMACOVER - Coverage region using DBMA protocol.
DEMO1 - Satellite ground track animation.
DEMO2 - Visibility-based coverage region animation.
DEMO3 - DBMA-based coverage region animation.
DRAWMAP - Draw a map using a rectangular grid projection.
ECI2ECF2 - Pos/vel ECI to ECF transformation.
GREATARC - Great arc connecting two surface points.
GRNWICH - Greenwich right ascension.
INTREG - Intersection of two geographic regions.
KEPL2ECI - Keplerian to ECI transformation.
LONLAT - Calculate longitude, latitude, and range.
ORBITPER - Calculate period for terrestrial orbits.
PERIMVIS - Calculate perimeter of visible ground region.
POSLLR - Calculate position given longitude, latitude, and range.
PVDEG - Principal value in degrees.
PVDEGS - Symmetric principal value in degrees.
PVRAD - Principal value in radians.
PVRADS - Symmetric principal value in radians.
ROT3X - 3-space rotation matrix - x.
ROT3Y - 3-space rotation matrix - y.
ROT3Z - 3-space rotation matrix - z.
ROTATE3X - Rotate a 3-space trajectory about the x-axis.
ROTATE3Y - Rotate a 3-space trajectory about the y-axis.
ROTATE3Z - Rotate a 3-space trajectory about the z-axis.
STR2JT - Convert date-time string to Julian Time.
SWATH - Calculate swath of visibility for an orbit.
UCOMPASS - Calculate compass directions.
WALKER - Generate a Walker satellite constellation.
----------------------
4. FUNCTION REFERENCE
----------------------
_________________________________________________________________
ARCANGLE - Angular distance between surface points.
angle = arcangle(elon1,nlat1,elon2,nlat2)
Calculates the angular distance between surface points (elon1,nlat1)
and (elon2,nlat2), along the great arc connecting the points. Inputs
'elon1' and 'elon2' are in east longitude degrees and 'nlat1' and
'nlat2' are in north latitude degrees. These may be scalars or
column vectors of uniform length. Output 'angle' (scalar or vector,
matching the inputs) is returned in degrees.
P.G. Bonanni
6/29/00
_________________________________________________________________
DBMACOVER - Coverage region using DBMA protocol.
[elon,nlat] = dbmacover(xECF,vECF,index,dt,elev1,elev2,tmax)
Calculates a longitude and latitude sequence (elon,nlat) defining the
boundary of the region within which tags are allowed to communicate
by the DBMA protocol. This "region of eligibility," computed for a
specific instant in time, is symmetric about the sub-satellite point
and is given by the intersection of three larger regions:
(1) Visibility cone around the subsatellite point - the region
in which the elevation to the satellite from the ground exceeds
a given angle, specified by 'elev1' in degrees. Nodes may
transmit only if the satellite is above this elevation at
the current time.
(2) Orbital swath - the region defined by a lower bound to the
maximum elevation angle to the satellite, specified by 'elev2'
in degrees. Only nodes that have observed, or will observe,
an elevation angle greater than this value upon closest passage
of the satellite during the current orbital cycle are permitted
to transmit.
(3) Orbital time window - the region observing closest passage of
the satellite within a given time window, whose half width is
specified by 'tmax' in seconds. Only nodes that have observed
(or will observe) maximum elevation within +/- this interval
from the current time are permitted to transmit.
Parameters:
xECF - Earth-centered-fixed satellite location [x,y,z] in km
vECF - Earth-centered-fixed satellite velocity [vx,vy,vz] in km/sec
index - index into xECF (and vECF) defining the current time
dt - time between orbit samples, in sec
elev1 - minimum current visibility angle, in degrees
elev2 - minimum visibility at closest passage, in degrees
tmax - maximum time preceding/following closest passage, in sec
NOTE: A negative value for 'tmax' specifies use of the full time
window during which the visibility and maximum elevation criteria
are met.
Units for (elon,nlat) are east longitude degrees and north latitude
degrees, respectively.
Irfan Ali / P.G. Bonanni
7/10/00
_________________________________________________________________
DEMO1 - Satellite ground track animation.
demo1(action)
This demo animates the ground track of a typical LEO
satellite. The chosen trajectory is a 53-deg inclined
circular orbit at 1000 km altitude.
Possible button actions:
'initialize' - initialize UI and graphics
'start' - start animation
'stop' - stop animation
'info' - display help info
'close' - close graphics window
P.G. Bonanni / Irfan Ali 7/17/00
_________________________________________________________________
DEMO2 - Visibility-based coverage region animation.
demo2(action)
This demo displays and animates the visibility-based coverage
region of a typical LEO satellite. Visibility from points on
the Earth's surface is established if the satellite appears
above a given elevation angle in the sky. The satellite in
this demo follows a 53-deg inclined circular orbit at 1000 km
altitude.
Possible button actions:
'initialize' - initialize UI and graphics
'start' - start animation
'stop' - stop animation
'info' - display help info
'close' - close graphics window
P.G. Bonanni / Irfan Ali 7/18/00
_________________________________________________________________
DEMO3 - DBMA-based coverage region animation.
demo3(action)
This demo displays and animates the DBMA-based coverage
region of a typical LEO satellite. The "region of eligibility"
for DBMA coverage is symmetric about the sub-satellite point
and is given by the intersection of three larger regions:
(1) Visibility cone around the subsatellite point - the region
in which the elevation to the satellite from the ground exceeds
a given angle, given by 'elev1' in degrees. Nodes may transmit
at a given time only if the satellite is above this elevation.
(2) Orbital swath - the region defined by a lower bound to the
maximum elevation angle to the satellite, given by 'elev2' in
degrees. Only nodes that have observed, or will observe, an
elevation angle greater than this value upon closest passage
of the satellite during the current orbital cycle are permitted
to transmit.
(3) Orbital time window - the region observing closest passage of
the satellite within a given time window, given by 'tmax' in
seconds. Only nodes that have observed (will observe) maximum
elevation within this interval from the given time are
permitted to transmit. (NOTE: A negative value for 'tmax'
specifies use of the full time window during which the
visibility criteria above are met.)
The satellite in this demo follows a 53-deg inclined circular orbit
at 1000 km altitude.
Possible button actions:
'initialize' - initialize UI and graphics
'start' - start animation
'stop' - stop animation
'info' - display help info
'close' - close graphics window
P.G. Bonanni / Irfan Ali 7/17/00
_________________________________________________________________
DRAWMAP - Draw a map using a rectangular grid projection.
handle = drawmap(map[,range,s])
Draws that portion of 'map' which lies within the
geographical area specified by 'range', where
'map' is an [N,2] matrix of contiguous (elon,nlat)
pairs separated by "pen-up" indicators (i.e., the
pair "NaN NaN"). Units for (elon,nlat) are east
longitude degrees and north latitude degrees,
respectively. Parameter 'range' is a 1x4 vector
whose format is like the Matlab 'axis' parameter
with x range referring to east longitude degrees
and y range to north latitude degrees. Parameter
's' specifies the line type for the plot. The
output of the function is a handle to the resulting
plot.
Other usage modes:
1) drawmap(map)
displays the full map using a solid line type.
2) drawmap(map,range)
displays the specified range using a solid line type.
3) drawmap(map,s)
displays the full map using the specified line type.
P.G. Bonanni
2/7/95
_________________________________________________________________
ECI2ECF2 - Pos/vel ECI to ECF transformation.
[xECF,vECF] = eci2ecf2(JT,xECI,vECI)
xECF = eci2ecf2(JT,xECI)
Converts positions x and velocities v
from ECI to ECF, given Julian time JT
in days.
Parameters:
JT - Nx1 vector of Julian times
xECI - Nx3 ECI position trajectory
... ...
近期下载者:
相关文件:
收藏者: