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 --------------------------------------------------------------------------
Common: Quaternion/QForm Common: Time/DTSToDTA Common: Time/Date2JD Math: Linear/Cross Math: Linear/DupVect SC: Environs/BDipole SC: Environs/BMF SC: Environs/MagField
Back to the SC Module page