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 ... ...

近期下载者

相关文件


收藏者