Path: SC/MagneticControl
% Models a magnetic torquer.
--------------------------------------------------------------------------
Form:
output = MagTorquer( action, input )
--------------------------------------------------------------------------
---------
Arguments
---------
action (1,:) Action, 'initialize' or 'getTorque'
action is 'getTorque'
input (.) Data structure - each field is described below; the following sets of
fields are allowed:
{.bField},
{.position, {.date OR .julianDate}, {.qECIToBody OR .mECIToBody} }
{.position, {.date OR .julianDate}, .model, {.qECIToBody OR .mECIToBody}}
{.position, {.date OR .julianDate}, .model, .modelInputs, {.qECIToBody OR .mECIToBody}}
{.model, .modelInputs, {.qECIToBody OR .mECIToBody}}
In addition, the fields .dipoleSign and/or {.current OR .curFunInputs} may be included
for the input with any of the above combinations.
.bField (3,n) Earth's magnetic field in the spacecraft body
frame. If this field exists, then all others
are ignored. (T)
.position (3,n) Position in ECI (km)
.date (n,6) or structure Date Time Array or Structure (see DTSToDTA for formats)
.julianDate (1,n) Julian date
.qECIToBody (4,n) Quaternion from ECI to spacecraft body frame
.mECIToBody (3,3,n) Transformation matrix from ECI to spacecraft body frame
.model string Name of the function that will compute the
magnetic field. SCT functions that can be
used are: 'BDipole', 'BMF', 'MagField'
(function names are case sensative). User
supplied models may also be specified.
.modelInputs {:} Cell array containing any additional inputs
needed for MagField or BMF, or all inputs for a
custom model
.dipoleSign (m,1) Sign of the dipole for each torquer initialized
Can also be a non-unity constant to indicate
a change in the magnitude of the dipole from
value set at initialization
.current (m,1) Current for each toruqer (A)
.curFunInputs {:} Inputs for the current calculation function
output (3,n,m) Magnetic torque in spacecraft body frame. n is the number of
position vectors entered, m is the number of torquers that have
been initialized. If n=1 but m>1, the output will be sqeezed to
remove the middle dimension. Units depend on the units of the
dipoles entered.
action is 'initialize'
input (1,1) Data structure - each field is described below; the following sets of
fields are allowed:
{.dipole},
{.n, .area, .nTurns }
{.n, .area, .nTurns, .mu }
{.n, .area, .nTurns, {.current OR .currentFunction} }
{.n, .area, .nTurns, {.current OR .currentFunction}, .mu }
.dipole (3,m) Dipole moment for each torquer (Atm^2)
.n (3,m) Unit vector in the direction of the
dipole when positive current is applied
.area (1,m) Coil area for each torquer (m^2)
.nTurns (1,m) Number of turns for each torquer
.mu (1,m) Core permeability for each torquer
(default=1, is vaccuum) (dimensionless)
.current (1,m) Current for each torquer (A)
.currentFunction string Name of a function to be called to
calculate the current
output (1) Number of dipoles initialized
--------------------------------------------------------------------------
SC: Environs/BDipole SC: Environs/BMF SC: Environs/MagField Common: Quaternion/QForm Common: Time/DTSToDTA Common: Time/Date2JD Math: Linear/Cross Math: Linear/DupVect
Back to the SC Module page