public class LocalMagneticFieldFrame extends Object implements LOF
It was designed to be used as a Bdot attitude pointing law which align a specific body axis with Earth magnetic field vector.
Attitude control thought the magnetic field is called Bdot as it follows the sinusoidal variation of the Earth magnetic field vector, along the orbit. Magnetorquers are used on board to align the instrument, as so the satellite, with the planet magnetic field, producing a sinusoidal torque along the orbit.
Modifier and Type | Class and Description |
---|---|
static class |
LocalMagneticFieldFrame.LOFBuilderVector
Enum defining how the +j axis of the local orbital frame will be defined.
|
Constructor and Description |
---|
LocalMagneticFieldFrame(Frame inertialFrame,
GeoMagneticField magneticField,
Frame bodyFrame)
Constructor with default definition of the local orbital frame:
x: Magnetic field
y: Completes orthonormal frame
z: Cross product of the magnetic field with the orbital momentum
.
|
LocalMagneticFieldFrame(Frame inertialFrame,
GeoMagneticField magneticField,
LocalMagneticFieldFrame.LOFBuilderVector lofBuilderVector,
Frame bodyFrame)
Constructor with custom definition of the local orbital frame:
x: Magnetic field
y: Completes orthonormal frame
z: Cross product of the magnetic field with chosen
vector
For near-polar orbits, it is suggested to use the orbital momentum to define the local
orbital frame. |
Modifier and Type | Method and Description |
---|---|
Frame |
getInertialFrame()
Get interlai frame.
|
GeoMagneticField |
getMagneticField()
Get geomagnetid field.
|
String |
getName()
Get name of the local orbital frame.
|
org.hipparchus.geometry.euclidean.threed.Rotation |
rotationFromInertial(AbsoluteDate date,
PVCoordinates pv)
Get the rotation from inertial frame to local orbital frame.
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
rotationFromInertial(org.hipparchus.Field<T> field,
FieldAbsoluteDate<T> date,
FieldPVCoordinates<T> pv)
Get the rotation from inertial frame to local orbital frame.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isQuasiInertial, rotationFromLOF, rotationFromLOF, rotationFromLOFInToLOFOut, rotationFromLOFInToLOFOut, transformFromInertial, transformFromInertial, transformFromLOF, transformFromLOF, transformFromLOFInToLOFOut, transformFromLOFInToLOFOut
public LocalMagneticFieldFrame(Frame inertialFrame, GeoMagneticField magneticField, Frame bodyFrame)
inertialFrame
- inertial frame in which position-velocity coordinates will be given when computing transform and
rotationmagneticField
- Earth magnetic field modelbodyFrame
- body frame related to body shapepublic LocalMagneticFieldFrame(Frame inertialFrame, GeoMagneticField magneticField, LocalMagneticFieldFrame.LOFBuilderVector lofBuilderVector, Frame bodyFrame)
vector
orbital momentum
to define the local
orbital frame. However, for near-equatorial orbits, it is advised to use either the
position or the velocity
.inertialFrame
- inertial frame in which position-velocity coordinates will be given when computing transform and
rotationmagneticField
- Earth magnetic field modellofBuilderVector
- vector used to define the local orbital framebodyFrame
- body frame related to body shapepublic <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotationFromInertial(org.hipparchus.Field<T> field, FieldAbsoluteDate<T> date, FieldPVCoordinates<T> pv)
This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well,
the full LOF.transformFromInertial(FieldAbsoluteDate, FieldPVCoordinates)
method must be
called and the complete rotation transform must be extracted from it.
vector type
.
BEWARE: In this implementation, the method simply fieldify the normal rotation with given field. Hence all derivatives are lost.
rotationFromInertial
in interface LOF
T
- type of the field elementsfield
- field to which the elements belongdate
- date of the rotationpv
- position-velocity of the spacecraft in some inertial framepublic org.hipparchus.geometry.euclidean.threed.Rotation rotationFromInertial(AbsoluteDate date, PVCoordinates pv)
This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well,
the full transformFromInertial
method must be called and
the complete rotation transform must be extracted from it. Direction as X axis aligned with magnetic field vector, Z axis aligned with the cross product of the
magnetic field vector with chosen vector type
.
rotationFromInertial
in interface LOF
date
- date of the rotationpv
- position-velocity of the spacecraft in some inertial framepublic String getName()
public Frame getInertialFrame()
public GeoMagneticField getMagneticField()
Copyright © 2002-2023 CS GROUP. All rights reserved.