Spacecraft Control Framework 1.0
Spacecraft Control Library
|
Model beam contours. More...
#include <sc_beam_contour.h>
Public Member Functions | |
beam_contour () | |
Constructor. More... | |
beam_contour (double lat0, double lon0, double alt0, double beamWidth) | |
Constructor for Coefficients. More... | |
beam_contour (double lat0, double lon0, double alt0, double beamWidth, double azim, double elev) | |
Creates a beam contour object and computes the lat/lon contour. More... | |
void | update (double lat0, double lon0, double alt0, double beamWidth, double azim, double elev) |
Update - recompute the contour with all new inputs. More... | |
void | update () |
Update - recompute the contour with current data. More... | |
void | rotateAxis (const ml_matrix &u, double roll, double pitch) |
Rotate a body axis through roll, pitch. Zero angles result in +z body pointing down. More... | |
void | rotateAxis (double lat0, double lon0, double alt0, double beamWidth, const ml_matrix &u, double roll, double pitch) |
Rotate a body axis through roll, pitch. Zero angles result in +z body pointing down. More... | |
void | point (double azim, double elev) |
point - recompute the contour with a new beam direction More... | |
void | move (double lat0, double lon0, double alt0) |
Rotate - recompute the contour with a new beam direction. More... | |
void | verify_inputs () |
Verify inputs. | |
ml_matrix | get_lat () |
Get the latitude points of the beam contour. | |
ml_matrix | get_lon () |
Get the longitude points of the beam contour. | |
ml_matrix | get_r () |
Get the Earth-fixed position points of the beam contour. | |
ml_matrix * | get_lat_ptr () |
Get pointer to the latitude points of the beam contour. | |
ml_matrix * | get_lon_ptr () |
Get pointer to the longitude points of the beam contour. | |
ml_matrix * | get_r_ptr () |
Get the Earth-fixed position points of the beam contour. | |
bool | exist () |
Return flag to say whether the contour exists or not. | |
bool | horizon () |
Return flag to say whether the contour has a horizon segment or not. | |
Model beam contours.
beam_contour::beam_contour | ( | ) |
beam_contour::beam_contour | ( | double | _lat0, |
double | _lon0, | ||
double | _alt0, | ||
double | _beamWidth | ||
) |
Constructor for Coefficients.
Creates a beam contour object and computes the lat/lon contour.
lat0 | North Latitude of beam vertex [rad] |
lon0 | East Longitude of beam vertex [rad] |
alt0 | Altitude of beam vertex [km] above sea-level |
beamWidth | Angular width of beam [rad] |
References RADIUS_EARTH, and update().
beam_contour::beam_contour | ( | double | _lat0, |
double | _lon0, | ||
double | _alt0, | ||
double | _beamWidth, | ||
double | _azim, | ||
double | _elev | ||
) |
Creates a beam contour object and computes the lat/lon contour.
lat0 | North Latitude of beam vertex [rad] |
lon0 | East Longitude of beam vertex [rad] |
alt0 | Altitude of beam vertex [km] above sea-level |
beamWidth | Angular width of beam [rad] |
azim | Azimuth of beam axis, measured from north clockwise [rad] |
elev | Elevation of beam axis, measured from nadir vector [rad] |
References RADIUS_EARTH, and update().
void beam_contour::update | ( | double | _lat0, |
double | _lon0, | ||
double | _alt0, | ||
double | _beamWidth, | ||
double | _azim, | ||
double | _elev | ||
) |
Update - recompute the contour with all new inputs.
Update the beam contour object - compute new lat/lon contour with all new inputs.
lat0 | North Latitude of beam vertex [rad] |
lon0 | East Longitude of beam vertex [rad] |
alt0 | Altitude of beam vertex [km] above sea-level |
beamWidth | Angular width of beam [rad] |
azim | Azimuth of beam axis, measured from north clockwise [rad] |
elev | Elevation of beam axis, measured from nadir vector [rad] |
References update().
void beam_contour::update | ( | ) |
Update - recompute the contour with current data.
Update the beam contour with current object data.
References TWO_PI, and verify_inputs().
Referenced by beam_contour(), move(), point(), rotateAxis(), and update().
void beam_contour::rotateAxis | ( | const ml_matrix & | u, |
double | roll, | ||
double | pitch | ||
) |
Rotate a body axis through roll, pitch. Zero angles result in +z body pointing down.
Rotate a body axis through roll, pitch.
For zero-inclination orbits, roll=pitch=0 results in body xyz aligned with ESD frame:
body +x aligned with velocity (East), body +y aligned with anti-orbit normal (South)
body +z aligned with nadir (Down)
u | Unit vector of beam axis in body frame |
roll | Roll angle about body x-axis (north/south motion) [rad] |
pitch | Pitch angle about body y-axis (east/west motion) [rad] |
References esd_to_azim(), esd_to_elev(), and update().
Referenced by rotateAxis().
void beam_contour::rotateAxis | ( | double | _lat0, |
double | _lon0, | ||
double | _alt0, | ||
double | _beamWidth, | ||
const ml_matrix & | u, | ||
double | roll, | ||
double | pitch | ||
) |
Rotate a body axis through roll, pitch. Zero angles result in +z body pointing down.
Rotate a body axis through roll, pitch.
For zero-inclination orbits, roll=pitch=0 results in body xyz aligned with ESD frame:
body +x aligned with velocity (East), body +y aligned with anti-orbit normal (South)
body +z aligned with nadir (Down)
lat0 | North Latitude of beam vertex [rad] |
lon0 | East Longitude of beam vertex [rad] |
alt0 | Altitude of beam vertex [km] above sea-level |
beamWidth | Angular width of beam [rad] |
u | Unit vector of beam axis in body frame |
roll | Roll angle about body x-axis (north/south motion) [rad] |
pitch | Pitch angle about body y-axis (east/west motion) [rad] |
References rotateAxis().
void beam_contour::point | ( | double | _azim, |
double | _elev | ||
) |
point - recompute the contour with a new beam direction
Update the beam contour object - compute new lat/lon contour by pointing attitude (azim, elev)
azim | Azimuth of beam axis, measured from north clockwise [rad] |
elev | Elevation of beam axis, measured from nadir vector [rad] |
References update().
void beam_contour::move | ( | double | _lat0, |
double | _lon0, | ||
double | _alt0 | ||
) |
Rotate - recompute the contour with a new beam direction.
Update the beam contour object - compute new lat/lon contour by moving position (lat0,lon0,alt0)
lat0 | North Latitude of beam vertex [rad] |
lon0 | East Longitude of beam vertex [rad] |
alt0 | Altitude of beam vertex [km] above sea-level |
References update().