00001 ////////////////////////////////////////////////////////////////////////////////////////////////// 00002 /*! \file HokieSatSimulation.h 00003 * \brief Include files and function prototypes for HokieSat attitude simulation example. 00004 * \author $Author: cakinli $ 00005 * \version $Revision: 1.1.1.1 $ 00006 * \date $Date: 2005/04/26 17:41:00 $ 00007 *////////////////////////////////////////////////////////////////////////////////////////////////// 00008 00009 00010 // Standard includes 00011 #include "Matrix.h" 00012 #include "Rotation.h" 00013 00014 // Dynamics includes 00015 #include "CombinedNumericPropagator.h" 00016 #include "RungeKuttaFehlbergIntegrator.h" 00017 00018 // Orbit Includes 00019 #include "Orbit.h" 00020 #include "OrbitState.h" 00021 #include "orbitmodels/TwoBodyDynamics.h" 00022 #include "orbitstaterep/PositionVelocity.h" 00023 #include "orbitframes/OrbitFrameIJK.h" 00024 00025 // Attitude includes 00026 #include "Attitude.h" 00027 #include "AttitudeState.h" 00028 #include "AttitudeModels/QuaternionAngVelDynamics.h" 00029 00030 // Environment Includes 00031 #include "CentralBody/EarthCentralBody.h" 00032 #include "CentralBody/Models/TiltedDipoleMagneticModel.h" 00033 #include "Disturbances/GravityFunctions.h" 00034 #include "Disturbances/SimpleAerodynamicDisturbances.h" 00035 00036 // Utility Includes 00037 #include "Plot.h" 00038 #include "MathUtils.h" 00039 00040 using namespace O_SESSAME; 00041 00042 /** @brief Sets up a combined numeric propagator, RK4(5) integrator and tolerances. */ 00043 NumericPropagator* SetupPropagator(); 00044 /** @brief Creates an Earth environment with point-mass, two-body gravity, gravity-gradient torque, 00045 * and a tilted-dipole magnetic field model. */ 00046 Environment* SetupEnvironment(Attitude* pSatAttitude); 00047 00048 /** @brief Creates an initial orbit read in from a file. */ 00049 Orbit* SetupOrbit(); 00050 00051 /** @brief Creates an initial attitude read in from a file. */ 00052 Attitude* SetupAttitude(); 00053 00054 /** @brief HokieSat magnetic controller algoritm. 00055 * @author Hye-Young Kim 00056 */ 00057 Vector ControlTorques(Matrix CurrentAttState, Matrix DesAttState, double epoch, double count);